blob: bb3ca6aae20a2dc46fdeeea990fe31fed49bc920 [file] [log] [blame]
Logan Chien2833ffb2018-10-09 10:03:24 +08001//===--- opencl-c.h - OpenCL C language builtin function header -----------===//
2//
Logan Chiendbcf4122019-03-21 10:50:25 +08003// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Logan Chien2833ffb2018-10-09 10:03:24 +08006//
7//===----------------------------------------------------------------------===//
8
9#ifndef _OPENCL_H_
10#define _OPENCL_H_
11
Logan Chiendf4f7662019-09-04 16:45:23 -070012#include "opencl-c-base.h"
13
Logan Chienbedbf4f2020-01-06 19:35:19 -080014#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015#ifndef cl_khr_depth_images
16#define cl_khr_depth_images
17#endif //cl_khr_depth_images
Logan Chienbedbf4f2020-01-06 19:35:19 -080018#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080019
Logan Chien55afb0a2018-10-15 10:42:14 +080020#if __OPENCL_C_VERSION__ < CL_VERSION_2_0
21#ifdef cl_khr_3d_image_writes
22#pragma OPENCL EXTENSION cl_khr_3d_image_writes : enable
23#endif //cl_khr_3d_image_writes
24#endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0
25
Pirama Arumuga Nainar7e1f8392021-08-16 17:30:48 -070026
27#if (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
Logan Chien969aea62018-12-05 18:40:57 +080028#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
29#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
Pirama Arumuga Nainar7e1f8392021-08-16 17:30:48 -070030#endif // (defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && defined(__SPIR__)
Logan Chien969aea62018-12-05 18:40:57 +080031
Logan Chien2833ffb2018-10-09 10:03:24 +080032#define __ovld __attribute__((overloadable))
Logan Chien55afb0a2018-10-15 10:42:14 +080033#define __conv __attribute__((convergent))
Logan Chien2833ffb2018-10-09 10:03:24 +080034
35// Optimizations
36#define __purefn __attribute__((pure))
37#define __cnfn __attribute__((const))
38
Logan Chien2833ffb2018-10-09 10:03:24 +080039
40// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
41
42char __ovld __cnfn convert_char_rte(char);
43char __ovld __cnfn convert_char_sat_rte(char);
44char __ovld __cnfn convert_char_rtz(char);
45char __ovld __cnfn convert_char_sat_rtz(char);
46char __ovld __cnfn convert_char_rtp(char);
47char __ovld __cnfn convert_char_sat_rtp(char);
48char __ovld __cnfn convert_char_rtn(char);
49char __ovld __cnfn convert_char_sat_rtn(char);
50char __ovld __cnfn convert_char(char);
51char __ovld __cnfn convert_char_sat(char);
52char __ovld __cnfn convert_char_rte(uchar);
53char __ovld __cnfn convert_char_sat_rte(uchar);
54char __ovld __cnfn convert_char_rtz(uchar);
55char __ovld __cnfn convert_char_sat_rtz(uchar);
56char __ovld __cnfn convert_char_rtp(uchar);
57char __ovld __cnfn convert_char_sat_rtp(uchar);
58char __ovld __cnfn convert_char_rtn(uchar);
59char __ovld __cnfn convert_char_sat_rtn(uchar);
60char __ovld __cnfn convert_char(uchar);
61char __ovld __cnfn convert_char_sat(uchar);
62char __ovld __cnfn convert_char_rte(short);
63char __ovld __cnfn convert_char_sat_rte(short);
64char __ovld __cnfn convert_char_rtz(short);
65char __ovld __cnfn convert_char_sat_rtz(short);
66char __ovld __cnfn convert_char_rtp(short);
67char __ovld __cnfn convert_char_sat_rtp(short);
68char __ovld __cnfn convert_char_rtn(short);
69char __ovld __cnfn convert_char_sat_rtn(short);
70char __ovld __cnfn convert_char(short);
71char __ovld __cnfn convert_char_sat(short);
72char __ovld __cnfn convert_char_rte(ushort);
73char __ovld __cnfn convert_char_sat_rte(ushort);
74char __ovld __cnfn convert_char_rtz(ushort);
75char __ovld __cnfn convert_char_sat_rtz(ushort);
76char __ovld __cnfn convert_char_rtp(ushort);
77char __ovld __cnfn convert_char_sat_rtp(ushort);
78char __ovld __cnfn convert_char_rtn(ushort);
79char __ovld __cnfn convert_char_sat_rtn(ushort);
80char __ovld __cnfn convert_char(ushort);
81char __ovld __cnfn convert_char_sat(ushort);
82char __ovld __cnfn convert_char_rte(int);
83char __ovld __cnfn convert_char_sat_rte(int);
84char __ovld __cnfn convert_char_rtz(int);
85char __ovld __cnfn convert_char_sat_rtz(int);
86char __ovld __cnfn convert_char_rtp(int);
87char __ovld __cnfn convert_char_sat_rtp(int);
88char __ovld __cnfn convert_char_rtn(int);
89char __ovld __cnfn convert_char_sat_rtn(int);
90char __ovld __cnfn convert_char(int);
91char __ovld __cnfn convert_char_sat(int);
92char __ovld __cnfn convert_char_rte(uint);
93char __ovld __cnfn convert_char_sat_rte(uint);
94char __ovld __cnfn convert_char_rtz(uint);
95char __ovld __cnfn convert_char_sat_rtz(uint);
96char __ovld __cnfn convert_char_rtp(uint);
97char __ovld __cnfn convert_char_sat_rtp(uint);
98char __ovld __cnfn convert_char_rtn(uint);
99char __ovld __cnfn convert_char_sat_rtn(uint);
100char __ovld __cnfn convert_char(uint);
101char __ovld __cnfn convert_char_sat(uint);
102char __ovld __cnfn convert_char_rte(long);
103char __ovld __cnfn convert_char_sat_rte(long);
104char __ovld __cnfn convert_char_rtz(long);
105char __ovld __cnfn convert_char_sat_rtz(long);
106char __ovld __cnfn convert_char_rtp(long);
107char __ovld __cnfn convert_char_sat_rtp(long);
108char __ovld __cnfn convert_char_rtn(long);
109char __ovld __cnfn convert_char_sat_rtn(long);
110char __ovld __cnfn convert_char(long);
111char __ovld __cnfn convert_char_sat(long);
112char __ovld __cnfn convert_char_rte(ulong);
113char __ovld __cnfn convert_char_sat_rte(ulong);
114char __ovld __cnfn convert_char_rtz(ulong);
115char __ovld __cnfn convert_char_sat_rtz(ulong);
116char __ovld __cnfn convert_char_rtp(ulong);
117char __ovld __cnfn convert_char_sat_rtp(ulong);
118char __ovld __cnfn convert_char_rtn(ulong);
119char __ovld __cnfn convert_char_sat_rtn(ulong);
120char __ovld __cnfn convert_char(ulong);
121char __ovld __cnfn convert_char_sat(ulong);
122char __ovld __cnfn convert_char_rte(float);
123char __ovld __cnfn convert_char_sat_rte(float);
124char __ovld __cnfn convert_char_rtz(float);
125char __ovld __cnfn convert_char_sat_rtz(float);
126char __ovld __cnfn convert_char_rtp(float);
127char __ovld __cnfn convert_char_sat_rtp(float);
128char __ovld __cnfn convert_char_rtn(float);
129char __ovld __cnfn convert_char_sat_rtn(float);
130char __ovld __cnfn convert_char(float);
131char __ovld __cnfn convert_char_sat(float);
132uchar __ovld __cnfn convert_uchar_rte(char);
133uchar __ovld __cnfn convert_uchar_sat_rte(char);
134uchar __ovld __cnfn convert_uchar_rtz(char);
135uchar __ovld __cnfn convert_uchar_sat_rtz(char);
136uchar __ovld __cnfn convert_uchar_rtp(char);
137uchar __ovld __cnfn convert_uchar_sat_rtp(char);
138uchar __ovld __cnfn convert_uchar_rtn(char);
139uchar __ovld __cnfn convert_uchar_sat_rtn(char);
140uchar __ovld __cnfn convert_uchar(char);
141uchar __ovld __cnfn convert_uchar_sat(char);
142uchar __ovld __cnfn convert_uchar_rte(uchar);
143uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
144uchar __ovld __cnfn convert_uchar_rtz(uchar);
145uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
146uchar __ovld __cnfn convert_uchar_rtp(uchar);
147uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
148uchar __ovld __cnfn convert_uchar_rtn(uchar);
149uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
150uchar __ovld __cnfn convert_uchar(uchar);
151uchar __ovld __cnfn convert_uchar_sat(uchar);
152uchar __ovld __cnfn convert_uchar_rte(short);
153uchar __ovld __cnfn convert_uchar_sat_rte(short);
154uchar __ovld __cnfn convert_uchar_rtz(short);
155uchar __ovld __cnfn convert_uchar_sat_rtz(short);
156uchar __ovld __cnfn convert_uchar_rtp(short);
157uchar __ovld __cnfn convert_uchar_sat_rtp(short);
158uchar __ovld __cnfn convert_uchar_rtn(short);
159uchar __ovld __cnfn convert_uchar_sat_rtn(short);
160uchar __ovld __cnfn convert_uchar(short);
161uchar __ovld __cnfn convert_uchar_sat(short);
162uchar __ovld __cnfn convert_uchar_rte(ushort);
163uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
164uchar __ovld __cnfn convert_uchar_rtz(ushort);
165uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
166uchar __ovld __cnfn convert_uchar_rtp(ushort);
167uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
168uchar __ovld __cnfn convert_uchar_rtn(ushort);
169uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
170uchar __ovld __cnfn convert_uchar(ushort);
171uchar __ovld __cnfn convert_uchar_sat(ushort);
172uchar __ovld __cnfn convert_uchar_rte(int);
173uchar __ovld __cnfn convert_uchar_sat_rte(int);
174uchar __ovld __cnfn convert_uchar_rtz(int);
175uchar __ovld __cnfn convert_uchar_sat_rtz(int);
176uchar __ovld __cnfn convert_uchar_rtp(int);
177uchar __ovld __cnfn convert_uchar_sat_rtp(int);
178uchar __ovld __cnfn convert_uchar_rtn(int);
179uchar __ovld __cnfn convert_uchar_sat_rtn(int);
180uchar __ovld __cnfn convert_uchar(int);
181uchar __ovld __cnfn convert_uchar_sat(int);
182uchar __ovld __cnfn convert_uchar_rte(uint);
183uchar __ovld __cnfn convert_uchar_sat_rte(uint);
184uchar __ovld __cnfn convert_uchar_rtz(uint);
185uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
186uchar __ovld __cnfn convert_uchar_rtp(uint);
187uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
188uchar __ovld __cnfn convert_uchar_rtn(uint);
189uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
190uchar __ovld __cnfn convert_uchar(uint);
191uchar __ovld __cnfn convert_uchar_sat(uint);
192uchar __ovld __cnfn convert_uchar_rte(long);
193uchar __ovld __cnfn convert_uchar_sat_rte(long);
194uchar __ovld __cnfn convert_uchar_rtz(long);
195uchar __ovld __cnfn convert_uchar_sat_rtz(long);
196uchar __ovld __cnfn convert_uchar_rtp(long);
197uchar __ovld __cnfn convert_uchar_sat_rtp(long);
198uchar __ovld __cnfn convert_uchar_rtn(long);
199uchar __ovld __cnfn convert_uchar_sat_rtn(long);
200uchar __ovld __cnfn convert_uchar(long);
201uchar __ovld __cnfn convert_uchar_sat(long);
202uchar __ovld __cnfn convert_uchar_rte(ulong);
203uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
204uchar __ovld __cnfn convert_uchar_rtz(ulong);
205uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
206uchar __ovld __cnfn convert_uchar_rtp(ulong);
207uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
208uchar __ovld __cnfn convert_uchar_rtn(ulong);
209uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
210uchar __ovld __cnfn convert_uchar(ulong);
211uchar __ovld __cnfn convert_uchar_sat(ulong);
212uchar __ovld __cnfn convert_uchar_rte(float);
213uchar __ovld __cnfn convert_uchar_sat_rte(float);
214uchar __ovld __cnfn convert_uchar_rtz(float);
215uchar __ovld __cnfn convert_uchar_sat_rtz(float);
216uchar __ovld __cnfn convert_uchar_rtp(float);
217uchar __ovld __cnfn convert_uchar_sat_rtp(float);
218uchar __ovld __cnfn convert_uchar_rtn(float);
219uchar __ovld __cnfn convert_uchar_sat_rtn(float);
220uchar __ovld __cnfn convert_uchar(float);
221uchar __ovld __cnfn convert_uchar_sat(float);
222
223short __ovld __cnfn convert_short_rte(char);
224short __ovld __cnfn convert_short_sat_rte(char);
225short __ovld __cnfn convert_short_rtz(char);
226short __ovld __cnfn convert_short_sat_rtz(char);
227short __ovld __cnfn convert_short_rtp(char);
228short __ovld __cnfn convert_short_sat_rtp(char);
229short __ovld __cnfn convert_short_rtn(char);
230short __ovld __cnfn convert_short_sat_rtn(char);
231short __ovld __cnfn convert_short(char);
232short __ovld __cnfn convert_short_sat(char);
233short __ovld __cnfn convert_short_rte(uchar);
234short __ovld __cnfn convert_short_sat_rte(uchar);
235short __ovld __cnfn convert_short_rtz(uchar);
236short __ovld __cnfn convert_short_sat_rtz(uchar);
237short __ovld __cnfn convert_short_rtp(uchar);
238short __ovld __cnfn convert_short_sat_rtp(uchar);
239short __ovld __cnfn convert_short_rtn(uchar);
240short __ovld __cnfn convert_short_sat_rtn(uchar);
241short __ovld __cnfn convert_short(uchar);
242short __ovld __cnfn convert_short_sat(uchar);
243short __ovld __cnfn convert_short_rte(short);
244short __ovld __cnfn convert_short_sat_rte(short);
245short __ovld __cnfn convert_short_rtz(short);
246short __ovld __cnfn convert_short_sat_rtz(short);
247short __ovld __cnfn convert_short_rtp(short);
248short __ovld __cnfn convert_short_sat_rtp(short);
249short __ovld __cnfn convert_short_rtn(short);
250short __ovld __cnfn convert_short_sat_rtn(short);
251short __ovld __cnfn convert_short(short);
252short __ovld __cnfn convert_short_sat(short);
253short __ovld __cnfn convert_short_rte(ushort);
254short __ovld __cnfn convert_short_sat_rte(ushort);
255short __ovld __cnfn convert_short_rtz(ushort);
256short __ovld __cnfn convert_short_sat_rtz(ushort);
257short __ovld __cnfn convert_short_rtp(ushort);
258short __ovld __cnfn convert_short_sat_rtp(ushort);
259short __ovld __cnfn convert_short_rtn(ushort);
260short __ovld __cnfn convert_short_sat_rtn(ushort);
261short __ovld __cnfn convert_short(ushort);
262short __ovld __cnfn convert_short_sat(ushort);
263short __ovld __cnfn convert_short_rte(int);
264short __ovld __cnfn convert_short_sat_rte(int);
265short __ovld __cnfn convert_short_rtz(int);
266short __ovld __cnfn convert_short_sat_rtz(int);
267short __ovld __cnfn convert_short_rtp(int);
268short __ovld __cnfn convert_short_sat_rtp(int);
269short __ovld __cnfn convert_short_rtn(int);
270short __ovld __cnfn convert_short_sat_rtn(int);
271short __ovld __cnfn convert_short(int);
272short __ovld __cnfn convert_short_sat(int);
273short __ovld __cnfn convert_short_rte(uint);
274short __ovld __cnfn convert_short_sat_rte(uint);
275short __ovld __cnfn convert_short_rtz(uint);
276short __ovld __cnfn convert_short_sat_rtz(uint);
277short __ovld __cnfn convert_short_rtp(uint);
278short __ovld __cnfn convert_short_sat_rtp(uint);
279short __ovld __cnfn convert_short_rtn(uint);
280short __ovld __cnfn convert_short_sat_rtn(uint);
281short __ovld __cnfn convert_short(uint);
282short __ovld __cnfn convert_short_sat(uint);
283short __ovld __cnfn convert_short_rte(long);
284short __ovld __cnfn convert_short_sat_rte(long);
285short __ovld __cnfn convert_short_rtz(long);
286short __ovld __cnfn convert_short_sat_rtz(long);
287short __ovld __cnfn convert_short_rtp(long);
288short __ovld __cnfn convert_short_sat_rtp(long);
289short __ovld __cnfn convert_short_rtn(long);
290short __ovld __cnfn convert_short_sat_rtn(long);
291short __ovld __cnfn convert_short(long);
292short __ovld __cnfn convert_short_sat(long);
293short __ovld __cnfn convert_short_rte(ulong);
294short __ovld __cnfn convert_short_sat_rte(ulong);
295short __ovld __cnfn convert_short_rtz(ulong);
296short __ovld __cnfn convert_short_sat_rtz(ulong);
297short __ovld __cnfn convert_short_rtp(ulong);
298short __ovld __cnfn convert_short_sat_rtp(ulong);
299short __ovld __cnfn convert_short_rtn(ulong);
300short __ovld __cnfn convert_short_sat_rtn(ulong);
301short __ovld __cnfn convert_short(ulong);
302short __ovld __cnfn convert_short_sat(ulong);
303short __ovld __cnfn convert_short_rte(float);
304short __ovld __cnfn convert_short_sat_rte(float);
305short __ovld __cnfn convert_short_rtz(float);
306short __ovld __cnfn convert_short_sat_rtz(float);
307short __ovld __cnfn convert_short_rtp(float);
308short __ovld __cnfn convert_short_sat_rtp(float);
309short __ovld __cnfn convert_short_rtn(float);
310short __ovld __cnfn convert_short_sat_rtn(float);
311short __ovld __cnfn convert_short(float);
312short __ovld __cnfn convert_short_sat(float);
313ushort __ovld __cnfn convert_ushort_rte(char);
314ushort __ovld __cnfn convert_ushort_sat_rte(char);
315ushort __ovld __cnfn convert_ushort_rtz(char);
316ushort __ovld __cnfn convert_ushort_sat_rtz(char);
317ushort __ovld __cnfn convert_ushort_rtp(char);
318ushort __ovld __cnfn convert_ushort_sat_rtp(char);
319ushort __ovld __cnfn convert_ushort_rtn(char);
320ushort __ovld __cnfn convert_ushort_sat_rtn(char);
321ushort __ovld __cnfn convert_ushort(char);
322ushort __ovld __cnfn convert_ushort_sat(char);
323ushort __ovld __cnfn convert_ushort_rte(uchar);
324ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
325ushort __ovld __cnfn convert_ushort_rtz(uchar);
326ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
327ushort __ovld __cnfn convert_ushort_rtp(uchar);
328ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
329ushort __ovld __cnfn convert_ushort_rtn(uchar);
330ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
331ushort __ovld __cnfn convert_ushort(uchar);
332ushort __ovld __cnfn convert_ushort_sat(uchar);
333ushort __ovld __cnfn convert_ushort_rte(short);
334ushort __ovld __cnfn convert_ushort_sat_rte(short);
335ushort __ovld __cnfn convert_ushort_rtz(short);
336ushort __ovld __cnfn convert_ushort_sat_rtz(short);
337ushort __ovld __cnfn convert_ushort_rtp(short);
338ushort __ovld __cnfn convert_ushort_sat_rtp(short);
339ushort __ovld __cnfn convert_ushort_rtn(short);
340ushort __ovld __cnfn convert_ushort_sat_rtn(short);
341ushort __ovld __cnfn convert_ushort(short);
342ushort __ovld __cnfn convert_ushort_sat(short);
343ushort __ovld __cnfn convert_ushort_rte(ushort);
344ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
345ushort __ovld __cnfn convert_ushort_rtz(ushort);
346ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
347ushort __ovld __cnfn convert_ushort_rtp(ushort);
348ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
349ushort __ovld __cnfn convert_ushort_rtn(ushort);
350ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
351ushort __ovld __cnfn convert_ushort(ushort);
352ushort __ovld __cnfn convert_ushort_sat(ushort);
353ushort __ovld __cnfn convert_ushort_rte(int);
354ushort __ovld __cnfn convert_ushort_sat_rte(int);
355ushort __ovld __cnfn convert_ushort_rtz(int);
356ushort __ovld __cnfn convert_ushort_sat_rtz(int);
357ushort __ovld __cnfn convert_ushort_rtp(int);
358ushort __ovld __cnfn convert_ushort_sat_rtp(int);
359ushort __ovld __cnfn convert_ushort_rtn(int);
360ushort __ovld __cnfn convert_ushort_sat_rtn(int);
361ushort __ovld __cnfn convert_ushort(int);
362ushort __ovld __cnfn convert_ushort_sat(int);
363ushort __ovld __cnfn convert_ushort_rte(uint);
364ushort __ovld __cnfn convert_ushort_sat_rte(uint);
365ushort __ovld __cnfn convert_ushort_rtz(uint);
366ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
367ushort __ovld __cnfn convert_ushort_rtp(uint);
368ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
369ushort __ovld __cnfn convert_ushort_rtn(uint);
370ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
371ushort __ovld __cnfn convert_ushort(uint);
372ushort __ovld __cnfn convert_ushort_sat(uint);
373ushort __ovld __cnfn convert_ushort_rte(long);
374ushort __ovld __cnfn convert_ushort_sat_rte(long);
375ushort __ovld __cnfn convert_ushort_rtz(long);
376ushort __ovld __cnfn convert_ushort_sat_rtz(long);
377ushort __ovld __cnfn convert_ushort_rtp(long);
378ushort __ovld __cnfn convert_ushort_sat_rtp(long);
379ushort __ovld __cnfn convert_ushort_rtn(long);
380ushort __ovld __cnfn convert_ushort_sat_rtn(long);
381ushort __ovld __cnfn convert_ushort(long);
382ushort __ovld __cnfn convert_ushort_sat(long);
383ushort __ovld __cnfn convert_ushort_rte(ulong);
384ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
385ushort __ovld __cnfn convert_ushort_rtz(ulong);
386ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
387ushort __ovld __cnfn convert_ushort_rtp(ulong);
388ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
389ushort __ovld __cnfn convert_ushort_rtn(ulong);
390ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
391ushort __ovld __cnfn convert_ushort(ulong);
392ushort __ovld __cnfn convert_ushort_sat(ulong);
393ushort __ovld __cnfn convert_ushort_rte(float);
394ushort __ovld __cnfn convert_ushort_sat_rte(float);
395ushort __ovld __cnfn convert_ushort_rtz(float);
396ushort __ovld __cnfn convert_ushort_sat_rtz(float);
397ushort __ovld __cnfn convert_ushort_rtp(float);
398ushort __ovld __cnfn convert_ushort_sat_rtp(float);
399ushort __ovld __cnfn convert_ushort_rtn(float);
400ushort __ovld __cnfn convert_ushort_sat_rtn(float);
401ushort __ovld __cnfn convert_ushort(float);
402ushort __ovld __cnfn convert_ushort_sat(float);
403int __ovld __cnfn convert_int_rte(char);
404int __ovld __cnfn convert_int_sat_rte(char);
405int __ovld __cnfn convert_int_rtz(char);
406int __ovld __cnfn convert_int_sat_rtz(char);
407int __ovld __cnfn convert_int_rtp(char);
408int __ovld __cnfn convert_int_sat_rtp(char);
409int __ovld __cnfn convert_int_rtn(char);
410int __ovld __cnfn convert_int_sat_rtn(char);
411int __ovld __cnfn convert_int(char);
412int __ovld __cnfn convert_int_sat(char);
413int __ovld __cnfn convert_int_rte(uchar);
414int __ovld __cnfn convert_int_sat_rte(uchar);
415int __ovld __cnfn convert_int_rtz(uchar);
416int __ovld __cnfn convert_int_sat_rtz(uchar);
417int __ovld __cnfn convert_int_rtp(uchar);
418int __ovld __cnfn convert_int_sat_rtp(uchar);
419int __ovld __cnfn convert_int_rtn(uchar);
420int __ovld __cnfn convert_int_sat_rtn(uchar);
421int __ovld __cnfn convert_int(uchar);
422int __ovld __cnfn convert_int_sat(uchar);
423int __ovld __cnfn convert_int_rte(short);
424int __ovld __cnfn convert_int_sat_rte(short);
425int __ovld __cnfn convert_int_rtz(short);
426int __ovld __cnfn convert_int_sat_rtz(short);
427int __ovld __cnfn convert_int_rtp(short);
428int __ovld __cnfn convert_int_sat_rtp(short);
429int __ovld __cnfn convert_int_rtn(short);
430int __ovld __cnfn convert_int_sat_rtn(short);
431int __ovld __cnfn convert_int(short);
432int __ovld __cnfn convert_int_sat(short);
433int __ovld __cnfn convert_int_rte(ushort);
434int __ovld __cnfn convert_int_sat_rte(ushort);
435int __ovld __cnfn convert_int_rtz(ushort);
436int __ovld __cnfn convert_int_sat_rtz(ushort);
437int __ovld __cnfn convert_int_rtp(ushort);
438int __ovld __cnfn convert_int_sat_rtp(ushort);
439int __ovld __cnfn convert_int_rtn(ushort);
440int __ovld __cnfn convert_int_sat_rtn(ushort);
441int __ovld __cnfn convert_int(ushort);
442int __ovld __cnfn convert_int_sat(ushort);
443int __ovld __cnfn convert_int_rte(int);
444int __ovld __cnfn convert_int_sat_rte(int);
445int __ovld __cnfn convert_int_rtz(int);
446int __ovld __cnfn convert_int_sat_rtz(int);
447int __ovld __cnfn convert_int_rtp(int);
448int __ovld __cnfn convert_int_sat_rtp(int);
449int __ovld __cnfn convert_int_rtn(int);
450int __ovld __cnfn convert_int_sat_rtn(int);
451int __ovld __cnfn convert_int(int);
452int __ovld __cnfn convert_int_sat(int);
453int __ovld __cnfn convert_int_rte(uint);
454int __ovld __cnfn convert_int_sat_rte(uint);
455int __ovld __cnfn convert_int_rtz(uint);
456int __ovld __cnfn convert_int_sat_rtz(uint);
457int __ovld __cnfn convert_int_rtp(uint);
458int __ovld __cnfn convert_int_sat_rtp(uint);
459int __ovld __cnfn convert_int_rtn(uint);
460int __ovld __cnfn convert_int_sat_rtn(uint);
461int __ovld __cnfn convert_int(uint);
462int __ovld __cnfn convert_int_sat(uint);
463int __ovld __cnfn convert_int_rte(long);
464int __ovld __cnfn convert_int_sat_rte(long);
465int __ovld __cnfn convert_int_rtz(long);
466int __ovld __cnfn convert_int_sat_rtz(long);
467int __ovld __cnfn convert_int_rtp(long);
468int __ovld __cnfn convert_int_sat_rtp(long);
469int __ovld __cnfn convert_int_rtn(long);
470int __ovld __cnfn convert_int_sat_rtn(long);
471int __ovld __cnfn convert_int(long);
472int __ovld __cnfn convert_int_sat(long);
473int __ovld __cnfn convert_int_rte(ulong);
474int __ovld __cnfn convert_int_sat_rte(ulong);
475int __ovld __cnfn convert_int_rtz(ulong);
476int __ovld __cnfn convert_int_sat_rtz(ulong);
477int __ovld __cnfn convert_int_rtp(ulong);
478int __ovld __cnfn convert_int_sat_rtp(ulong);
479int __ovld __cnfn convert_int_rtn(ulong);
480int __ovld __cnfn convert_int_sat_rtn(ulong);
481int __ovld __cnfn convert_int(ulong);
482int __ovld __cnfn convert_int_sat(ulong);
483int __ovld __cnfn convert_int_rte(float);
484int __ovld __cnfn convert_int_sat_rte(float);
485int __ovld __cnfn convert_int_rtz(float);
486int __ovld __cnfn convert_int_sat_rtz(float);
487int __ovld __cnfn convert_int_rtp(float);
488int __ovld __cnfn convert_int_sat_rtp(float);
489int __ovld __cnfn convert_int_rtn(float);
490int __ovld __cnfn convert_int_sat_rtn(float);
491int __ovld __cnfn convert_int(float);
492int __ovld __cnfn convert_int_sat(float);
493uint __ovld __cnfn convert_uint_rte(char);
494uint __ovld __cnfn convert_uint_sat_rte(char);
495uint __ovld __cnfn convert_uint_rtz(char);
496uint __ovld __cnfn convert_uint_sat_rtz(char);
497uint __ovld __cnfn convert_uint_rtp(char);
498uint __ovld __cnfn convert_uint_sat_rtp(char);
499uint __ovld __cnfn convert_uint_rtn(char);
500uint __ovld __cnfn convert_uint_sat_rtn(char);
501uint __ovld __cnfn convert_uint(char);
502uint __ovld __cnfn convert_uint_sat(char);
503uint __ovld __cnfn convert_uint_rte(uchar);
504uint __ovld __cnfn convert_uint_sat_rte(uchar);
505uint __ovld __cnfn convert_uint_rtz(uchar);
506uint __ovld __cnfn convert_uint_sat_rtz(uchar);
507uint __ovld __cnfn convert_uint_rtp(uchar);
508uint __ovld __cnfn convert_uint_sat_rtp(uchar);
509uint __ovld __cnfn convert_uint_rtn(uchar);
510uint __ovld __cnfn convert_uint_sat_rtn(uchar);
511uint __ovld __cnfn convert_uint(uchar);
512uint __ovld __cnfn convert_uint_sat(uchar);
513uint __ovld __cnfn convert_uint_rte(short);
514uint __ovld __cnfn convert_uint_sat_rte(short);
515uint __ovld __cnfn convert_uint_rtz(short);
516uint __ovld __cnfn convert_uint_sat_rtz(short);
517uint __ovld __cnfn convert_uint_rtp(short);
518uint __ovld __cnfn convert_uint_sat_rtp(short);
519uint __ovld __cnfn convert_uint_rtn(short);
520uint __ovld __cnfn convert_uint_sat_rtn(short);
521uint __ovld __cnfn convert_uint(short);
522uint __ovld __cnfn convert_uint_sat(short);
523uint __ovld __cnfn convert_uint_rte(ushort);
524uint __ovld __cnfn convert_uint_sat_rte(ushort);
525uint __ovld __cnfn convert_uint_rtz(ushort);
526uint __ovld __cnfn convert_uint_sat_rtz(ushort);
527uint __ovld __cnfn convert_uint_rtp(ushort);
528uint __ovld __cnfn convert_uint_sat_rtp(ushort);
529uint __ovld __cnfn convert_uint_rtn(ushort);
530uint __ovld __cnfn convert_uint_sat_rtn(ushort);
531uint __ovld __cnfn convert_uint(ushort);
532uint __ovld __cnfn convert_uint_sat(ushort);
533uint __ovld __cnfn convert_uint_rte(int);
534uint __ovld __cnfn convert_uint_sat_rte(int);
535uint __ovld __cnfn convert_uint_rtz(int);
536uint __ovld __cnfn convert_uint_sat_rtz(int);
537uint __ovld __cnfn convert_uint_rtp(int);
538uint __ovld __cnfn convert_uint_sat_rtp(int);
539uint __ovld __cnfn convert_uint_rtn(int);
540uint __ovld __cnfn convert_uint_sat_rtn(int);
541uint __ovld __cnfn convert_uint(int);
542uint __ovld __cnfn convert_uint_sat(int);
543uint __ovld __cnfn convert_uint_rte(uint);
544uint __ovld __cnfn convert_uint_sat_rte(uint);
545uint __ovld __cnfn convert_uint_rtz(uint);
546uint __ovld __cnfn convert_uint_sat_rtz(uint);
547uint __ovld __cnfn convert_uint_rtp(uint);
548uint __ovld __cnfn convert_uint_sat_rtp(uint);
549uint __ovld __cnfn convert_uint_rtn(uint);
550uint __ovld __cnfn convert_uint_sat_rtn(uint);
551uint __ovld __cnfn convert_uint(uint);
552uint __ovld __cnfn convert_uint_sat(uint);
553uint __ovld __cnfn convert_uint_rte(long);
554uint __ovld __cnfn convert_uint_sat_rte(long);
555uint __ovld __cnfn convert_uint_rtz(long);
556uint __ovld __cnfn convert_uint_sat_rtz(long);
557uint __ovld __cnfn convert_uint_rtp(long);
558uint __ovld __cnfn convert_uint_sat_rtp(long);
559uint __ovld __cnfn convert_uint_rtn(long);
560uint __ovld __cnfn convert_uint_sat_rtn(long);
561uint __ovld __cnfn convert_uint(long);
562uint __ovld __cnfn convert_uint_sat(long);
563uint __ovld __cnfn convert_uint_rte(ulong);
564uint __ovld __cnfn convert_uint_sat_rte(ulong);
565uint __ovld __cnfn convert_uint_rtz(ulong);
566uint __ovld __cnfn convert_uint_sat_rtz(ulong);
567uint __ovld __cnfn convert_uint_rtp(ulong);
568uint __ovld __cnfn convert_uint_sat_rtp(ulong);
569uint __ovld __cnfn convert_uint_rtn(ulong);
570uint __ovld __cnfn convert_uint_sat_rtn(ulong);
571uint __ovld __cnfn convert_uint(ulong);
572uint __ovld __cnfn convert_uint_sat(ulong);
573uint __ovld __cnfn convert_uint_rte(float);
574uint __ovld __cnfn convert_uint_sat_rte(float);
575uint __ovld __cnfn convert_uint_rtz(float);
576uint __ovld __cnfn convert_uint_sat_rtz(float);
577uint __ovld __cnfn convert_uint_rtp(float);
578uint __ovld __cnfn convert_uint_sat_rtp(float);
579uint __ovld __cnfn convert_uint_rtn(float);
580uint __ovld __cnfn convert_uint_sat_rtn(float);
581uint __ovld __cnfn convert_uint(float);
582uint __ovld __cnfn convert_uint_sat(float);
583long __ovld __cnfn convert_long_rte(char);
584long __ovld __cnfn convert_long_sat_rte(char);
585long __ovld __cnfn convert_long_rtz(char);
586long __ovld __cnfn convert_long_sat_rtz(char);
587long __ovld __cnfn convert_long_rtp(char);
588long __ovld __cnfn convert_long_sat_rtp(char);
589long __ovld __cnfn convert_long_rtn(char);
590long __ovld __cnfn convert_long_sat_rtn(char);
591long __ovld __cnfn convert_long(char);
592long __ovld __cnfn convert_long_sat(char);
593long __ovld __cnfn convert_long_rte(uchar);
594long __ovld __cnfn convert_long_sat_rte(uchar);
595long __ovld __cnfn convert_long_rtz(uchar);
596long __ovld __cnfn convert_long_sat_rtz(uchar);
597long __ovld __cnfn convert_long_rtp(uchar);
598long __ovld __cnfn convert_long_sat_rtp(uchar);
599long __ovld __cnfn convert_long_rtn(uchar);
600long __ovld __cnfn convert_long_sat_rtn(uchar);
601long __ovld __cnfn convert_long(uchar);
602long __ovld __cnfn convert_long_sat(uchar);
603long __ovld __cnfn convert_long_rte(short);
604long __ovld __cnfn convert_long_sat_rte(short);
605long __ovld __cnfn convert_long_rtz(short);
606long __ovld __cnfn convert_long_sat_rtz(short);
607long __ovld __cnfn convert_long_rtp(short);
608long __ovld __cnfn convert_long_sat_rtp(short);
609long __ovld __cnfn convert_long_rtn(short);
610long __ovld __cnfn convert_long_sat_rtn(short);
611long __ovld __cnfn convert_long(short);
612long __ovld __cnfn convert_long_sat(short);
613long __ovld __cnfn convert_long_rte(ushort);
614long __ovld __cnfn convert_long_sat_rte(ushort);
615long __ovld __cnfn convert_long_rtz(ushort);
616long __ovld __cnfn convert_long_sat_rtz(ushort);
617long __ovld __cnfn convert_long_rtp(ushort);
618long __ovld __cnfn convert_long_sat_rtp(ushort);
619long __ovld __cnfn convert_long_rtn(ushort);
620long __ovld __cnfn convert_long_sat_rtn(ushort);
621long __ovld __cnfn convert_long(ushort);
622long __ovld __cnfn convert_long_sat(ushort);
623long __ovld __cnfn convert_long_rte(int);
624long __ovld __cnfn convert_long_sat_rte(int);
625long __ovld __cnfn convert_long_rtz(int);
626long __ovld __cnfn convert_long_sat_rtz(int);
627long __ovld __cnfn convert_long_rtp(int);
628long __ovld __cnfn convert_long_sat_rtp(int);
629long __ovld __cnfn convert_long_rtn(int);
630long __ovld __cnfn convert_long_sat_rtn(int);
631long __ovld __cnfn convert_long(int);
632long __ovld __cnfn convert_long_sat(int);
633long __ovld __cnfn convert_long_rte(uint);
634long __ovld __cnfn convert_long_sat_rte(uint);
635long __ovld __cnfn convert_long_rtz(uint);
636long __ovld __cnfn convert_long_sat_rtz(uint);
637long __ovld __cnfn convert_long_rtp(uint);
638long __ovld __cnfn convert_long_sat_rtp(uint);
639long __ovld __cnfn convert_long_rtn(uint);
640long __ovld __cnfn convert_long_sat_rtn(uint);
641long __ovld __cnfn convert_long(uint);
642long __ovld __cnfn convert_long_sat(uint);
643long __ovld __cnfn convert_long_rte(long);
644long __ovld __cnfn convert_long_sat_rte(long);
645long __ovld __cnfn convert_long_rtz(long);
646long __ovld __cnfn convert_long_sat_rtz(long);
647long __ovld __cnfn convert_long_rtp(long);
648long __ovld __cnfn convert_long_sat_rtp(long);
649long __ovld __cnfn convert_long_rtn(long);
650long __ovld __cnfn convert_long_sat_rtn(long);
651long __ovld __cnfn convert_long(long);
652long __ovld __cnfn convert_long_sat(long);
653long __ovld __cnfn convert_long_rte(ulong);
654long __ovld __cnfn convert_long_sat_rte(ulong);
655long __ovld __cnfn convert_long_rtz(ulong);
656long __ovld __cnfn convert_long_sat_rtz(ulong);
657long __ovld __cnfn convert_long_rtp(ulong);
658long __ovld __cnfn convert_long_sat_rtp(ulong);
659long __ovld __cnfn convert_long_rtn(ulong);
660long __ovld __cnfn convert_long_sat_rtn(ulong);
661long __ovld __cnfn convert_long(ulong);
662long __ovld __cnfn convert_long_sat(ulong);
663long __ovld __cnfn convert_long_rte(float);
664long __ovld __cnfn convert_long_sat_rte(float);
665long __ovld __cnfn convert_long_rtz(float);
666long __ovld __cnfn convert_long_sat_rtz(float);
667long __ovld __cnfn convert_long_rtp(float);
668long __ovld __cnfn convert_long_sat_rtp(float);
669long __ovld __cnfn convert_long_rtn(float);
670long __ovld __cnfn convert_long_sat_rtn(float);
671long __ovld __cnfn convert_long(float);
672long __ovld __cnfn convert_long_sat(float);
673ulong __ovld __cnfn convert_ulong_rte(char);
674ulong __ovld __cnfn convert_ulong_sat_rte(char);
675ulong __ovld __cnfn convert_ulong_rtz(char);
676ulong __ovld __cnfn convert_ulong_sat_rtz(char);
677ulong __ovld __cnfn convert_ulong_rtp(char);
678ulong __ovld __cnfn convert_ulong_sat_rtp(char);
679ulong __ovld __cnfn convert_ulong_rtn(char);
680ulong __ovld __cnfn convert_ulong_sat_rtn(char);
681ulong __ovld __cnfn convert_ulong(char);
682ulong __ovld __cnfn convert_ulong_sat(char);
683ulong __ovld __cnfn convert_ulong_rte(uchar);
684ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
685ulong __ovld __cnfn convert_ulong_rtz(uchar);
686ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
687ulong __ovld __cnfn convert_ulong_rtp(uchar);
688ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
689ulong __ovld __cnfn convert_ulong_rtn(uchar);
690ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
691ulong __ovld __cnfn convert_ulong(uchar);
692ulong __ovld __cnfn convert_ulong_sat(uchar);
693ulong __ovld __cnfn convert_ulong_rte(short);
694ulong __ovld __cnfn convert_ulong_sat_rte(short);
695ulong __ovld __cnfn convert_ulong_rtz(short);
696ulong __ovld __cnfn convert_ulong_sat_rtz(short);
697ulong __ovld __cnfn convert_ulong_rtp(short);
698ulong __ovld __cnfn convert_ulong_sat_rtp(short);
699ulong __ovld __cnfn convert_ulong_rtn(short);
700ulong __ovld __cnfn convert_ulong_sat_rtn(short);
701ulong __ovld __cnfn convert_ulong(short);
702ulong __ovld __cnfn convert_ulong_sat(short);
703ulong __ovld __cnfn convert_ulong_rte(ushort);
704ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
705ulong __ovld __cnfn convert_ulong_rtz(ushort);
706ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
707ulong __ovld __cnfn convert_ulong_rtp(ushort);
708ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
709ulong __ovld __cnfn convert_ulong_rtn(ushort);
710ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
711ulong __ovld __cnfn convert_ulong(ushort);
712ulong __ovld __cnfn convert_ulong_sat(ushort);
713ulong __ovld __cnfn convert_ulong_rte(int);
714ulong __ovld __cnfn convert_ulong_sat_rte(int);
715ulong __ovld __cnfn convert_ulong_rtz(int);
716ulong __ovld __cnfn convert_ulong_sat_rtz(int);
717ulong __ovld __cnfn convert_ulong_rtp(int);
718ulong __ovld __cnfn convert_ulong_sat_rtp(int);
719ulong __ovld __cnfn convert_ulong_rtn(int);
720ulong __ovld __cnfn convert_ulong_sat_rtn(int);
721ulong __ovld __cnfn convert_ulong(int);
722ulong __ovld __cnfn convert_ulong_sat(int);
723ulong __ovld __cnfn convert_ulong_rte(uint);
724ulong __ovld __cnfn convert_ulong_sat_rte(uint);
725ulong __ovld __cnfn convert_ulong_rtz(uint);
726ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
727ulong __ovld __cnfn convert_ulong_rtp(uint);
728ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
729ulong __ovld __cnfn convert_ulong_rtn(uint);
730ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
731ulong __ovld __cnfn convert_ulong(uint);
732ulong __ovld __cnfn convert_ulong_sat(uint);
733ulong __ovld __cnfn convert_ulong_rte(long);
734ulong __ovld __cnfn convert_ulong_sat_rte(long);
735ulong __ovld __cnfn convert_ulong_rtz(long);
736ulong __ovld __cnfn convert_ulong_sat_rtz(long);
737ulong __ovld __cnfn convert_ulong_rtp(long);
738ulong __ovld __cnfn convert_ulong_sat_rtp(long);
739ulong __ovld __cnfn convert_ulong_rtn(long);
740ulong __ovld __cnfn convert_ulong_sat_rtn(long);
741ulong __ovld __cnfn convert_ulong(long);
742ulong __ovld __cnfn convert_ulong_sat(long);
743ulong __ovld __cnfn convert_ulong_rte(ulong);
744ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
745ulong __ovld __cnfn convert_ulong_rtz(ulong);
746ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
747ulong __ovld __cnfn convert_ulong_rtp(ulong);
748ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
749ulong __ovld __cnfn convert_ulong_rtn(ulong);
750ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
751ulong __ovld __cnfn convert_ulong(ulong);
752ulong __ovld __cnfn convert_ulong_sat(ulong);
753ulong __ovld __cnfn convert_ulong_rte(float);
754ulong __ovld __cnfn convert_ulong_sat_rte(float);
755ulong __ovld __cnfn convert_ulong_rtz(float);
756ulong __ovld __cnfn convert_ulong_sat_rtz(float);
757ulong __ovld __cnfn convert_ulong_rtp(float);
758ulong __ovld __cnfn convert_ulong_sat_rtp(float);
759ulong __ovld __cnfn convert_ulong_rtn(float);
760ulong __ovld __cnfn convert_ulong_sat_rtn(float);
761ulong __ovld __cnfn convert_ulong(float);
762ulong __ovld __cnfn convert_ulong_sat(float);
763float __ovld __cnfn convert_float_rte(char);
764float __ovld __cnfn convert_float_rtz(char);
765float __ovld __cnfn convert_float_rtp(char);
766float __ovld __cnfn convert_float_rtn(char);
767float __ovld __cnfn convert_float(char);
768float __ovld __cnfn convert_float_rte(uchar);
769float __ovld __cnfn convert_float_rtz(uchar);
770float __ovld __cnfn convert_float_rtp(uchar);
771float __ovld __cnfn convert_float_rtn(uchar);
772float __ovld __cnfn convert_float(uchar);
773float __ovld __cnfn convert_float_rte(short);
774float __ovld __cnfn convert_float_rtz(short);
775float __ovld __cnfn convert_float_rtp(short);
776float __ovld __cnfn convert_float_rtn(short);
777float __ovld __cnfn convert_float(short);
778float __ovld __cnfn convert_float_rte(ushort);
779float __ovld __cnfn convert_float_rtz(ushort);
780float __ovld __cnfn convert_float_rtp(ushort);
781float __ovld __cnfn convert_float_rtn(ushort);
782float __ovld __cnfn convert_float(ushort);
783float __ovld __cnfn convert_float_rte(int);
784float __ovld __cnfn convert_float_rtz(int);
785float __ovld __cnfn convert_float_rtp(int);
786float __ovld __cnfn convert_float_rtn(int);
787float __ovld __cnfn convert_float(int);
788float __ovld __cnfn convert_float_rte(uint);
789float __ovld __cnfn convert_float_rtz(uint);
790float __ovld __cnfn convert_float_rtp(uint);
791float __ovld __cnfn convert_float_rtn(uint);
792float __ovld __cnfn convert_float(uint);
793float __ovld __cnfn convert_float_rte(long);
794float __ovld __cnfn convert_float_rtz(long);
795float __ovld __cnfn convert_float_rtp(long);
796float __ovld __cnfn convert_float_rtn(long);
797float __ovld __cnfn convert_float(long);
798float __ovld __cnfn convert_float_rte(ulong);
799float __ovld __cnfn convert_float_rtz(ulong);
800float __ovld __cnfn convert_float_rtp(ulong);
801float __ovld __cnfn convert_float_rtn(ulong);
802float __ovld __cnfn convert_float(ulong);
803float __ovld __cnfn convert_float_rte(float);
804float __ovld __cnfn convert_float_rtz(float);
805float __ovld __cnfn convert_float_rtp(float);
806float __ovld __cnfn convert_float_rtn(float);
807float __ovld __cnfn convert_float(float);
808char2 __ovld __cnfn convert_char2_rte(char2);
809char2 __ovld __cnfn convert_char2_sat_rte(char2);
810char2 __ovld __cnfn convert_char2_rtz(char2);
811char2 __ovld __cnfn convert_char2_sat_rtz(char2);
812char2 __ovld __cnfn convert_char2_rtp(char2);
813char2 __ovld __cnfn convert_char2_sat_rtp(char2);
814char2 __ovld __cnfn convert_char2_rtn(char2);
815char2 __ovld __cnfn convert_char2_sat_rtn(char2);
816char2 __ovld __cnfn convert_char2(char2);
817char2 __ovld __cnfn convert_char2_sat(char2);
818char2 __ovld __cnfn convert_char2_rte(uchar2);
819char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
820char2 __ovld __cnfn convert_char2_rtz(uchar2);
821char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
822char2 __ovld __cnfn convert_char2_rtp(uchar2);
823char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
824char2 __ovld __cnfn convert_char2_rtn(uchar2);
825char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
826char2 __ovld __cnfn convert_char2(uchar2);
827char2 __ovld __cnfn convert_char2_sat(uchar2);
828char2 __ovld __cnfn convert_char2_rte(short2);
829char2 __ovld __cnfn convert_char2_sat_rte(short2);
830char2 __ovld __cnfn convert_char2_rtz(short2);
831char2 __ovld __cnfn convert_char2_sat_rtz(short2);
832char2 __ovld __cnfn convert_char2_rtp(short2);
833char2 __ovld __cnfn convert_char2_sat_rtp(short2);
834char2 __ovld __cnfn convert_char2_rtn(short2);
835char2 __ovld __cnfn convert_char2_sat_rtn(short2);
836char2 __ovld __cnfn convert_char2(short2);
837char2 __ovld __cnfn convert_char2_sat(short2);
838char2 __ovld __cnfn convert_char2_rte(ushort2);
839char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
840char2 __ovld __cnfn convert_char2_rtz(ushort2);
841char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
842char2 __ovld __cnfn convert_char2_rtp(ushort2);
843char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
844char2 __ovld __cnfn convert_char2_rtn(ushort2);
845char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
846char2 __ovld __cnfn convert_char2(ushort2);
847char2 __ovld __cnfn convert_char2_sat(ushort2);
848char2 __ovld __cnfn convert_char2_rte(int2);
849char2 __ovld __cnfn convert_char2_sat_rte(int2);
850char2 __ovld __cnfn convert_char2_rtz(int2);
851char2 __ovld __cnfn convert_char2_sat_rtz(int2);
852char2 __ovld __cnfn convert_char2_rtp(int2);
853char2 __ovld __cnfn convert_char2_sat_rtp(int2);
854char2 __ovld __cnfn convert_char2_rtn(int2);
855char2 __ovld __cnfn convert_char2_sat_rtn(int2);
856char2 __ovld __cnfn convert_char2(int2);
857char2 __ovld __cnfn convert_char2_sat(int2);
858char2 __ovld __cnfn convert_char2_rte(uint2);
859char2 __ovld __cnfn convert_char2_sat_rte(uint2);
860char2 __ovld __cnfn convert_char2_rtz(uint2);
861char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
862char2 __ovld __cnfn convert_char2_rtp(uint2);
863char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
864char2 __ovld __cnfn convert_char2_rtn(uint2);
865char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
866char2 __ovld __cnfn convert_char2(uint2);
867char2 __ovld __cnfn convert_char2_sat(uint2);
868char2 __ovld __cnfn convert_char2_rte(long2);
869char2 __ovld __cnfn convert_char2_sat_rte(long2);
870char2 __ovld __cnfn convert_char2_rtz(long2);
871char2 __ovld __cnfn convert_char2_sat_rtz(long2);
872char2 __ovld __cnfn convert_char2_rtp(long2);
873char2 __ovld __cnfn convert_char2_sat_rtp(long2);
874char2 __ovld __cnfn convert_char2_rtn(long2);
875char2 __ovld __cnfn convert_char2_sat_rtn(long2);
876char2 __ovld __cnfn convert_char2(long2);
877char2 __ovld __cnfn convert_char2_sat(long2);
878char2 __ovld __cnfn convert_char2_rte(ulong2);
879char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
880char2 __ovld __cnfn convert_char2_rtz(ulong2);
881char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
882char2 __ovld __cnfn convert_char2_rtp(ulong2);
883char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
884char2 __ovld __cnfn convert_char2_rtn(ulong2);
885char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
886char2 __ovld __cnfn convert_char2(ulong2);
887char2 __ovld __cnfn convert_char2_sat(ulong2);
888char2 __ovld __cnfn convert_char2_rte(float2);
889char2 __ovld __cnfn convert_char2_sat_rte(float2);
890char2 __ovld __cnfn convert_char2_rtz(float2);
891char2 __ovld __cnfn convert_char2_sat_rtz(float2);
892char2 __ovld __cnfn convert_char2_rtp(float2);
893char2 __ovld __cnfn convert_char2_sat_rtp(float2);
894char2 __ovld __cnfn convert_char2_rtn(float2);
895char2 __ovld __cnfn convert_char2_sat_rtn(float2);
896char2 __ovld __cnfn convert_char2(float2);
897char2 __ovld __cnfn convert_char2_sat(float2);
898uchar2 __ovld __cnfn convert_uchar2_rte(char2);
899uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
900uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
901uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
902uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
903uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
904uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
905uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
906uchar2 __ovld __cnfn convert_uchar2(char2);
907uchar2 __ovld __cnfn convert_uchar2_sat(char2);
908uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
909uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
910uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
911uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
912uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
913uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
914uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
915uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
916uchar2 __ovld __cnfn convert_uchar2(uchar2);
917uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
918uchar2 __ovld __cnfn convert_uchar2_rte(short2);
919uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
920uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
921uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
922uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
923uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
924uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
925uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
926uchar2 __ovld __cnfn convert_uchar2(short2);
927uchar2 __ovld __cnfn convert_uchar2_sat(short2);
928uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
929uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
930uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
931uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
932uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
933uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
934uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
935uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
936uchar2 __ovld __cnfn convert_uchar2(ushort2);
937uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
938uchar2 __ovld __cnfn convert_uchar2_rte(int2);
939uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
940uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
941uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
942uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
943uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
944uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
945uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
946uchar2 __ovld __cnfn convert_uchar2(int2);
947uchar2 __ovld __cnfn convert_uchar2_sat(int2);
948uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
949uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
950uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
951uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
952uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
953uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
954uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
955uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
956uchar2 __ovld __cnfn convert_uchar2(uint2);
957uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
958uchar2 __ovld __cnfn convert_uchar2_rte(long2);
959uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
960uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
961uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
962uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
963uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
964uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
965uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
966uchar2 __ovld __cnfn convert_uchar2(long2);
967uchar2 __ovld __cnfn convert_uchar2_sat(long2);
968uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
969uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
970uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
971uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
972uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
973uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
974uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
975uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
976uchar2 __ovld __cnfn convert_uchar2(ulong2);
977uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
978uchar2 __ovld __cnfn convert_uchar2_rte(float2);
979uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
980uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
981uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
982uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
983uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
984uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
985uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
986uchar2 __ovld __cnfn convert_uchar2(float2);
987uchar2 __ovld __cnfn convert_uchar2_sat(float2);
988short2 __ovld __cnfn convert_short2_rte(char2);
989short2 __ovld __cnfn convert_short2_sat_rte(char2);
990short2 __ovld __cnfn convert_short2_rtz(char2);
991short2 __ovld __cnfn convert_short2_sat_rtz(char2);
992short2 __ovld __cnfn convert_short2_rtp(char2);
993short2 __ovld __cnfn convert_short2_sat_rtp(char2);
994short2 __ovld __cnfn convert_short2_rtn(char2);
995short2 __ovld __cnfn convert_short2_sat_rtn(char2);
996short2 __ovld __cnfn convert_short2(char2);
997short2 __ovld __cnfn convert_short2_sat(char2);
998short2 __ovld __cnfn convert_short2_rte(uchar2);
999short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
1000short2 __ovld __cnfn convert_short2_rtz(uchar2);
1001short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
1002short2 __ovld __cnfn convert_short2_rtp(uchar2);
1003short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
1004short2 __ovld __cnfn convert_short2_rtn(uchar2);
1005short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
1006short2 __ovld __cnfn convert_short2(uchar2);
1007short2 __ovld __cnfn convert_short2_sat(uchar2);
1008short2 __ovld __cnfn convert_short2_rte(short2);
1009short2 __ovld __cnfn convert_short2_sat_rte(short2);
1010short2 __ovld __cnfn convert_short2_rtz(short2);
1011short2 __ovld __cnfn convert_short2_sat_rtz(short2);
1012short2 __ovld __cnfn convert_short2_rtp(short2);
1013short2 __ovld __cnfn convert_short2_sat_rtp(short2);
1014short2 __ovld __cnfn convert_short2_rtn(short2);
1015short2 __ovld __cnfn convert_short2_sat_rtn(short2);
1016short2 __ovld __cnfn convert_short2(short2);
1017short2 __ovld __cnfn convert_short2_sat(short2);
1018short2 __ovld __cnfn convert_short2_rte(ushort2);
1019short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
1020short2 __ovld __cnfn convert_short2_rtz(ushort2);
1021short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
1022short2 __ovld __cnfn convert_short2_rtp(ushort2);
1023short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
1024short2 __ovld __cnfn convert_short2_rtn(ushort2);
1025short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
1026short2 __ovld __cnfn convert_short2(ushort2);
1027short2 __ovld __cnfn convert_short2_sat(ushort2);
1028short2 __ovld __cnfn convert_short2_rte(int2);
1029short2 __ovld __cnfn convert_short2_sat_rte(int2);
1030short2 __ovld __cnfn convert_short2_rtz(int2);
1031short2 __ovld __cnfn convert_short2_sat_rtz(int2);
1032short2 __ovld __cnfn convert_short2_rtp(int2);
1033short2 __ovld __cnfn convert_short2_sat_rtp(int2);
1034short2 __ovld __cnfn convert_short2_rtn(int2);
1035short2 __ovld __cnfn convert_short2_sat_rtn(int2);
1036short2 __ovld __cnfn convert_short2(int2);
1037short2 __ovld __cnfn convert_short2_sat(int2);
1038short2 __ovld __cnfn convert_short2_rte(uint2);
1039short2 __ovld __cnfn convert_short2_sat_rte(uint2);
1040short2 __ovld __cnfn convert_short2_rtz(uint2);
1041short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
1042short2 __ovld __cnfn convert_short2_rtp(uint2);
1043short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
1044short2 __ovld __cnfn convert_short2_rtn(uint2);
1045short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
1046short2 __ovld __cnfn convert_short2(uint2);
1047short2 __ovld __cnfn convert_short2_sat(uint2);
1048short2 __ovld __cnfn convert_short2_rte(long2);
1049short2 __ovld __cnfn convert_short2_sat_rte(long2);
1050short2 __ovld __cnfn convert_short2_rtz(long2);
1051short2 __ovld __cnfn convert_short2_sat_rtz(long2);
1052short2 __ovld __cnfn convert_short2_rtp(long2);
1053short2 __ovld __cnfn convert_short2_sat_rtp(long2);
1054short2 __ovld __cnfn convert_short2_rtn(long2);
1055short2 __ovld __cnfn convert_short2_sat_rtn(long2);
1056short2 __ovld __cnfn convert_short2(long2);
1057short2 __ovld __cnfn convert_short2_sat(long2);
1058short2 __ovld __cnfn convert_short2_rte(ulong2);
1059short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
1060short2 __ovld __cnfn convert_short2_rtz(ulong2);
1061short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
1062short2 __ovld __cnfn convert_short2_rtp(ulong2);
1063short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
1064short2 __ovld __cnfn convert_short2_rtn(ulong2);
1065short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
1066short2 __ovld __cnfn convert_short2(ulong2);
1067short2 __ovld __cnfn convert_short2_sat(ulong2);
1068short2 __ovld __cnfn convert_short2_rte(float2);
1069short2 __ovld __cnfn convert_short2_sat_rte(float2);
1070short2 __ovld __cnfn convert_short2_rtz(float2);
1071short2 __ovld __cnfn convert_short2_sat_rtz(float2);
1072short2 __ovld __cnfn convert_short2_rtp(float2);
1073short2 __ovld __cnfn convert_short2_sat_rtp(float2);
1074short2 __ovld __cnfn convert_short2_rtn(float2);
1075short2 __ovld __cnfn convert_short2_sat_rtn(float2);
1076short2 __ovld __cnfn convert_short2(float2);
1077short2 __ovld __cnfn convert_short2_sat(float2);
1078ushort2 __ovld __cnfn convert_ushort2_rte(char2);
1079ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
1080ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
1081ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
1082ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
1083ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
1084ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
1085ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
1086ushort2 __ovld __cnfn convert_ushort2(char2);
1087ushort2 __ovld __cnfn convert_ushort2_sat(char2);
1088ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
1089ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
1090ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
1091ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
1092ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
1093ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
1094ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
1095ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
1096ushort2 __ovld __cnfn convert_ushort2(uchar2);
1097ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
1098ushort2 __ovld __cnfn convert_ushort2_rte(short2);
1099ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
1100ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
1101ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
1102ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
1103ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
1104ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
1105ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
1106ushort2 __ovld __cnfn convert_ushort2(short2);
1107ushort2 __ovld __cnfn convert_ushort2_sat(short2);
1108ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
1109ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
1110ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
1111ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
1112ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
1113ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
1114ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
1115ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
1116ushort2 __ovld __cnfn convert_ushort2(ushort2);
1117ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
1118ushort2 __ovld __cnfn convert_ushort2_rte(int2);
1119ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
1120ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
1121ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
1122ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
1123ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
1124ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
1125ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
1126ushort2 __ovld __cnfn convert_ushort2(int2);
1127ushort2 __ovld __cnfn convert_ushort2_sat(int2);
1128ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
1129ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
1130ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
1131ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
1132ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
1133ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
1134ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
1135ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
1136ushort2 __ovld __cnfn convert_ushort2(uint2);
1137ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
1138ushort2 __ovld __cnfn convert_ushort2_rte(long2);
1139ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
1140ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
1141ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
1142ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
1143ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
1144ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
1145ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
1146ushort2 __ovld __cnfn convert_ushort2(long2);
1147ushort2 __ovld __cnfn convert_ushort2_sat(long2);
1148ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
1149ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
1150ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
1151ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
1152ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
1153ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
1154ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
1155ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
1156ushort2 __ovld __cnfn convert_ushort2(ulong2);
1157ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
1158ushort2 __ovld __cnfn convert_ushort2_rte(float2);
1159ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
1160ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
1161ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
1162ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
1163ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
1164ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
1165ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
1166ushort2 __ovld __cnfn convert_ushort2(float2);
1167ushort2 __ovld __cnfn convert_ushort2_sat(float2);
1168int2 __ovld __cnfn convert_int2_rte(char2);
1169int2 __ovld __cnfn convert_int2_sat_rte(char2);
1170int2 __ovld __cnfn convert_int2_rtz(char2);
1171int2 __ovld __cnfn convert_int2_sat_rtz(char2);
1172int2 __ovld __cnfn convert_int2_rtp(char2);
1173int2 __ovld __cnfn convert_int2_sat_rtp(char2);
1174int2 __ovld __cnfn convert_int2_rtn(char2);
1175int2 __ovld __cnfn convert_int2_sat_rtn(char2);
1176int2 __ovld __cnfn convert_int2(char2);
1177int2 __ovld __cnfn convert_int2_sat(char2);
1178int2 __ovld __cnfn convert_int2_rte(uchar2);
1179int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
1180int2 __ovld __cnfn convert_int2_rtz(uchar2);
1181int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
1182int2 __ovld __cnfn convert_int2_rtp(uchar2);
1183int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
1184int2 __ovld __cnfn convert_int2_rtn(uchar2);
1185int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
1186int2 __ovld __cnfn convert_int2(uchar2);
1187int2 __ovld __cnfn convert_int2_sat(uchar2);
1188int2 __ovld __cnfn convert_int2_rte(short2);
1189int2 __ovld __cnfn convert_int2_sat_rte(short2);
1190int2 __ovld __cnfn convert_int2_rtz(short2);
1191int2 __ovld __cnfn convert_int2_sat_rtz(short2);
1192int2 __ovld __cnfn convert_int2_rtp(short2);
1193int2 __ovld __cnfn convert_int2_sat_rtp(short2);
1194int2 __ovld __cnfn convert_int2_rtn(short2);
1195int2 __ovld __cnfn convert_int2_sat_rtn(short2);
1196int2 __ovld __cnfn convert_int2(short2);
1197int2 __ovld __cnfn convert_int2_sat(short2);
1198int2 __ovld __cnfn convert_int2_rte(ushort2);
1199int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
1200int2 __ovld __cnfn convert_int2_rtz(ushort2);
1201int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
1202int2 __ovld __cnfn convert_int2_rtp(ushort2);
1203int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
1204int2 __ovld __cnfn convert_int2_rtn(ushort2);
1205int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
1206int2 __ovld __cnfn convert_int2(ushort2);
1207int2 __ovld __cnfn convert_int2_sat(ushort2);
1208int2 __ovld __cnfn convert_int2_rte(int2);
1209int2 __ovld __cnfn convert_int2_sat_rte(int2);
1210int2 __ovld __cnfn convert_int2_rtz(int2);
1211int2 __ovld __cnfn convert_int2_sat_rtz(int2);
1212int2 __ovld __cnfn convert_int2_rtp(int2);
1213int2 __ovld __cnfn convert_int2_sat_rtp(int2);
1214int2 __ovld __cnfn convert_int2_rtn(int2);
1215int2 __ovld __cnfn convert_int2_sat_rtn(int2);
1216int2 __ovld __cnfn convert_int2(int2);
1217int2 __ovld __cnfn convert_int2_sat(int2);
1218int2 __ovld __cnfn convert_int2_rte(uint2);
1219int2 __ovld __cnfn convert_int2_sat_rte(uint2);
1220int2 __ovld __cnfn convert_int2_rtz(uint2);
1221int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
1222int2 __ovld __cnfn convert_int2_rtp(uint2);
1223int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
1224int2 __ovld __cnfn convert_int2_rtn(uint2);
1225int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
1226int2 __ovld __cnfn convert_int2(uint2);
1227int2 __ovld __cnfn convert_int2_sat(uint2);
1228int2 __ovld __cnfn convert_int2_rte(long2);
1229int2 __ovld __cnfn convert_int2_sat_rte(long2);
1230int2 __ovld __cnfn convert_int2_rtz(long2);
1231int2 __ovld __cnfn convert_int2_sat_rtz(long2);
1232int2 __ovld __cnfn convert_int2_rtp(long2);
1233int2 __ovld __cnfn convert_int2_sat_rtp(long2);
1234int2 __ovld __cnfn convert_int2_rtn(long2);
1235int2 __ovld __cnfn convert_int2_sat_rtn(long2);
1236int2 __ovld __cnfn convert_int2(long2);
1237int2 __ovld __cnfn convert_int2_sat(long2);
1238int2 __ovld __cnfn convert_int2_rte(ulong2);
1239int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
1240int2 __ovld __cnfn convert_int2_rtz(ulong2);
1241int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
1242int2 __ovld __cnfn convert_int2_rtp(ulong2);
1243int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
1244int2 __ovld __cnfn convert_int2_rtn(ulong2);
1245int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
1246int2 __ovld __cnfn convert_int2(ulong2);
1247int2 __ovld __cnfn convert_int2_sat(ulong2);
1248int2 __ovld __cnfn convert_int2_rte(float2);
1249int2 __ovld __cnfn convert_int2_sat_rte(float2);
1250int2 __ovld __cnfn convert_int2_rtz(float2);
1251int2 __ovld __cnfn convert_int2_sat_rtz(float2);
1252int2 __ovld __cnfn convert_int2_rtp(float2);
1253int2 __ovld __cnfn convert_int2_sat_rtp(float2);
1254int2 __ovld __cnfn convert_int2_rtn(float2);
1255int2 __ovld __cnfn convert_int2_sat_rtn(float2);
1256int2 __ovld __cnfn convert_int2(float2);
1257int2 __ovld __cnfn convert_int2_sat(float2);
1258uint2 __ovld __cnfn convert_uint2_rte(char2);
1259uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
1260uint2 __ovld __cnfn convert_uint2_rtz(char2);
1261uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
1262uint2 __ovld __cnfn convert_uint2_rtp(char2);
1263uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
1264uint2 __ovld __cnfn convert_uint2_rtn(char2);
1265uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
1266uint2 __ovld __cnfn convert_uint2(char2);
1267uint2 __ovld __cnfn convert_uint2_sat(char2);
1268uint2 __ovld __cnfn convert_uint2_rte(uchar2);
1269uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
1270uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
1271uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
1272uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
1273uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
1274uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
1275uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
1276uint2 __ovld __cnfn convert_uint2(uchar2);
1277uint2 __ovld __cnfn convert_uint2_sat(uchar2);
1278uint2 __ovld __cnfn convert_uint2_rte(short2);
1279uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
1280uint2 __ovld __cnfn convert_uint2_rtz(short2);
1281uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
1282uint2 __ovld __cnfn convert_uint2_rtp(short2);
1283uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
1284uint2 __ovld __cnfn convert_uint2_rtn(short2);
1285uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
1286uint2 __ovld __cnfn convert_uint2(short2);
1287uint2 __ovld __cnfn convert_uint2_sat(short2);
1288uint2 __ovld __cnfn convert_uint2_rte(ushort2);
1289uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
1290uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
1291uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
1292uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
1293uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
1294uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
1295uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
1296uint2 __ovld __cnfn convert_uint2(ushort2);
1297uint2 __ovld __cnfn convert_uint2_sat(ushort2);
1298uint2 __ovld __cnfn convert_uint2_rte(int2);
1299uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
1300uint2 __ovld __cnfn convert_uint2_rtz(int2);
1301uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
1302uint2 __ovld __cnfn convert_uint2_rtp(int2);
1303uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
1304uint2 __ovld __cnfn convert_uint2_rtn(int2);
1305uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
1306uint2 __ovld __cnfn convert_uint2(int2);
1307uint2 __ovld __cnfn convert_uint2_sat(int2);
1308uint2 __ovld __cnfn convert_uint2_rte(uint2);
1309uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
1310uint2 __ovld __cnfn convert_uint2_rtz(uint2);
1311uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
1312uint2 __ovld __cnfn convert_uint2_rtp(uint2);
1313uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
1314uint2 __ovld __cnfn convert_uint2_rtn(uint2);
1315uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
1316uint2 __ovld __cnfn convert_uint2(uint2);
1317uint2 __ovld __cnfn convert_uint2_sat(uint2);
1318uint2 __ovld __cnfn convert_uint2_rte(long2);
1319uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
1320uint2 __ovld __cnfn convert_uint2_rtz(long2);
1321uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
1322uint2 __ovld __cnfn convert_uint2_rtp(long2);
1323uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
1324uint2 __ovld __cnfn convert_uint2_rtn(long2);
1325uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
1326uint2 __ovld __cnfn convert_uint2(long2);
1327uint2 __ovld __cnfn convert_uint2_sat(long2);
1328uint2 __ovld __cnfn convert_uint2_rte(ulong2);
1329uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
1330uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
1331uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
1332uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
1333uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
1334uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
1335uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
1336uint2 __ovld __cnfn convert_uint2(ulong2);
1337uint2 __ovld __cnfn convert_uint2_sat(ulong2);
1338uint2 __ovld __cnfn convert_uint2_rte(float2);
1339uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
1340uint2 __ovld __cnfn convert_uint2_rtz(float2);
1341uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
1342uint2 __ovld __cnfn convert_uint2_rtp(float2);
1343uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
1344uint2 __ovld __cnfn convert_uint2_rtn(float2);
1345uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
1346uint2 __ovld __cnfn convert_uint2(float2);
1347uint2 __ovld __cnfn convert_uint2_sat(float2);
1348long2 __ovld __cnfn convert_long2_rte(char2);
1349long2 __ovld __cnfn convert_long2_sat_rte(char2);
1350long2 __ovld __cnfn convert_long2_rtz(char2);
1351long2 __ovld __cnfn convert_long2_sat_rtz(char2);
1352long2 __ovld __cnfn convert_long2_rtp(char2);
1353long2 __ovld __cnfn convert_long2_sat_rtp(char2);
1354long2 __ovld __cnfn convert_long2_rtn(char2);
1355long2 __ovld __cnfn convert_long2_sat_rtn(char2);
1356long2 __ovld __cnfn convert_long2(char2);
1357long2 __ovld __cnfn convert_long2_sat(char2);
1358long2 __ovld __cnfn convert_long2_rte(uchar2);
1359long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
1360long2 __ovld __cnfn convert_long2_rtz(uchar2);
1361long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
1362long2 __ovld __cnfn convert_long2_rtp(uchar2);
1363long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
1364long2 __ovld __cnfn convert_long2_rtn(uchar2);
1365long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
1366long2 __ovld __cnfn convert_long2(uchar2);
1367long2 __ovld __cnfn convert_long2_sat(uchar2);
1368long2 __ovld __cnfn convert_long2_rte(short2);
1369long2 __ovld __cnfn convert_long2_sat_rte(short2);
1370long2 __ovld __cnfn convert_long2_rtz(short2);
1371long2 __ovld __cnfn convert_long2_sat_rtz(short2);
1372long2 __ovld __cnfn convert_long2_rtp(short2);
1373long2 __ovld __cnfn convert_long2_sat_rtp(short2);
1374long2 __ovld __cnfn convert_long2_rtn(short2);
1375long2 __ovld __cnfn convert_long2_sat_rtn(short2);
1376long2 __ovld __cnfn convert_long2(short2);
1377long2 __ovld __cnfn convert_long2_sat(short2);
1378long2 __ovld __cnfn convert_long2_rte(ushort2);
1379long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
1380long2 __ovld __cnfn convert_long2_rtz(ushort2);
1381long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
1382long2 __ovld __cnfn convert_long2_rtp(ushort2);
1383long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
1384long2 __ovld __cnfn convert_long2_rtn(ushort2);
1385long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
1386long2 __ovld __cnfn convert_long2(ushort2);
1387long2 __ovld __cnfn convert_long2_sat(ushort2);
1388long2 __ovld __cnfn convert_long2_rte(int2);
1389long2 __ovld __cnfn convert_long2_sat_rte(int2);
1390long2 __ovld __cnfn convert_long2_rtz(int2);
1391long2 __ovld __cnfn convert_long2_sat_rtz(int2);
1392long2 __ovld __cnfn convert_long2_rtp(int2);
1393long2 __ovld __cnfn convert_long2_sat_rtp(int2);
1394long2 __ovld __cnfn convert_long2_rtn(int2);
1395long2 __ovld __cnfn convert_long2_sat_rtn(int2);
1396long2 __ovld __cnfn convert_long2(int2);
1397long2 __ovld __cnfn convert_long2_sat(int2);
1398long2 __ovld __cnfn convert_long2_rte(uint2);
1399long2 __ovld __cnfn convert_long2_sat_rte(uint2);
1400long2 __ovld __cnfn convert_long2_rtz(uint2);
1401long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
1402long2 __ovld __cnfn convert_long2_rtp(uint2);
1403long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
1404long2 __ovld __cnfn convert_long2_rtn(uint2);
1405long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
1406long2 __ovld __cnfn convert_long2(uint2);
1407long2 __ovld __cnfn convert_long2_sat(uint2);
1408long2 __ovld __cnfn convert_long2_rte(long2);
1409long2 __ovld __cnfn convert_long2_sat_rte(long2);
1410long2 __ovld __cnfn convert_long2_rtz(long2);
1411long2 __ovld __cnfn convert_long2_sat_rtz(long2);
1412long2 __ovld __cnfn convert_long2_rtp(long2);
1413long2 __ovld __cnfn convert_long2_sat_rtp(long2);
1414long2 __ovld __cnfn convert_long2_rtn(long2);
1415long2 __ovld __cnfn convert_long2_sat_rtn(long2);
1416long2 __ovld __cnfn convert_long2(long2);
1417long2 __ovld __cnfn convert_long2_sat(long2);
1418long2 __ovld __cnfn convert_long2_rte(ulong2);
1419long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
1420long2 __ovld __cnfn convert_long2_rtz(ulong2);
1421long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
1422long2 __ovld __cnfn convert_long2_rtp(ulong2);
1423long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
1424long2 __ovld __cnfn convert_long2_rtn(ulong2);
1425long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
1426long2 __ovld __cnfn convert_long2(ulong2);
1427long2 __ovld __cnfn convert_long2_sat(ulong2);
1428long2 __ovld __cnfn convert_long2_rte(float2);
1429long2 __ovld __cnfn convert_long2_sat_rte(float2);
1430long2 __ovld __cnfn convert_long2_rtz(float2);
1431long2 __ovld __cnfn convert_long2_sat_rtz(float2);
1432long2 __ovld __cnfn convert_long2_rtp(float2);
1433long2 __ovld __cnfn convert_long2_sat_rtp(float2);
1434long2 __ovld __cnfn convert_long2_rtn(float2);
1435long2 __ovld __cnfn convert_long2_sat_rtn(float2);
1436long2 __ovld __cnfn convert_long2(float2);
1437long2 __ovld __cnfn convert_long2_sat(float2);
1438ulong2 __ovld __cnfn convert_ulong2_rte(char2);
1439ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
1440ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
1441ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
1442ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
1443ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
1444ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
1445ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
1446ulong2 __ovld __cnfn convert_ulong2(char2);
1447ulong2 __ovld __cnfn convert_ulong2_sat(char2);
1448ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
1449ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
1450ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
1451ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
1452ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
1453ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
1454ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
1455ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
1456ulong2 __ovld __cnfn convert_ulong2(uchar2);
1457ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
1458ulong2 __ovld __cnfn convert_ulong2_rte(short2);
1459ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
1460ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
1461ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
1462ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
1463ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
1464ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
1465ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
1466ulong2 __ovld __cnfn convert_ulong2(short2);
1467ulong2 __ovld __cnfn convert_ulong2_sat(short2);
1468ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
1469ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
1470ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
1471ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
1472ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
1473ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
1474ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
1475ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
1476ulong2 __ovld __cnfn convert_ulong2(ushort2);
1477ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
1478ulong2 __ovld __cnfn convert_ulong2_rte(int2);
1479ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
1480ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
1481ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
1482ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
1483ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
1484ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
1485ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
1486ulong2 __ovld __cnfn convert_ulong2(int2);
1487ulong2 __ovld __cnfn convert_ulong2_sat(int2);
1488ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
1489ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
1490ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
1491ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
1492ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
1493ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
1494ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
1495ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
1496ulong2 __ovld __cnfn convert_ulong2(uint2);
1497ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
1498ulong2 __ovld __cnfn convert_ulong2_rte(long2);
1499ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
1500ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
1501ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
1502ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
1503ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
1504ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
1505ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
1506ulong2 __ovld __cnfn convert_ulong2(long2);
1507ulong2 __ovld __cnfn convert_ulong2_sat(long2);
1508ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
1509ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
1510ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
1511ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
1512ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
1513ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
1514ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
1515ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
1516ulong2 __ovld __cnfn convert_ulong2(ulong2);
1517ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
1518ulong2 __ovld __cnfn convert_ulong2_rte(float2);
1519ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
1520ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
1521ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
1522ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
1523ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
1524ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
1525ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
1526ulong2 __ovld __cnfn convert_ulong2(float2);
1527ulong2 __ovld __cnfn convert_ulong2_sat(float2);
1528float2 __ovld __cnfn convert_float2_rte(char2);
1529float2 __ovld __cnfn convert_float2_rtz(char2);
1530float2 __ovld __cnfn convert_float2_rtp(char2);
1531float2 __ovld __cnfn convert_float2_rtn(char2);
1532float2 __ovld __cnfn convert_float2(char2);
1533float2 __ovld __cnfn convert_float2_rte(uchar2);
1534float2 __ovld __cnfn convert_float2_rtz(uchar2);
1535float2 __ovld __cnfn convert_float2_rtp(uchar2);
1536float2 __ovld __cnfn convert_float2_rtn(uchar2);
1537float2 __ovld __cnfn convert_float2(uchar2);
1538float2 __ovld __cnfn convert_float2_rte(short2);
1539float2 __ovld __cnfn convert_float2_rtz(short2);
1540float2 __ovld __cnfn convert_float2_rtp(short2);
1541float2 __ovld __cnfn convert_float2_rtn(short2);
1542float2 __ovld __cnfn convert_float2(short2);
1543float2 __ovld __cnfn convert_float2_rte(ushort2);
1544float2 __ovld __cnfn convert_float2_rtz(ushort2);
1545float2 __ovld __cnfn convert_float2_rtp(ushort2);
1546float2 __ovld __cnfn convert_float2_rtn(ushort2);
1547float2 __ovld __cnfn convert_float2(ushort2);
1548float2 __ovld __cnfn convert_float2_rte(int2);
1549float2 __ovld __cnfn convert_float2_rtz(int2);
1550float2 __ovld __cnfn convert_float2_rtp(int2);
1551float2 __ovld __cnfn convert_float2_rtn(int2);
1552float2 __ovld __cnfn convert_float2(int2);
1553float2 __ovld __cnfn convert_float2_rte(uint2);
1554float2 __ovld __cnfn convert_float2_rtz(uint2);
1555float2 __ovld __cnfn convert_float2_rtp(uint2);
1556float2 __ovld __cnfn convert_float2_rtn(uint2);
1557float2 __ovld __cnfn convert_float2(uint2);
1558float2 __ovld __cnfn convert_float2_rte(long2);
1559float2 __ovld __cnfn convert_float2_rtz(long2);
1560float2 __ovld __cnfn convert_float2_rtp(long2);
1561float2 __ovld __cnfn convert_float2_rtn(long2);
1562float2 __ovld __cnfn convert_float2(long2);
1563float2 __ovld __cnfn convert_float2_rte(ulong2);
1564float2 __ovld __cnfn convert_float2_rtz(ulong2);
1565float2 __ovld __cnfn convert_float2_rtp(ulong2);
1566float2 __ovld __cnfn convert_float2_rtn(ulong2);
1567float2 __ovld __cnfn convert_float2(ulong2);
1568float2 __ovld __cnfn convert_float2_rte(float2);
1569float2 __ovld __cnfn convert_float2_rtz(float2);
1570float2 __ovld __cnfn convert_float2_rtp(float2);
1571float2 __ovld __cnfn convert_float2_rtn(float2);
1572float2 __ovld __cnfn convert_float2(float2);
1573char3 __ovld __cnfn convert_char3_rte(char3);
1574char3 __ovld __cnfn convert_char3_sat_rte(char3);
1575char3 __ovld __cnfn convert_char3_rtz(char3);
1576char3 __ovld __cnfn convert_char3_sat_rtz(char3);
1577char3 __ovld __cnfn convert_char3_rtp(char3);
1578char3 __ovld __cnfn convert_char3_sat_rtp(char3);
1579char3 __ovld __cnfn convert_char3_rtn(char3);
1580char3 __ovld __cnfn convert_char3_sat_rtn(char3);
1581char3 __ovld __cnfn convert_char3(char3);
1582char3 __ovld __cnfn convert_char3_sat(char3);
1583char3 __ovld __cnfn convert_char3_rte(uchar3);
1584char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
1585char3 __ovld __cnfn convert_char3_rtz(uchar3);
1586char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
1587char3 __ovld __cnfn convert_char3_rtp(uchar3);
1588char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
1589char3 __ovld __cnfn convert_char3_rtn(uchar3);
1590char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
1591char3 __ovld __cnfn convert_char3(uchar3);
1592char3 __ovld __cnfn convert_char3_sat(uchar3);
1593char3 __ovld __cnfn convert_char3_rte(short3);
1594char3 __ovld __cnfn convert_char3_sat_rte(short3);
1595char3 __ovld __cnfn convert_char3_rtz(short3);
1596char3 __ovld __cnfn convert_char3_sat_rtz(short3);
1597char3 __ovld __cnfn convert_char3_rtp(short3);
1598char3 __ovld __cnfn convert_char3_sat_rtp(short3);
1599char3 __ovld __cnfn convert_char3_rtn(short3);
1600char3 __ovld __cnfn convert_char3_sat_rtn(short3);
1601char3 __ovld __cnfn convert_char3(short3);
1602char3 __ovld __cnfn convert_char3_sat(short3);
1603char3 __ovld __cnfn convert_char3_rte(ushort3);
1604char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
1605char3 __ovld __cnfn convert_char3_rtz(ushort3);
1606char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
1607char3 __ovld __cnfn convert_char3_rtp(ushort3);
1608char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
1609char3 __ovld __cnfn convert_char3_rtn(ushort3);
1610char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
1611char3 __ovld __cnfn convert_char3(ushort3);
1612char3 __ovld __cnfn convert_char3_sat(ushort3);
1613char3 __ovld __cnfn convert_char3_rte(int3);
1614char3 __ovld __cnfn convert_char3_sat_rte(int3);
1615char3 __ovld __cnfn convert_char3_rtz(int3);
1616char3 __ovld __cnfn convert_char3_sat_rtz(int3);
1617char3 __ovld __cnfn convert_char3_rtp(int3);
1618char3 __ovld __cnfn convert_char3_sat_rtp(int3);
1619char3 __ovld __cnfn convert_char3_rtn(int3);
1620char3 __ovld __cnfn convert_char3_sat_rtn(int3);
1621char3 __ovld __cnfn convert_char3(int3);
1622char3 __ovld __cnfn convert_char3_sat(int3);
1623char3 __ovld __cnfn convert_char3_rte(uint3);
1624char3 __ovld __cnfn convert_char3_sat_rte(uint3);
1625char3 __ovld __cnfn convert_char3_rtz(uint3);
1626char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
1627char3 __ovld __cnfn convert_char3_rtp(uint3);
1628char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
1629char3 __ovld __cnfn convert_char3_rtn(uint3);
1630char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
1631char3 __ovld __cnfn convert_char3(uint3);
1632char3 __ovld __cnfn convert_char3_sat(uint3);
1633char3 __ovld __cnfn convert_char3_rte(long3);
1634char3 __ovld __cnfn convert_char3_sat_rte(long3);
1635char3 __ovld __cnfn convert_char3_rtz(long3);
1636char3 __ovld __cnfn convert_char3_sat_rtz(long3);
1637char3 __ovld __cnfn convert_char3_rtp(long3);
1638char3 __ovld __cnfn convert_char3_sat_rtp(long3);
1639char3 __ovld __cnfn convert_char3_rtn(long3);
1640char3 __ovld __cnfn convert_char3_sat_rtn(long3);
1641char3 __ovld __cnfn convert_char3(long3);
1642char3 __ovld __cnfn convert_char3_sat(long3);
1643char3 __ovld __cnfn convert_char3_rte(ulong3);
1644char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
1645char3 __ovld __cnfn convert_char3_rtz(ulong3);
1646char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
1647char3 __ovld __cnfn convert_char3_rtp(ulong3);
1648char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
1649char3 __ovld __cnfn convert_char3_rtn(ulong3);
1650char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
1651char3 __ovld __cnfn convert_char3(ulong3);
1652char3 __ovld __cnfn convert_char3_sat(ulong3);
1653char3 __ovld __cnfn convert_char3_rte(float3);
1654char3 __ovld __cnfn convert_char3_sat_rte(float3);
1655char3 __ovld __cnfn convert_char3_rtz(float3);
1656char3 __ovld __cnfn convert_char3_sat_rtz(float3);
1657char3 __ovld __cnfn convert_char3_rtp(float3);
1658char3 __ovld __cnfn convert_char3_sat_rtp(float3);
1659char3 __ovld __cnfn convert_char3_rtn(float3);
1660char3 __ovld __cnfn convert_char3_sat_rtn(float3);
1661char3 __ovld __cnfn convert_char3(float3);
1662char3 __ovld __cnfn convert_char3_sat(float3);
1663uchar3 __ovld __cnfn convert_uchar3_rte(char3);
1664uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
1665uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
1666uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
1667uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
1668uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
1669uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
1670uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
1671uchar3 __ovld __cnfn convert_uchar3(char3);
1672uchar3 __ovld __cnfn convert_uchar3_sat(char3);
1673uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
1674uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
1675uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
1676uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
1677uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
1678uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
1679uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
1680uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
1681uchar3 __ovld __cnfn convert_uchar3(uchar3);
1682uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
1683uchar3 __ovld __cnfn convert_uchar3_rte(short3);
1684uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
1685uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
1686uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
1687uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
1688uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
1689uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
1690uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
1691uchar3 __ovld __cnfn convert_uchar3(short3);
1692uchar3 __ovld __cnfn convert_uchar3_sat(short3);
1693uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
1694uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
1695uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
1696uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
1697uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
1698uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
1699uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
1700uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
1701uchar3 __ovld __cnfn convert_uchar3(ushort3);
1702uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
1703uchar3 __ovld __cnfn convert_uchar3_rte(int3);
1704uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
1705uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
1706uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
1707uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
1708uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
1709uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
1710uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
1711uchar3 __ovld __cnfn convert_uchar3(int3);
1712uchar3 __ovld __cnfn convert_uchar3_sat(int3);
1713uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
1714uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
1715uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
1716uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
1717uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
1718uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
1719uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
1720uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
1721uchar3 __ovld __cnfn convert_uchar3(uint3);
1722uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
1723uchar3 __ovld __cnfn convert_uchar3_rte(long3);
1724uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
1725uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
1726uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
1727uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
1728uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
1729uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
1730uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
1731uchar3 __ovld __cnfn convert_uchar3(long3);
1732uchar3 __ovld __cnfn convert_uchar3_sat(long3);
1733uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
1734uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
1735uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
1736uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
1737uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
1738uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
1739uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
1740uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
1741uchar3 __ovld __cnfn convert_uchar3(ulong3);
1742uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
1743uchar3 __ovld __cnfn convert_uchar3_rte(float3);
1744uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
1745uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
1746uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
1747uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
1748uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
1749uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
1750uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
1751uchar3 __ovld __cnfn convert_uchar3(float3);
1752uchar3 __ovld __cnfn convert_uchar3_sat(float3);
1753short3 __ovld __cnfn convert_short3_rte(char3);
1754short3 __ovld __cnfn convert_short3_sat_rte(char3);
1755short3 __ovld __cnfn convert_short3_rtz(char3);
1756short3 __ovld __cnfn convert_short3_sat_rtz(char3);
1757short3 __ovld __cnfn convert_short3_rtp(char3);
1758short3 __ovld __cnfn convert_short3_sat_rtp(char3);
1759short3 __ovld __cnfn convert_short3_rtn(char3);
1760short3 __ovld __cnfn convert_short3_sat_rtn(char3);
1761short3 __ovld __cnfn convert_short3(char3);
1762short3 __ovld __cnfn convert_short3_sat(char3);
1763short3 __ovld __cnfn convert_short3_rte(uchar3);
1764short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
1765short3 __ovld __cnfn convert_short3_rtz(uchar3);
1766short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
1767short3 __ovld __cnfn convert_short3_rtp(uchar3);
1768short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
1769short3 __ovld __cnfn convert_short3_rtn(uchar3);
1770short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
1771short3 __ovld __cnfn convert_short3(uchar3);
1772short3 __ovld __cnfn convert_short3_sat(uchar3);
1773short3 __ovld __cnfn convert_short3_rte(short3);
1774short3 __ovld __cnfn convert_short3_sat_rte(short3);
1775short3 __ovld __cnfn convert_short3_rtz(short3);
1776short3 __ovld __cnfn convert_short3_sat_rtz(short3);
1777short3 __ovld __cnfn convert_short3_rtp(short3);
1778short3 __ovld __cnfn convert_short3_sat_rtp(short3);
1779short3 __ovld __cnfn convert_short3_rtn(short3);
1780short3 __ovld __cnfn convert_short3_sat_rtn(short3);
1781short3 __ovld __cnfn convert_short3(short3);
1782short3 __ovld __cnfn convert_short3_sat(short3);
1783short3 __ovld __cnfn convert_short3_rte(ushort3);
1784short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
1785short3 __ovld __cnfn convert_short3_rtz(ushort3);
1786short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
1787short3 __ovld __cnfn convert_short3_rtp(ushort3);
1788short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
1789short3 __ovld __cnfn convert_short3_rtn(ushort3);
1790short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
1791short3 __ovld __cnfn convert_short3(ushort3);
1792short3 __ovld __cnfn convert_short3_sat(ushort3);
1793short3 __ovld __cnfn convert_short3_rte(int3);
1794short3 __ovld __cnfn convert_short3_sat_rte(int3);
1795short3 __ovld __cnfn convert_short3_rtz(int3);
1796short3 __ovld __cnfn convert_short3_sat_rtz(int3);
1797short3 __ovld __cnfn convert_short3_rtp(int3);
1798short3 __ovld __cnfn convert_short3_sat_rtp(int3);
1799short3 __ovld __cnfn convert_short3_rtn(int3);
1800short3 __ovld __cnfn convert_short3_sat_rtn(int3);
1801short3 __ovld __cnfn convert_short3(int3);
1802short3 __ovld __cnfn convert_short3_sat(int3);
1803short3 __ovld __cnfn convert_short3_rte(uint3);
1804short3 __ovld __cnfn convert_short3_sat_rte(uint3);
1805short3 __ovld __cnfn convert_short3_rtz(uint3);
1806short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
1807short3 __ovld __cnfn convert_short3_rtp(uint3);
1808short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
1809short3 __ovld __cnfn convert_short3_rtn(uint3);
1810short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
1811short3 __ovld __cnfn convert_short3(uint3);
1812short3 __ovld __cnfn convert_short3_sat(uint3);
1813short3 __ovld __cnfn convert_short3_rte(long3);
1814short3 __ovld __cnfn convert_short3_sat_rte(long3);
1815short3 __ovld __cnfn convert_short3_rtz(long3);
1816short3 __ovld __cnfn convert_short3_sat_rtz(long3);
1817short3 __ovld __cnfn convert_short3_rtp(long3);
1818short3 __ovld __cnfn convert_short3_sat_rtp(long3);
1819short3 __ovld __cnfn convert_short3_rtn(long3);
1820short3 __ovld __cnfn convert_short3_sat_rtn(long3);
1821short3 __ovld __cnfn convert_short3(long3);
1822short3 __ovld __cnfn convert_short3_sat(long3);
1823short3 __ovld __cnfn convert_short3_rte(ulong3);
1824short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
1825short3 __ovld __cnfn convert_short3_rtz(ulong3);
1826short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
1827short3 __ovld __cnfn convert_short3_rtp(ulong3);
1828short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
1829short3 __ovld __cnfn convert_short3_rtn(ulong3);
1830short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
1831short3 __ovld __cnfn convert_short3(ulong3);
1832short3 __ovld __cnfn convert_short3_sat(ulong3);
1833short3 __ovld __cnfn convert_short3_rte(float3);
1834short3 __ovld __cnfn convert_short3_sat_rte(float3);
1835short3 __ovld __cnfn convert_short3_rtz(float3);
1836short3 __ovld __cnfn convert_short3_sat_rtz(float3);
1837short3 __ovld __cnfn convert_short3_rtp(float3);
1838short3 __ovld __cnfn convert_short3_sat_rtp(float3);
1839short3 __ovld __cnfn convert_short3_rtn(float3);
1840short3 __ovld __cnfn convert_short3_sat_rtn(float3);
1841short3 __ovld __cnfn convert_short3(float3);
1842short3 __ovld __cnfn convert_short3_sat(float3);
1843ushort3 __ovld __cnfn convert_ushort3_rte(char3);
1844ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
1845ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
1846ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
1847ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
1848ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
1849ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
1850ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
1851ushort3 __ovld __cnfn convert_ushort3(char3);
1852ushort3 __ovld __cnfn convert_ushort3_sat(char3);
1853ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
1854ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
1855ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
1856ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
1857ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
1858ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
1859ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
1860ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
1861ushort3 __ovld __cnfn convert_ushort3(uchar3);
1862ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
1863ushort3 __ovld __cnfn convert_ushort3_rte(short3);
1864ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
1865ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
1866ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
1867ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
1868ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
1869ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
1870ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
1871ushort3 __ovld __cnfn convert_ushort3(short3);
1872ushort3 __ovld __cnfn convert_ushort3_sat(short3);
1873ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
1874ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
1875ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
1876ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
1877ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
1878ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
1879ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
1880ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
1881ushort3 __ovld __cnfn convert_ushort3(ushort3);
1882ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
1883ushort3 __ovld __cnfn convert_ushort3_rte(int3);
1884ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
1885ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
1886ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
1887ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
1888ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
1889ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
1890ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
1891ushort3 __ovld __cnfn convert_ushort3(int3);
1892ushort3 __ovld __cnfn convert_ushort3_sat(int3);
1893ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
1894ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
1895ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
1896ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
1897ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
1898ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
1899ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
1900ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
1901ushort3 __ovld __cnfn convert_ushort3(uint3);
1902ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
1903ushort3 __ovld __cnfn convert_ushort3_rte(long3);
1904ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
1905ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
1906ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
1907ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
1908ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
1909ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
1910ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
1911ushort3 __ovld __cnfn convert_ushort3(long3);
1912ushort3 __ovld __cnfn convert_ushort3_sat(long3);
1913ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
1914ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
1915ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
1916ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
1917ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
1918ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
1919ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
1920ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
1921ushort3 __ovld __cnfn convert_ushort3(ulong3);
1922ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
1923ushort3 __ovld __cnfn convert_ushort3_rte(float3);
1924ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
1925ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
1926ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
1927ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
1928ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
1929ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
1930ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
1931ushort3 __ovld __cnfn convert_ushort3(float3);
1932ushort3 __ovld __cnfn convert_ushort3_sat(float3);
1933int3 __ovld __cnfn convert_int3_rte(char3);
1934int3 __ovld __cnfn convert_int3_sat_rte(char3);
1935int3 __ovld __cnfn convert_int3_rtz(char3);
1936int3 __ovld __cnfn convert_int3_sat_rtz(char3);
1937int3 __ovld __cnfn convert_int3_rtp(char3);
1938int3 __ovld __cnfn convert_int3_sat_rtp(char3);
1939int3 __ovld __cnfn convert_int3_rtn(char3);
1940int3 __ovld __cnfn convert_int3_sat_rtn(char3);
1941int3 __ovld __cnfn convert_int3(char3);
1942int3 __ovld __cnfn convert_int3_sat(char3);
1943int3 __ovld __cnfn convert_int3_rte(uchar3);
1944int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
1945int3 __ovld __cnfn convert_int3_rtz(uchar3);
1946int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
1947int3 __ovld __cnfn convert_int3_rtp(uchar3);
1948int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
1949int3 __ovld __cnfn convert_int3_rtn(uchar3);
1950int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
1951int3 __ovld __cnfn convert_int3(uchar3);
1952int3 __ovld __cnfn convert_int3_sat(uchar3);
1953int3 __ovld __cnfn convert_int3_rte(short3);
1954int3 __ovld __cnfn convert_int3_sat_rte(short3);
1955int3 __ovld __cnfn convert_int3_rtz(short3);
1956int3 __ovld __cnfn convert_int3_sat_rtz(short3);
1957int3 __ovld __cnfn convert_int3_rtp(short3);
1958int3 __ovld __cnfn convert_int3_sat_rtp(short3);
1959int3 __ovld __cnfn convert_int3_rtn(short3);
1960int3 __ovld __cnfn convert_int3_sat_rtn(short3);
1961int3 __ovld __cnfn convert_int3(short3);
1962int3 __ovld __cnfn convert_int3_sat(short3);
1963int3 __ovld __cnfn convert_int3_rte(ushort3);
1964int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
1965int3 __ovld __cnfn convert_int3_rtz(ushort3);
1966int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
1967int3 __ovld __cnfn convert_int3_rtp(ushort3);
1968int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
1969int3 __ovld __cnfn convert_int3_rtn(ushort3);
1970int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
1971int3 __ovld __cnfn convert_int3(ushort3);
1972int3 __ovld __cnfn convert_int3_sat(ushort3);
1973int3 __ovld __cnfn convert_int3_rte(int3);
1974int3 __ovld __cnfn convert_int3_sat_rte(int3);
1975int3 __ovld __cnfn convert_int3_rtz(int3);
1976int3 __ovld __cnfn convert_int3_sat_rtz(int3);
1977int3 __ovld __cnfn convert_int3_rtp(int3);
1978int3 __ovld __cnfn convert_int3_sat_rtp(int3);
1979int3 __ovld __cnfn convert_int3_rtn(int3);
1980int3 __ovld __cnfn convert_int3_sat_rtn(int3);
1981int3 __ovld __cnfn convert_int3(int3);
1982int3 __ovld __cnfn convert_int3_sat(int3);
1983int3 __ovld __cnfn convert_int3_rte(uint3);
1984int3 __ovld __cnfn convert_int3_sat_rte(uint3);
1985int3 __ovld __cnfn convert_int3_rtz(uint3);
1986int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
1987int3 __ovld __cnfn convert_int3_rtp(uint3);
1988int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
1989int3 __ovld __cnfn convert_int3_rtn(uint3);
1990int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
1991int3 __ovld __cnfn convert_int3(uint3);
1992int3 __ovld __cnfn convert_int3_sat(uint3);
1993int3 __ovld __cnfn convert_int3_rte(long3);
1994int3 __ovld __cnfn convert_int3_sat_rte(long3);
1995int3 __ovld __cnfn convert_int3_rtz(long3);
1996int3 __ovld __cnfn convert_int3_sat_rtz(long3);
1997int3 __ovld __cnfn convert_int3_rtp(long3);
1998int3 __ovld __cnfn convert_int3_sat_rtp(long3);
1999int3 __ovld __cnfn convert_int3_rtn(long3);
2000int3 __ovld __cnfn convert_int3_sat_rtn(long3);
2001int3 __ovld __cnfn convert_int3(long3);
2002int3 __ovld __cnfn convert_int3_sat(long3);
2003int3 __ovld __cnfn convert_int3_rte(ulong3);
2004int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
2005int3 __ovld __cnfn convert_int3_rtz(ulong3);
2006int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
2007int3 __ovld __cnfn convert_int3_rtp(ulong3);
2008int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
2009int3 __ovld __cnfn convert_int3_rtn(ulong3);
2010int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
2011int3 __ovld __cnfn convert_int3(ulong3);
2012int3 __ovld __cnfn convert_int3_sat(ulong3);
2013int3 __ovld __cnfn convert_int3_rte(float3);
2014int3 __ovld __cnfn convert_int3_sat_rte(float3);
2015int3 __ovld __cnfn convert_int3_rtz(float3);
2016int3 __ovld __cnfn convert_int3_sat_rtz(float3);
2017int3 __ovld __cnfn convert_int3_rtp(float3);
2018int3 __ovld __cnfn convert_int3_sat_rtp(float3);
2019int3 __ovld __cnfn convert_int3_rtn(float3);
2020int3 __ovld __cnfn convert_int3_sat_rtn(float3);
2021int3 __ovld __cnfn convert_int3(float3);
2022int3 __ovld __cnfn convert_int3_sat(float3);
2023uint3 __ovld __cnfn convert_uint3_rte(char3);
2024uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
2025uint3 __ovld __cnfn convert_uint3_rtz(char3);
2026uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
2027uint3 __ovld __cnfn convert_uint3_rtp(char3);
2028uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
2029uint3 __ovld __cnfn convert_uint3_rtn(char3);
2030uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
2031uint3 __ovld __cnfn convert_uint3(char3);
2032uint3 __ovld __cnfn convert_uint3_sat(char3);
2033uint3 __ovld __cnfn convert_uint3_rte(uchar3);
2034uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
2035uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
2036uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
2037uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
2038uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
2039uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
2040uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
2041uint3 __ovld __cnfn convert_uint3(uchar3);
2042uint3 __ovld __cnfn convert_uint3_sat(uchar3);
2043uint3 __ovld __cnfn convert_uint3_rte(short3);
2044uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
2045uint3 __ovld __cnfn convert_uint3_rtz(short3);
2046uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
2047uint3 __ovld __cnfn convert_uint3_rtp(short3);
2048uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
2049uint3 __ovld __cnfn convert_uint3_rtn(short3);
2050uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
2051uint3 __ovld __cnfn convert_uint3(short3);
2052uint3 __ovld __cnfn convert_uint3_sat(short3);
2053uint3 __ovld __cnfn convert_uint3_rte(ushort3);
2054uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
2055uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
2056uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
2057uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
2058uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
2059uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
2060uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
2061uint3 __ovld __cnfn convert_uint3(ushort3);
2062uint3 __ovld __cnfn convert_uint3_sat(ushort3);
2063uint3 __ovld __cnfn convert_uint3_rte(int3);
2064uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
2065uint3 __ovld __cnfn convert_uint3_rtz(int3);
2066uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
2067uint3 __ovld __cnfn convert_uint3_rtp(int3);
2068uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
2069uint3 __ovld __cnfn convert_uint3_rtn(int3);
2070uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
2071uint3 __ovld __cnfn convert_uint3(int3);
2072uint3 __ovld __cnfn convert_uint3_sat(int3);
2073uint3 __ovld __cnfn convert_uint3_rte(uint3);
2074uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
2075uint3 __ovld __cnfn convert_uint3_rtz(uint3);
2076uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
2077uint3 __ovld __cnfn convert_uint3_rtp(uint3);
2078uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
2079uint3 __ovld __cnfn convert_uint3_rtn(uint3);
2080uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
2081uint3 __ovld __cnfn convert_uint3(uint3);
2082uint3 __ovld __cnfn convert_uint3_sat(uint3);
2083uint3 __ovld __cnfn convert_uint3_rte(long3);
2084uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
2085uint3 __ovld __cnfn convert_uint3_rtz(long3);
2086uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
2087uint3 __ovld __cnfn convert_uint3_rtp(long3);
2088uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
2089uint3 __ovld __cnfn convert_uint3_rtn(long3);
2090uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
2091uint3 __ovld __cnfn convert_uint3(long3);
2092uint3 __ovld __cnfn convert_uint3_sat(long3);
2093uint3 __ovld __cnfn convert_uint3_rte(ulong3);
2094uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
2095uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
2096uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
2097uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
2098uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
2099uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
2100uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
2101uint3 __ovld __cnfn convert_uint3(ulong3);
2102uint3 __ovld __cnfn convert_uint3_sat(ulong3);
2103uint3 __ovld __cnfn convert_uint3_rte(float3);
2104uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
2105uint3 __ovld __cnfn convert_uint3_rtz(float3);
2106uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
2107uint3 __ovld __cnfn convert_uint3_rtp(float3);
2108uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
2109uint3 __ovld __cnfn convert_uint3_rtn(float3);
2110uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
2111uint3 __ovld __cnfn convert_uint3(float3);
2112uint3 __ovld __cnfn convert_uint3_sat(float3);
2113long3 __ovld __cnfn convert_long3_rte(char3);
2114long3 __ovld __cnfn convert_long3_sat_rte(char3);
2115long3 __ovld __cnfn convert_long3_rtz(char3);
2116long3 __ovld __cnfn convert_long3_sat_rtz(char3);
2117long3 __ovld __cnfn convert_long3_rtp(char3);
2118long3 __ovld __cnfn convert_long3_sat_rtp(char3);
2119long3 __ovld __cnfn convert_long3_rtn(char3);
2120long3 __ovld __cnfn convert_long3_sat_rtn(char3);
2121long3 __ovld __cnfn convert_long3(char3);
2122long3 __ovld __cnfn convert_long3_sat(char3);
2123long3 __ovld __cnfn convert_long3_rte(uchar3);
2124long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
2125long3 __ovld __cnfn convert_long3_rtz(uchar3);
2126long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
2127long3 __ovld __cnfn convert_long3_rtp(uchar3);
2128long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
2129long3 __ovld __cnfn convert_long3_rtn(uchar3);
2130long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
2131long3 __ovld __cnfn convert_long3(uchar3);
2132long3 __ovld __cnfn convert_long3_sat(uchar3);
2133long3 __ovld __cnfn convert_long3_rte(short3);
2134long3 __ovld __cnfn convert_long3_sat_rte(short3);
2135long3 __ovld __cnfn convert_long3_rtz(short3);
2136long3 __ovld __cnfn convert_long3_sat_rtz(short3);
2137long3 __ovld __cnfn convert_long3_rtp(short3);
2138long3 __ovld __cnfn convert_long3_sat_rtp(short3);
2139long3 __ovld __cnfn convert_long3_rtn(short3);
2140long3 __ovld __cnfn convert_long3_sat_rtn(short3);
2141long3 __ovld __cnfn convert_long3(short3);
2142long3 __ovld __cnfn convert_long3_sat(short3);
2143long3 __ovld __cnfn convert_long3_rte(ushort3);
2144long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
2145long3 __ovld __cnfn convert_long3_rtz(ushort3);
2146long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
2147long3 __ovld __cnfn convert_long3_rtp(ushort3);
2148long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
2149long3 __ovld __cnfn convert_long3_rtn(ushort3);
2150long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
2151long3 __ovld __cnfn convert_long3(ushort3);
2152long3 __ovld __cnfn convert_long3_sat(ushort3);
2153long3 __ovld __cnfn convert_long3_rte(int3);
2154long3 __ovld __cnfn convert_long3_sat_rte(int3);
2155long3 __ovld __cnfn convert_long3_rtz(int3);
2156long3 __ovld __cnfn convert_long3_sat_rtz(int3);
2157long3 __ovld __cnfn convert_long3_rtp(int3);
2158long3 __ovld __cnfn convert_long3_sat_rtp(int3);
2159long3 __ovld __cnfn convert_long3_rtn(int3);
2160long3 __ovld __cnfn convert_long3_sat_rtn(int3);
2161long3 __ovld __cnfn convert_long3(int3);
2162long3 __ovld __cnfn convert_long3_sat(int3);
2163long3 __ovld __cnfn convert_long3_rte(uint3);
2164long3 __ovld __cnfn convert_long3_sat_rte(uint3);
2165long3 __ovld __cnfn convert_long3_rtz(uint3);
2166long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
2167long3 __ovld __cnfn convert_long3_rtp(uint3);
2168long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
2169long3 __ovld __cnfn convert_long3_rtn(uint3);
2170long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
2171long3 __ovld __cnfn convert_long3(uint3);
2172long3 __ovld __cnfn convert_long3_sat(uint3);
2173long3 __ovld __cnfn convert_long3_rte(long3);
2174long3 __ovld __cnfn convert_long3_sat_rte(long3);
2175long3 __ovld __cnfn convert_long3_rtz(long3);
2176long3 __ovld __cnfn convert_long3_sat_rtz(long3);
2177long3 __ovld __cnfn convert_long3_rtp(long3);
2178long3 __ovld __cnfn convert_long3_sat_rtp(long3);
2179long3 __ovld __cnfn convert_long3_rtn(long3);
2180long3 __ovld __cnfn convert_long3_sat_rtn(long3);
2181long3 __ovld __cnfn convert_long3(long3);
2182long3 __ovld __cnfn convert_long3_sat(long3);
2183long3 __ovld __cnfn convert_long3_rte(ulong3);
2184long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
2185long3 __ovld __cnfn convert_long3_rtz(ulong3);
2186long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
2187long3 __ovld __cnfn convert_long3_rtp(ulong3);
2188long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
2189long3 __ovld __cnfn convert_long3_rtn(ulong3);
2190long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
2191long3 __ovld __cnfn convert_long3(ulong3);
2192long3 __ovld __cnfn convert_long3_sat(ulong3);
2193long3 __ovld __cnfn convert_long3_rte(float3);
2194long3 __ovld __cnfn convert_long3_sat_rte(float3);
2195long3 __ovld __cnfn convert_long3_rtz(float3);
2196long3 __ovld __cnfn convert_long3_sat_rtz(float3);
2197long3 __ovld __cnfn convert_long3_rtp(float3);
2198long3 __ovld __cnfn convert_long3_sat_rtp(float3);
2199long3 __ovld __cnfn convert_long3_rtn(float3);
2200long3 __ovld __cnfn convert_long3_sat_rtn(float3);
2201long3 __ovld __cnfn convert_long3(float3);
2202long3 __ovld __cnfn convert_long3_sat(float3);
2203ulong3 __ovld __cnfn convert_ulong3_rte(char3);
2204ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
2205ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
2206ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
2207ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
2208ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
2209ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
2210ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
2211ulong3 __ovld __cnfn convert_ulong3(char3);
2212ulong3 __ovld __cnfn convert_ulong3_sat(char3);
2213ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
2214ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
2215ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
2216ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
2217ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
2218ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
2219ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
2220ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
2221ulong3 __ovld __cnfn convert_ulong3(uchar3);
2222ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
2223ulong3 __ovld __cnfn convert_ulong3_rte(short3);
2224ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
2225ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
2226ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
2227ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
2228ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
2229ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
2230ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
2231ulong3 __ovld __cnfn convert_ulong3(short3);
2232ulong3 __ovld __cnfn convert_ulong3_sat(short3);
2233ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
2234ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
2235ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
2236ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
2237ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
2238ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
2239ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
2240ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
2241ulong3 __ovld __cnfn convert_ulong3(ushort3);
2242ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
2243ulong3 __ovld __cnfn convert_ulong3_rte(int3);
2244ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
2245ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
2246ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
2247ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
2248ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
2249ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
2250ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
2251ulong3 __ovld __cnfn convert_ulong3(int3);
2252ulong3 __ovld __cnfn convert_ulong3_sat(int3);
2253ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
2254ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
2255ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
2256ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
2257ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
2258ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
2259ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
2260ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
2261ulong3 __ovld __cnfn convert_ulong3(uint3);
2262ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
2263ulong3 __ovld __cnfn convert_ulong3_rte(long3);
2264ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
2265ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
2266ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
2267ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
2268ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
2269ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
2270ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
2271ulong3 __ovld __cnfn convert_ulong3(long3);
2272ulong3 __ovld __cnfn convert_ulong3_sat(long3);
2273ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
2274ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
2275ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
2276ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
2277ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
2278ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
2279ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
2280ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
2281ulong3 __ovld __cnfn convert_ulong3(ulong3);
2282ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
2283ulong3 __ovld __cnfn convert_ulong3_rte(float3);
2284ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
2285ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
2286ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
2287ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
2288ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
2289ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
2290ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
2291ulong3 __ovld __cnfn convert_ulong3(float3);
2292ulong3 __ovld __cnfn convert_ulong3_sat(float3);
2293float3 __ovld __cnfn convert_float3_rte(char3);
2294float3 __ovld __cnfn convert_float3_rtz(char3);
2295float3 __ovld __cnfn convert_float3_rtp(char3);
2296float3 __ovld __cnfn convert_float3_rtn(char3);
2297float3 __ovld __cnfn convert_float3(char3);
2298float3 __ovld __cnfn convert_float3_rte(uchar3);
2299float3 __ovld __cnfn convert_float3_rtz(uchar3);
2300float3 __ovld __cnfn convert_float3_rtp(uchar3);
2301float3 __ovld __cnfn convert_float3_rtn(uchar3);
2302float3 __ovld __cnfn convert_float3(uchar3);
2303float3 __ovld __cnfn convert_float3_rte(short3);
2304float3 __ovld __cnfn convert_float3_rtz(short3);
2305float3 __ovld __cnfn convert_float3_rtp(short3);
2306float3 __ovld __cnfn convert_float3_rtn(short3);
2307float3 __ovld __cnfn convert_float3(short3);
2308float3 __ovld __cnfn convert_float3_rte(ushort3);
2309float3 __ovld __cnfn convert_float3_rtz(ushort3);
2310float3 __ovld __cnfn convert_float3_rtp(ushort3);
2311float3 __ovld __cnfn convert_float3_rtn(ushort3);
2312float3 __ovld __cnfn convert_float3(ushort3);
2313float3 __ovld __cnfn convert_float3_rte(int3);
2314float3 __ovld __cnfn convert_float3_rtz(int3);
2315float3 __ovld __cnfn convert_float3_rtp(int3);
2316float3 __ovld __cnfn convert_float3_rtn(int3);
2317float3 __ovld __cnfn convert_float3(int3);
2318float3 __ovld __cnfn convert_float3_rte(uint3);
2319float3 __ovld __cnfn convert_float3_rtz(uint3);
2320float3 __ovld __cnfn convert_float3_rtp(uint3);
2321float3 __ovld __cnfn convert_float3_rtn(uint3);
2322float3 __ovld __cnfn convert_float3(uint3);
2323float3 __ovld __cnfn convert_float3_rte(long3);
2324float3 __ovld __cnfn convert_float3_rtz(long3);
2325float3 __ovld __cnfn convert_float3_rtp(long3);
2326float3 __ovld __cnfn convert_float3_rtn(long3);
2327float3 __ovld __cnfn convert_float3(long3);
2328float3 __ovld __cnfn convert_float3_rte(ulong3);
2329float3 __ovld __cnfn convert_float3_rtz(ulong3);
2330float3 __ovld __cnfn convert_float3_rtp(ulong3);
2331float3 __ovld __cnfn convert_float3_rtn(ulong3);
2332float3 __ovld __cnfn convert_float3(ulong3);
2333float3 __ovld __cnfn convert_float3_rte(float3);
2334float3 __ovld __cnfn convert_float3_rtz(float3);
2335float3 __ovld __cnfn convert_float3_rtp(float3);
2336float3 __ovld __cnfn convert_float3_rtn(float3);
2337float3 __ovld __cnfn convert_float3(float3);
2338char4 __ovld __cnfn convert_char4_rte(char4);
2339char4 __ovld __cnfn convert_char4_sat_rte(char4);
2340char4 __ovld __cnfn convert_char4_rtz(char4);
2341char4 __ovld __cnfn convert_char4_sat_rtz(char4);
2342char4 __ovld __cnfn convert_char4_rtp(char4);
2343char4 __ovld __cnfn convert_char4_sat_rtp(char4);
2344char4 __ovld __cnfn convert_char4_rtn(char4);
2345char4 __ovld __cnfn convert_char4_sat_rtn(char4);
2346char4 __ovld __cnfn convert_char4(char4);
2347char4 __ovld __cnfn convert_char4_sat(char4);
2348char4 __ovld __cnfn convert_char4_rte(uchar4);
2349char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
2350char4 __ovld __cnfn convert_char4_rtz(uchar4);
2351char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
2352char4 __ovld __cnfn convert_char4_rtp(uchar4);
2353char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
2354char4 __ovld __cnfn convert_char4_rtn(uchar4);
2355char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
2356char4 __ovld __cnfn convert_char4(uchar4);
2357char4 __ovld __cnfn convert_char4_sat(uchar4);
2358char4 __ovld __cnfn convert_char4_rte(short4);
2359char4 __ovld __cnfn convert_char4_sat_rte(short4);
2360char4 __ovld __cnfn convert_char4_rtz(short4);
2361char4 __ovld __cnfn convert_char4_sat_rtz(short4);
2362char4 __ovld __cnfn convert_char4_rtp(short4);
2363char4 __ovld __cnfn convert_char4_sat_rtp(short4);
2364char4 __ovld __cnfn convert_char4_rtn(short4);
2365char4 __ovld __cnfn convert_char4_sat_rtn(short4);
2366char4 __ovld __cnfn convert_char4(short4);
2367char4 __ovld __cnfn convert_char4_sat(short4);
2368char4 __ovld __cnfn convert_char4_rte(ushort4);
2369char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
2370char4 __ovld __cnfn convert_char4_rtz(ushort4);
2371char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
2372char4 __ovld __cnfn convert_char4_rtp(ushort4);
2373char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
2374char4 __ovld __cnfn convert_char4_rtn(ushort4);
2375char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
2376char4 __ovld __cnfn convert_char4(ushort4);
2377char4 __ovld __cnfn convert_char4_sat(ushort4);
2378char4 __ovld __cnfn convert_char4_rte(int4);
2379char4 __ovld __cnfn convert_char4_sat_rte(int4);
2380char4 __ovld __cnfn convert_char4_rtz(int4);
2381char4 __ovld __cnfn convert_char4_sat_rtz(int4);
2382char4 __ovld __cnfn convert_char4_rtp(int4);
2383char4 __ovld __cnfn convert_char4_sat_rtp(int4);
2384char4 __ovld __cnfn convert_char4_rtn(int4);
2385char4 __ovld __cnfn convert_char4_sat_rtn(int4);
2386char4 __ovld __cnfn convert_char4(int4);
2387char4 __ovld __cnfn convert_char4_sat(int4);
2388char4 __ovld __cnfn convert_char4_rte(uint4);
2389char4 __ovld __cnfn convert_char4_sat_rte(uint4);
2390char4 __ovld __cnfn convert_char4_rtz(uint4);
2391char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
2392char4 __ovld __cnfn convert_char4_rtp(uint4);
2393char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
2394char4 __ovld __cnfn convert_char4_rtn(uint4);
2395char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
2396char4 __ovld __cnfn convert_char4(uint4);
2397char4 __ovld __cnfn convert_char4_sat(uint4);
2398char4 __ovld __cnfn convert_char4_rte(long4);
2399char4 __ovld __cnfn convert_char4_sat_rte(long4);
2400char4 __ovld __cnfn convert_char4_rtz(long4);
2401char4 __ovld __cnfn convert_char4_sat_rtz(long4);
2402char4 __ovld __cnfn convert_char4_rtp(long4);
2403char4 __ovld __cnfn convert_char4_sat_rtp(long4);
2404char4 __ovld __cnfn convert_char4_rtn(long4);
2405char4 __ovld __cnfn convert_char4_sat_rtn(long4);
2406char4 __ovld __cnfn convert_char4(long4);
2407char4 __ovld __cnfn convert_char4_sat(long4);
2408char4 __ovld __cnfn convert_char4_rte(ulong4);
2409char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
2410char4 __ovld __cnfn convert_char4_rtz(ulong4);
2411char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
2412char4 __ovld __cnfn convert_char4_rtp(ulong4);
2413char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
2414char4 __ovld __cnfn convert_char4_rtn(ulong4);
2415char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
2416char4 __ovld __cnfn convert_char4(ulong4);
2417char4 __ovld __cnfn convert_char4_sat(ulong4);
2418char4 __ovld __cnfn convert_char4_rte(float4);
2419char4 __ovld __cnfn convert_char4_sat_rte(float4);
2420char4 __ovld __cnfn convert_char4_rtz(float4);
2421char4 __ovld __cnfn convert_char4_sat_rtz(float4);
2422char4 __ovld __cnfn convert_char4_rtp(float4);
2423char4 __ovld __cnfn convert_char4_sat_rtp(float4);
2424char4 __ovld __cnfn convert_char4_rtn(float4);
2425char4 __ovld __cnfn convert_char4_sat_rtn(float4);
2426char4 __ovld __cnfn convert_char4(float4);
2427char4 __ovld __cnfn convert_char4_sat(float4);
2428uchar4 __ovld __cnfn convert_uchar4_rte(char4);
2429uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
2430uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
2431uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
2432uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
2433uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
2434uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
2435uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
2436uchar4 __ovld __cnfn convert_uchar4(char4);
2437uchar4 __ovld __cnfn convert_uchar4_sat(char4);
2438uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
2439uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
2440uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
2441uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
2442uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
2443uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
2444uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
2445uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
2446uchar4 __ovld __cnfn convert_uchar4(uchar4);
2447uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
2448uchar4 __ovld __cnfn convert_uchar4_rte(short4);
2449uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
2450uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
2451uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
2452uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
2453uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
2454uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
2455uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
2456uchar4 __ovld __cnfn convert_uchar4(short4);
2457uchar4 __ovld __cnfn convert_uchar4_sat(short4);
2458uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
2459uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
2460uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
2461uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
2462uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
2463uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
2464uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
2465uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
2466uchar4 __ovld __cnfn convert_uchar4(ushort4);
2467uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
2468uchar4 __ovld __cnfn convert_uchar4_rte(int4);
2469uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
2470uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
2471uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
2472uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
2473uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
2474uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
2475uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
2476uchar4 __ovld __cnfn convert_uchar4(int4);
2477uchar4 __ovld __cnfn convert_uchar4_sat(int4);
2478uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
2479uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
2480uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
2481uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
2482uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
2483uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
2484uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
2485uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
2486uchar4 __ovld __cnfn convert_uchar4(uint4);
2487uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
2488uchar4 __ovld __cnfn convert_uchar4_rte(long4);
2489uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
2490uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
2491uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
2492uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
2493uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
2494uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
2495uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
2496uchar4 __ovld __cnfn convert_uchar4(long4);
2497uchar4 __ovld __cnfn convert_uchar4_sat(long4);
2498uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
2499uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
2500uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
2501uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
2502uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
2503uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
2504uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
2505uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
2506uchar4 __ovld __cnfn convert_uchar4(ulong4);
2507uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
2508uchar4 __ovld __cnfn convert_uchar4_rte(float4);
2509uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
2510uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
2511uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
2512uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
2513uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
2514uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
2515uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
2516uchar4 __ovld __cnfn convert_uchar4(float4);
2517uchar4 __ovld __cnfn convert_uchar4_sat(float4);
2518short4 __ovld __cnfn convert_short4_rte(char4);
2519short4 __ovld __cnfn convert_short4_sat_rte(char4);
2520short4 __ovld __cnfn convert_short4_rtz(char4);
2521short4 __ovld __cnfn convert_short4_sat_rtz(char4);
2522short4 __ovld __cnfn convert_short4_rtp(char4);
2523short4 __ovld __cnfn convert_short4_sat_rtp(char4);
2524short4 __ovld __cnfn convert_short4_rtn(char4);
2525short4 __ovld __cnfn convert_short4_sat_rtn(char4);
2526short4 __ovld __cnfn convert_short4(char4);
2527short4 __ovld __cnfn convert_short4_sat(char4);
2528short4 __ovld __cnfn convert_short4_rte(uchar4);
2529short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
2530short4 __ovld __cnfn convert_short4_rtz(uchar4);
2531short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
2532short4 __ovld __cnfn convert_short4_rtp(uchar4);
2533short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
2534short4 __ovld __cnfn convert_short4_rtn(uchar4);
2535short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
2536short4 __ovld __cnfn convert_short4(uchar4);
2537short4 __ovld __cnfn convert_short4_sat(uchar4);
2538short4 __ovld __cnfn convert_short4_rte(short4);
2539short4 __ovld __cnfn convert_short4_sat_rte(short4);
2540short4 __ovld __cnfn convert_short4_rtz(short4);
2541short4 __ovld __cnfn convert_short4_sat_rtz(short4);
2542short4 __ovld __cnfn convert_short4_rtp(short4);
2543short4 __ovld __cnfn convert_short4_sat_rtp(short4);
2544short4 __ovld __cnfn convert_short4_rtn(short4);
2545short4 __ovld __cnfn convert_short4_sat_rtn(short4);
2546short4 __ovld __cnfn convert_short4(short4);
2547short4 __ovld __cnfn convert_short4_sat(short4);
2548short4 __ovld __cnfn convert_short4_rte(ushort4);
2549short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
2550short4 __ovld __cnfn convert_short4_rtz(ushort4);
2551short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
2552short4 __ovld __cnfn convert_short4_rtp(ushort4);
2553short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
2554short4 __ovld __cnfn convert_short4_rtn(ushort4);
2555short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
2556short4 __ovld __cnfn convert_short4(ushort4);
2557short4 __ovld __cnfn convert_short4_sat(ushort4);
2558short4 __ovld __cnfn convert_short4_rte(int4);
2559short4 __ovld __cnfn convert_short4_sat_rte(int4);
2560short4 __ovld __cnfn convert_short4_rtz(int4);
2561short4 __ovld __cnfn convert_short4_sat_rtz(int4);
2562short4 __ovld __cnfn convert_short4_rtp(int4);
2563short4 __ovld __cnfn convert_short4_sat_rtp(int4);
2564short4 __ovld __cnfn convert_short4_rtn(int4);
2565short4 __ovld __cnfn convert_short4_sat_rtn(int4);
2566short4 __ovld __cnfn convert_short4(int4);
2567short4 __ovld __cnfn convert_short4_sat(int4);
2568short4 __ovld __cnfn convert_short4_rte(uint4);
2569short4 __ovld __cnfn convert_short4_sat_rte(uint4);
2570short4 __ovld __cnfn convert_short4_rtz(uint4);
2571short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
2572short4 __ovld __cnfn convert_short4_rtp(uint4);
2573short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
2574short4 __ovld __cnfn convert_short4_rtn(uint4);
2575short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
2576short4 __ovld __cnfn convert_short4(uint4);
2577short4 __ovld __cnfn convert_short4_sat(uint4);
2578short4 __ovld __cnfn convert_short4_rte(long4);
2579short4 __ovld __cnfn convert_short4_sat_rte(long4);
2580short4 __ovld __cnfn convert_short4_rtz(long4);
2581short4 __ovld __cnfn convert_short4_sat_rtz(long4);
2582short4 __ovld __cnfn convert_short4_rtp(long4);
2583short4 __ovld __cnfn convert_short4_sat_rtp(long4);
2584short4 __ovld __cnfn convert_short4_rtn(long4);
2585short4 __ovld __cnfn convert_short4_sat_rtn(long4);
2586short4 __ovld __cnfn convert_short4(long4);
2587short4 __ovld __cnfn convert_short4_sat(long4);
2588short4 __ovld __cnfn convert_short4_rte(ulong4);
2589short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
2590short4 __ovld __cnfn convert_short4_rtz(ulong4);
2591short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
2592short4 __ovld __cnfn convert_short4_rtp(ulong4);
2593short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
2594short4 __ovld __cnfn convert_short4_rtn(ulong4);
2595short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
2596short4 __ovld __cnfn convert_short4(ulong4);
2597short4 __ovld __cnfn convert_short4_sat(ulong4);
2598short4 __ovld __cnfn convert_short4_rte(float4);
2599short4 __ovld __cnfn convert_short4_sat_rte(float4);
2600short4 __ovld __cnfn convert_short4_rtz(float4);
2601short4 __ovld __cnfn convert_short4_sat_rtz(float4);
2602short4 __ovld __cnfn convert_short4_rtp(float4);
2603short4 __ovld __cnfn convert_short4_sat_rtp(float4);
2604short4 __ovld __cnfn convert_short4_rtn(float4);
2605short4 __ovld __cnfn convert_short4_sat_rtn(float4);
2606short4 __ovld __cnfn convert_short4(float4);
2607short4 __ovld __cnfn convert_short4_sat(float4);
2608ushort4 __ovld __cnfn convert_ushort4_rte(char4);
2609ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
2610ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
2611ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
2612ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
2613ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
2614ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
2615ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
2616ushort4 __ovld __cnfn convert_ushort4(char4);
2617ushort4 __ovld __cnfn convert_ushort4_sat(char4);
2618ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
2619ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
2620ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
2621ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
2622ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
2623ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
2624ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
2625ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
2626ushort4 __ovld __cnfn convert_ushort4(uchar4);
2627ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
2628ushort4 __ovld __cnfn convert_ushort4_rte(short4);
2629ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
2630ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
2631ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
2632ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
2633ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
2634ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
2635ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
2636ushort4 __ovld __cnfn convert_ushort4(short4);
2637ushort4 __ovld __cnfn convert_ushort4_sat(short4);
2638ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
2639ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
2640ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
2641ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
2642ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
2643ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
2644ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
2645ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
2646ushort4 __ovld __cnfn convert_ushort4(ushort4);
2647ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
2648ushort4 __ovld __cnfn convert_ushort4_rte(int4);
2649ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
2650ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
2651ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
2652ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
2653ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
2654ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
2655ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
2656ushort4 __ovld __cnfn convert_ushort4(int4);
2657ushort4 __ovld __cnfn convert_ushort4_sat(int4);
2658ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
2659ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
2660ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
2661ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
2662ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
2663ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
2664ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
2665ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
2666ushort4 __ovld __cnfn convert_ushort4(uint4);
2667ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
2668ushort4 __ovld __cnfn convert_ushort4_rte(long4);
2669ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
2670ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
2671ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
2672ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
2673ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
2674ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
2675ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
2676ushort4 __ovld __cnfn convert_ushort4(long4);
2677ushort4 __ovld __cnfn convert_ushort4_sat(long4);
2678ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
2679ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
2680ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
2681ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
2682ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
2683ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
2684ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
2685ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
2686ushort4 __ovld __cnfn convert_ushort4(ulong4);
2687ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
2688ushort4 __ovld __cnfn convert_ushort4_rte(float4);
2689ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
2690ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
2691ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
2692ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
2693ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
2694ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
2695ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
2696ushort4 __ovld __cnfn convert_ushort4(float4);
2697ushort4 __ovld __cnfn convert_ushort4_sat(float4);
2698int4 __ovld __cnfn convert_int4_rte(char4);
2699int4 __ovld __cnfn convert_int4_sat_rte(char4);
2700int4 __ovld __cnfn convert_int4_rtz(char4);
2701int4 __ovld __cnfn convert_int4_sat_rtz(char4);
2702int4 __ovld __cnfn convert_int4_rtp(char4);
2703int4 __ovld __cnfn convert_int4_sat_rtp(char4);
2704int4 __ovld __cnfn convert_int4_rtn(char4);
2705int4 __ovld __cnfn convert_int4_sat_rtn(char4);
2706int4 __ovld __cnfn convert_int4(char4);
2707int4 __ovld __cnfn convert_int4_sat(char4);
2708int4 __ovld __cnfn convert_int4_rte(uchar4);
2709int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
2710int4 __ovld __cnfn convert_int4_rtz(uchar4);
2711int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
2712int4 __ovld __cnfn convert_int4_rtp(uchar4);
2713int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
2714int4 __ovld __cnfn convert_int4_rtn(uchar4);
2715int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
2716int4 __ovld __cnfn convert_int4(uchar4);
2717int4 __ovld __cnfn convert_int4_sat(uchar4);
2718int4 __ovld __cnfn convert_int4_rte(short4);
2719int4 __ovld __cnfn convert_int4_sat_rte(short4);
2720int4 __ovld __cnfn convert_int4_rtz(short4);
2721int4 __ovld __cnfn convert_int4_sat_rtz(short4);
2722int4 __ovld __cnfn convert_int4_rtp(short4);
2723int4 __ovld __cnfn convert_int4_sat_rtp(short4);
2724int4 __ovld __cnfn convert_int4_rtn(short4);
2725int4 __ovld __cnfn convert_int4_sat_rtn(short4);
2726int4 __ovld __cnfn convert_int4(short4);
2727int4 __ovld __cnfn convert_int4_sat(short4);
2728int4 __ovld __cnfn convert_int4_rte(ushort4);
2729int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
2730int4 __ovld __cnfn convert_int4_rtz(ushort4);
2731int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
2732int4 __ovld __cnfn convert_int4_rtp(ushort4);
2733int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
2734int4 __ovld __cnfn convert_int4_rtn(ushort4);
2735int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
2736int4 __ovld __cnfn convert_int4(ushort4);
2737int4 __ovld __cnfn convert_int4_sat(ushort4);
2738int4 __ovld __cnfn convert_int4_rte(int4);
2739int4 __ovld __cnfn convert_int4_sat_rte(int4);
2740int4 __ovld __cnfn convert_int4_rtz(int4);
2741int4 __ovld __cnfn convert_int4_sat_rtz(int4);
2742int4 __ovld __cnfn convert_int4_rtp(int4);
2743int4 __ovld __cnfn convert_int4_sat_rtp(int4);
2744int4 __ovld __cnfn convert_int4_rtn(int4);
2745int4 __ovld __cnfn convert_int4_sat_rtn(int4);
2746int4 __ovld __cnfn convert_int4(int4);
2747int4 __ovld __cnfn convert_int4_sat(int4);
2748int4 __ovld __cnfn convert_int4_rte(uint4);
2749int4 __ovld __cnfn convert_int4_sat_rte(uint4);
2750int4 __ovld __cnfn convert_int4_rtz(uint4);
2751int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
2752int4 __ovld __cnfn convert_int4_rtp(uint4);
2753int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
2754int4 __ovld __cnfn convert_int4_rtn(uint4);
2755int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
2756int4 __ovld __cnfn convert_int4(uint4);
2757int4 __ovld __cnfn convert_int4_sat(uint4);
2758int4 __ovld __cnfn convert_int4_rte(long4);
2759int4 __ovld __cnfn convert_int4_sat_rte(long4);
2760int4 __ovld __cnfn convert_int4_rtz(long4);
2761int4 __ovld __cnfn convert_int4_sat_rtz(long4);
2762int4 __ovld __cnfn convert_int4_rtp(long4);
2763int4 __ovld __cnfn convert_int4_sat_rtp(long4);
2764int4 __ovld __cnfn convert_int4_rtn(long4);
2765int4 __ovld __cnfn convert_int4_sat_rtn(long4);
2766int4 __ovld __cnfn convert_int4(long4);
2767int4 __ovld __cnfn convert_int4_sat(long4);
2768int4 __ovld __cnfn convert_int4_rte(ulong4);
2769int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
2770int4 __ovld __cnfn convert_int4_rtz(ulong4);
2771int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
2772int4 __ovld __cnfn convert_int4_rtp(ulong4);
2773int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
2774int4 __ovld __cnfn convert_int4_rtn(ulong4);
2775int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
2776int4 __ovld __cnfn convert_int4(ulong4);
2777int4 __ovld __cnfn convert_int4_sat(ulong4);
2778int4 __ovld __cnfn convert_int4_rte(float4);
2779int4 __ovld __cnfn convert_int4_sat_rte(float4);
2780int4 __ovld __cnfn convert_int4_rtz(float4);
2781int4 __ovld __cnfn convert_int4_sat_rtz(float4);
2782int4 __ovld __cnfn convert_int4_rtp(float4);
2783int4 __ovld __cnfn convert_int4_sat_rtp(float4);
2784int4 __ovld __cnfn convert_int4_rtn(float4);
2785int4 __ovld __cnfn convert_int4_sat_rtn(float4);
2786int4 __ovld __cnfn convert_int4(float4);
2787int4 __ovld __cnfn convert_int4_sat(float4);
2788uint4 __ovld __cnfn convert_uint4_rte(char4);
2789uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
2790uint4 __ovld __cnfn convert_uint4_rtz(char4);
2791uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
2792uint4 __ovld __cnfn convert_uint4_rtp(char4);
2793uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
2794uint4 __ovld __cnfn convert_uint4_rtn(char4);
2795uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
2796uint4 __ovld __cnfn convert_uint4(char4);
2797uint4 __ovld __cnfn convert_uint4_sat(char4);
2798uint4 __ovld __cnfn convert_uint4_rte(uchar4);
2799uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
2800uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
2801uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
2802uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
2803uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
2804uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
2805uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
2806uint4 __ovld __cnfn convert_uint4(uchar4);
2807uint4 __ovld __cnfn convert_uint4_sat(uchar4);
2808uint4 __ovld __cnfn convert_uint4_rte(short4);
2809uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
2810uint4 __ovld __cnfn convert_uint4_rtz(short4);
2811uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
2812uint4 __ovld __cnfn convert_uint4_rtp(short4);
2813uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
2814uint4 __ovld __cnfn convert_uint4_rtn(short4);
2815uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
2816uint4 __ovld __cnfn convert_uint4(short4);
2817uint4 __ovld __cnfn convert_uint4_sat(short4);
2818uint4 __ovld __cnfn convert_uint4_rte(ushort4);
2819uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
2820uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
2821uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
2822uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
2823uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
2824uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
2825uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
2826uint4 __ovld __cnfn convert_uint4(ushort4);
2827uint4 __ovld __cnfn convert_uint4_sat(ushort4);
2828uint4 __ovld __cnfn convert_uint4_rte(int4);
2829uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
2830uint4 __ovld __cnfn convert_uint4_rtz(int4);
2831uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
2832uint4 __ovld __cnfn convert_uint4_rtp(int4);
2833uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
2834uint4 __ovld __cnfn convert_uint4_rtn(int4);
2835uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
2836uint4 __ovld __cnfn convert_uint4(int4);
2837uint4 __ovld __cnfn convert_uint4_sat(int4);
2838uint4 __ovld __cnfn convert_uint4_rte(uint4);
2839uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
2840uint4 __ovld __cnfn convert_uint4_rtz(uint4);
2841uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
2842uint4 __ovld __cnfn convert_uint4_rtp(uint4);
2843uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
2844uint4 __ovld __cnfn convert_uint4_rtn(uint4);
2845uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
2846uint4 __ovld __cnfn convert_uint4(uint4);
2847uint4 __ovld __cnfn convert_uint4_sat(uint4);
2848uint4 __ovld __cnfn convert_uint4_rte(long4);
2849uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
2850uint4 __ovld __cnfn convert_uint4_rtz(long4);
2851uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
2852uint4 __ovld __cnfn convert_uint4_rtp(long4);
2853uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
2854uint4 __ovld __cnfn convert_uint4_rtn(long4);
2855uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
2856uint4 __ovld __cnfn convert_uint4(long4);
2857uint4 __ovld __cnfn convert_uint4_sat(long4);
2858uint4 __ovld __cnfn convert_uint4_rte(ulong4);
2859uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
2860uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
2861uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
2862uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
2863uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
2864uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
2865uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
2866uint4 __ovld __cnfn convert_uint4(ulong4);
2867uint4 __ovld __cnfn convert_uint4_sat(ulong4);
2868uint4 __ovld __cnfn convert_uint4_rte(float4);
2869uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
2870uint4 __ovld __cnfn convert_uint4_rtz(float4);
2871uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
2872uint4 __ovld __cnfn convert_uint4_rtp(float4);
2873uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
2874uint4 __ovld __cnfn convert_uint4_rtn(float4);
2875uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
2876uint4 __ovld __cnfn convert_uint4(float4);
2877uint4 __ovld __cnfn convert_uint4_sat(float4);
2878long4 __ovld __cnfn convert_long4_rte(char4);
2879long4 __ovld __cnfn convert_long4_sat_rte(char4);
2880long4 __ovld __cnfn convert_long4_rtz(char4);
2881long4 __ovld __cnfn convert_long4_sat_rtz(char4);
2882long4 __ovld __cnfn convert_long4_rtp(char4);
2883long4 __ovld __cnfn convert_long4_sat_rtp(char4);
2884long4 __ovld __cnfn convert_long4_rtn(char4);
2885long4 __ovld __cnfn convert_long4_sat_rtn(char4);
2886long4 __ovld __cnfn convert_long4(char4);
2887long4 __ovld __cnfn convert_long4_sat(char4);
2888long4 __ovld __cnfn convert_long4_rte(uchar4);
2889long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
2890long4 __ovld __cnfn convert_long4_rtz(uchar4);
2891long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
2892long4 __ovld __cnfn convert_long4_rtp(uchar4);
2893long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
2894long4 __ovld __cnfn convert_long4_rtn(uchar4);
2895long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
2896long4 __ovld __cnfn convert_long4(uchar4);
2897long4 __ovld __cnfn convert_long4_sat(uchar4);
2898long4 __ovld __cnfn convert_long4_rte(short4);
2899long4 __ovld __cnfn convert_long4_sat_rte(short4);
2900long4 __ovld __cnfn convert_long4_rtz(short4);
2901long4 __ovld __cnfn convert_long4_sat_rtz(short4);
2902long4 __ovld __cnfn convert_long4_rtp(short4);
2903long4 __ovld __cnfn convert_long4_sat_rtp(short4);
2904long4 __ovld __cnfn convert_long4_rtn(short4);
2905long4 __ovld __cnfn convert_long4_sat_rtn(short4);
2906long4 __ovld __cnfn convert_long4(short4);
2907long4 __ovld __cnfn convert_long4_sat(short4);
2908long4 __ovld __cnfn convert_long4_rte(ushort4);
2909long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
2910long4 __ovld __cnfn convert_long4_rtz(ushort4);
2911long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
2912long4 __ovld __cnfn convert_long4_rtp(ushort4);
2913long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
2914long4 __ovld __cnfn convert_long4_rtn(ushort4);
2915long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
2916long4 __ovld __cnfn convert_long4(ushort4);
2917long4 __ovld __cnfn convert_long4_sat(ushort4);
2918long4 __ovld __cnfn convert_long4_rte(int4);
2919long4 __ovld __cnfn convert_long4_sat_rte(int4);
2920long4 __ovld __cnfn convert_long4_rtz(int4);
2921long4 __ovld __cnfn convert_long4_sat_rtz(int4);
2922long4 __ovld __cnfn convert_long4_rtp(int4);
2923long4 __ovld __cnfn convert_long4_sat_rtp(int4);
2924long4 __ovld __cnfn convert_long4_rtn(int4);
2925long4 __ovld __cnfn convert_long4_sat_rtn(int4);
2926long4 __ovld __cnfn convert_long4(int4);
2927long4 __ovld __cnfn convert_long4_sat(int4);
2928long4 __ovld __cnfn convert_long4_rte(uint4);
2929long4 __ovld __cnfn convert_long4_sat_rte(uint4);
2930long4 __ovld __cnfn convert_long4_rtz(uint4);
2931long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
2932long4 __ovld __cnfn convert_long4_rtp(uint4);
2933long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
2934long4 __ovld __cnfn convert_long4_rtn(uint4);
2935long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
2936long4 __ovld __cnfn convert_long4(uint4);
2937long4 __ovld __cnfn convert_long4_sat(uint4);
2938long4 __ovld __cnfn convert_long4_rte(long4);
2939long4 __ovld __cnfn convert_long4_sat_rte(long4);
2940long4 __ovld __cnfn convert_long4_rtz(long4);
2941long4 __ovld __cnfn convert_long4_sat_rtz(long4);
2942long4 __ovld __cnfn convert_long4_rtp(long4);
2943long4 __ovld __cnfn convert_long4_sat_rtp(long4);
2944long4 __ovld __cnfn convert_long4_rtn(long4);
2945long4 __ovld __cnfn convert_long4_sat_rtn(long4);
2946long4 __ovld __cnfn convert_long4(long4);
2947long4 __ovld __cnfn convert_long4_sat(long4);
2948long4 __ovld __cnfn convert_long4_rte(ulong4);
2949long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
2950long4 __ovld __cnfn convert_long4_rtz(ulong4);
2951long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
2952long4 __ovld __cnfn convert_long4_rtp(ulong4);
2953long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
2954long4 __ovld __cnfn convert_long4_rtn(ulong4);
2955long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
2956long4 __ovld __cnfn convert_long4(ulong4);
2957long4 __ovld __cnfn convert_long4_sat(ulong4);
2958long4 __ovld __cnfn convert_long4_rte(float4);
2959long4 __ovld __cnfn convert_long4_sat_rte(float4);
2960long4 __ovld __cnfn convert_long4_rtz(float4);
2961long4 __ovld __cnfn convert_long4_sat_rtz(float4);
2962long4 __ovld __cnfn convert_long4_rtp(float4);
2963long4 __ovld __cnfn convert_long4_sat_rtp(float4);
2964long4 __ovld __cnfn convert_long4_rtn(float4);
2965long4 __ovld __cnfn convert_long4_sat_rtn(float4);
2966long4 __ovld __cnfn convert_long4(float4);
2967long4 __ovld __cnfn convert_long4_sat(float4);
2968ulong4 __ovld __cnfn convert_ulong4_rte(char4);
2969ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
2970ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
2971ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
2972ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
2973ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
2974ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
2975ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
2976ulong4 __ovld __cnfn convert_ulong4(char4);
2977ulong4 __ovld __cnfn convert_ulong4_sat(char4);
2978ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
2979ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
2980ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
2981ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
2982ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
2983ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
2984ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
2985ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
2986ulong4 __ovld __cnfn convert_ulong4(uchar4);
2987ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
2988ulong4 __ovld __cnfn convert_ulong4_rte(short4);
2989ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
2990ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
2991ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
2992ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
2993ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
2994ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
2995ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
2996ulong4 __ovld __cnfn convert_ulong4(short4);
2997ulong4 __ovld __cnfn convert_ulong4_sat(short4);
2998ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
2999ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
3000ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
3001ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
3002ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
3003ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
3004ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
3005ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
3006ulong4 __ovld __cnfn convert_ulong4(ushort4);
3007ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
3008ulong4 __ovld __cnfn convert_ulong4_rte(int4);
3009ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
3010ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
3011ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
3012ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
3013ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
3014ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
3015ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
3016ulong4 __ovld __cnfn convert_ulong4(int4);
3017ulong4 __ovld __cnfn convert_ulong4_sat(int4);
3018ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
3019ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
3020ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
3021ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
3022ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
3023ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
3024ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
3025ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
3026ulong4 __ovld __cnfn convert_ulong4(uint4);
3027ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
3028ulong4 __ovld __cnfn convert_ulong4_rte(long4);
3029ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
3030ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
3031ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
3032ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
3033ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
3034ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
3035ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
3036ulong4 __ovld __cnfn convert_ulong4(long4);
3037ulong4 __ovld __cnfn convert_ulong4_sat(long4);
3038ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
3039ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
3040ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
3041ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
3042ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
3043ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
3044ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
3045ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
3046ulong4 __ovld __cnfn convert_ulong4(ulong4);
3047ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
3048ulong4 __ovld __cnfn convert_ulong4_rte(float4);
3049ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
3050ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
3051ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
3052ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
3053ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
3054ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
3055ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
3056ulong4 __ovld __cnfn convert_ulong4(float4);
3057ulong4 __ovld __cnfn convert_ulong4_sat(float4);
3058float4 __ovld __cnfn convert_float4_rte(char4);
3059float4 __ovld __cnfn convert_float4_rtz(char4);
3060float4 __ovld __cnfn convert_float4_rtp(char4);
3061float4 __ovld __cnfn convert_float4_rtn(char4);
3062float4 __ovld __cnfn convert_float4(char4);
3063float4 __ovld __cnfn convert_float4_rte(uchar4);
3064float4 __ovld __cnfn convert_float4_rtz(uchar4);
3065float4 __ovld __cnfn convert_float4_rtp(uchar4);
3066float4 __ovld __cnfn convert_float4_rtn(uchar4);
3067float4 __ovld __cnfn convert_float4(uchar4);
3068float4 __ovld __cnfn convert_float4_rte(short4);
3069float4 __ovld __cnfn convert_float4_rtz(short4);
3070float4 __ovld __cnfn convert_float4_rtp(short4);
3071float4 __ovld __cnfn convert_float4_rtn(short4);
3072float4 __ovld __cnfn convert_float4(short4);
3073float4 __ovld __cnfn convert_float4_rte(ushort4);
3074float4 __ovld __cnfn convert_float4_rtz(ushort4);
3075float4 __ovld __cnfn convert_float4_rtp(ushort4);
3076float4 __ovld __cnfn convert_float4_rtn(ushort4);
3077float4 __ovld __cnfn convert_float4(ushort4);
3078float4 __ovld __cnfn convert_float4_rte(int4);
3079float4 __ovld __cnfn convert_float4_rtz(int4);
3080float4 __ovld __cnfn convert_float4_rtp(int4);
3081float4 __ovld __cnfn convert_float4_rtn(int4);
3082float4 __ovld __cnfn convert_float4(int4);
3083float4 __ovld __cnfn convert_float4_rte(uint4);
3084float4 __ovld __cnfn convert_float4_rtz(uint4);
3085float4 __ovld __cnfn convert_float4_rtp(uint4);
3086float4 __ovld __cnfn convert_float4_rtn(uint4);
3087float4 __ovld __cnfn convert_float4(uint4);
3088float4 __ovld __cnfn convert_float4_rte(long4);
3089float4 __ovld __cnfn convert_float4_rtz(long4);
3090float4 __ovld __cnfn convert_float4_rtp(long4);
3091float4 __ovld __cnfn convert_float4_rtn(long4);
3092float4 __ovld __cnfn convert_float4(long4);
3093float4 __ovld __cnfn convert_float4_rte(ulong4);
3094float4 __ovld __cnfn convert_float4_rtz(ulong4);
3095float4 __ovld __cnfn convert_float4_rtp(ulong4);
3096float4 __ovld __cnfn convert_float4_rtn(ulong4);
3097float4 __ovld __cnfn convert_float4(ulong4);
3098float4 __ovld __cnfn convert_float4_rte(float4);
3099float4 __ovld __cnfn convert_float4_rtz(float4);
3100float4 __ovld __cnfn convert_float4_rtp(float4);
3101float4 __ovld __cnfn convert_float4_rtn(float4);
3102float4 __ovld __cnfn convert_float4(float4);
3103char8 __ovld __cnfn convert_char8_rte(char8);
3104char8 __ovld __cnfn convert_char8_sat_rte(char8);
3105char8 __ovld __cnfn convert_char8_rtz(char8);
3106char8 __ovld __cnfn convert_char8_sat_rtz(char8);
3107char8 __ovld __cnfn convert_char8_rtp(char8);
3108char8 __ovld __cnfn convert_char8_sat_rtp(char8);
3109char8 __ovld __cnfn convert_char8_rtn(char8);
3110char8 __ovld __cnfn convert_char8_sat_rtn(char8);
3111char8 __ovld __cnfn convert_char8(char8);
3112char8 __ovld __cnfn convert_char8_sat(char8);
3113char8 __ovld __cnfn convert_char8_rte(uchar8);
3114char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
3115char8 __ovld __cnfn convert_char8_rtz(uchar8);
3116char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
3117char8 __ovld __cnfn convert_char8_rtp(uchar8);
3118char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
3119char8 __ovld __cnfn convert_char8_rtn(uchar8);
3120char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
3121char8 __ovld __cnfn convert_char8(uchar8);
3122char8 __ovld __cnfn convert_char8_sat(uchar8);
3123char8 __ovld __cnfn convert_char8_rte(short8);
3124char8 __ovld __cnfn convert_char8_sat_rte(short8);
3125char8 __ovld __cnfn convert_char8_rtz(short8);
3126char8 __ovld __cnfn convert_char8_sat_rtz(short8);
3127char8 __ovld __cnfn convert_char8_rtp(short8);
3128char8 __ovld __cnfn convert_char8_sat_rtp(short8);
3129char8 __ovld __cnfn convert_char8_rtn(short8);
3130char8 __ovld __cnfn convert_char8_sat_rtn(short8);
3131char8 __ovld __cnfn convert_char8(short8);
3132char8 __ovld __cnfn convert_char8_sat(short8);
3133char8 __ovld __cnfn convert_char8_rte(ushort8);
3134char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
3135char8 __ovld __cnfn convert_char8_rtz(ushort8);
3136char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
3137char8 __ovld __cnfn convert_char8_rtp(ushort8);
3138char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
3139char8 __ovld __cnfn convert_char8_rtn(ushort8);
3140char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
3141char8 __ovld __cnfn convert_char8(ushort8);
3142char8 __ovld __cnfn convert_char8_sat(ushort8);
3143char8 __ovld __cnfn convert_char8_rte(int8);
3144char8 __ovld __cnfn convert_char8_sat_rte(int8);
3145char8 __ovld __cnfn convert_char8_rtz(int8);
3146char8 __ovld __cnfn convert_char8_sat_rtz(int8);
3147char8 __ovld __cnfn convert_char8_rtp(int8);
3148char8 __ovld __cnfn convert_char8_sat_rtp(int8);
3149char8 __ovld __cnfn convert_char8_rtn(int8);
3150char8 __ovld __cnfn convert_char8_sat_rtn(int8);
3151char8 __ovld __cnfn convert_char8(int8);
3152char8 __ovld __cnfn convert_char8_sat(int8);
3153char8 __ovld __cnfn convert_char8_rte(uint8);
3154char8 __ovld __cnfn convert_char8_sat_rte(uint8);
3155char8 __ovld __cnfn convert_char8_rtz(uint8);
3156char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
3157char8 __ovld __cnfn convert_char8_rtp(uint8);
3158char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
3159char8 __ovld __cnfn convert_char8_rtn(uint8);
3160char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
3161char8 __ovld __cnfn convert_char8(uint8);
3162char8 __ovld __cnfn convert_char8_sat(uint8);
3163char8 __ovld __cnfn convert_char8_rte(long8);
3164char8 __ovld __cnfn convert_char8_sat_rte(long8);
3165char8 __ovld __cnfn convert_char8_rtz(long8);
3166char8 __ovld __cnfn convert_char8_sat_rtz(long8);
3167char8 __ovld __cnfn convert_char8_rtp(long8);
3168char8 __ovld __cnfn convert_char8_sat_rtp(long8);
3169char8 __ovld __cnfn convert_char8_rtn(long8);
3170char8 __ovld __cnfn convert_char8_sat_rtn(long8);
3171char8 __ovld __cnfn convert_char8(long8);
3172char8 __ovld __cnfn convert_char8_sat(long8);
3173char8 __ovld __cnfn convert_char8_rte(ulong8);
3174char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
3175char8 __ovld __cnfn convert_char8_rtz(ulong8);
3176char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
3177char8 __ovld __cnfn convert_char8_rtp(ulong8);
3178char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
3179char8 __ovld __cnfn convert_char8_rtn(ulong8);
3180char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
3181char8 __ovld __cnfn convert_char8(ulong8);
3182char8 __ovld __cnfn convert_char8_sat(ulong8);
3183char8 __ovld __cnfn convert_char8_rte(float8);
3184char8 __ovld __cnfn convert_char8_sat_rte(float8);
3185char8 __ovld __cnfn convert_char8_rtz(float8);
3186char8 __ovld __cnfn convert_char8_sat_rtz(float8);
3187char8 __ovld __cnfn convert_char8_rtp(float8);
3188char8 __ovld __cnfn convert_char8_sat_rtp(float8);
3189char8 __ovld __cnfn convert_char8_rtn(float8);
3190char8 __ovld __cnfn convert_char8_sat_rtn(float8);
3191char8 __ovld __cnfn convert_char8(float8);
3192char8 __ovld __cnfn convert_char8_sat(float8);
3193uchar8 __ovld __cnfn convert_uchar8_rte(char8);
3194uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
3195uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
3196uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
3197uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
3198uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
3199uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
3200uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
3201uchar8 __ovld __cnfn convert_uchar8(char8);
3202uchar8 __ovld __cnfn convert_uchar8_sat(char8);
3203uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
3204uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
3205uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
3206uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
3207uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
3208uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
3209uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
3210uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
3211uchar8 __ovld __cnfn convert_uchar8(uchar8);
3212uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
3213uchar8 __ovld __cnfn convert_uchar8_rte(short8);
3214uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
3215uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
3216uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
3217uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
3218uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
3219uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
3220uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
3221uchar8 __ovld __cnfn convert_uchar8(short8);
3222uchar8 __ovld __cnfn convert_uchar8_sat(short8);
3223uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
3224uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
3225uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
3226uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
3227uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
3228uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
3229uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
3230uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
3231uchar8 __ovld __cnfn convert_uchar8(ushort8);
3232uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
3233uchar8 __ovld __cnfn convert_uchar8_rte(int8);
3234uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
3235uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
3236uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
3237uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
3238uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
3239uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
3240uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
3241uchar8 __ovld __cnfn convert_uchar8(int8);
3242uchar8 __ovld __cnfn convert_uchar8_sat(int8);
3243uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
3244uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
3245uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
3246uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
3247uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
3248uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
3249uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
3250uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
3251uchar8 __ovld __cnfn convert_uchar8(uint8);
3252uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
3253uchar8 __ovld __cnfn convert_uchar8_rte(long8);
3254uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
3255uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
3256uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
3257uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
3258uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
3259uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
3260uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
3261uchar8 __ovld __cnfn convert_uchar8(long8);
3262uchar8 __ovld __cnfn convert_uchar8_sat(long8);
3263uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
3264uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
3265uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
3266uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
3267uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
3268uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
3269uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
3270uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
3271uchar8 __ovld __cnfn convert_uchar8(ulong8);
3272uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
3273uchar8 __ovld __cnfn convert_uchar8_rte(float8);
3274uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
3275uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
3276uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
3277uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
3278uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
3279uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
3280uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
3281uchar8 __ovld __cnfn convert_uchar8(float8);
3282uchar8 __ovld __cnfn convert_uchar8_sat(float8);
3283short8 __ovld __cnfn convert_short8_rte(char8);
3284short8 __ovld __cnfn convert_short8_sat_rte(char8);
3285short8 __ovld __cnfn convert_short8_rtz(char8);
3286short8 __ovld __cnfn convert_short8_sat_rtz(char8);
3287short8 __ovld __cnfn convert_short8_rtp(char8);
3288short8 __ovld __cnfn convert_short8_sat_rtp(char8);
3289short8 __ovld __cnfn convert_short8_rtn(char8);
3290short8 __ovld __cnfn convert_short8_sat_rtn(char8);
3291short8 __ovld __cnfn convert_short8(char8);
3292short8 __ovld __cnfn convert_short8_sat(char8);
3293short8 __ovld __cnfn convert_short8_rte(uchar8);
3294short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
3295short8 __ovld __cnfn convert_short8_rtz(uchar8);
3296short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
3297short8 __ovld __cnfn convert_short8_rtp(uchar8);
3298short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
3299short8 __ovld __cnfn convert_short8_rtn(uchar8);
3300short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
3301short8 __ovld __cnfn convert_short8(uchar8);
3302short8 __ovld __cnfn convert_short8_sat(uchar8);
3303short8 __ovld __cnfn convert_short8_rte(short8);
3304short8 __ovld __cnfn convert_short8_sat_rte(short8);
3305short8 __ovld __cnfn convert_short8_rtz(short8);
3306short8 __ovld __cnfn convert_short8_sat_rtz(short8);
3307short8 __ovld __cnfn convert_short8_rtp(short8);
3308short8 __ovld __cnfn convert_short8_sat_rtp(short8);
3309short8 __ovld __cnfn convert_short8_rtn(short8);
3310short8 __ovld __cnfn convert_short8_sat_rtn(short8);
3311short8 __ovld __cnfn convert_short8(short8);
3312short8 __ovld __cnfn convert_short8_sat(short8);
3313short8 __ovld __cnfn convert_short8_rte(ushort8);
3314short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
3315short8 __ovld __cnfn convert_short8_rtz(ushort8);
3316short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
3317short8 __ovld __cnfn convert_short8_rtp(ushort8);
3318short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
3319short8 __ovld __cnfn convert_short8_rtn(ushort8);
3320short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
3321short8 __ovld __cnfn convert_short8(ushort8);
3322short8 __ovld __cnfn convert_short8_sat(ushort8);
3323short8 __ovld __cnfn convert_short8_rte(int8);
3324short8 __ovld __cnfn convert_short8_sat_rte(int8);
3325short8 __ovld __cnfn convert_short8_rtz(int8);
3326short8 __ovld __cnfn convert_short8_sat_rtz(int8);
3327short8 __ovld __cnfn convert_short8_rtp(int8);
3328short8 __ovld __cnfn convert_short8_sat_rtp(int8);
3329short8 __ovld __cnfn convert_short8_rtn(int8);
3330short8 __ovld __cnfn convert_short8_sat_rtn(int8);
3331short8 __ovld __cnfn convert_short8(int8);
3332short8 __ovld __cnfn convert_short8_sat(int8);
3333short8 __ovld __cnfn convert_short8_rte(uint8);
3334short8 __ovld __cnfn convert_short8_sat_rte(uint8);
3335short8 __ovld __cnfn convert_short8_rtz(uint8);
3336short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
3337short8 __ovld __cnfn convert_short8_rtp(uint8);
3338short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
3339short8 __ovld __cnfn convert_short8_rtn(uint8);
3340short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
3341short8 __ovld __cnfn convert_short8(uint8);
3342short8 __ovld __cnfn convert_short8_sat(uint8);
3343short8 __ovld __cnfn convert_short8_rte(long8);
3344short8 __ovld __cnfn convert_short8_sat_rte(long8);
3345short8 __ovld __cnfn convert_short8_rtz(long8);
3346short8 __ovld __cnfn convert_short8_sat_rtz(long8);
3347short8 __ovld __cnfn convert_short8_rtp(long8);
3348short8 __ovld __cnfn convert_short8_sat_rtp(long8);
3349short8 __ovld __cnfn convert_short8_rtn(long8);
3350short8 __ovld __cnfn convert_short8_sat_rtn(long8);
3351short8 __ovld __cnfn convert_short8(long8);
3352short8 __ovld __cnfn convert_short8_sat(long8);
3353short8 __ovld __cnfn convert_short8_rte(ulong8);
3354short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
3355short8 __ovld __cnfn convert_short8_rtz(ulong8);
3356short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
3357short8 __ovld __cnfn convert_short8_rtp(ulong8);
3358short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
3359short8 __ovld __cnfn convert_short8_rtn(ulong8);
3360short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
3361short8 __ovld __cnfn convert_short8(ulong8);
3362short8 __ovld __cnfn convert_short8_sat(ulong8);
3363short8 __ovld __cnfn convert_short8_rte(float8);
3364short8 __ovld __cnfn convert_short8_sat_rte(float8);
3365short8 __ovld __cnfn convert_short8_rtz(float8);
3366short8 __ovld __cnfn convert_short8_sat_rtz(float8);
3367short8 __ovld __cnfn convert_short8_rtp(float8);
3368short8 __ovld __cnfn convert_short8_sat_rtp(float8);
3369short8 __ovld __cnfn convert_short8_rtn(float8);
3370short8 __ovld __cnfn convert_short8_sat_rtn(float8);
3371short8 __ovld __cnfn convert_short8(float8);
3372short8 __ovld __cnfn convert_short8_sat(float8);
3373ushort8 __ovld __cnfn convert_ushort8_rte(char8);
3374ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
3375ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
3376ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
3377ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
3378ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
3379ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
3380ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
3381ushort8 __ovld __cnfn convert_ushort8(char8);
3382ushort8 __ovld __cnfn convert_ushort8_sat(char8);
3383ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
3384ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
3385ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
3386ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
3387ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
3388ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
3389ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
3390ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
3391ushort8 __ovld __cnfn convert_ushort8(uchar8);
3392ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
3393ushort8 __ovld __cnfn convert_ushort8_rte(short8);
3394ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
3395ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
3396ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
3397ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
3398ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
3399ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
3400ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
3401ushort8 __ovld __cnfn convert_ushort8(short8);
3402ushort8 __ovld __cnfn convert_ushort8_sat(short8);
3403ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
3404ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
3405ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
3406ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
3407ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
3408ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
3409ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
3410ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
3411ushort8 __ovld __cnfn convert_ushort8(ushort8);
3412ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
3413ushort8 __ovld __cnfn convert_ushort8_rte(int8);
3414ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
3415ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
3416ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
3417ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
3418ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
3419ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
3420ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
3421ushort8 __ovld __cnfn convert_ushort8(int8);
3422ushort8 __ovld __cnfn convert_ushort8_sat(int8);
3423ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
3424ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
3425ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
3426ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
3427ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
3428ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
3429ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
3430ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
3431ushort8 __ovld __cnfn convert_ushort8(uint8);
3432ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
3433ushort8 __ovld __cnfn convert_ushort8_rte(long8);
3434ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
3435ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
3436ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
3437ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
3438ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
3439ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
3440ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
3441ushort8 __ovld __cnfn convert_ushort8(long8);
3442ushort8 __ovld __cnfn convert_ushort8_sat(long8);
3443ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
3444ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
3445ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
3446ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
3447ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
3448ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
3449ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
3450ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
3451ushort8 __ovld __cnfn convert_ushort8(ulong8);
3452ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
3453ushort8 __ovld __cnfn convert_ushort8_rte(float8);
3454ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
3455ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
3456ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
3457ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
3458ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
3459ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
3460ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
3461ushort8 __ovld __cnfn convert_ushort8(float8);
3462ushort8 __ovld __cnfn convert_ushort8_sat(float8);
3463int8 __ovld __cnfn convert_int8_rte(char8);
3464int8 __ovld __cnfn convert_int8_sat_rte(char8);
3465int8 __ovld __cnfn convert_int8_rtz(char8);
3466int8 __ovld __cnfn convert_int8_sat_rtz(char8);
3467int8 __ovld __cnfn convert_int8_rtp(char8);
3468int8 __ovld __cnfn convert_int8_sat_rtp(char8);
3469int8 __ovld __cnfn convert_int8_rtn(char8);
3470int8 __ovld __cnfn convert_int8_sat_rtn(char8);
3471int8 __ovld __cnfn convert_int8(char8);
3472int8 __ovld __cnfn convert_int8_sat(char8);
3473int8 __ovld __cnfn convert_int8_rte(uchar8);
3474int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
3475int8 __ovld __cnfn convert_int8_rtz(uchar8);
3476int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
3477int8 __ovld __cnfn convert_int8_rtp(uchar8);
3478int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
3479int8 __ovld __cnfn convert_int8_rtn(uchar8);
3480int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
3481int8 __ovld __cnfn convert_int8(uchar8);
3482int8 __ovld __cnfn convert_int8_sat(uchar8);
3483int8 __ovld __cnfn convert_int8_rte(short8);
3484int8 __ovld __cnfn convert_int8_sat_rte(short8);
3485int8 __ovld __cnfn convert_int8_rtz(short8);
3486int8 __ovld __cnfn convert_int8_sat_rtz(short8);
3487int8 __ovld __cnfn convert_int8_rtp(short8);
3488int8 __ovld __cnfn convert_int8_sat_rtp(short8);
3489int8 __ovld __cnfn convert_int8_rtn(short8);
3490int8 __ovld __cnfn convert_int8_sat_rtn(short8);
3491int8 __ovld __cnfn convert_int8(short8);
3492int8 __ovld __cnfn convert_int8_sat(short8);
3493int8 __ovld __cnfn convert_int8_rte(ushort8);
3494int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
3495int8 __ovld __cnfn convert_int8_rtz(ushort8);
3496int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
3497int8 __ovld __cnfn convert_int8_rtp(ushort8);
3498int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
3499int8 __ovld __cnfn convert_int8_rtn(ushort8);
3500int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
3501int8 __ovld __cnfn convert_int8(ushort8);
3502int8 __ovld __cnfn convert_int8_sat(ushort8);
3503int8 __ovld __cnfn convert_int8_rte(int8);
3504int8 __ovld __cnfn convert_int8_sat_rte(int8);
3505int8 __ovld __cnfn convert_int8_rtz(int8);
3506int8 __ovld __cnfn convert_int8_sat_rtz(int8);
3507int8 __ovld __cnfn convert_int8_rtp(int8);
3508int8 __ovld __cnfn convert_int8_sat_rtp(int8);
3509int8 __ovld __cnfn convert_int8_rtn(int8);
3510int8 __ovld __cnfn convert_int8_sat_rtn(int8);
3511int8 __ovld __cnfn convert_int8(int8);
3512int8 __ovld __cnfn convert_int8_sat(int8);
3513int8 __ovld __cnfn convert_int8_rte(uint8);
3514int8 __ovld __cnfn convert_int8_sat_rte(uint8);
3515int8 __ovld __cnfn convert_int8_rtz(uint8);
3516int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
3517int8 __ovld __cnfn convert_int8_rtp(uint8);
3518int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
3519int8 __ovld __cnfn convert_int8_rtn(uint8);
3520int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
3521int8 __ovld __cnfn convert_int8(uint8);
3522int8 __ovld __cnfn convert_int8_sat(uint8);
3523int8 __ovld __cnfn convert_int8_rte(long8);
3524int8 __ovld __cnfn convert_int8_sat_rte(long8);
3525int8 __ovld __cnfn convert_int8_rtz(long8);
3526int8 __ovld __cnfn convert_int8_sat_rtz(long8);
3527int8 __ovld __cnfn convert_int8_rtp(long8);
3528int8 __ovld __cnfn convert_int8_sat_rtp(long8);
3529int8 __ovld __cnfn convert_int8_rtn(long8);
3530int8 __ovld __cnfn convert_int8_sat_rtn(long8);
3531int8 __ovld __cnfn convert_int8(long8);
3532int8 __ovld __cnfn convert_int8_sat(long8);
3533int8 __ovld __cnfn convert_int8_rte(ulong8);
3534int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
3535int8 __ovld __cnfn convert_int8_rtz(ulong8);
3536int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
3537int8 __ovld __cnfn convert_int8_rtp(ulong8);
3538int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
3539int8 __ovld __cnfn convert_int8_rtn(ulong8);
3540int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
3541int8 __ovld __cnfn convert_int8(ulong8);
3542int8 __ovld __cnfn convert_int8_sat(ulong8);
3543int8 __ovld __cnfn convert_int8_rte(float8);
3544int8 __ovld __cnfn convert_int8_sat_rte(float8);
3545int8 __ovld __cnfn convert_int8_rtz(float8);
3546int8 __ovld __cnfn convert_int8_sat_rtz(float8);
3547int8 __ovld __cnfn convert_int8_rtp(float8);
3548int8 __ovld __cnfn convert_int8_sat_rtp(float8);
3549int8 __ovld __cnfn convert_int8_rtn(float8);
3550int8 __ovld __cnfn convert_int8_sat_rtn(float8);
3551int8 __ovld __cnfn convert_int8(float8);
3552int8 __ovld __cnfn convert_int8_sat(float8);
3553uint8 __ovld __cnfn convert_uint8_rte(char8);
3554uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
3555uint8 __ovld __cnfn convert_uint8_rtz(char8);
3556uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
3557uint8 __ovld __cnfn convert_uint8_rtp(char8);
3558uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
3559uint8 __ovld __cnfn convert_uint8_rtn(char8);
3560uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
3561uint8 __ovld __cnfn convert_uint8(char8);
3562uint8 __ovld __cnfn convert_uint8_sat(char8);
3563uint8 __ovld __cnfn convert_uint8_rte(uchar8);
3564uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
3565uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
3566uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
3567uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
3568uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
3569uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
3570uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
3571uint8 __ovld __cnfn convert_uint8(uchar8);
3572uint8 __ovld __cnfn convert_uint8_sat(uchar8);
3573uint8 __ovld __cnfn convert_uint8_rte(short8);
3574uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
3575uint8 __ovld __cnfn convert_uint8_rtz(short8);
3576uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
3577uint8 __ovld __cnfn convert_uint8_rtp(short8);
3578uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
3579uint8 __ovld __cnfn convert_uint8_rtn(short8);
3580uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
3581uint8 __ovld __cnfn convert_uint8(short8);
3582uint8 __ovld __cnfn convert_uint8_sat(short8);
3583uint8 __ovld __cnfn convert_uint8_rte(ushort8);
3584uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
3585uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
3586uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
3587uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
3588uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
3589uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
3590uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
3591uint8 __ovld __cnfn convert_uint8(ushort8);
3592uint8 __ovld __cnfn convert_uint8_sat(ushort8);
3593uint8 __ovld __cnfn convert_uint8_rte(int8);
3594uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
3595uint8 __ovld __cnfn convert_uint8_rtz(int8);
3596uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
3597uint8 __ovld __cnfn convert_uint8_rtp(int8);
3598uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
3599uint8 __ovld __cnfn convert_uint8_rtn(int8);
3600uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
3601uint8 __ovld __cnfn convert_uint8(int8);
3602uint8 __ovld __cnfn convert_uint8_sat(int8);
3603uint8 __ovld __cnfn convert_uint8_rte(uint8);
3604uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
3605uint8 __ovld __cnfn convert_uint8_rtz(uint8);
3606uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
3607uint8 __ovld __cnfn convert_uint8_rtp(uint8);
3608uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
3609uint8 __ovld __cnfn convert_uint8_rtn(uint8);
3610uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
3611uint8 __ovld __cnfn convert_uint8(uint8);
3612uint8 __ovld __cnfn convert_uint8_sat(uint8);
3613uint8 __ovld __cnfn convert_uint8_rte(long8);
3614uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
3615uint8 __ovld __cnfn convert_uint8_rtz(long8);
3616uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
3617uint8 __ovld __cnfn convert_uint8_rtp(long8);
3618uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
3619uint8 __ovld __cnfn convert_uint8_rtn(long8);
3620uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
3621uint8 __ovld __cnfn convert_uint8(long8);
3622uint8 __ovld __cnfn convert_uint8_sat(long8);
3623uint8 __ovld __cnfn convert_uint8_rte(ulong8);
3624uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
3625uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
3626uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
3627uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
3628uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
3629uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
3630uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
3631uint8 __ovld __cnfn convert_uint8(ulong8);
3632uint8 __ovld __cnfn convert_uint8_sat(ulong8);
3633uint8 __ovld __cnfn convert_uint8_rte(float8);
3634uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
3635uint8 __ovld __cnfn convert_uint8_rtz(float8);
3636uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
3637uint8 __ovld __cnfn convert_uint8_rtp(float8);
3638uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
3639uint8 __ovld __cnfn convert_uint8_rtn(float8);
3640uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
3641uint8 __ovld __cnfn convert_uint8(float8);
3642uint8 __ovld __cnfn convert_uint8_sat(float8);
3643long8 __ovld __cnfn convert_long8_rte(char8);
3644long8 __ovld __cnfn convert_long8_sat_rte(char8);
3645long8 __ovld __cnfn convert_long8_rtz(char8);
3646long8 __ovld __cnfn convert_long8_sat_rtz(char8);
3647long8 __ovld __cnfn convert_long8_rtp(char8);
3648long8 __ovld __cnfn convert_long8_sat_rtp(char8);
3649long8 __ovld __cnfn convert_long8_rtn(char8);
3650long8 __ovld __cnfn convert_long8_sat_rtn(char8);
3651long8 __ovld __cnfn convert_long8(char8);
3652long8 __ovld __cnfn convert_long8_sat(char8);
3653long8 __ovld __cnfn convert_long8_rte(uchar8);
3654long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
3655long8 __ovld __cnfn convert_long8_rtz(uchar8);
3656long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
3657long8 __ovld __cnfn convert_long8_rtp(uchar8);
3658long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
3659long8 __ovld __cnfn convert_long8_rtn(uchar8);
3660long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
3661long8 __ovld __cnfn convert_long8(uchar8);
3662long8 __ovld __cnfn convert_long8_sat(uchar8);
3663long8 __ovld __cnfn convert_long8_rte(short8);
3664long8 __ovld __cnfn convert_long8_sat_rte(short8);
3665long8 __ovld __cnfn convert_long8_rtz(short8);
3666long8 __ovld __cnfn convert_long8_sat_rtz(short8);
3667long8 __ovld __cnfn convert_long8_rtp(short8);
3668long8 __ovld __cnfn convert_long8_sat_rtp(short8);
3669long8 __ovld __cnfn convert_long8_rtn(short8);
3670long8 __ovld __cnfn convert_long8_sat_rtn(short8);
3671long8 __ovld __cnfn convert_long8(short8);
3672long8 __ovld __cnfn convert_long8_sat(short8);
3673long8 __ovld __cnfn convert_long8_rte(ushort8);
3674long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
3675long8 __ovld __cnfn convert_long8_rtz(ushort8);
3676long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
3677long8 __ovld __cnfn convert_long8_rtp(ushort8);
3678long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
3679long8 __ovld __cnfn convert_long8_rtn(ushort8);
3680long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
3681long8 __ovld __cnfn convert_long8(ushort8);
3682long8 __ovld __cnfn convert_long8_sat(ushort8);
3683long8 __ovld __cnfn convert_long8_rte(int8);
3684long8 __ovld __cnfn convert_long8_sat_rte(int8);
3685long8 __ovld __cnfn convert_long8_rtz(int8);
3686long8 __ovld __cnfn convert_long8_sat_rtz(int8);
3687long8 __ovld __cnfn convert_long8_rtp(int8);
3688long8 __ovld __cnfn convert_long8_sat_rtp(int8);
3689long8 __ovld __cnfn convert_long8_rtn(int8);
3690long8 __ovld __cnfn convert_long8_sat_rtn(int8);
3691long8 __ovld __cnfn convert_long8(int8);
3692long8 __ovld __cnfn convert_long8_sat(int8);
3693long8 __ovld __cnfn convert_long8_rte(uint8);
3694long8 __ovld __cnfn convert_long8_sat_rte(uint8);
3695long8 __ovld __cnfn convert_long8_rtz(uint8);
3696long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
3697long8 __ovld __cnfn convert_long8_rtp(uint8);
3698long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
3699long8 __ovld __cnfn convert_long8_rtn(uint8);
3700long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
3701long8 __ovld __cnfn convert_long8(uint8);
3702long8 __ovld __cnfn convert_long8_sat(uint8);
3703long8 __ovld __cnfn convert_long8_rte(long8);
3704long8 __ovld __cnfn convert_long8_sat_rte(long8);
3705long8 __ovld __cnfn convert_long8_rtz(long8);
3706long8 __ovld __cnfn convert_long8_sat_rtz(long8);
3707long8 __ovld __cnfn convert_long8_rtp(long8);
3708long8 __ovld __cnfn convert_long8_sat_rtp(long8);
3709long8 __ovld __cnfn convert_long8_rtn(long8);
3710long8 __ovld __cnfn convert_long8_sat_rtn(long8);
3711long8 __ovld __cnfn convert_long8(long8);
3712long8 __ovld __cnfn convert_long8_sat(long8);
3713long8 __ovld __cnfn convert_long8_rte(ulong8);
3714long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
3715long8 __ovld __cnfn convert_long8_rtz(ulong8);
3716long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
3717long8 __ovld __cnfn convert_long8_rtp(ulong8);
3718long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
3719long8 __ovld __cnfn convert_long8_rtn(ulong8);
3720long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
3721long8 __ovld __cnfn convert_long8(ulong8);
3722long8 __ovld __cnfn convert_long8_sat(ulong8);
3723long8 __ovld __cnfn convert_long8_rte(float8);
3724long8 __ovld __cnfn convert_long8_sat_rte(float8);
3725long8 __ovld __cnfn convert_long8_rtz(float8);
3726long8 __ovld __cnfn convert_long8_sat_rtz(float8);
3727long8 __ovld __cnfn convert_long8_rtp(float8);
3728long8 __ovld __cnfn convert_long8_sat_rtp(float8);
3729long8 __ovld __cnfn convert_long8_rtn(float8);
3730long8 __ovld __cnfn convert_long8_sat_rtn(float8);
3731long8 __ovld __cnfn convert_long8(float8);
3732long8 __ovld __cnfn convert_long8_sat(float8);
3733ulong8 __ovld __cnfn convert_ulong8_rte(char8);
3734ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
3735ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
3736ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
3737ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
3738ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
3739ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
3740ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
3741ulong8 __ovld __cnfn convert_ulong8(char8);
3742ulong8 __ovld __cnfn convert_ulong8_sat(char8);
3743ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
3744ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
3745ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
3746ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
3747ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
3748ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
3749ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
3750ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
3751ulong8 __ovld __cnfn convert_ulong8(uchar8);
3752ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
3753ulong8 __ovld __cnfn convert_ulong8_rte(short8);
3754ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
3755ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
3756ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
3757ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
3758ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
3759ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
3760ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
3761ulong8 __ovld __cnfn convert_ulong8(short8);
3762ulong8 __ovld __cnfn convert_ulong8_sat(short8);
3763ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
3764ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
3765ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
3766ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
3767ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
3768ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
3769ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
3770ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
3771ulong8 __ovld __cnfn convert_ulong8(ushort8);
3772ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
3773ulong8 __ovld __cnfn convert_ulong8_rte(int8);
3774ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
3775ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
3776ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
3777ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
3778ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
3779ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
3780ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
3781ulong8 __ovld __cnfn convert_ulong8(int8);
3782ulong8 __ovld __cnfn convert_ulong8_sat(int8);
3783ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
3784ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
3785ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
3786ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
3787ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
3788ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
3789ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
3790ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
3791ulong8 __ovld __cnfn convert_ulong8(uint8);
3792ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
3793ulong8 __ovld __cnfn convert_ulong8_rte(long8);
3794ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
3795ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
3796ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
3797ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
3798ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
3799ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
3800ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
3801ulong8 __ovld __cnfn convert_ulong8(long8);
3802ulong8 __ovld __cnfn convert_ulong8_sat(long8);
3803ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
3804ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
3805ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
3806ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
3807ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
3808ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
3809ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
3810ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
3811ulong8 __ovld __cnfn convert_ulong8(ulong8);
3812ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
3813ulong8 __ovld __cnfn convert_ulong8_rte(float8);
3814ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
3815ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
3816ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
3817ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
3818ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
3819ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
3820ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
3821ulong8 __ovld __cnfn convert_ulong8(float8);
3822ulong8 __ovld __cnfn convert_ulong8_sat(float8);
3823float8 __ovld __cnfn convert_float8_rte(char8);
3824float8 __ovld __cnfn convert_float8_rtz(char8);
3825float8 __ovld __cnfn convert_float8_rtp(char8);
3826float8 __ovld __cnfn convert_float8_rtn(char8);
3827float8 __ovld __cnfn convert_float8(char8);
3828float8 __ovld __cnfn convert_float8_rte(uchar8);
3829float8 __ovld __cnfn convert_float8_rtz(uchar8);
3830float8 __ovld __cnfn convert_float8_rtp(uchar8);
3831float8 __ovld __cnfn convert_float8_rtn(uchar8);
3832float8 __ovld __cnfn convert_float8(uchar8);
3833float8 __ovld __cnfn convert_float8_rte(short8);
3834float8 __ovld __cnfn convert_float8_rtz(short8);
3835float8 __ovld __cnfn convert_float8_rtp(short8);
3836float8 __ovld __cnfn convert_float8_rtn(short8);
3837float8 __ovld __cnfn convert_float8(short8);
3838float8 __ovld __cnfn convert_float8_rte(ushort8);
3839float8 __ovld __cnfn convert_float8_rtz(ushort8);
3840float8 __ovld __cnfn convert_float8_rtp(ushort8);
3841float8 __ovld __cnfn convert_float8_rtn(ushort8);
3842float8 __ovld __cnfn convert_float8(ushort8);
3843float8 __ovld __cnfn convert_float8_rte(int8);
3844float8 __ovld __cnfn convert_float8_rtz(int8);
3845float8 __ovld __cnfn convert_float8_rtp(int8);
3846float8 __ovld __cnfn convert_float8_rtn(int8);
3847float8 __ovld __cnfn convert_float8(int8);
3848float8 __ovld __cnfn convert_float8_rte(uint8);
3849float8 __ovld __cnfn convert_float8_rtz(uint8);
3850float8 __ovld __cnfn convert_float8_rtp(uint8);
3851float8 __ovld __cnfn convert_float8_rtn(uint8);
3852float8 __ovld __cnfn convert_float8(uint8);
3853float8 __ovld __cnfn convert_float8_rte(long8);
3854float8 __ovld __cnfn convert_float8_rtz(long8);
3855float8 __ovld __cnfn convert_float8_rtp(long8);
3856float8 __ovld __cnfn convert_float8_rtn(long8);
3857float8 __ovld __cnfn convert_float8(long8);
3858float8 __ovld __cnfn convert_float8_rte(ulong8);
3859float8 __ovld __cnfn convert_float8_rtz(ulong8);
3860float8 __ovld __cnfn convert_float8_rtp(ulong8);
3861float8 __ovld __cnfn convert_float8_rtn(ulong8);
3862float8 __ovld __cnfn convert_float8(ulong8);
3863float8 __ovld __cnfn convert_float8_rte(float8);
3864float8 __ovld __cnfn convert_float8_rtz(float8);
3865float8 __ovld __cnfn convert_float8_rtp(float8);
3866float8 __ovld __cnfn convert_float8_rtn(float8);
3867float8 __ovld __cnfn convert_float8(float8);
3868char16 __ovld __cnfn convert_char16_rte(char16);
3869char16 __ovld __cnfn convert_char16_sat_rte(char16);
3870char16 __ovld __cnfn convert_char16_rtz(char16);
3871char16 __ovld __cnfn convert_char16_sat_rtz(char16);
3872char16 __ovld __cnfn convert_char16_rtp(char16);
3873char16 __ovld __cnfn convert_char16_sat_rtp(char16);
3874char16 __ovld __cnfn convert_char16_rtn(char16);
3875char16 __ovld __cnfn convert_char16_sat_rtn(char16);
3876char16 __ovld __cnfn convert_char16(char16);
3877char16 __ovld __cnfn convert_char16_sat(char16);
3878char16 __ovld __cnfn convert_char16_rte(uchar16);
3879char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
3880char16 __ovld __cnfn convert_char16_rtz(uchar16);
3881char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
3882char16 __ovld __cnfn convert_char16_rtp(uchar16);
3883char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
3884char16 __ovld __cnfn convert_char16_rtn(uchar16);
3885char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
3886char16 __ovld __cnfn convert_char16(uchar16);
3887char16 __ovld __cnfn convert_char16_sat(uchar16);
3888char16 __ovld __cnfn convert_char16_rte(short16);
3889char16 __ovld __cnfn convert_char16_sat_rte(short16);
3890char16 __ovld __cnfn convert_char16_rtz(short16);
3891char16 __ovld __cnfn convert_char16_sat_rtz(short16);
3892char16 __ovld __cnfn convert_char16_rtp(short16);
3893char16 __ovld __cnfn convert_char16_sat_rtp(short16);
3894char16 __ovld __cnfn convert_char16_rtn(short16);
3895char16 __ovld __cnfn convert_char16_sat_rtn(short16);
3896char16 __ovld __cnfn convert_char16(short16);
3897char16 __ovld __cnfn convert_char16_sat(short16);
3898char16 __ovld __cnfn convert_char16_rte(ushort16);
3899char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
3900char16 __ovld __cnfn convert_char16_rtz(ushort16);
3901char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
3902char16 __ovld __cnfn convert_char16_rtp(ushort16);
3903char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
3904char16 __ovld __cnfn convert_char16_rtn(ushort16);
3905char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
3906char16 __ovld __cnfn convert_char16(ushort16);
3907char16 __ovld __cnfn convert_char16_sat(ushort16);
3908char16 __ovld __cnfn convert_char16_rte(int16);
3909char16 __ovld __cnfn convert_char16_sat_rte(int16);
3910char16 __ovld __cnfn convert_char16_rtz(int16);
3911char16 __ovld __cnfn convert_char16_sat_rtz(int16);
3912char16 __ovld __cnfn convert_char16_rtp(int16);
3913char16 __ovld __cnfn convert_char16_sat_rtp(int16);
3914char16 __ovld __cnfn convert_char16_rtn(int16);
3915char16 __ovld __cnfn convert_char16_sat_rtn(int16);
3916char16 __ovld __cnfn convert_char16(int16);
3917char16 __ovld __cnfn convert_char16_sat(int16);
3918char16 __ovld __cnfn convert_char16_rte(uint16);
3919char16 __ovld __cnfn convert_char16_sat_rte(uint16);
3920char16 __ovld __cnfn convert_char16_rtz(uint16);
3921char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
3922char16 __ovld __cnfn convert_char16_rtp(uint16);
3923char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
3924char16 __ovld __cnfn convert_char16_rtn(uint16);
3925char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
3926char16 __ovld __cnfn convert_char16(uint16);
3927char16 __ovld __cnfn convert_char16_sat(uint16);
3928char16 __ovld __cnfn convert_char16_rte(long16);
3929char16 __ovld __cnfn convert_char16_sat_rte(long16);
3930char16 __ovld __cnfn convert_char16_rtz(long16);
3931char16 __ovld __cnfn convert_char16_sat_rtz(long16);
3932char16 __ovld __cnfn convert_char16_rtp(long16);
3933char16 __ovld __cnfn convert_char16_sat_rtp(long16);
3934char16 __ovld __cnfn convert_char16_rtn(long16);
3935char16 __ovld __cnfn convert_char16_sat_rtn(long16);
3936char16 __ovld __cnfn convert_char16(long16);
3937char16 __ovld __cnfn convert_char16_sat(long16);
3938char16 __ovld __cnfn convert_char16_rte(ulong16);
3939char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
3940char16 __ovld __cnfn convert_char16_rtz(ulong16);
3941char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
3942char16 __ovld __cnfn convert_char16_rtp(ulong16);
3943char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
3944char16 __ovld __cnfn convert_char16_rtn(ulong16);
3945char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
3946char16 __ovld __cnfn convert_char16(ulong16);
3947char16 __ovld __cnfn convert_char16_sat(ulong16);
3948char16 __ovld __cnfn convert_char16_rte(float16);
3949char16 __ovld __cnfn convert_char16_sat_rte(float16);
3950char16 __ovld __cnfn convert_char16_rtz(float16);
3951char16 __ovld __cnfn convert_char16_sat_rtz(float16);
3952char16 __ovld __cnfn convert_char16_rtp(float16);
3953char16 __ovld __cnfn convert_char16_sat_rtp(float16);
3954char16 __ovld __cnfn convert_char16_rtn(float16);
3955char16 __ovld __cnfn convert_char16_sat_rtn(float16);
3956char16 __ovld __cnfn convert_char16(float16);
3957char16 __ovld __cnfn convert_char16_sat(float16);
3958uchar16 __ovld __cnfn convert_uchar16_rte(char16);
3959uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
3960uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
3961uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
3962uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
3963uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
3964uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
3965uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
3966uchar16 __ovld __cnfn convert_uchar16(char16);
3967uchar16 __ovld __cnfn convert_uchar16_sat(char16);
3968uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
3969uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
3970uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
3971uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
3972uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
3973uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
3974uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
3975uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
3976uchar16 __ovld __cnfn convert_uchar16(uchar16);
3977uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
3978uchar16 __ovld __cnfn convert_uchar16_rte(short16);
3979uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
3980uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
3981uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
3982uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
3983uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
3984uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
3985uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
3986uchar16 __ovld __cnfn convert_uchar16(short16);
3987uchar16 __ovld __cnfn convert_uchar16_sat(short16);
3988uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
3989uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
3990uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
3991uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
3992uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
3993uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
3994uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
3995uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
3996uchar16 __ovld __cnfn convert_uchar16(ushort16);
3997uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
3998uchar16 __ovld __cnfn convert_uchar16_rte(int16);
3999uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
4000uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
4001uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
4002uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
4003uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
4004uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
4005uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
4006uchar16 __ovld __cnfn convert_uchar16(int16);
4007uchar16 __ovld __cnfn convert_uchar16_sat(int16);
4008uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
4009uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
4010uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
4011uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
4012uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
4013uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
4014uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
4015uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
4016uchar16 __ovld __cnfn convert_uchar16(uint16);
4017uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
4018uchar16 __ovld __cnfn convert_uchar16_rte(long16);
4019uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
4020uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
4021uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
4022uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
4023uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
4024uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
4025uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
4026uchar16 __ovld __cnfn convert_uchar16(long16);
4027uchar16 __ovld __cnfn convert_uchar16_sat(long16);
4028uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
4029uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
4030uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
4031uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
4032uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
4033uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
4034uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
4035uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
4036uchar16 __ovld __cnfn convert_uchar16(ulong16);
4037uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
4038uchar16 __ovld __cnfn convert_uchar16_rte(float16);
4039uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
4040uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
4041uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
4042uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
4043uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
4044uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
4045uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
4046uchar16 __ovld __cnfn convert_uchar16(float16);
4047uchar16 __ovld __cnfn convert_uchar16_sat(float16);
4048short16 __ovld __cnfn convert_short16_rte(char16);
4049short16 __ovld __cnfn convert_short16_sat_rte(char16);
4050short16 __ovld __cnfn convert_short16_rtz(char16);
4051short16 __ovld __cnfn convert_short16_sat_rtz(char16);
4052short16 __ovld __cnfn convert_short16_rtp(char16);
4053short16 __ovld __cnfn convert_short16_sat_rtp(char16);
4054short16 __ovld __cnfn convert_short16_rtn(char16);
4055short16 __ovld __cnfn convert_short16_sat_rtn(char16);
4056short16 __ovld __cnfn convert_short16(char16);
4057short16 __ovld __cnfn convert_short16_sat(char16);
4058short16 __ovld __cnfn convert_short16_rte(uchar16);
4059short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
4060short16 __ovld __cnfn convert_short16_rtz(uchar16);
4061short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
4062short16 __ovld __cnfn convert_short16_rtp(uchar16);
4063short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
4064short16 __ovld __cnfn convert_short16_rtn(uchar16);
4065short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
4066short16 __ovld __cnfn convert_short16(uchar16);
4067short16 __ovld __cnfn convert_short16_sat(uchar16);
4068short16 __ovld __cnfn convert_short16_rte(short16);
4069short16 __ovld __cnfn convert_short16_sat_rte(short16);
4070short16 __ovld __cnfn convert_short16_rtz(short16);
4071short16 __ovld __cnfn convert_short16_sat_rtz(short16);
4072short16 __ovld __cnfn convert_short16_rtp(short16);
4073short16 __ovld __cnfn convert_short16_sat_rtp(short16);
4074short16 __ovld __cnfn convert_short16_rtn(short16);
4075short16 __ovld __cnfn convert_short16_sat_rtn(short16);
4076short16 __ovld __cnfn convert_short16(short16);
4077short16 __ovld __cnfn convert_short16_sat(short16);
4078short16 __ovld __cnfn convert_short16_rte(ushort16);
4079short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
4080short16 __ovld __cnfn convert_short16_rtz(ushort16);
4081short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
4082short16 __ovld __cnfn convert_short16_rtp(ushort16);
4083short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
4084short16 __ovld __cnfn convert_short16_rtn(ushort16);
4085short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
4086short16 __ovld __cnfn convert_short16(ushort16);
4087short16 __ovld __cnfn convert_short16_sat(ushort16);
4088short16 __ovld __cnfn convert_short16_rte(int16);
4089short16 __ovld __cnfn convert_short16_sat_rte(int16);
4090short16 __ovld __cnfn convert_short16_rtz(int16);
4091short16 __ovld __cnfn convert_short16_sat_rtz(int16);
4092short16 __ovld __cnfn convert_short16_rtp(int16);
4093short16 __ovld __cnfn convert_short16_sat_rtp(int16);
4094short16 __ovld __cnfn convert_short16_rtn(int16);
4095short16 __ovld __cnfn convert_short16_sat_rtn(int16);
4096short16 __ovld __cnfn convert_short16(int16);
4097short16 __ovld __cnfn convert_short16_sat(int16);
4098short16 __ovld __cnfn convert_short16_rte(uint16);
4099short16 __ovld __cnfn convert_short16_sat_rte(uint16);
4100short16 __ovld __cnfn convert_short16_rtz(uint16);
4101short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
4102short16 __ovld __cnfn convert_short16_rtp(uint16);
4103short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
4104short16 __ovld __cnfn convert_short16_rtn(uint16);
4105short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
4106short16 __ovld __cnfn convert_short16(uint16);
4107short16 __ovld __cnfn convert_short16_sat(uint16);
4108short16 __ovld __cnfn convert_short16_rte(long16);
4109short16 __ovld __cnfn convert_short16_sat_rte(long16);
4110short16 __ovld __cnfn convert_short16_rtz(long16);
4111short16 __ovld __cnfn convert_short16_sat_rtz(long16);
4112short16 __ovld __cnfn convert_short16_rtp(long16);
4113short16 __ovld __cnfn convert_short16_sat_rtp(long16);
4114short16 __ovld __cnfn convert_short16_rtn(long16);
4115short16 __ovld __cnfn convert_short16_sat_rtn(long16);
4116short16 __ovld __cnfn convert_short16(long16);
4117short16 __ovld __cnfn convert_short16_sat(long16);
4118short16 __ovld __cnfn convert_short16_rte(ulong16);
4119short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
4120short16 __ovld __cnfn convert_short16_rtz(ulong16);
4121short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
4122short16 __ovld __cnfn convert_short16_rtp(ulong16);
4123short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
4124short16 __ovld __cnfn convert_short16_rtn(ulong16);
4125short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
4126short16 __ovld __cnfn convert_short16(ulong16);
4127short16 __ovld __cnfn convert_short16_sat(ulong16);
4128short16 __ovld __cnfn convert_short16_rte(float16);
4129short16 __ovld __cnfn convert_short16_sat_rte(float16);
4130short16 __ovld __cnfn convert_short16_rtz(float16);
4131short16 __ovld __cnfn convert_short16_sat_rtz(float16);
4132short16 __ovld __cnfn convert_short16_rtp(float16);
4133short16 __ovld __cnfn convert_short16_sat_rtp(float16);
4134short16 __ovld __cnfn convert_short16_rtn(float16);
4135short16 __ovld __cnfn convert_short16_sat_rtn(float16);
4136short16 __ovld __cnfn convert_short16(float16);
4137short16 __ovld __cnfn convert_short16_sat(float16);
4138ushort16 __ovld __cnfn convert_ushort16_rte(char16);
4139ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
4140ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
4141ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
4142ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
4143ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
4144ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
4145ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
4146ushort16 __ovld __cnfn convert_ushort16(char16);
4147ushort16 __ovld __cnfn convert_ushort16_sat(char16);
4148ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
4149ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
4150ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
4151ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
4152ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
4153ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
4154ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
4155ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
4156ushort16 __ovld __cnfn convert_ushort16(uchar16);
4157ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
4158ushort16 __ovld __cnfn convert_ushort16_rte(short16);
4159ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
4160ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
4161ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
4162ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
4163ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
4164ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
4165ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
4166ushort16 __ovld __cnfn convert_ushort16(short16);
4167ushort16 __ovld __cnfn convert_ushort16_sat(short16);
4168ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
4169ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
4170ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
4171ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
4172ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
4173ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
4174ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
4175ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
4176ushort16 __ovld __cnfn convert_ushort16(ushort16);
4177ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
4178ushort16 __ovld __cnfn convert_ushort16_rte(int16);
4179ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
4180ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
4181ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
4182ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
4183ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
4184ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
4185ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
4186ushort16 __ovld __cnfn convert_ushort16(int16);
4187ushort16 __ovld __cnfn convert_ushort16_sat(int16);
4188ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
4189ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
4190ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
4191ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
4192ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
4193ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
4194ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
4195ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
4196ushort16 __ovld __cnfn convert_ushort16(uint16);
4197ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
4198ushort16 __ovld __cnfn convert_ushort16_rte(long16);
4199ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
4200ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
4201ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
4202ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
4203ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
4204ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
4205ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
4206ushort16 __ovld __cnfn convert_ushort16(long16);
4207ushort16 __ovld __cnfn convert_ushort16_sat(long16);
4208ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
4209ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
4210ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
4211ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
4212ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
4213ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
4214ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
4215ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
4216ushort16 __ovld __cnfn convert_ushort16(ulong16);
4217ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
4218ushort16 __ovld __cnfn convert_ushort16_rte(float16);
4219ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
4220ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
4221ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
4222ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
4223ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
4224ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
4225ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
4226ushort16 __ovld __cnfn convert_ushort16(float16);
4227ushort16 __ovld __cnfn convert_ushort16_sat(float16);
4228int16 __ovld __cnfn convert_int16_rte(char16);
4229int16 __ovld __cnfn convert_int16_sat_rte(char16);
4230int16 __ovld __cnfn convert_int16_rtz(char16);
4231int16 __ovld __cnfn convert_int16_sat_rtz(char16);
4232int16 __ovld __cnfn convert_int16_rtp(char16);
4233int16 __ovld __cnfn convert_int16_sat_rtp(char16);
4234int16 __ovld __cnfn convert_int16_rtn(char16);
4235int16 __ovld __cnfn convert_int16_sat_rtn(char16);
4236int16 __ovld __cnfn convert_int16(char16);
4237int16 __ovld __cnfn convert_int16_sat(char16);
4238int16 __ovld __cnfn convert_int16_rte(uchar16);
4239int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
4240int16 __ovld __cnfn convert_int16_rtz(uchar16);
4241int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
4242int16 __ovld __cnfn convert_int16_rtp(uchar16);
4243int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
4244int16 __ovld __cnfn convert_int16_rtn(uchar16);
4245int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
4246int16 __ovld __cnfn convert_int16(uchar16);
4247int16 __ovld __cnfn convert_int16_sat(uchar16);
4248int16 __ovld __cnfn convert_int16_rte(short16);
4249int16 __ovld __cnfn convert_int16_sat_rte(short16);
4250int16 __ovld __cnfn convert_int16_rtz(short16);
4251int16 __ovld __cnfn convert_int16_sat_rtz(short16);
4252int16 __ovld __cnfn convert_int16_rtp(short16);
4253int16 __ovld __cnfn convert_int16_sat_rtp(short16);
4254int16 __ovld __cnfn convert_int16_rtn(short16);
4255int16 __ovld __cnfn convert_int16_sat_rtn(short16);
4256int16 __ovld __cnfn convert_int16(short16);
4257int16 __ovld __cnfn convert_int16_sat(short16);
4258int16 __ovld __cnfn convert_int16_rte(ushort16);
4259int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
4260int16 __ovld __cnfn convert_int16_rtz(ushort16);
4261int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
4262int16 __ovld __cnfn convert_int16_rtp(ushort16);
4263int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
4264int16 __ovld __cnfn convert_int16_rtn(ushort16);
4265int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
4266int16 __ovld __cnfn convert_int16(ushort16);
4267int16 __ovld __cnfn convert_int16_sat(ushort16);
4268int16 __ovld __cnfn convert_int16_rte(int16);
4269int16 __ovld __cnfn convert_int16_sat_rte(int16);
4270int16 __ovld __cnfn convert_int16_rtz(int16);
4271int16 __ovld __cnfn convert_int16_sat_rtz(int16);
4272int16 __ovld __cnfn convert_int16_rtp(int16);
4273int16 __ovld __cnfn convert_int16_sat_rtp(int16);
4274int16 __ovld __cnfn convert_int16_rtn(int16);
4275int16 __ovld __cnfn convert_int16_sat_rtn(int16);
4276int16 __ovld __cnfn convert_int16(int16);
4277int16 __ovld __cnfn convert_int16_sat(int16);
4278int16 __ovld __cnfn convert_int16_rte(uint16);
4279int16 __ovld __cnfn convert_int16_sat_rte(uint16);
4280int16 __ovld __cnfn convert_int16_rtz(uint16);
4281int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
4282int16 __ovld __cnfn convert_int16_rtp(uint16);
4283int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
4284int16 __ovld __cnfn convert_int16_rtn(uint16);
4285int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
4286int16 __ovld __cnfn convert_int16(uint16);
4287int16 __ovld __cnfn convert_int16_sat(uint16);
4288int16 __ovld __cnfn convert_int16_rte(long16);
4289int16 __ovld __cnfn convert_int16_sat_rte(long16);
4290int16 __ovld __cnfn convert_int16_rtz(long16);
4291int16 __ovld __cnfn convert_int16_sat_rtz(long16);
4292int16 __ovld __cnfn convert_int16_rtp(long16);
4293int16 __ovld __cnfn convert_int16_sat_rtp(long16);
4294int16 __ovld __cnfn convert_int16_rtn(long16);
4295int16 __ovld __cnfn convert_int16_sat_rtn(long16);
4296int16 __ovld __cnfn convert_int16(long16);
4297int16 __ovld __cnfn convert_int16_sat(long16);
4298int16 __ovld __cnfn convert_int16_rte(ulong16);
4299int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
4300int16 __ovld __cnfn convert_int16_rtz(ulong16);
4301int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
4302int16 __ovld __cnfn convert_int16_rtp(ulong16);
4303int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
4304int16 __ovld __cnfn convert_int16_rtn(ulong16);
4305int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
4306int16 __ovld __cnfn convert_int16(ulong16);
4307int16 __ovld __cnfn convert_int16_sat(ulong16);
4308int16 __ovld __cnfn convert_int16_rte(float16);
4309int16 __ovld __cnfn convert_int16_sat_rte(float16);
4310int16 __ovld __cnfn convert_int16_rtz(float16);
4311int16 __ovld __cnfn convert_int16_sat_rtz(float16);
4312int16 __ovld __cnfn convert_int16_rtp(float16);
4313int16 __ovld __cnfn convert_int16_sat_rtp(float16);
4314int16 __ovld __cnfn convert_int16_rtn(float16);
4315int16 __ovld __cnfn convert_int16_sat_rtn(float16);
4316int16 __ovld __cnfn convert_int16(float16);
4317int16 __ovld __cnfn convert_int16_sat(float16);
4318uint16 __ovld __cnfn convert_uint16_rte(char16);
4319uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
4320uint16 __ovld __cnfn convert_uint16_rtz(char16);
4321uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
4322uint16 __ovld __cnfn convert_uint16_rtp(char16);
4323uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
4324uint16 __ovld __cnfn convert_uint16_rtn(char16);
4325uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
4326uint16 __ovld __cnfn convert_uint16(char16);
4327uint16 __ovld __cnfn convert_uint16_sat(char16);
4328uint16 __ovld __cnfn convert_uint16_rte(uchar16);
4329uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
4330uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
4331uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
4332uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
4333uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
4334uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
4335uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
4336uint16 __ovld __cnfn convert_uint16(uchar16);
4337uint16 __ovld __cnfn convert_uint16_sat(uchar16);
4338uint16 __ovld __cnfn convert_uint16_rte(short16);
4339uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
4340uint16 __ovld __cnfn convert_uint16_rtz(short16);
4341uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
4342uint16 __ovld __cnfn convert_uint16_rtp(short16);
4343uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
4344uint16 __ovld __cnfn convert_uint16_rtn(short16);
4345uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
4346uint16 __ovld __cnfn convert_uint16(short16);
4347uint16 __ovld __cnfn convert_uint16_sat(short16);
4348uint16 __ovld __cnfn convert_uint16_rte(ushort16);
4349uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
4350uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
4351uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
4352uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
4353uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
4354uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
4355uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
4356uint16 __ovld __cnfn convert_uint16(ushort16);
4357uint16 __ovld __cnfn convert_uint16_sat(ushort16);
4358uint16 __ovld __cnfn convert_uint16_rte(int16);
4359uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
4360uint16 __ovld __cnfn convert_uint16_rtz(int16);
4361uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
4362uint16 __ovld __cnfn convert_uint16_rtp(int16);
4363uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
4364uint16 __ovld __cnfn convert_uint16_rtn(int16);
4365uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
4366uint16 __ovld __cnfn convert_uint16(int16);
4367uint16 __ovld __cnfn convert_uint16_sat(int16);
4368uint16 __ovld __cnfn convert_uint16_rte(uint16);
4369uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
4370uint16 __ovld __cnfn convert_uint16_rtz(uint16);
4371uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
4372uint16 __ovld __cnfn convert_uint16_rtp(uint16);
4373uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
4374uint16 __ovld __cnfn convert_uint16_rtn(uint16);
4375uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
4376uint16 __ovld __cnfn convert_uint16(uint16);
4377uint16 __ovld __cnfn convert_uint16_sat(uint16);
4378uint16 __ovld __cnfn convert_uint16_rte(long16);
4379uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
4380uint16 __ovld __cnfn convert_uint16_rtz(long16);
4381uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
4382uint16 __ovld __cnfn convert_uint16_rtp(long16);
4383uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
4384uint16 __ovld __cnfn convert_uint16_rtn(long16);
4385uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
4386uint16 __ovld __cnfn convert_uint16(long16);
4387uint16 __ovld __cnfn convert_uint16_sat(long16);
4388uint16 __ovld __cnfn convert_uint16_rte(ulong16);
4389uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
4390uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
4391uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
4392uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
4393uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
4394uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
4395uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
4396uint16 __ovld __cnfn convert_uint16(ulong16);
4397uint16 __ovld __cnfn convert_uint16_sat(ulong16);
4398uint16 __ovld __cnfn convert_uint16_rte(float16);
4399uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
4400uint16 __ovld __cnfn convert_uint16_rtz(float16);
4401uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
4402uint16 __ovld __cnfn convert_uint16_rtp(float16);
4403uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
4404uint16 __ovld __cnfn convert_uint16_rtn(float16);
4405uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
4406uint16 __ovld __cnfn convert_uint16(float16);
4407uint16 __ovld __cnfn convert_uint16_sat(float16);
4408long16 __ovld __cnfn convert_long16_rte(char16);
4409long16 __ovld __cnfn convert_long16_sat_rte(char16);
4410long16 __ovld __cnfn convert_long16_rtz(char16);
4411long16 __ovld __cnfn convert_long16_sat_rtz(char16);
4412long16 __ovld __cnfn convert_long16_rtp(char16);
4413long16 __ovld __cnfn convert_long16_sat_rtp(char16);
4414long16 __ovld __cnfn convert_long16_rtn(char16);
4415long16 __ovld __cnfn convert_long16_sat_rtn(char16);
4416long16 __ovld __cnfn convert_long16(char16);
4417long16 __ovld __cnfn convert_long16_sat(char16);
4418long16 __ovld __cnfn convert_long16_rte(uchar16);
4419long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
4420long16 __ovld __cnfn convert_long16_rtz(uchar16);
4421long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
4422long16 __ovld __cnfn convert_long16_rtp(uchar16);
4423long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
4424long16 __ovld __cnfn convert_long16_rtn(uchar16);
4425long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
4426long16 __ovld __cnfn convert_long16(uchar16);
4427long16 __ovld __cnfn convert_long16_sat(uchar16);
4428long16 __ovld __cnfn convert_long16_rte(short16);
4429long16 __ovld __cnfn convert_long16_sat_rte(short16);
4430long16 __ovld __cnfn convert_long16_rtz(short16);
4431long16 __ovld __cnfn convert_long16_sat_rtz(short16);
4432long16 __ovld __cnfn convert_long16_rtp(short16);
4433long16 __ovld __cnfn convert_long16_sat_rtp(short16);
4434long16 __ovld __cnfn convert_long16_rtn(short16);
4435long16 __ovld __cnfn convert_long16_sat_rtn(short16);
4436long16 __ovld __cnfn convert_long16(short16);
4437long16 __ovld __cnfn convert_long16_sat(short16);
4438long16 __ovld __cnfn convert_long16_rte(ushort16);
4439long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
4440long16 __ovld __cnfn convert_long16_rtz(ushort16);
4441long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
4442long16 __ovld __cnfn convert_long16_rtp(ushort16);
4443long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
4444long16 __ovld __cnfn convert_long16_rtn(ushort16);
4445long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
4446long16 __ovld __cnfn convert_long16(ushort16);
4447long16 __ovld __cnfn convert_long16_sat(ushort16);
4448long16 __ovld __cnfn convert_long16_rte(int16);
4449long16 __ovld __cnfn convert_long16_sat_rte(int16);
4450long16 __ovld __cnfn convert_long16_rtz(int16);
4451long16 __ovld __cnfn convert_long16_sat_rtz(int16);
4452long16 __ovld __cnfn convert_long16_rtp(int16);
4453long16 __ovld __cnfn convert_long16_sat_rtp(int16);
4454long16 __ovld __cnfn convert_long16_rtn(int16);
4455long16 __ovld __cnfn convert_long16_sat_rtn(int16);
4456long16 __ovld __cnfn convert_long16(int16);
4457long16 __ovld __cnfn convert_long16_sat(int16);
4458long16 __ovld __cnfn convert_long16_rte(uint16);
4459long16 __ovld __cnfn convert_long16_sat_rte(uint16);
4460long16 __ovld __cnfn convert_long16_rtz(uint16);
4461long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
4462long16 __ovld __cnfn convert_long16_rtp(uint16);
4463long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
4464long16 __ovld __cnfn convert_long16_rtn(uint16);
4465long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
4466long16 __ovld __cnfn convert_long16(uint16);
4467long16 __ovld __cnfn convert_long16_sat(uint16);
4468long16 __ovld __cnfn convert_long16_rte(long16);
4469long16 __ovld __cnfn convert_long16_sat_rte(long16);
4470long16 __ovld __cnfn convert_long16_rtz(long16);
4471long16 __ovld __cnfn convert_long16_sat_rtz(long16);
4472long16 __ovld __cnfn convert_long16_rtp(long16);
4473long16 __ovld __cnfn convert_long16_sat_rtp(long16);
4474long16 __ovld __cnfn convert_long16_rtn(long16);
4475long16 __ovld __cnfn convert_long16_sat_rtn(long16);
4476long16 __ovld __cnfn convert_long16(long16);
4477long16 __ovld __cnfn convert_long16_sat(long16);
4478long16 __ovld __cnfn convert_long16_rte(ulong16);
4479long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
4480long16 __ovld __cnfn convert_long16_rtz(ulong16);
4481long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
4482long16 __ovld __cnfn convert_long16_rtp(ulong16);
4483long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
4484long16 __ovld __cnfn convert_long16_rtn(ulong16);
4485long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
4486long16 __ovld __cnfn convert_long16(ulong16);
4487long16 __ovld __cnfn convert_long16_sat(ulong16);
4488long16 __ovld __cnfn convert_long16_rte(float16);
4489long16 __ovld __cnfn convert_long16_sat_rte(float16);
4490long16 __ovld __cnfn convert_long16_rtz(float16);
4491long16 __ovld __cnfn convert_long16_sat_rtz(float16);
4492long16 __ovld __cnfn convert_long16_rtp(float16);
4493long16 __ovld __cnfn convert_long16_sat_rtp(float16);
4494long16 __ovld __cnfn convert_long16_rtn(float16);
4495long16 __ovld __cnfn convert_long16_sat_rtn(float16);
4496long16 __ovld __cnfn convert_long16(float16);
4497long16 __ovld __cnfn convert_long16_sat(float16);
4498ulong16 __ovld __cnfn convert_ulong16_rte(char16);
4499ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
4500ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
4501ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
4502ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
4503ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
4504ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
4505ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
4506ulong16 __ovld __cnfn convert_ulong16(char16);
4507ulong16 __ovld __cnfn convert_ulong16_sat(char16);
4508ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
4509ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
4510ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
4511ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
4512ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
4513ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
4514ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
4515ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
4516ulong16 __ovld __cnfn convert_ulong16(uchar16);
4517ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
4518ulong16 __ovld __cnfn convert_ulong16_rte(short16);
4519ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
4520ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
4521ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
4522ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
4523ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
4524ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
4525ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
4526ulong16 __ovld __cnfn convert_ulong16(short16);
4527ulong16 __ovld __cnfn convert_ulong16_sat(short16);
4528ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
4529ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
4530ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
4531ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
4532ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
4533ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
4534ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
4535ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
4536ulong16 __ovld __cnfn convert_ulong16(ushort16);
4537ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
4538ulong16 __ovld __cnfn convert_ulong16_rte(int16);
4539ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
4540ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
4541ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
4542ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
4543ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
4544ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
4545ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
4546ulong16 __ovld __cnfn convert_ulong16(int16);
4547ulong16 __ovld __cnfn convert_ulong16_sat(int16);
4548ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
4549ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
4550ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
4551ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
4552ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
4553ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
4554ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
4555ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
4556ulong16 __ovld __cnfn convert_ulong16(uint16);
4557ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
4558ulong16 __ovld __cnfn convert_ulong16_rte(long16);
4559ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
4560ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
4561ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
4562ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
4563ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
4564ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
4565ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
4566ulong16 __ovld __cnfn convert_ulong16(long16);
4567ulong16 __ovld __cnfn convert_ulong16_sat(long16);
4568ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
4569ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
4570ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
4571ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
4572ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
4573ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
4574ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
4575ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
4576ulong16 __ovld __cnfn convert_ulong16(ulong16);
4577ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
4578ulong16 __ovld __cnfn convert_ulong16_rte(float16);
4579ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
4580ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
4581ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
4582ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
4583ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
4584ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
4585ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
4586ulong16 __ovld __cnfn convert_ulong16(float16);
4587ulong16 __ovld __cnfn convert_ulong16_sat(float16);
4588float16 __ovld __cnfn convert_float16_rte(char16);
4589float16 __ovld __cnfn convert_float16_rtz(char16);
4590float16 __ovld __cnfn convert_float16_rtp(char16);
4591float16 __ovld __cnfn convert_float16_rtn(char16);
4592float16 __ovld __cnfn convert_float16(char16);
4593float16 __ovld __cnfn convert_float16_rte(uchar16);
4594float16 __ovld __cnfn convert_float16_rtz(uchar16);
4595float16 __ovld __cnfn convert_float16_rtp(uchar16);
4596float16 __ovld __cnfn convert_float16_rtn(uchar16);
4597float16 __ovld __cnfn convert_float16(uchar16);
4598float16 __ovld __cnfn convert_float16_rte(short16);
4599float16 __ovld __cnfn convert_float16_rtz(short16);
4600float16 __ovld __cnfn convert_float16_rtp(short16);
4601float16 __ovld __cnfn convert_float16_rtn(short16);
4602float16 __ovld __cnfn convert_float16(short16);
4603float16 __ovld __cnfn convert_float16_rte(ushort16);
4604float16 __ovld __cnfn convert_float16_rtz(ushort16);
4605float16 __ovld __cnfn convert_float16_rtp(ushort16);
4606float16 __ovld __cnfn convert_float16_rtn(ushort16);
4607float16 __ovld __cnfn convert_float16(ushort16);
4608float16 __ovld __cnfn convert_float16_rte(int16);
4609float16 __ovld __cnfn convert_float16_rtz(int16);
4610float16 __ovld __cnfn convert_float16_rtp(int16);
4611float16 __ovld __cnfn convert_float16_rtn(int16);
4612float16 __ovld __cnfn convert_float16(int16);
4613float16 __ovld __cnfn convert_float16_rte(uint16);
4614float16 __ovld __cnfn convert_float16_rtz(uint16);
4615float16 __ovld __cnfn convert_float16_rtp(uint16);
4616float16 __ovld __cnfn convert_float16_rtn(uint16);
4617float16 __ovld __cnfn convert_float16(uint16);
4618float16 __ovld __cnfn convert_float16_rte(long16);
4619float16 __ovld __cnfn convert_float16_rtz(long16);
4620float16 __ovld __cnfn convert_float16_rtp(long16);
4621float16 __ovld __cnfn convert_float16_rtn(long16);
4622float16 __ovld __cnfn convert_float16(long16);
4623float16 __ovld __cnfn convert_float16_rte(ulong16);
4624float16 __ovld __cnfn convert_float16_rtz(ulong16);
4625float16 __ovld __cnfn convert_float16_rtp(ulong16);
4626float16 __ovld __cnfn convert_float16_rtn(ulong16);
4627float16 __ovld __cnfn convert_float16(ulong16);
4628float16 __ovld __cnfn convert_float16_rte(float16);
4629float16 __ovld __cnfn convert_float16_rtz(float16);
4630float16 __ovld __cnfn convert_float16_rtp(float16);
4631float16 __ovld __cnfn convert_float16_rtn(float16);
4632float16 __ovld __cnfn convert_float16(float16);
4633
4634// Conversions with double data type parameters or return value.
4635
4636#ifdef cl_khr_fp64
Pirama Arumuga Nainar986b8802021-06-03 16:00:34 -07004637#pragma OPENCL EXTENSION cl_khr_fp64 : enable
Logan Chien2833ffb2018-10-09 10:03:24 +08004638char __ovld __cnfn convert_char(double);
4639char __ovld __cnfn convert_char_rte(double);
4640char __ovld __cnfn convert_char_rtn(double);
4641char __ovld __cnfn convert_char_rtp(double);
4642char __ovld __cnfn convert_char_rtz(double);
4643char __ovld __cnfn convert_char_sat(double);
4644char __ovld __cnfn convert_char_sat_rte(double);
4645char __ovld __cnfn convert_char_sat_rtn(double);
4646char __ovld __cnfn convert_char_sat_rtp(double);
4647char __ovld __cnfn convert_char_sat_rtz(double);
4648char2 __ovld __cnfn convert_char2(double2);
4649char2 __ovld __cnfn convert_char2_rte(double2);
4650char2 __ovld __cnfn convert_char2_rtn(double2);
4651char2 __ovld __cnfn convert_char2_rtp(double2);
4652char2 __ovld __cnfn convert_char2_rtz(double2);
4653char2 __ovld __cnfn convert_char2_sat(double2);
4654char2 __ovld __cnfn convert_char2_sat_rte(double2);
4655char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4656char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4657char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4658char3 __ovld __cnfn convert_char3(double3);
4659char3 __ovld __cnfn convert_char3_rte(double3);
4660char3 __ovld __cnfn convert_char3_rtn(double3);
4661char3 __ovld __cnfn convert_char3_rtp(double3);
4662char3 __ovld __cnfn convert_char3_rtz(double3);
4663char3 __ovld __cnfn convert_char3_sat(double3);
4664char3 __ovld __cnfn convert_char3_sat_rte(double3);
4665char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4666char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4667char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4668char4 __ovld __cnfn convert_char4(double4);
4669char4 __ovld __cnfn convert_char4_rte(double4);
4670char4 __ovld __cnfn convert_char4_rtn(double4);
4671char4 __ovld __cnfn convert_char4_rtp(double4);
4672char4 __ovld __cnfn convert_char4_rtz(double4);
4673char4 __ovld __cnfn convert_char4_sat(double4);
4674char4 __ovld __cnfn convert_char4_sat_rte(double4);
4675char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4676char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4677char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4678char8 __ovld __cnfn convert_char8(double8);
4679char8 __ovld __cnfn convert_char8_rte(double8);
4680char8 __ovld __cnfn convert_char8_rtn(double8);
4681char8 __ovld __cnfn convert_char8_rtp(double8);
4682char8 __ovld __cnfn convert_char8_rtz(double8);
4683char8 __ovld __cnfn convert_char8_sat(double8);
4684char8 __ovld __cnfn convert_char8_sat_rte(double8);
4685char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4686char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4687char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4688char16 __ovld __cnfn convert_char16(double16);
4689char16 __ovld __cnfn convert_char16_rte(double16);
4690char16 __ovld __cnfn convert_char16_rtn(double16);
4691char16 __ovld __cnfn convert_char16_rtp(double16);
4692char16 __ovld __cnfn convert_char16_rtz(double16);
4693char16 __ovld __cnfn convert_char16_sat(double16);
4694char16 __ovld __cnfn convert_char16_sat_rte(double16);
4695char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4696char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4697char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4698
4699uchar __ovld __cnfn convert_uchar(double);
4700uchar __ovld __cnfn convert_uchar_rte(double);
4701uchar __ovld __cnfn convert_uchar_rtn(double);
4702uchar __ovld __cnfn convert_uchar_rtp(double);
4703uchar __ovld __cnfn convert_uchar_rtz(double);
4704uchar __ovld __cnfn convert_uchar_sat(double);
4705uchar __ovld __cnfn convert_uchar_sat_rte(double);
4706uchar __ovld __cnfn convert_uchar_sat_rtn(double);
4707uchar __ovld __cnfn convert_uchar_sat_rtp(double);
4708uchar __ovld __cnfn convert_uchar_sat_rtz(double);
4709uchar2 __ovld __cnfn convert_uchar2(double2);
4710uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4711uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4712uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4713uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4714uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4715uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4716uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4717uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4718uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4719uchar3 __ovld __cnfn convert_uchar3(double3);
4720uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4721uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4722uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4723uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4724uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4725uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4726uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4727uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4728uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4729uchar4 __ovld __cnfn convert_uchar4(double4);
4730uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4731uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4732uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4733uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4734uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4735uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4736uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4737uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4738uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4739uchar8 __ovld __cnfn convert_uchar8(double8);
4740uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4741uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4742uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4743uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4744uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4745uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4746uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4747uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4748uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4749uchar16 __ovld __cnfn convert_uchar16(double16);
4750uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4751uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4752uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4753uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4754uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4755uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4756uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4757uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4758uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
4759
4760short __ovld __cnfn convert_short(double);
4761short __ovld __cnfn convert_short_rte(double);
4762short __ovld __cnfn convert_short_rtn(double);
4763short __ovld __cnfn convert_short_rtp(double);
4764short __ovld __cnfn convert_short_rtz(double);
4765short __ovld __cnfn convert_short_sat(double);
4766short __ovld __cnfn convert_short_sat_rte(double);
4767short __ovld __cnfn convert_short_sat_rtn(double);
4768short __ovld __cnfn convert_short_sat_rtp(double);
4769short __ovld __cnfn convert_short_sat_rtz(double);
4770short2 __ovld __cnfn convert_short2(double2);
4771short2 __ovld __cnfn convert_short2_rte(double2);
4772short2 __ovld __cnfn convert_short2_rtn(double2);
4773short2 __ovld __cnfn convert_short2_rtp(double2);
4774short2 __ovld __cnfn convert_short2_rtz(double2);
4775short2 __ovld __cnfn convert_short2_sat(double2);
4776short2 __ovld __cnfn convert_short2_sat_rte(double2);
4777short2 __ovld __cnfn convert_short2_sat_rtn(double2);
4778short2 __ovld __cnfn convert_short2_sat_rtp(double2);
4779short2 __ovld __cnfn convert_short2_sat_rtz(double2);
4780short3 __ovld __cnfn convert_short3(double3);
4781short3 __ovld __cnfn convert_short3_rte(double3);
4782short3 __ovld __cnfn convert_short3_rtn(double3);
4783short3 __ovld __cnfn convert_short3_rtp(double3);
4784short3 __ovld __cnfn convert_short3_rtz(double3);
4785short3 __ovld __cnfn convert_short3_sat(double3);
4786short3 __ovld __cnfn convert_short3_sat_rte(double3);
4787short3 __ovld __cnfn convert_short3_sat_rtn(double3);
4788short3 __ovld __cnfn convert_short3_sat_rtp(double3);
4789short3 __ovld __cnfn convert_short3_sat_rtz(double3);
4790short4 __ovld __cnfn convert_short4(double4);
4791short4 __ovld __cnfn convert_short4_rte(double4);
4792short4 __ovld __cnfn convert_short4_rtn(double4);
4793short4 __ovld __cnfn convert_short4_rtp(double4);
4794short4 __ovld __cnfn convert_short4_rtz(double4);
4795short4 __ovld __cnfn convert_short4_sat(double4);
4796short4 __ovld __cnfn convert_short4_sat_rte(double4);
4797short4 __ovld __cnfn convert_short4_sat_rtn(double4);
4798short4 __ovld __cnfn convert_short4_sat_rtp(double4);
4799short4 __ovld __cnfn convert_short4_sat_rtz(double4);
4800short8 __ovld __cnfn convert_short8(double8);
4801short8 __ovld __cnfn convert_short8_rte(double8);
4802short8 __ovld __cnfn convert_short8_rtn(double8);
4803short8 __ovld __cnfn convert_short8_rtp(double8);
4804short8 __ovld __cnfn convert_short8_rtz(double8);
4805short8 __ovld __cnfn convert_short8_sat(double8);
4806short8 __ovld __cnfn convert_short8_sat_rte(double8);
4807short8 __ovld __cnfn convert_short8_sat_rtn(double8);
4808short8 __ovld __cnfn convert_short8_sat_rtp(double8);
4809short8 __ovld __cnfn convert_short8_sat_rtz(double8);
4810short16 __ovld __cnfn convert_short16(double16);
4811short16 __ovld __cnfn convert_short16_rte(double16);
4812short16 __ovld __cnfn convert_short16_rtn(double16);
4813short16 __ovld __cnfn convert_short16_rtp(double16);
4814short16 __ovld __cnfn convert_short16_rtz(double16);
4815short16 __ovld __cnfn convert_short16_sat(double16);
4816short16 __ovld __cnfn convert_short16_sat_rte(double16);
4817short16 __ovld __cnfn convert_short16_sat_rtn(double16);
4818short16 __ovld __cnfn convert_short16_sat_rtp(double16);
4819short16 __ovld __cnfn convert_short16_sat_rtz(double16);
4820
4821ushort __ovld __cnfn convert_ushort(double);
4822ushort __ovld __cnfn convert_ushort_rte(double);
4823ushort __ovld __cnfn convert_ushort_rtn(double);
4824ushort __ovld __cnfn convert_ushort_rtp(double);
4825ushort __ovld __cnfn convert_ushort_rtz(double);
4826ushort __ovld __cnfn convert_ushort_sat(double);
4827ushort __ovld __cnfn convert_ushort_sat_rte(double);
4828ushort __ovld __cnfn convert_ushort_sat_rtn(double);
4829ushort __ovld __cnfn convert_ushort_sat_rtp(double);
4830ushort __ovld __cnfn convert_ushort_sat_rtz(double);
4831ushort2 __ovld __cnfn convert_ushort2(double2);
4832ushort2 __ovld __cnfn convert_ushort2_rte(double2);
4833ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
4834ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
4835ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
4836ushort2 __ovld __cnfn convert_ushort2_sat(double2);
4837ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
4838ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
4839ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
4840ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
4841ushort3 __ovld __cnfn convert_ushort3(double3);
4842ushort3 __ovld __cnfn convert_ushort3_rte(double3);
4843ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
4844ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
4845ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
4846ushort3 __ovld __cnfn convert_ushort3_sat(double3);
4847ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
4848ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
4849ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
4850ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
4851ushort4 __ovld __cnfn convert_ushort4(double4);
4852ushort4 __ovld __cnfn convert_ushort4_rte(double4);
4853ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
4854ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
4855ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
4856ushort4 __ovld __cnfn convert_ushort4_sat(double4);
4857ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
4858ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
4859ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
4860ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
4861ushort8 __ovld __cnfn convert_ushort8(double8);
4862ushort8 __ovld __cnfn convert_ushort8_rte(double8);
4863ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
4864ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
4865ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
4866ushort8 __ovld __cnfn convert_ushort8_sat(double8);
4867ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
4868ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
4869ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
4870ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
4871ushort16 __ovld __cnfn convert_ushort16(double16);
4872ushort16 __ovld __cnfn convert_ushort16_rte(double16);
4873ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
4874ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
4875ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
4876ushort16 __ovld __cnfn convert_ushort16_sat(double16);
4877ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
4878ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
4879ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
4880ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
4881
4882int __ovld __cnfn convert_int(double);
4883int __ovld __cnfn convert_int_rte(double);
4884int __ovld __cnfn convert_int_rtn(double);
4885int __ovld __cnfn convert_int_rtp(double);
4886int __ovld __cnfn convert_int_rtz(double);
4887int __ovld __cnfn convert_int_sat(double);
4888int __ovld __cnfn convert_int_sat_rte(double);
4889int __ovld __cnfn convert_int_sat_rtn(double);
4890int __ovld __cnfn convert_int_sat_rtp(double);
4891int __ovld __cnfn convert_int_sat_rtz(double);
4892int2 __ovld __cnfn convert_int2(double2);
4893int2 __ovld __cnfn convert_int2_rte(double2);
4894int2 __ovld __cnfn convert_int2_rtn(double2);
4895int2 __ovld __cnfn convert_int2_rtp(double2);
4896int2 __ovld __cnfn convert_int2_rtz(double2);
4897int2 __ovld __cnfn convert_int2_sat(double2);
4898int2 __ovld __cnfn convert_int2_sat_rte(double2);
4899int2 __ovld __cnfn convert_int2_sat_rtn(double2);
4900int2 __ovld __cnfn convert_int2_sat_rtp(double2);
4901int2 __ovld __cnfn convert_int2_sat_rtz(double2);
4902int3 __ovld __cnfn convert_int3(double3);
4903int3 __ovld __cnfn convert_int3_rte(double3);
4904int3 __ovld __cnfn convert_int3_rtn(double3);
4905int3 __ovld __cnfn convert_int3_rtp(double3);
4906int3 __ovld __cnfn convert_int3_rtz(double3);
4907int3 __ovld __cnfn convert_int3_sat(double3);
4908int3 __ovld __cnfn convert_int3_sat_rte(double3);
4909int3 __ovld __cnfn convert_int3_sat_rtn(double3);
4910int3 __ovld __cnfn convert_int3_sat_rtp(double3);
4911int3 __ovld __cnfn convert_int3_sat_rtz(double3);
4912int4 __ovld __cnfn convert_int4(double4);
4913int4 __ovld __cnfn convert_int4_rte(double4);
4914int4 __ovld __cnfn convert_int4_rtn(double4);
4915int4 __ovld __cnfn convert_int4_rtp(double4);
4916int4 __ovld __cnfn convert_int4_rtz(double4);
4917int4 __ovld __cnfn convert_int4_sat(double4);
4918int4 __ovld __cnfn convert_int4_sat_rte(double4);
4919int4 __ovld __cnfn convert_int4_sat_rtn(double4);
4920int4 __ovld __cnfn convert_int4_sat_rtp(double4);
4921int4 __ovld __cnfn convert_int4_sat_rtz(double4);
4922int8 __ovld __cnfn convert_int8(double8);
4923int8 __ovld __cnfn convert_int8_rte(double8);
4924int8 __ovld __cnfn convert_int8_rtn(double8);
4925int8 __ovld __cnfn convert_int8_rtp(double8);
4926int8 __ovld __cnfn convert_int8_rtz(double8);
4927int8 __ovld __cnfn convert_int8_sat(double8);
4928int8 __ovld __cnfn convert_int8_sat_rte(double8);
4929int8 __ovld __cnfn convert_int8_sat_rtn(double8);
4930int8 __ovld __cnfn convert_int8_sat_rtp(double8);
4931int8 __ovld __cnfn convert_int8_sat_rtz(double8);
4932int16 __ovld __cnfn convert_int16(double16);
4933int16 __ovld __cnfn convert_int16_rte(double16);
4934int16 __ovld __cnfn convert_int16_rtn(double16);
4935int16 __ovld __cnfn convert_int16_rtp(double16);
4936int16 __ovld __cnfn convert_int16_rtz(double16);
4937int16 __ovld __cnfn convert_int16_sat(double16);
4938int16 __ovld __cnfn convert_int16_sat_rte(double16);
4939int16 __ovld __cnfn convert_int16_sat_rtn(double16);
4940int16 __ovld __cnfn convert_int16_sat_rtp(double16);
4941int16 __ovld __cnfn convert_int16_sat_rtz(double16);
4942
4943uint __ovld __cnfn convert_uint(double);
4944uint __ovld __cnfn convert_uint_rte(double);
4945uint __ovld __cnfn convert_uint_rtn(double);
4946uint __ovld __cnfn convert_uint_rtp(double);
4947uint __ovld __cnfn convert_uint_rtz(double);
4948uint __ovld __cnfn convert_uint_sat(double);
4949uint __ovld __cnfn convert_uint_sat_rte(double);
4950uint __ovld __cnfn convert_uint_sat_rtn(double);
4951uint __ovld __cnfn convert_uint_sat_rtp(double);
4952uint __ovld __cnfn convert_uint_sat_rtz(double);
4953uint2 __ovld __cnfn convert_uint2(double2);
4954uint2 __ovld __cnfn convert_uint2_rte(double2);
4955uint2 __ovld __cnfn convert_uint2_rtn(double2);
4956uint2 __ovld __cnfn convert_uint2_rtp(double2);
4957uint2 __ovld __cnfn convert_uint2_rtz(double2);
4958uint2 __ovld __cnfn convert_uint2_sat(double2);
4959uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
4960uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
4961uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
4962uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
4963uint3 __ovld __cnfn convert_uint3(double3);
4964uint3 __ovld __cnfn convert_uint3_rte(double3);
4965uint3 __ovld __cnfn convert_uint3_rtn(double3);
4966uint3 __ovld __cnfn convert_uint3_rtp(double3);
4967uint3 __ovld __cnfn convert_uint3_rtz(double3);
4968uint3 __ovld __cnfn convert_uint3_sat(double3);
4969uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
4970uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
4971uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
4972uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
4973uint4 __ovld __cnfn convert_uint4(double4);
4974uint4 __ovld __cnfn convert_uint4_rte(double4);
4975uint4 __ovld __cnfn convert_uint4_rtn(double4);
4976uint4 __ovld __cnfn convert_uint4_rtp(double4);
4977uint4 __ovld __cnfn convert_uint4_rtz(double4);
4978uint4 __ovld __cnfn convert_uint4_sat(double4);
4979uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
4980uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
4981uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
4982uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
4983uint8 __ovld __cnfn convert_uint8(double8);
4984uint8 __ovld __cnfn convert_uint8_rte(double8);
4985uint8 __ovld __cnfn convert_uint8_rtn(double8);
4986uint8 __ovld __cnfn convert_uint8_rtp(double8);
4987uint8 __ovld __cnfn convert_uint8_rtz(double8);
4988uint8 __ovld __cnfn convert_uint8_sat(double8);
4989uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
4990uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
4991uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
4992uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
4993uint16 __ovld __cnfn convert_uint16(double16);
4994uint16 __ovld __cnfn convert_uint16_rte(double16);
4995uint16 __ovld __cnfn convert_uint16_rtn(double16);
4996uint16 __ovld __cnfn convert_uint16_rtp(double16);
4997uint16 __ovld __cnfn convert_uint16_rtz(double16);
4998uint16 __ovld __cnfn convert_uint16_sat(double16);
4999uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5000uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5001uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5002uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5003
5004long __ovld __cnfn convert_long(double);
5005long __ovld __cnfn convert_long_rte(double);
5006long __ovld __cnfn convert_long_rtn(double);
5007long __ovld __cnfn convert_long_rtp(double);
5008long __ovld __cnfn convert_long_rtz(double);
5009long __ovld __cnfn convert_long_sat(double);
5010long __ovld __cnfn convert_long_sat_rte(double);
5011long __ovld __cnfn convert_long_sat_rtn(double);
5012long __ovld __cnfn convert_long_sat_rtp(double);
5013long __ovld __cnfn convert_long_sat_rtz(double);
5014long2 __ovld __cnfn convert_long2(double2);
5015long2 __ovld __cnfn convert_long2_rte(double2);
5016long2 __ovld __cnfn convert_long2_rtn(double2);
5017long2 __ovld __cnfn convert_long2_rtp(double2);
5018long2 __ovld __cnfn convert_long2_rtz(double2);
5019long2 __ovld __cnfn convert_long2_sat(double2);
5020long2 __ovld __cnfn convert_long2_sat_rte(double2);
5021long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5022long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5023long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5024long3 __ovld __cnfn convert_long3(double3);
5025long3 __ovld __cnfn convert_long3_rte(double3);
5026long3 __ovld __cnfn convert_long3_rtn(double3);
5027long3 __ovld __cnfn convert_long3_rtp(double3);
5028long3 __ovld __cnfn convert_long3_rtz(double3);
5029long3 __ovld __cnfn convert_long3_sat(double3);
5030long3 __ovld __cnfn convert_long3_sat_rte(double3);
5031long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5032long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5033long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5034long4 __ovld __cnfn convert_long4(double4);
5035long4 __ovld __cnfn convert_long4_rte(double4);
5036long4 __ovld __cnfn convert_long4_rtn(double4);
5037long4 __ovld __cnfn convert_long4_rtp(double4);
5038long4 __ovld __cnfn convert_long4_rtz(double4);
5039long4 __ovld __cnfn convert_long4_sat(double4);
5040long4 __ovld __cnfn convert_long4_sat_rte(double4);
5041long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5042long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5043long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5044long8 __ovld __cnfn convert_long8(double8);
5045long8 __ovld __cnfn convert_long8_rte(double8);
5046long8 __ovld __cnfn convert_long8_rtn(double8);
5047long8 __ovld __cnfn convert_long8_rtp(double8);
5048long8 __ovld __cnfn convert_long8_rtz(double8);
5049long8 __ovld __cnfn convert_long8_sat(double8);
5050long8 __ovld __cnfn convert_long8_sat_rte(double8);
5051long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5052long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5053long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5054long16 __ovld __cnfn convert_long16(double16);
5055long16 __ovld __cnfn convert_long16_rte(double16);
5056long16 __ovld __cnfn convert_long16_rtn(double16);
5057long16 __ovld __cnfn convert_long16_rtp(double16);
5058long16 __ovld __cnfn convert_long16_rtz(double16);
5059long16 __ovld __cnfn convert_long16_sat(double16);
5060long16 __ovld __cnfn convert_long16_sat_rte(double16);
5061long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5062long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5063long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5064
5065ulong __ovld __cnfn convert_ulong(double);
5066ulong __ovld __cnfn convert_ulong_rte(double);
5067ulong __ovld __cnfn convert_ulong_rtn(double);
5068ulong __ovld __cnfn convert_ulong_rtp(double);
5069ulong __ovld __cnfn convert_ulong_rtz(double);
5070ulong __ovld __cnfn convert_ulong_sat(double);
5071ulong __ovld __cnfn convert_ulong_sat_rte(double);
5072ulong __ovld __cnfn convert_ulong_sat_rtn(double);
5073ulong __ovld __cnfn convert_ulong_sat_rtp(double);
5074ulong __ovld __cnfn convert_ulong_sat_rtz(double);
5075ulong2 __ovld __cnfn convert_ulong2(double2);
5076ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5077ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5078ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5079ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5080ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5081ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5082ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5083ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5084ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5085ulong3 __ovld __cnfn convert_ulong3(double3);
5086ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5087ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5088ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5089ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5090ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5091ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5092ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5093ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5094ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5095ulong4 __ovld __cnfn convert_ulong4(double4);
5096ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5097ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5098ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5099ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5100ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5101ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5102ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5103ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5104ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5105ulong8 __ovld __cnfn convert_ulong8(double8);
5106ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5107ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5108ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5109ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5110ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5111ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5112ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5113ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5114ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5115ulong16 __ovld __cnfn convert_ulong16(double16);
5116ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5117ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5118ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5119ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5120ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5121ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5122ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5123ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5124ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5125
5126float __ovld __cnfn convert_float(double);
5127float __ovld __cnfn convert_float_rte(double);
5128float __ovld __cnfn convert_float_rtn(double);
5129float __ovld __cnfn convert_float_rtp(double);
5130float __ovld __cnfn convert_float_rtz(double);
5131float2 __ovld __cnfn convert_float2(double2);
5132float2 __ovld __cnfn convert_float2_rte(double2);
5133float2 __ovld __cnfn convert_float2_rtn(double2);
5134float2 __ovld __cnfn convert_float2_rtp(double2);
5135float2 __ovld __cnfn convert_float2_rtz(double2);
5136float3 __ovld __cnfn convert_float3(double3);
5137float3 __ovld __cnfn convert_float3_rte(double3);
5138float3 __ovld __cnfn convert_float3_rtn(double3);
5139float3 __ovld __cnfn convert_float3_rtp(double3);
5140float3 __ovld __cnfn convert_float3_rtz(double3);
5141float4 __ovld __cnfn convert_float4(double4);
5142float4 __ovld __cnfn convert_float4_rte(double4);
5143float4 __ovld __cnfn convert_float4_rtn(double4);
5144float4 __ovld __cnfn convert_float4_rtp(double4);
5145float4 __ovld __cnfn convert_float4_rtz(double4);
5146float8 __ovld __cnfn convert_float8(double8);
5147float8 __ovld __cnfn convert_float8_rte(double8);
5148float8 __ovld __cnfn convert_float8_rtn(double8);
5149float8 __ovld __cnfn convert_float8_rtp(double8);
5150float8 __ovld __cnfn convert_float8_rtz(double8);
5151float16 __ovld __cnfn convert_float16(double16);
5152float16 __ovld __cnfn convert_float16_rte(double16);
5153float16 __ovld __cnfn convert_float16_rtn(double16);
5154float16 __ovld __cnfn convert_float16_rtp(double16);
5155float16 __ovld __cnfn convert_float16_rtz(double16);
5156
5157double __ovld __cnfn convert_double(char);
5158double __ovld __cnfn convert_double(double);
5159double __ovld __cnfn convert_double(float);
5160double __ovld __cnfn convert_double(int);
5161double __ovld __cnfn convert_double(long);
5162double __ovld __cnfn convert_double(short);
5163double __ovld __cnfn convert_double(uchar);
5164double __ovld __cnfn convert_double(uint);
5165double __ovld __cnfn convert_double(ulong);
5166double __ovld __cnfn convert_double(ushort);
5167double __ovld __cnfn convert_double_rte(char);
5168double __ovld __cnfn convert_double_rte(double);
5169double __ovld __cnfn convert_double_rte(float);
5170double __ovld __cnfn convert_double_rte(int);
5171double __ovld __cnfn convert_double_rte(long);
5172double __ovld __cnfn convert_double_rte(short);
5173double __ovld __cnfn convert_double_rte(uchar);
5174double __ovld __cnfn convert_double_rte(uint);
5175double __ovld __cnfn convert_double_rte(ulong);
5176double __ovld __cnfn convert_double_rte(ushort);
5177double __ovld __cnfn convert_double_rtn(char);
5178double __ovld __cnfn convert_double_rtn(double);
5179double __ovld __cnfn convert_double_rtn(float);
5180double __ovld __cnfn convert_double_rtn(int);
5181double __ovld __cnfn convert_double_rtn(long);
5182double __ovld __cnfn convert_double_rtn(short);
5183double __ovld __cnfn convert_double_rtn(uchar);
5184double __ovld __cnfn convert_double_rtn(uint);
5185double __ovld __cnfn convert_double_rtn(ulong);
5186double __ovld __cnfn convert_double_rtn(ushort);
5187double __ovld __cnfn convert_double_rtp(char);
5188double __ovld __cnfn convert_double_rtp(double);
5189double __ovld __cnfn convert_double_rtp(float);
5190double __ovld __cnfn convert_double_rtp(int);
5191double __ovld __cnfn convert_double_rtp(long);
5192double __ovld __cnfn convert_double_rtp(short);
5193double __ovld __cnfn convert_double_rtp(uchar);
5194double __ovld __cnfn convert_double_rtp(uint);
5195double __ovld __cnfn convert_double_rtp(ulong);
5196double __ovld __cnfn convert_double_rtp(ushort);
5197double __ovld __cnfn convert_double_rtz(char);
5198double __ovld __cnfn convert_double_rtz(double);
5199double __ovld __cnfn convert_double_rtz(float);
5200double __ovld __cnfn convert_double_rtz(int);
5201double __ovld __cnfn convert_double_rtz(long);
5202double __ovld __cnfn convert_double_rtz(short);
5203double __ovld __cnfn convert_double_rtz(uchar);
5204double __ovld __cnfn convert_double_rtz(uint);
5205double __ovld __cnfn convert_double_rtz(ulong);
5206double __ovld __cnfn convert_double_rtz(ushort);
5207double2 __ovld __cnfn convert_double2(char2);
5208double2 __ovld __cnfn convert_double2(double2);
5209double2 __ovld __cnfn convert_double2(float2);
5210double2 __ovld __cnfn convert_double2(int2);
5211double2 __ovld __cnfn convert_double2(long2);
5212double2 __ovld __cnfn convert_double2(short2);
5213double2 __ovld __cnfn convert_double2(uchar2);
5214double2 __ovld __cnfn convert_double2(uint2);
5215double2 __ovld __cnfn convert_double2(ulong2);
5216double2 __ovld __cnfn convert_double2(ushort2);
5217double2 __ovld __cnfn convert_double2_rte(char2);
5218double2 __ovld __cnfn convert_double2_rte(double2);
5219double2 __ovld __cnfn convert_double2_rte(float2);
5220double2 __ovld __cnfn convert_double2_rte(int2);
5221double2 __ovld __cnfn convert_double2_rte(long2);
5222double2 __ovld __cnfn convert_double2_rte(short2);
5223double2 __ovld __cnfn convert_double2_rte(uchar2);
5224double2 __ovld __cnfn convert_double2_rte(uint2);
5225double2 __ovld __cnfn convert_double2_rte(ulong2);
5226double2 __ovld __cnfn convert_double2_rte(ushort2);
5227double2 __ovld __cnfn convert_double2_rtn(char2);
5228double2 __ovld __cnfn convert_double2_rtn(double2);
5229double2 __ovld __cnfn convert_double2_rtn(float2);
5230double2 __ovld __cnfn convert_double2_rtn(int2);
5231double2 __ovld __cnfn convert_double2_rtn(long2);
5232double2 __ovld __cnfn convert_double2_rtn(short2);
5233double2 __ovld __cnfn convert_double2_rtn(uchar2);
5234double2 __ovld __cnfn convert_double2_rtn(uint2);
5235double2 __ovld __cnfn convert_double2_rtn(ulong2);
5236double2 __ovld __cnfn convert_double2_rtn(ushort2);
5237double2 __ovld __cnfn convert_double2_rtp(char2);
5238double2 __ovld __cnfn convert_double2_rtp(double2);
5239double2 __ovld __cnfn convert_double2_rtp(float2);
5240double2 __ovld __cnfn convert_double2_rtp(int2);
5241double2 __ovld __cnfn convert_double2_rtp(long2);
5242double2 __ovld __cnfn convert_double2_rtp(short2);
5243double2 __ovld __cnfn convert_double2_rtp(uchar2);
5244double2 __ovld __cnfn convert_double2_rtp(uint2);
5245double2 __ovld __cnfn convert_double2_rtp(ulong2);
5246double2 __ovld __cnfn convert_double2_rtp(ushort2);
5247double2 __ovld __cnfn convert_double2_rtz(char2);
5248double2 __ovld __cnfn convert_double2_rtz(double2);
5249double2 __ovld __cnfn convert_double2_rtz(float2);
5250double2 __ovld __cnfn convert_double2_rtz(int2);
5251double2 __ovld __cnfn convert_double2_rtz(long2);
5252double2 __ovld __cnfn convert_double2_rtz(short2);
5253double2 __ovld __cnfn convert_double2_rtz(uchar2);
5254double2 __ovld __cnfn convert_double2_rtz(uint2);
5255double2 __ovld __cnfn convert_double2_rtz(ulong2);
5256double2 __ovld __cnfn convert_double2_rtz(ushort2);
5257double3 __ovld __cnfn convert_double3(char3);
5258double3 __ovld __cnfn convert_double3(double3);
5259double3 __ovld __cnfn convert_double3(float3);
5260double3 __ovld __cnfn convert_double3(int3);
5261double3 __ovld __cnfn convert_double3(long3);
5262double3 __ovld __cnfn convert_double3(short3);
5263double3 __ovld __cnfn convert_double3(uchar3);
5264double3 __ovld __cnfn convert_double3(uint3);
5265double3 __ovld __cnfn convert_double3(ulong3);
5266double3 __ovld __cnfn convert_double3(ushort3);
5267double3 __ovld __cnfn convert_double3_rte(char3);
5268double3 __ovld __cnfn convert_double3_rte(double3);
5269double3 __ovld __cnfn convert_double3_rte(float3);
5270double3 __ovld __cnfn convert_double3_rte(int3);
5271double3 __ovld __cnfn convert_double3_rte(long3);
5272double3 __ovld __cnfn convert_double3_rte(short3);
5273double3 __ovld __cnfn convert_double3_rte(uchar3);
5274double3 __ovld __cnfn convert_double3_rte(uint3);
5275double3 __ovld __cnfn convert_double3_rte(ulong3);
5276double3 __ovld __cnfn convert_double3_rte(ushort3);
5277double3 __ovld __cnfn convert_double3_rtn(char3);
5278double3 __ovld __cnfn convert_double3_rtn(double3);
5279double3 __ovld __cnfn convert_double3_rtn(float3);
5280double3 __ovld __cnfn convert_double3_rtn(int3);
5281double3 __ovld __cnfn convert_double3_rtn(long3);
5282double3 __ovld __cnfn convert_double3_rtn(short3);
5283double3 __ovld __cnfn convert_double3_rtn(uchar3);
5284double3 __ovld __cnfn convert_double3_rtn(uint3);
5285double3 __ovld __cnfn convert_double3_rtn(ulong3);
5286double3 __ovld __cnfn convert_double3_rtn(ushort3);
5287double3 __ovld __cnfn convert_double3_rtp(char3);
5288double3 __ovld __cnfn convert_double3_rtp(double3);
5289double3 __ovld __cnfn convert_double3_rtp(float3);
5290double3 __ovld __cnfn convert_double3_rtp(int3);
5291double3 __ovld __cnfn convert_double3_rtp(long3);
5292double3 __ovld __cnfn convert_double3_rtp(short3);
5293double3 __ovld __cnfn convert_double3_rtp(uchar3);
5294double3 __ovld __cnfn convert_double3_rtp(uint3);
5295double3 __ovld __cnfn convert_double3_rtp(ulong3);
5296double3 __ovld __cnfn convert_double3_rtp(ushort3);
5297double3 __ovld __cnfn convert_double3_rtz(char3);
5298double3 __ovld __cnfn convert_double3_rtz(double3);
5299double3 __ovld __cnfn convert_double3_rtz(float3);
5300double3 __ovld __cnfn convert_double3_rtz(int3);
5301double3 __ovld __cnfn convert_double3_rtz(long3);
5302double3 __ovld __cnfn convert_double3_rtz(short3);
5303double3 __ovld __cnfn convert_double3_rtz(uchar3);
5304double3 __ovld __cnfn convert_double3_rtz(uint3);
5305double3 __ovld __cnfn convert_double3_rtz(ulong3);
5306double3 __ovld __cnfn convert_double3_rtz(ushort3);
5307double4 __ovld __cnfn convert_double4(char4);
5308double4 __ovld __cnfn convert_double4(double4);
5309double4 __ovld __cnfn convert_double4(float4);
5310double4 __ovld __cnfn convert_double4(int4);
5311double4 __ovld __cnfn convert_double4(long4);
5312double4 __ovld __cnfn convert_double4(short4);
5313double4 __ovld __cnfn convert_double4(uchar4);
5314double4 __ovld __cnfn convert_double4(uint4);
5315double4 __ovld __cnfn convert_double4(ulong4);
5316double4 __ovld __cnfn convert_double4(ushort4);
5317double4 __ovld __cnfn convert_double4_rte(char4);
5318double4 __ovld __cnfn convert_double4_rte(double4);
5319double4 __ovld __cnfn convert_double4_rte(float4);
5320double4 __ovld __cnfn convert_double4_rte(int4);
5321double4 __ovld __cnfn convert_double4_rte(long4);
5322double4 __ovld __cnfn convert_double4_rte(short4);
5323double4 __ovld __cnfn convert_double4_rte(uchar4);
5324double4 __ovld __cnfn convert_double4_rte(uint4);
5325double4 __ovld __cnfn convert_double4_rte(ulong4);
5326double4 __ovld __cnfn convert_double4_rte(ushort4);
5327double4 __ovld __cnfn convert_double4_rtn(char4);
5328double4 __ovld __cnfn convert_double4_rtn(double4);
5329double4 __ovld __cnfn convert_double4_rtn(float4);
5330double4 __ovld __cnfn convert_double4_rtn(int4);
5331double4 __ovld __cnfn convert_double4_rtn(long4);
5332double4 __ovld __cnfn convert_double4_rtn(short4);
5333double4 __ovld __cnfn convert_double4_rtn(uchar4);
5334double4 __ovld __cnfn convert_double4_rtn(uint4);
5335double4 __ovld __cnfn convert_double4_rtn(ulong4);
5336double4 __ovld __cnfn convert_double4_rtn(ushort4);
5337double4 __ovld __cnfn convert_double4_rtp(char4);
5338double4 __ovld __cnfn convert_double4_rtp(double4);
5339double4 __ovld __cnfn convert_double4_rtp(float4);
5340double4 __ovld __cnfn convert_double4_rtp(int4);
5341double4 __ovld __cnfn convert_double4_rtp(long4);
5342double4 __ovld __cnfn convert_double4_rtp(short4);
5343double4 __ovld __cnfn convert_double4_rtp(uchar4);
5344double4 __ovld __cnfn convert_double4_rtp(uint4);
5345double4 __ovld __cnfn convert_double4_rtp(ulong4);
5346double4 __ovld __cnfn convert_double4_rtp(ushort4);
5347double4 __ovld __cnfn convert_double4_rtz(char4);
5348double4 __ovld __cnfn convert_double4_rtz(double4);
5349double4 __ovld __cnfn convert_double4_rtz(float4);
5350double4 __ovld __cnfn convert_double4_rtz(int4);
5351double4 __ovld __cnfn convert_double4_rtz(long4);
5352double4 __ovld __cnfn convert_double4_rtz(short4);
5353double4 __ovld __cnfn convert_double4_rtz(uchar4);
5354double4 __ovld __cnfn convert_double4_rtz(uint4);
5355double4 __ovld __cnfn convert_double4_rtz(ulong4);
5356double4 __ovld __cnfn convert_double4_rtz(ushort4);
5357double8 __ovld __cnfn convert_double8(char8);
5358double8 __ovld __cnfn convert_double8(double8);
5359double8 __ovld __cnfn convert_double8(float8);
5360double8 __ovld __cnfn convert_double8(int8);
5361double8 __ovld __cnfn convert_double8(long8);
5362double8 __ovld __cnfn convert_double8(short8);
5363double8 __ovld __cnfn convert_double8(uchar8);
5364double8 __ovld __cnfn convert_double8(uint8);
5365double8 __ovld __cnfn convert_double8(ulong8);
5366double8 __ovld __cnfn convert_double8(ushort8);
5367double8 __ovld __cnfn convert_double8_rte(char8);
5368double8 __ovld __cnfn convert_double8_rte(double8);
5369double8 __ovld __cnfn convert_double8_rte(float8);
5370double8 __ovld __cnfn convert_double8_rte(int8);
5371double8 __ovld __cnfn convert_double8_rte(long8);
5372double8 __ovld __cnfn convert_double8_rte(short8);
5373double8 __ovld __cnfn convert_double8_rte(uchar8);
5374double8 __ovld __cnfn convert_double8_rte(uint8);
5375double8 __ovld __cnfn convert_double8_rte(ulong8);
5376double8 __ovld __cnfn convert_double8_rte(ushort8);
5377double8 __ovld __cnfn convert_double8_rtn(char8);
5378double8 __ovld __cnfn convert_double8_rtn(double8);
5379double8 __ovld __cnfn convert_double8_rtn(float8);
5380double8 __ovld __cnfn convert_double8_rtn(int8);
5381double8 __ovld __cnfn convert_double8_rtn(long8);
5382double8 __ovld __cnfn convert_double8_rtn(short8);
5383double8 __ovld __cnfn convert_double8_rtn(uchar8);
5384double8 __ovld __cnfn convert_double8_rtn(uint8);
5385double8 __ovld __cnfn convert_double8_rtn(ulong8);
5386double8 __ovld __cnfn convert_double8_rtn(ushort8);
5387double8 __ovld __cnfn convert_double8_rtp(char8);
5388double8 __ovld __cnfn convert_double8_rtp(double8);
5389double8 __ovld __cnfn convert_double8_rtp(float8);
5390double8 __ovld __cnfn convert_double8_rtp(int8);
5391double8 __ovld __cnfn convert_double8_rtp(long8);
5392double8 __ovld __cnfn convert_double8_rtp(short8);
5393double8 __ovld __cnfn convert_double8_rtp(uchar8);
5394double8 __ovld __cnfn convert_double8_rtp(uint8);
5395double8 __ovld __cnfn convert_double8_rtp(ulong8);
5396double8 __ovld __cnfn convert_double8_rtp(ushort8);
5397double8 __ovld __cnfn convert_double8_rtz(char8);
5398double8 __ovld __cnfn convert_double8_rtz(double8);
5399double8 __ovld __cnfn convert_double8_rtz(float8);
5400double8 __ovld __cnfn convert_double8_rtz(int8);
5401double8 __ovld __cnfn convert_double8_rtz(long8);
5402double8 __ovld __cnfn convert_double8_rtz(short8);
5403double8 __ovld __cnfn convert_double8_rtz(uchar8);
5404double8 __ovld __cnfn convert_double8_rtz(uint8);
5405double8 __ovld __cnfn convert_double8_rtz(ulong8);
5406double8 __ovld __cnfn convert_double8_rtz(ushort8);
5407double16 __ovld __cnfn convert_double16(char16);
5408double16 __ovld __cnfn convert_double16(double16);
5409double16 __ovld __cnfn convert_double16(float16);
5410double16 __ovld __cnfn convert_double16(int16);
5411double16 __ovld __cnfn convert_double16(long16);
5412double16 __ovld __cnfn convert_double16(short16);
5413double16 __ovld __cnfn convert_double16(uchar16);
5414double16 __ovld __cnfn convert_double16(uint16);
5415double16 __ovld __cnfn convert_double16(ulong16);
5416double16 __ovld __cnfn convert_double16(ushort16);
5417double16 __ovld __cnfn convert_double16_rte(char16);
5418double16 __ovld __cnfn convert_double16_rte(double16);
5419double16 __ovld __cnfn convert_double16_rte(float16);
5420double16 __ovld __cnfn convert_double16_rte(int16);
5421double16 __ovld __cnfn convert_double16_rte(long16);
5422double16 __ovld __cnfn convert_double16_rte(short16);
5423double16 __ovld __cnfn convert_double16_rte(uchar16);
5424double16 __ovld __cnfn convert_double16_rte(uint16);
5425double16 __ovld __cnfn convert_double16_rte(ulong16);
5426double16 __ovld __cnfn convert_double16_rte(ushort16);
5427double16 __ovld __cnfn convert_double16_rtn(char16);
5428double16 __ovld __cnfn convert_double16_rtn(double16);
5429double16 __ovld __cnfn convert_double16_rtn(float16);
5430double16 __ovld __cnfn convert_double16_rtn(int16);
5431double16 __ovld __cnfn convert_double16_rtn(long16);
5432double16 __ovld __cnfn convert_double16_rtn(short16);
5433double16 __ovld __cnfn convert_double16_rtn(uchar16);
5434double16 __ovld __cnfn convert_double16_rtn(uint16);
5435double16 __ovld __cnfn convert_double16_rtn(ulong16);
5436double16 __ovld __cnfn convert_double16_rtn(ushort16);
5437double16 __ovld __cnfn convert_double16_rtp(char16);
5438double16 __ovld __cnfn convert_double16_rtp(double16);
5439double16 __ovld __cnfn convert_double16_rtp(float16);
5440double16 __ovld __cnfn convert_double16_rtp(int16);
5441double16 __ovld __cnfn convert_double16_rtp(long16);
5442double16 __ovld __cnfn convert_double16_rtp(short16);
5443double16 __ovld __cnfn convert_double16_rtp(uchar16);
5444double16 __ovld __cnfn convert_double16_rtp(uint16);
5445double16 __ovld __cnfn convert_double16_rtp(ulong16);
5446double16 __ovld __cnfn convert_double16_rtp(ushort16);
5447double16 __ovld __cnfn convert_double16_rtz(char16);
5448double16 __ovld __cnfn convert_double16_rtz(double16);
5449double16 __ovld __cnfn convert_double16_rtz(float16);
5450double16 __ovld __cnfn convert_double16_rtz(int16);
5451double16 __ovld __cnfn convert_double16_rtz(long16);
5452double16 __ovld __cnfn convert_double16_rtz(short16);
5453double16 __ovld __cnfn convert_double16_rtz(uchar16);
5454double16 __ovld __cnfn convert_double16_rtz(uint16);
5455double16 __ovld __cnfn convert_double16_rtz(ulong16);
5456double16 __ovld __cnfn convert_double16_rtz(ushort16);
5457#endif //cl_khr_fp64
5458
5459#ifdef cl_khr_fp16
Pirama Arumuga Nainar986b8802021-06-03 16:00:34 -07005460#pragma OPENCL EXTENSION cl_khr_fp16 : enable
Logan Chien2833ffb2018-10-09 10:03:24 +08005461// Convert half types to non-double types.
5462uchar __ovld __cnfn convert_uchar(half);
5463uchar __ovld __cnfn convert_uchar_rte(half);
5464uchar __ovld __cnfn convert_uchar_rtp(half);
5465uchar __ovld __cnfn convert_uchar_rtn(half);
5466uchar __ovld __cnfn convert_uchar_rtz(half);
5467uchar __ovld __cnfn convert_uchar_sat(half);
5468uchar __ovld __cnfn convert_uchar_sat_rte(half);
5469uchar __ovld __cnfn convert_uchar_sat_rtp(half);
5470uchar __ovld __cnfn convert_uchar_sat_rtn(half);
5471uchar __ovld __cnfn convert_uchar_sat_rtz(half);
5472uchar2 __ovld __cnfn convert_uchar2(half2);
5473uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5474uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5475uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5476uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5477uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5478uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
5479uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
5480uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
5481uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
5482uchar3 __ovld __cnfn convert_uchar3(half3);
5483uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5484uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5485uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5486uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5487uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5488uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
5489uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
5490uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
5491uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
5492uchar4 __ovld __cnfn convert_uchar4(half4);
5493uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5494uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5495uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5496uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5497uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5498uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
5499uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
5500uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
5501uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
5502uchar8 __ovld __cnfn convert_uchar8(half8);
5503uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5504uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5505uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5506uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5507uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5508uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
5509uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
5510uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
5511uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
5512uchar16 __ovld __cnfn convert_uchar16(half16);
5513uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5514uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5515uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5516uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5517uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5518uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5519uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5520uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5521uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5522ushort __ovld __cnfn convert_ushort(half);
5523ushort __ovld __cnfn convert_ushort_rte(half);
5524ushort __ovld __cnfn convert_ushort_rtp(half);
5525ushort __ovld __cnfn convert_ushort_rtn(half);
5526ushort __ovld __cnfn convert_ushort_rtz(half);
5527ushort __ovld __cnfn convert_ushort_sat(half);
5528ushort __ovld __cnfn convert_ushort_sat_rte(half);
5529ushort __ovld __cnfn convert_ushort_sat_rtp(half);
5530ushort __ovld __cnfn convert_ushort_sat_rtn(half);
5531ushort __ovld __cnfn convert_ushort_sat_rtz(half);
5532ushort2 __ovld __cnfn convert_ushort2(half2);
5533ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5534ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5535ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5536ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5537ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5538ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
5539ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
5540ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
5541ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
5542ushort3 __ovld __cnfn convert_ushort3(half3);
5543ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5544ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5545ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5546ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5547ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5548ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
5549ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
5550ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
5551ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
5552ushort4 __ovld __cnfn convert_ushort4(half4);
5553ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5554ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5555ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5556ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5557ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5558ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
5559ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
5560ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
5561ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
5562ushort8 __ovld __cnfn convert_ushort8(half8);
5563ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5564ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5565ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5566ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5567ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5568ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
5569ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
5570ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
5571ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
5572ushort16 __ovld __cnfn convert_ushort16(half16);
5573ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5574ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5575ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5576ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5577ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5578ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5579ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5580ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5581ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5582uint __ovld __cnfn convert_uint(half);
5583uint __ovld __cnfn convert_uint_rte(half);
5584uint __ovld __cnfn convert_uint_rtp(half);
5585uint __ovld __cnfn convert_uint_rtn(half);
5586uint __ovld __cnfn convert_uint_rtz(half);
5587uint __ovld __cnfn convert_uint_sat(half);
5588uint __ovld __cnfn convert_uint_sat_rte(half);
5589uint __ovld __cnfn convert_uint_sat_rtp(half);
5590uint __ovld __cnfn convert_uint_sat_rtn(half);
5591uint __ovld __cnfn convert_uint_sat_rtz(half);
5592uint2 __ovld __cnfn convert_uint2(half2);
5593uint2 __ovld __cnfn convert_uint2_rte(half2);
5594uint2 __ovld __cnfn convert_uint2_rtp(half2);
5595uint2 __ovld __cnfn convert_uint2_rtn(half2);
5596uint2 __ovld __cnfn convert_uint2_rtz(half2);
5597uint2 __ovld __cnfn convert_uint2_sat(half2);
5598uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
5599uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
5600uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
5601uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
5602uint3 __ovld __cnfn convert_uint3(half3);
5603uint3 __ovld __cnfn convert_uint3_rte(half3);
5604uint3 __ovld __cnfn convert_uint3_rtp(half3);
5605uint3 __ovld __cnfn convert_uint3_rtn(half3);
5606uint3 __ovld __cnfn convert_uint3_rtz(half3);
5607uint3 __ovld __cnfn convert_uint3_sat(half3);
5608uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
5609uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
5610uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
5611uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
5612uint4 __ovld __cnfn convert_uint4(half4);
5613uint4 __ovld __cnfn convert_uint4_rte(half4);
5614uint4 __ovld __cnfn convert_uint4_rtp(half4);
5615uint4 __ovld __cnfn convert_uint4_rtn(half4);
5616uint4 __ovld __cnfn convert_uint4_rtz(half4);
5617uint4 __ovld __cnfn convert_uint4_sat(half4);
5618uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
5619uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
5620uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
5621uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
5622uint8 __ovld __cnfn convert_uint8(half8);
5623uint8 __ovld __cnfn convert_uint8_rte(half8);
5624uint8 __ovld __cnfn convert_uint8_rtp(half8);
5625uint8 __ovld __cnfn convert_uint8_rtn(half8);
5626uint8 __ovld __cnfn convert_uint8_rtz(half8);
5627uint8 __ovld __cnfn convert_uint8_sat(half8);
5628uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
5629uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
5630uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
5631uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
5632uint16 __ovld __cnfn convert_uint16(half16);
5633uint16 __ovld __cnfn convert_uint16_rte(half16);
5634uint16 __ovld __cnfn convert_uint16_rtp(half16);
5635uint16 __ovld __cnfn convert_uint16_rtn(half16);
5636uint16 __ovld __cnfn convert_uint16_rtz(half16);
5637uint16 __ovld __cnfn convert_uint16_sat(half16);
5638uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5639uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5640uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5641uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5642ulong __ovld __cnfn convert_ulong(half);
5643ulong __ovld __cnfn convert_ulong_rte(half);
5644ulong __ovld __cnfn convert_ulong_rtp(half);
5645ulong __ovld __cnfn convert_ulong_rtn(half);
5646ulong __ovld __cnfn convert_ulong_rtz(half);
5647ulong __ovld __cnfn convert_ulong_sat(half);
5648ulong __ovld __cnfn convert_ulong_sat_rte(half);
5649ulong __ovld __cnfn convert_ulong_sat_rtp(half);
5650ulong __ovld __cnfn convert_ulong_sat_rtn(half);
5651ulong __ovld __cnfn convert_ulong_sat_rtz(half);
5652ulong2 __ovld __cnfn convert_ulong2(half2);
5653ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5654ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5655ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5656ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5657ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5658ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
5659ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
5660ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
5661ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
5662ulong3 __ovld __cnfn convert_ulong3(half3);
5663ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5664ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5665ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5666ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5667ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5668ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
5669ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
5670ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
5671ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
5672ulong4 __ovld __cnfn convert_ulong4(half4);
5673ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5674ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5675ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5676ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5677ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5678ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
5679ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
5680ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
5681ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
5682ulong8 __ovld __cnfn convert_ulong8(half8);
5683ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5684ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5685ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5686ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5687ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5688ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
5689ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
5690ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
5691ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
5692ulong16 __ovld __cnfn convert_ulong16(half16);
5693ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5694ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5695ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5696ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5697ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5698ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5699ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5700ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5701ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5702char __ovld __cnfn convert_char(half);
5703char __ovld __cnfn convert_char_rte(half);
5704char __ovld __cnfn convert_char_rtp(half);
5705char __ovld __cnfn convert_char_rtn(half);
5706char __ovld __cnfn convert_char_rtz(half);
5707char __ovld __cnfn convert_char_sat(half);
5708char __ovld __cnfn convert_char_sat_rte(half);
5709char __ovld __cnfn convert_char_sat_rtp(half);
5710char __ovld __cnfn convert_char_sat_rtn(half);
5711char __ovld __cnfn convert_char_sat_rtz(half);
5712char2 __ovld __cnfn convert_char2(half2);
5713char2 __ovld __cnfn convert_char2_rte(half2);
5714char2 __ovld __cnfn convert_char2_rtp(half2);
5715char2 __ovld __cnfn convert_char2_rtn(half2);
5716char2 __ovld __cnfn convert_char2_rtz(half2);
5717char2 __ovld __cnfn convert_char2_sat(half2);
5718char2 __ovld __cnfn convert_char2_sat_rte(half2);
5719char2 __ovld __cnfn convert_char2_sat_rtp(half2);
5720char2 __ovld __cnfn convert_char2_sat_rtn(half2);
5721char2 __ovld __cnfn convert_char2_sat_rtz(half2);
5722char3 __ovld __cnfn convert_char3(half3);
5723char3 __ovld __cnfn convert_char3_rte(half3);
5724char3 __ovld __cnfn convert_char3_rtp(half3);
5725char3 __ovld __cnfn convert_char3_rtn(half3);
5726char3 __ovld __cnfn convert_char3_rtz(half3);
5727char3 __ovld __cnfn convert_char3_sat(half3);
5728char3 __ovld __cnfn convert_char3_sat_rte(half3);
5729char3 __ovld __cnfn convert_char3_sat_rtp(half3);
5730char3 __ovld __cnfn convert_char3_sat_rtn(half3);
5731char3 __ovld __cnfn convert_char3_sat_rtz(half3);
5732char4 __ovld __cnfn convert_char4(half4);
5733char4 __ovld __cnfn convert_char4_rte(half4);
5734char4 __ovld __cnfn convert_char4_rtp(half4);
5735char4 __ovld __cnfn convert_char4_rtn(half4);
5736char4 __ovld __cnfn convert_char4_rtz(half4);
5737char4 __ovld __cnfn convert_char4_sat(half4);
5738char4 __ovld __cnfn convert_char4_sat_rte(half4);
5739char4 __ovld __cnfn convert_char4_sat_rtp(half4);
5740char4 __ovld __cnfn convert_char4_sat_rtn(half4);
5741char4 __ovld __cnfn convert_char4_sat_rtz(half4);
5742char8 __ovld __cnfn convert_char8(half8);
5743char8 __ovld __cnfn convert_char8_rte(half8);
5744char8 __ovld __cnfn convert_char8_rtp(half8);
5745char8 __ovld __cnfn convert_char8_rtn(half8);
5746char8 __ovld __cnfn convert_char8_rtz(half8);
5747char8 __ovld __cnfn convert_char8_sat(half8);
5748char8 __ovld __cnfn convert_char8_sat_rte(half8);
5749char8 __ovld __cnfn convert_char8_sat_rtp(half8);
5750char8 __ovld __cnfn convert_char8_sat_rtn(half8);
5751char8 __ovld __cnfn convert_char8_sat_rtz(half8);
5752char16 __ovld __cnfn convert_char16(half16);
5753char16 __ovld __cnfn convert_char16_rte(half16);
5754char16 __ovld __cnfn convert_char16_rtp(half16);
5755char16 __ovld __cnfn convert_char16_rtn(half16);
5756char16 __ovld __cnfn convert_char16_rtz(half16);
5757char16 __ovld __cnfn convert_char16_sat(half16);
5758char16 __ovld __cnfn convert_char16_sat_rte(half16);
5759char16 __ovld __cnfn convert_char16_sat_rtp(half16);
5760char16 __ovld __cnfn convert_char16_sat_rtn(half16);
5761char16 __ovld __cnfn convert_char16_sat_rtz(half16);
5762short __ovld __cnfn convert_short(half);
5763short __ovld __cnfn convert_short_rte(half);
5764short __ovld __cnfn convert_short_rtp(half);
5765short __ovld __cnfn convert_short_rtn(half);
5766short __ovld __cnfn convert_short_rtz(half);
5767short __ovld __cnfn convert_short_sat(half);
5768short __ovld __cnfn convert_short_sat_rte(half);
5769short __ovld __cnfn convert_short_sat_rtp(half);
5770short __ovld __cnfn convert_short_sat_rtn(half);
5771short __ovld __cnfn convert_short_sat_rtz(half);
5772short2 __ovld __cnfn convert_short2(half2);
5773short2 __ovld __cnfn convert_short2_rte(half2);
5774short2 __ovld __cnfn convert_short2_rtp(half2);
5775short2 __ovld __cnfn convert_short2_rtn(half2);
5776short2 __ovld __cnfn convert_short2_rtz(half2);
5777short2 __ovld __cnfn convert_short2_sat(half2);
5778short2 __ovld __cnfn convert_short2_sat_rte(half2);
5779short2 __ovld __cnfn convert_short2_sat_rtp(half2);
5780short2 __ovld __cnfn convert_short2_sat_rtn(half2);
5781short2 __ovld __cnfn convert_short2_sat_rtz(half2);
5782short3 __ovld __cnfn convert_short3(half3);
5783short3 __ovld __cnfn convert_short3_rte(half3);
5784short3 __ovld __cnfn convert_short3_rtp(half3);
5785short3 __ovld __cnfn convert_short3_rtn(half3);
5786short3 __ovld __cnfn convert_short3_rtz(half3);
5787short3 __ovld __cnfn convert_short3_sat(half3);
5788short3 __ovld __cnfn convert_short3_sat_rte(half3);
5789short3 __ovld __cnfn convert_short3_sat_rtp(half3);
5790short3 __ovld __cnfn convert_short3_sat_rtn(half3);
5791short3 __ovld __cnfn convert_short3_sat_rtz(half3);
5792short4 __ovld __cnfn convert_short4(half4);
5793short4 __ovld __cnfn convert_short4_rte(half4);
5794short4 __ovld __cnfn convert_short4_rtp(half4);
5795short4 __ovld __cnfn convert_short4_rtn(half4);
5796short4 __ovld __cnfn convert_short4_rtz(half4);
5797short4 __ovld __cnfn convert_short4_sat(half4);
5798short4 __ovld __cnfn convert_short4_sat_rte(half4);
5799short4 __ovld __cnfn convert_short4_sat_rtp(half4);
5800short4 __ovld __cnfn convert_short4_sat_rtn(half4);
5801short4 __ovld __cnfn convert_short4_sat_rtz(half4);
5802short8 __ovld __cnfn convert_short8(half8);
5803short8 __ovld __cnfn convert_short8_rte(half8);
5804short8 __ovld __cnfn convert_short8_rtp(half8);
5805short8 __ovld __cnfn convert_short8_rtn(half8);
5806short8 __ovld __cnfn convert_short8_rtz(half8);
5807short8 __ovld __cnfn convert_short8_sat(half8);
5808short8 __ovld __cnfn convert_short8_sat_rte(half8);
5809short8 __ovld __cnfn convert_short8_sat_rtp(half8);
5810short8 __ovld __cnfn convert_short8_sat_rtn(half8);
5811short8 __ovld __cnfn convert_short8_sat_rtz(half8);
5812short16 __ovld __cnfn convert_short16(half16);
5813short16 __ovld __cnfn convert_short16_rte(half16);
5814short16 __ovld __cnfn convert_short16_rtp(half16);
5815short16 __ovld __cnfn convert_short16_rtn(half16);
5816short16 __ovld __cnfn convert_short16_rtz(half16);
5817short16 __ovld __cnfn convert_short16_sat(half16);
5818short16 __ovld __cnfn convert_short16_sat_rte(half16);
5819short16 __ovld __cnfn convert_short16_sat_rtp(half16);
5820short16 __ovld __cnfn convert_short16_sat_rtn(half16);
5821short16 __ovld __cnfn convert_short16_sat_rtz(half16);
5822int __ovld __cnfn convert_int(half);
5823int __ovld __cnfn convert_int_rte(half);
5824int __ovld __cnfn convert_int_rtp(half);
5825int __ovld __cnfn convert_int_rtn(half);
5826int __ovld __cnfn convert_int_rtz(half);
5827int __ovld __cnfn convert_int_sat(half);
5828int __ovld __cnfn convert_int_sat_rte(half);
5829int __ovld __cnfn convert_int_sat_rtp(half);
5830int __ovld __cnfn convert_int_sat_rtn(half);
5831int __ovld __cnfn convert_int_sat_rtz(half);
5832int2 __ovld __cnfn convert_int2(half2);
5833int2 __ovld __cnfn convert_int2_rte(half2);
5834int2 __ovld __cnfn convert_int2_rtp(half2);
5835int2 __ovld __cnfn convert_int2_rtn(half2);
5836int2 __ovld __cnfn convert_int2_rtz(half2);
5837int2 __ovld __cnfn convert_int2_sat(half2);
5838int2 __ovld __cnfn convert_int2_sat_rte(half2);
5839int2 __ovld __cnfn convert_int2_sat_rtp(half2);
5840int2 __ovld __cnfn convert_int2_sat_rtn(half2);
5841int2 __ovld __cnfn convert_int2_sat_rtz(half2);
5842int3 __ovld __cnfn convert_int3(half3);
5843int3 __ovld __cnfn convert_int3_rte(half3);
5844int3 __ovld __cnfn convert_int3_rtp(half3);
5845int3 __ovld __cnfn convert_int3_rtn(half3);
5846int3 __ovld __cnfn convert_int3_rtz(half3);
5847int3 __ovld __cnfn convert_int3_sat(half3);
5848int3 __ovld __cnfn convert_int3_sat_rte(half3);
5849int3 __ovld __cnfn convert_int3_sat_rtp(half3);
5850int3 __ovld __cnfn convert_int3_sat_rtn(half3);
5851int3 __ovld __cnfn convert_int3_sat_rtz(half3);
5852int4 __ovld __cnfn convert_int4(half4);
5853int4 __ovld __cnfn convert_int4_rte(half4);
5854int4 __ovld __cnfn convert_int4_rtp(half4);
5855int4 __ovld __cnfn convert_int4_rtn(half4);
5856int4 __ovld __cnfn convert_int4_rtz(half4);
5857int4 __ovld __cnfn convert_int4_sat(half4);
5858int4 __ovld __cnfn convert_int4_sat_rte(half4);
5859int4 __ovld __cnfn convert_int4_sat_rtp(half4);
5860int4 __ovld __cnfn convert_int4_sat_rtn(half4);
5861int4 __ovld __cnfn convert_int4_sat_rtz(half4);
5862int8 __ovld __cnfn convert_int8(half8);
5863int8 __ovld __cnfn convert_int8_rte(half8);
5864int8 __ovld __cnfn convert_int8_rtp(half8);
5865int8 __ovld __cnfn convert_int8_rtn(half8);
5866int8 __ovld __cnfn convert_int8_rtz(half8);
5867int8 __ovld __cnfn convert_int8_sat(half8);
5868int8 __ovld __cnfn convert_int8_sat_rte(half8);
5869int8 __ovld __cnfn convert_int8_sat_rtp(half8);
5870int8 __ovld __cnfn convert_int8_sat_rtn(half8);
5871int8 __ovld __cnfn convert_int8_sat_rtz(half8);
5872int16 __ovld __cnfn convert_int16(half16);
5873int16 __ovld __cnfn convert_int16_rte(half16);
5874int16 __ovld __cnfn convert_int16_rtp(half16);
5875int16 __ovld __cnfn convert_int16_rtn(half16);
5876int16 __ovld __cnfn convert_int16_rtz(half16);
5877int16 __ovld __cnfn convert_int16_sat(half16);
5878int16 __ovld __cnfn convert_int16_sat_rte(half16);
5879int16 __ovld __cnfn convert_int16_sat_rtp(half16);
5880int16 __ovld __cnfn convert_int16_sat_rtn(half16);
5881int16 __ovld __cnfn convert_int16_sat_rtz(half16);
5882long __ovld __cnfn convert_long(half);
5883long __ovld __cnfn convert_long_rte(half);
5884long __ovld __cnfn convert_long_rtp(half);
5885long __ovld __cnfn convert_long_rtn(half);
5886long __ovld __cnfn convert_long_rtz(half);
5887long __ovld __cnfn convert_long_sat(half);
5888long __ovld __cnfn convert_long_sat_rte(half);
5889long __ovld __cnfn convert_long_sat_rtp(half);
5890long __ovld __cnfn convert_long_sat_rtn(half);
5891long __ovld __cnfn convert_long_sat_rtz(half);
5892long2 __ovld __cnfn convert_long2(half2);
5893long2 __ovld __cnfn convert_long2_rte(half2);
5894long2 __ovld __cnfn convert_long2_rtp(half2);
5895long2 __ovld __cnfn convert_long2_rtn(half2);
5896long2 __ovld __cnfn convert_long2_rtz(half2);
5897long2 __ovld __cnfn convert_long2_sat(half2);
5898long2 __ovld __cnfn convert_long2_sat_rte(half2);
5899long2 __ovld __cnfn convert_long2_sat_rtp(half2);
5900long2 __ovld __cnfn convert_long2_sat_rtn(half2);
5901long2 __ovld __cnfn convert_long2_sat_rtz(half2);
5902long3 __ovld __cnfn convert_long3(half3);
5903long3 __ovld __cnfn convert_long3_rte(half3);
5904long3 __ovld __cnfn convert_long3_rtp(half3);
5905long3 __ovld __cnfn convert_long3_rtn(half3);
5906long3 __ovld __cnfn convert_long3_rtz(half3);
5907long3 __ovld __cnfn convert_long3_sat(half3);
5908long3 __ovld __cnfn convert_long3_sat_rte(half3);
5909long3 __ovld __cnfn convert_long3_sat_rtp(half3);
5910long3 __ovld __cnfn convert_long3_sat_rtn(half3);
5911long3 __ovld __cnfn convert_long3_sat_rtz(half3);
5912long4 __ovld __cnfn convert_long4(half4);
5913long4 __ovld __cnfn convert_long4_rte(half4);
5914long4 __ovld __cnfn convert_long4_rtp(half4);
5915long4 __ovld __cnfn convert_long4_rtn(half4);
5916long4 __ovld __cnfn convert_long4_rtz(half4);
5917long4 __ovld __cnfn convert_long4_sat(half4);
5918long4 __ovld __cnfn convert_long4_sat_rte(half4);
5919long4 __ovld __cnfn convert_long4_sat_rtp(half4);
5920long4 __ovld __cnfn convert_long4_sat_rtn(half4);
5921long4 __ovld __cnfn convert_long4_sat_rtz(half4);
5922long8 __ovld __cnfn convert_long8(half8);
5923long8 __ovld __cnfn convert_long8_rte(half8);
5924long8 __ovld __cnfn convert_long8_rtp(half8);
5925long8 __ovld __cnfn convert_long8_rtn(half8);
5926long8 __ovld __cnfn convert_long8_rtz(half8);
5927long8 __ovld __cnfn convert_long8_sat(half8);
5928long8 __ovld __cnfn convert_long8_sat_rte(half8);
5929long8 __ovld __cnfn convert_long8_sat_rtp(half8);
5930long8 __ovld __cnfn convert_long8_sat_rtn(half8);
5931long8 __ovld __cnfn convert_long8_sat_rtz(half8);
5932long16 __ovld __cnfn convert_long16(half16);
5933long16 __ovld __cnfn convert_long16_rte(half16);
5934long16 __ovld __cnfn convert_long16_rtp(half16);
5935long16 __ovld __cnfn convert_long16_rtn(half16);
5936long16 __ovld __cnfn convert_long16_rtz(half16);
5937long16 __ovld __cnfn convert_long16_sat(half16);
5938long16 __ovld __cnfn convert_long16_sat_rte(half16);
5939long16 __ovld __cnfn convert_long16_sat_rtp(half16);
5940long16 __ovld __cnfn convert_long16_sat_rtn(half16);
5941long16 __ovld __cnfn convert_long16_sat_rtz(half16);
5942float __ovld __cnfn convert_float(half);
5943float __ovld __cnfn convert_float_rte(half);
5944float __ovld __cnfn convert_float_rtp(half);
5945float __ovld __cnfn convert_float_rtn(half);
5946float __ovld __cnfn convert_float_rtz(half);
5947float2 __ovld __cnfn convert_float2(half2);
5948float2 __ovld __cnfn convert_float2_rte(half2);
5949float2 __ovld __cnfn convert_float2_rtp(half2);
5950float2 __ovld __cnfn convert_float2_rtn(half2);
5951float2 __ovld __cnfn convert_float2_rtz(half2);
5952float3 __ovld __cnfn convert_float3(half3);
5953float3 __ovld __cnfn convert_float3_rte(half3);
5954float3 __ovld __cnfn convert_float3_rtp(half3);
5955float3 __ovld __cnfn convert_float3_rtn(half3);
5956float3 __ovld __cnfn convert_float3_rtz(half3);
5957float4 __ovld __cnfn convert_float4(half4);
5958float4 __ovld __cnfn convert_float4_rte(half4);
5959float4 __ovld __cnfn convert_float4_rtp(half4);
5960float4 __ovld __cnfn convert_float4_rtn(half4);
5961float4 __ovld __cnfn convert_float4_rtz(half4);
5962float8 __ovld __cnfn convert_float8(half8);
5963float8 __ovld __cnfn convert_float8_rte(half8);
5964float8 __ovld __cnfn convert_float8_rtp(half8);
5965float8 __ovld __cnfn convert_float8_rtn(half8);
5966float8 __ovld __cnfn convert_float8_rtz(half8);
5967float16 __ovld __cnfn convert_float16(half16);
5968float16 __ovld __cnfn convert_float16_rte(half16);
5969float16 __ovld __cnfn convert_float16_rtp(half16);
5970float16 __ovld __cnfn convert_float16_rtn(half16);
5971float16 __ovld __cnfn convert_float16_rtz(half16);
5972
5973// Convert non-double types to half types.
5974half __ovld __cnfn convert_half(uchar);
5975half __ovld __cnfn convert_half(ushort);
5976half __ovld __cnfn convert_half(uint);
5977half __ovld __cnfn convert_half(ulong);
5978half __ovld __cnfn convert_half(char);
5979half __ovld __cnfn convert_half(short);
5980half __ovld __cnfn convert_half(int);
5981half __ovld __cnfn convert_half(long);
5982half __ovld __cnfn convert_half(float);
5983half __ovld __cnfn convert_half(half);
5984half __ovld __cnfn convert_half_rte(uchar);
5985half __ovld __cnfn convert_half_rte(ushort);
5986half __ovld __cnfn convert_half_rte(uint);
5987half __ovld __cnfn convert_half_rte(ulong);
5988half __ovld __cnfn convert_half_rte(char);
5989half __ovld __cnfn convert_half_rte(short);
5990half __ovld __cnfn convert_half_rte(int);
5991half __ovld __cnfn convert_half_rte(long);
5992half __ovld __cnfn convert_half_rte(float);
5993half __ovld __cnfn convert_half_rte(half);
5994half __ovld __cnfn convert_half_rtp(uchar);
5995half __ovld __cnfn convert_half_rtp(ushort);
5996half __ovld __cnfn convert_half_rtp(uint);
5997half __ovld __cnfn convert_half_rtp(ulong);
5998half __ovld __cnfn convert_half_rtp(char);
5999half __ovld __cnfn convert_half_rtp(short);
6000half __ovld __cnfn convert_half_rtp(int);
6001half __ovld __cnfn convert_half_rtp(long);
6002half __ovld __cnfn convert_half_rtp(float);
6003half __ovld __cnfn convert_half_rtp(half);
6004half __ovld __cnfn convert_half_rtn(uchar);
6005half __ovld __cnfn convert_half_rtn(ushort);
6006half __ovld __cnfn convert_half_rtn(uint);
6007half __ovld __cnfn convert_half_rtn(ulong);
6008half __ovld __cnfn convert_half_rtn(char);
6009half __ovld __cnfn convert_half_rtn(short);
6010half __ovld __cnfn convert_half_rtn(int);
6011half __ovld __cnfn convert_half_rtn(long);
6012half __ovld __cnfn convert_half_rtn(float);
6013half __ovld __cnfn convert_half_rtn(half);
6014half __ovld __cnfn convert_half_rtz(uchar);
6015half __ovld __cnfn convert_half_rtz(ushort);
6016half __ovld __cnfn convert_half_rtz(uint);
6017half __ovld __cnfn convert_half_rtz(ulong);
6018half __ovld __cnfn convert_half_rtz(char);
6019half __ovld __cnfn convert_half_rtz(short);
6020half __ovld __cnfn convert_half_rtz(int);
6021half __ovld __cnfn convert_half_rtz(long);
6022half __ovld __cnfn convert_half_rtz(float);
6023half __ovld __cnfn convert_half_rtz(half);
6024half2 __ovld __cnfn convert_half2(char2);
6025half2 __ovld __cnfn convert_half2(uchar2);
6026half2 __ovld __cnfn convert_half2(short2);
6027half2 __ovld __cnfn convert_half2(ushort2);
6028half2 __ovld __cnfn convert_half2(int2);
6029half2 __ovld __cnfn convert_half2(uint2);
6030half2 __ovld __cnfn convert_half2(long2);
6031half2 __ovld __cnfn convert_half2(ulong2);
6032half2 __ovld __cnfn convert_half2(float2);
6033half2 __ovld __cnfn convert_half2(half2);
6034half2 __ovld __cnfn convert_half2_rte(char2);
6035half2 __ovld __cnfn convert_half2_rte(uchar2);
6036half2 __ovld __cnfn convert_half2_rte(short2);
6037half2 __ovld __cnfn convert_half2_rte(ushort2);
6038half2 __ovld __cnfn convert_half2_rte(int2);
6039half2 __ovld __cnfn convert_half2_rte(uint2);
6040half2 __ovld __cnfn convert_half2_rte(long2);
6041half2 __ovld __cnfn convert_half2_rte(ulong2);
6042half2 __ovld __cnfn convert_half2_rte(float2);
6043half2 __ovld __cnfn convert_half2_rte(half2);
6044half2 __ovld __cnfn convert_half2_rtp(char2);
6045half2 __ovld __cnfn convert_half2_rtp(uchar2);
6046half2 __ovld __cnfn convert_half2_rtp(short2);
6047half2 __ovld __cnfn convert_half2_rtp(ushort2);
6048half2 __ovld __cnfn convert_half2_rtp(int2);
6049half2 __ovld __cnfn convert_half2_rtp(uint2);
6050half2 __ovld __cnfn convert_half2_rtp(long2);
6051half2 __ovld __cnfn convert_half2_rtp(ulong2);
6052half2 __ovld __cnfn convert_half2_rtp(float2);
6053half2 __ovld __cnfn convert_half2_rtp(half2);
6054half2 __ovld __cnfn convert_half2_rtn(char2);
6055half2 __ovld __cnfn convert_half2_rtn(uchar2);
6056half2 __ovld __cnfn convert_half2_rtn(short2);
6057half2 __ovld __cnfn convert_half2_rtn(ushort2);
6058half2 __ovld __cnfn convert_half2_rtn(int2);
6059half2 __ovld __cnfn convert_half2_rtn(uint2);
6060half2 __ovld __cnfn convert_half2_rtn(long2);
6061half2 __ovld __cnfn convert_half2_rtn(ulong2);
6062half2 __ovld __cnfn convert_half2_rtn(float2);
6063half2 __ovld __cnfn convert_half2_rtn(half2);
6064half2 __ovld __cnfn convert_half2_rtz(char2);
6065half2 __ovld __cnfn convert_half2_rtz(uchar2);
6066half2 __ovld __cnfn convert_half2_rtz(short2);
6067half2 __ovld __cnfn convert_half2_rtz(ushort2);
6068half2 __ovld __cnfn convert_half2_rtz(int2);
6069half2 __ovld __cnfn convert_half2_rtz(uint2);
6070half2 __ovld __cnfn convert_half2_rtz(long2);
6071half2 __ovld __cnfn convert_half2_rtz(ulong2);
6072half2 __ovld __cnfn convert_half2_rtz(float2);
6073half2 __ovld __cnfn convert_half2_rtz(half2);
6074half3 __ovld __cnfn convert_half3(char3);
6075half3 __ovld __cnfn convert_half3(uchar3);
6076half3 __ovld __cnfn convert_half3(short3);
6077half3 __ovld __cnfn convert_half3(ushort3);
6078half3 __ovld __cnfn convert_half3(int3);
6079half3 __ovld __cnfn convert_half3(uint3);
6080half3 __ovld __cnfn convert_half3(long3);
6081half3 __ovld __cnfn convert_half3(ulong3);
6082half3 __ovld __cnfn convert_half3(float3);
6083half3 __ovld __cnfn convert_half3(half3);
6084half3 __ovld __cnfn convert_half3_rte(char3);
6085half3 __ovld __cnfn convert_half3_rte(uchar3);
6086half3 __ovld __cnfn convert_half3_rte(short3);
6087half3 __ovld __cnfn convert_half3_rte(ushort3);
6088half3 __ovld __cnfn convert_half3_rte(int3);
6089half3 __ovld __cnfn convert_half3_rte(uint3);
6090half3 __ovld __cnfn convert_half3_rte(long3);
6091half3 __ovld __cnfn convert_half3_rte(ulong3);
6092half3 __ovld __cnfn convert_half3_rte(float3);
6093half3 __ovld __cnfn convert_half3_rte(half3);
6094half3 __ovld __cnfn convert_half3_rtp(char3);
6095half3 __ovld __cnfn convert_half3_rtp(uchar3);
6096half3 __ovld __cnfn convert_half3_rtp(short3);
6097half3 __ovld __cnfn convert_half3_rtp(ushort3);
6098half3 __ovld __cnfn convert_half3_rtp(int3);
6099half3 __ovld __cnfn convert_half3_rtp(uint3);
6100half3 __ovld __cnfn convert_half3_rtp(long3);
6101half3 __ovld __cnfn convert_half3_rtp(ulong3);
6102half3 __ovld __cnfn convert_half3_rtp(float3);
6103half3 __ovld __cnfn convert_half3_rtp(half3);
6104half3 __ovld __cnfn convert_half3_rtn(char3);
6105half3 __ovld __cnfn convert_half3_rtn(uchar3);
6106half3 __ovld __cnfn convert_half3_rtn(short3);
6107half3 __ovld __cnfn convert_half3_rtn(ushort3);
6108half3 __ovld __cnfn convert_half3_rtn(int3);
6109half3 __ovld __cnfn convert_half3_rtn(uint3);
6110half3 __ovld __cnfn convert_half3_rtn(long3);
6111half3 __ovld __cnfn convert_half3_rtn(ulong3);
6112half3 __ovld __cnfn convert_half3_rtn(float3);
6113half3 __ovld __cnfn convert_half3_rtn(half3);
6114half3 __ovld __cnfn convert_half3_rtz(char3);
6115half3 __ovld __cnfn convert_half3_rtz(uchar3);
6116half3 __ovld __cnfn convert_half3_rtz(short3);
6117half3 __ovld __cnfn convert_half3_rtz(ushort3);
6118half3 __ovld __cnfn convert_half3_rtz(int3);
6119half3 __ovld __cnfn convert_half3_rtz(uint3);
6120half3 __ovld __cnfn convert_half3_rtz(long3);
6121half3 __ovld __cnfn convert_half3_rtz(ulong3);
6122half3 __ovld __cnfn convert_half3_rtz(float3);
6123half3 __ovld __cnfn convert_half3_rtz(half3);
6124half4 __ovld __cnfn convert_half4(char4);
6125half4 __ovld __cnfn convert_half4(uchar4);
6126half4 __ovld __cnfn convert_half4(short4);
6127half4 __ovld __cnfn convert_half4(ushort4);
6128half4 __ovld __cnfn convert_half4(int4);
6129half4 __ovld __cnfn convert_half4(uint4);
6130half4 __ovld __cnfn convert_half4(long4);
6131half4 __ovld __cnfn convert_half4(ulong4);
6132half4 __ovld __cnfn convert_half4(float4);
6133half4 __ovld __cnfn convert_half4(half4);
6134half4 __ovld __cnfn convert_half4_rte(char4);
6135half4 __ovld __cnfn convert_half4_rte(uchar4);
6136half4 __ovld __cnfn convert_half4_rte(short4);
6137half4 __ovld __cnfn convert_half4_rte(ushort4);
6138half4 __ovld __cnfn convert_half4_rte(int4);
6139half4 __ovld __cnfn convert_half4_rte(uint4);
6140half4 __ovld __cnfn convert_half4_rte(long4);
6141half4 __ovld __cnfn convert_half4_rte(ulong4);
6142half4 __ovld __cnfn convert_half4_rte(float4);
6143half4 __ovld __cnfn convert_half4_rte(half4);
6144half4 __ovld __cnfn convert_half4_rtp(char4);
6145half4 __ovld __cnfn convert_half4_rtp(uchar4);
6146half4 __ovld __cnfn convert_half4_rtp(short4);
6147half4 __ovld __cnfn convert_half4_rtp(ushort4);
6148half4 __ovld __cnfn convert_half4_rtp(int4);
6149half4 __ovld __cnfn convert_half4_rtp(uint4);
6150half4 __ovld __cnfn convert_half4_rtp(long4);
6151half4 __ovld __cnfn convert_half4_rtp(ulong4);
6152half4 __ovld __cnfn convert_half4_rtp(float4);
6153half4 __ovld __cnfn convert_half4_rtp(half4);
6154half4 __ovld __cnfn convert_half4_rtn(char4);
6155half4 __ovld __cnfn convert_half4_rtn(uchar4);
6156half4 __ovld __cnfn convert_half4_rtn(short4);
6157half4 __ovld __cnfn convert_half4_rtn(ushort4);
6158half4 __ovld __cnfn convert_half4_rtn(int4);
6159half4 __ovld __cnfn convert_half4_rtn(uint4);
6160half4 __ovld __cnfn convert_half4_rtn(long4);
6161half4 __ovld __cnfn convert_half4_rtn(ulong4);
6162half4 __ovld __cnfn convert_half4_rtn(float4);
6163half4 __ovld __cnfn convert_half4_rtn(half4);
6164half4 __ovld __cnfn convert_half4_rtz(char4);
6165half4 __ovld __cnfn convert_half4_rtz(uchar4);
6166half4 __ovld __cnfn convert_half4_rtz(short4);
6167half4 __ovld __cnfn convert_half4_rtz(ushort4);
6168half4 __ovld __cnfn convert_half4_rtz(int4);
6169half4 __ovld __cnfn convert_half4_rtz(uint4);
6170half4 __ovld __cnfn convert_half4_rtz(long4);
6171half4 __ovld __cnfn convert_half4_rtz(ulong4);
6172half4 __ovld __cnfn convert_half4_rtz(float4);
6173half4 __ovld __cnfn convert_half4_rtz(half4);
6174half8 __ovld __cnfn convert_half8(char8);
6175half8 __ovld __cnfn convert_half8(uchar8);
6176half8 __ovld __cnfn convert_half8(short8);
6177half8 __ovld __cnfn convert_half8(ushort8);
6178half8 __ovld __cnfn convert_half8(int8);
6179half8 __ovld __cnfn convert_half8(uint8);
6180half8 __ovld __cnfn convert_half8(long8);
6181half8 __ovld __cnfn convert_half8(ulong8);
6182half8 __ovld __cnfn convert_half8(float8);
6183half8 __ovld __cnfn convert_half8(half8);
6184half8 __ovld __cnfn convert_half8_rte(char8);
6185half8 __ovld __cnfn convert_half8_rte(uchar8);
6186half8 __ovld __cnfn convert_half8_rte(short8);
6187half8 __ovld __cnfn convert_half8_rte(ushort8);
6188half8 __ovld __cnfn convert_half8_rte(int8);
6189half8 __ovld __cnfn convert_half8_rte(uint8);
6190half8 __ovld __cnfn convert_half8_rte(long8);
6191half8 __ovld __cnfn convert_half8_rte(ulong8);
6192half8 __ovld __cnfn convert_half8_rte(float8);
6193half8 __ovld __cnfn convert_half8_rte(half8);
6194half8 __ovld __cnfn convert_half8_rtp(char8);
6195half8 __ovld __cnfn convert_half8_rtp(uchar8);
6196half8 __ovld __cnfn convert_half8_rtp(short8);
6197half8 __ovld __cnfn convert_half8_rtp(ushort8);
6198half8 __ovld __cnfn convert_half8_rtp(int8);
6199half8 __ovld __cnfn convert_half8_rtp(uint8);
6200half8 __ovld __cnfn convert_half8_rtp(long8);
6201half8 __ovld __cnfn convert_half8_rtp(ulong8);
6202half8 __ovld __cnfn convert_half8_rtp(float8);
6203half8 __ovld __cnfn convert_half8_rtp(half8);
6204half8 __ovld __cnfn convert_half8_rtn(char8);
6205half8 __ovld __cnfn convert_half8_rtn(uchar8);
6206half8 __ovld __cnfn convert_half8_rtn(short8);
6207half8 __ovld __cnfn convert_half8_rtn(ushort8);
6208half8 __ovld __cnfn convert_half8_rtn(int8);
6209half8 __ovld __cnfn convert_half8_rtn(uint8);
6210half8 __ovld __cnfn convert_half8_rtn(long8);
6211half8 __ovld __cnfn convert_half8_rtn(ulong8);
6212half8 __ovld __cnfn convert_half8_rtn(float8);
6213half8 __ovld __cnfn convert_half8_rtn(half8);
6214half8 __ovld __cnfn convert_half8_rtz(char8);
6215half8 __ovld __cnfn convert_half8_rtz(uchar8);
6216half8 __ovld __cnfn convert_half8_rtz(short8);
6217half8 __ovld __cnfn convert_half8_rtz(ushort8);
6218half8 __ovld __cnfn convert_half8_rtz(int8);
6219half8 __ovld __cnfn convert_half8_rtz(uint8);
6220half8 __ovld __cnfn convert_half8_rtz(long8);
6221half8 __ovld __cnfn convert_half8_rtz(ulong8);
6222half8 __ovld __cnfn convert_half8_rtz(float8);
6223half8 __ovld __cnfn convert_half8_rtz(half8);
6224half16 __ovld __cnfn convert_half16(char16);
6225half16 __ovld __cnfn convert_half16(uchar16);
6226half16 __ovld __cnfn convert_half16(short16);
6227half16 __ovld __cnfn convert_half16(ushort16);
6228half16 __ovld __cnfn convert_half16(int16);
6229half16 __ovld __cnfn convert_half16(uint16);
6230half16 __ovld __cnfn convert_half16(long16);
6231half16 __ovld __cnfn convert_half16(ulong16);
6232half16 __ovld __cnfn convert_half16(float16);
6233half16 __ovld __cnfn convert_half16(half16);
6234half16 __ovld __cnfn convert_half16_rte(char16);
6235half16 __ovld __cnfn convert_half16_rte(uchar16);
6236half16 __ovld __cnfn convert_half16_rte(short16);
6237half16 __ovld __cnfn convert_half16_rte(ushort16);
6238half16 __ovld __cnfn convert_half16_rte(int16);
6239half16 __ovld __cnfn convert_half16_rte(uint16);
6240half16 __ovld __cnfn convert_half16_rte(long16);
6241half16 __ovld __cnfn convert_half16_rte(ulong16);
6242half16 __ovld __cnfn convert_half16_rte(float16);
6243half16 __ovld __cnfn convert_half16_rte(half16);
6244half16 __ovld __cnfn convert_half16_rtp(char16);
6245half16 __ovld __cnfn convert_half16_rtp(uchar16);
6246half16 __ovld __cnfn convert_half16_rtp(short16);
6247half16 __ovld __cnfn convert_half16_rtp(ushort16);
6248half16 __ovld __cnfn convert_half16_rtp(int16);
6249half16 __ovld __cnfn convert_half16_rtp(uint16);
6250half16 __ovld __cnfn convert_half16_rtp(long16);
6251half16 __ovld __cnfn convert_half16_rtp(ulong16);
6252half16 __ovld __cnfn convert_half16_rtp(float16);
6253half16 __ovld __cnfn convert_half16_rtp(half16);
6254half16 __ovld __cnfn convert_half16_rtn(char16);
6255half16 __ovld __cnfn convert_half16_rtn(uchar16);
6256half16 __ovld __cnfn convert_half16_rtn(short16);
6257half16 __ovld __cnfn convert_half16_rtn(ushort16);
6258half16 __ovld __cnfn convert_half16_rtn(int16);
6259half16 __ovld __cnfn convert_half16_rtn(uint16);
6260half16 __ovld __cnfn convert_half16_rtn(long16);
6261half16 __ovld __cnfn convert_half16_rtn(ulong16);
6262half16 __ovld __cnfn convert_half16_rtn(float16);
6263half16 __ovld __cnfn convert_half16_rtn(half16);
6264half16 __ovld __cnfn convert_half16_rtz(char16);
6265half16 __ovld __cnfn convert_half16_rtz(uchar16);
6266half16 __ovld __cnfn convert_half16_rtz(short16);
6267half16 __ovld __cnfn convert_half16_rtz(ushort16);
6268half16 __ovld __cnfn convert_half16_rtz(int16);
6269half16 __ovld __cnfn convert_half16_rtz(uint16);
6270half16 __ovld __cnfn convert_half16_rtz(long16);
6271half16 __ovld __cnfn convert_half16_rtz(ulong16);
6272half16 __ovld __cnfn convert_half16_rtz(float16);
6273half16 __ovld __cnfn convert_half16_rtz(half16);
6274
6275// Convert half types to double types.
6276#ifdef cl_khr_fp64
6277double __ovld __cnfn convert_double(half);
6278double __ovld __cnfn convert_double_rte(half);
6279double __ovld __cnfn convert_double_rtp(half);
6280double __ovld __cnfn convert_double_rtn(half);
6281double __ovld __cnfn convert_double_rtz(half);
6282double2 __ovld __cnfn convert_double2(half2);
6283double2 __ovld __cnfn convert_double2_rte(half2);
6284double2 __ovld __cnfn convert_double2_rtp(half2);
6285double2 __ovld __cnfn convert_double2_rtn(half2);
6286double2 __ovld __cnfn convert_double2_rtz(half2);
6287double3 __ovld __cnfn convert_double3(half3);
6288double3 __ovld __cnfn convert_double3_rte(half3);
6289double3 __ovld __cnfn convert_double3_rtp(half3);
6290double3 __ovld __cnfn convert_double3_rtn(half3);
6291double3 __ovld __cnfn convert_double3_rtz(half3);
6292double4 __ovld __cnfn convert_double4(half4);
6293double4 __ovld __cnfn convert_double4_rte(half4);
6294double4 __ovld __cnfn convert_double4_rtp(half4);
6295double4 __ovld __cnfn convert_double4_rtn(half4);
6296double4 __ovld __cnfn convert_double4_rtz(half4);
6297double8 __ovld __cnfn convert_double8(half8);
6298double8 __ovld __cnfn convert_double8_rte(half8);
6299double8 __ovld __cnfn convert_double8_rtp(half8);
6300double8 __ovld __cnfn convert_double8_rtn(half8);
6301double8 __ovld __cnfn convert_double8_rtz(half8);
6302double16 __ovld __cnfn convert_double16(half16);
6303double16 __ovld __cnfn convert_double16_rte(half16);
6304double16 __ovld __cnfn convert_double16_rtp(half16);
6305double16 __ovld __cnfn convert_double16_rtn(half16);
6306double16 __ovld __cnfn convert_double16_rtz(half16);
6307
6308// Convert double types to half types.
6309half __ovld __cnfn convert_half(double);
6310half __ovld __cnfn convert_half_rte(double);
6311half __ovld __cnfn convert_half_rtp(double);
6312half __ovld __cnfn convert_half_rtn(double);
6313half __ovld __cnfn convert_half_rtz(double);
6314half2 __ovld __cnfn convert_half2(double2);
6315half2 __ovld __cnfn convert_half2_rte(double2);
6316half2 __ovld __cnfn convert_half2_rtp(double2);
6317half2 __ovld __cnfn convert_half2_rtn(double2);
6318half2 __ovld __cnfn convert_half2_rtz(double2);
6319half3 __ovld __cnfn convert_half3(double3);
6320half3 __ovld __cnfn convert_half3_rte(double3);
6321half3 __ovld __cnfn convert_half3_rtp(double3);
6322half3 __ovld __cnfn convert_half3_rtn(double3);
6323half3 __ovld __cnfn convert_half3_rtz(double3);
6324half4 __ovld __cnfn convert_half4(double4);
6325half4 __ovld __cnfn convert_half4_rte(double4);
6326half4 __ovld __cnfn convert_half4_rtp(double4);
6327half4 __ovld __cnfn convert_half4_rtn(double4);
6328half4 __ovld __cnfn convert_half4_rtz(double4);
6329half8 __ovld __cnfn convert_half8(double8);
6330half8 __ovld __cnfn convert_half8_rte(double8);
6331half8 __ovld __cnfn convert_half8_rtp(double8);
6332half8 __ovld __cnfn convert_half8_rtn(double8);
6333half8 __ovld __cnfn convert_half8_rtz(double8);
6334half16 __ovld __cnfn convert_half16(double16);
6335half16 __ovld __cnfn convert_half16_rte(double16);
6336half16 __ovld __cnfn convert_half16_rtp(double16);
6337half16 __ovld __cnfn convert_half16_rtn(double16);
6338half16 __ovld __cnfn convert_half16_rtz(double16);
6339#endif //cl_khr_fp64
6340
6341#endif // cl_khr_fp16
6342
Logan Chien2833ffb2018-10-09 10:03:24 +08006343// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6344
6345/**
6346 * Returns the number of dimensions in use. This is the
6347 * value given to the work_dim argument specified in
6348 * clEnqueueNDRangeKernel.
6349 * For clEnqueueTask, this returns 1.
6350 */
6351uint __ovld __cnfn get_work_dim(void);
6352
6353/**
6354 * Returns the number of global work-items specified for
6355 * dimension identified by dimindx. This value is given by
6356 * the global_work_size argument to
6357 * clEnqueueNDRangeKernel. Valid values of dimindx
6358 * are 0 to get_work_dim() - 1. For other values of
6359 * dimindx, get_global_size() returns 1.
6360 * For clEnqueueTask, this always returns 1.
6361 */
6362size_t __ovld __cnfn get_global_size(uint dimindx);
6363
6364/**
6365 * Returns the unique global work-item ID value for
6366 * dimension identified by dimindx. The global work-item
6367 * ID specifies the work-item ID based on the number of
6368 * global work-items specified to execute the kernel. Valid
6369 * values of dimindx are 0 to get_work_dim() - 1. For
6370 * other values of dimindx, get_global_id() returns 0.
6371 * For clEnqueueTask, this returns 0.
6372 */
6373size_t __ovld __cnfn get_global_id(uint dimindx);
6374
6375/**
6376 * Returns the number of local work-items specified in
6377 * dimension identified by dimindx. This value is given by
6378 * the local_work_size argument to
6379 * clEnqueueNDRangeKernel if local_work_size is not
6380 * NULL; otherwise the OpenCL implementation chooses
6381 * an appropriate local_work_size value which is returned
6382 * by this function. Valid values of dimindx are 0 to
6383 * get_work_dim() - 1. For other values of dimindx,
6384 * get_local_size() returns 1.
6385 * For clEnqueueTask, this always returns 1.
6386 */
6387size_t __ovld __cnfn get_local_size(uint dimindx);
6388
6389/**
6390 * Returns the unique local work-item ID i.e. a work-item
6391 * within a specific work-group for dimension identified by
6392 * dimindx. Valid values of dimindx are 0 to
6393 * get_work_dim() - 1. For other values of dimindx,
6394 * get_local_id() returns 0.
6395 * For clEnqueueTask, this returns 0.
6396 */
6397size_t __ovld __cnfn get_local_id(uint dimindx);
6398
6399/**
6400 * Returns the number of work-groups that will execute a
6401 * kernel for dimension identified by dimindx.
6402 * Valid values of dimindx are 0 to get_work_dim() - 1.
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08006403 * For other values of dimindx, get_num_groups() returns 1.
Logan Chien2833ffb2018-10-09 10:03:24 +08006404 * For clEnqueueTask, this always returns 1.
6405 */
6406size_t __ovld __cnfn get_num_groups(uint dimindx);
6407
6408/**
6409 * get_group_id returns the work-group ID which is a
6410 * number from 0 .. get_num_groups(dimindx) - 1.
6411 * Valid values of dimindx are 0 to get_work_dim() - 1.
6412 * For other values, get_group_id() returns 0.
6413 * For clEnqueueTask, this returns 0.
6414 */
6415size_t __ovld __cnfn get_group_id(uint dimindx);
6416
6417/**
6418 * get_global_offset returns the offset values specified in
6419 * global_work_offset argument to
6420 * clEnqueueNDRangeKernel.
6421 * Valid values of dimindx are 0 to get_work_dim() - 1.
6422 * For other values, get_global_offset() returns 0.
6423 * For clEnqueueTask, this returns 0.
6424 */
6425size_t __ovld __cnfn get_global_offset(uint dimindx);
6426
Logan Chienbedbf4f2020-01-06 19:35:19 -08006427#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +08006428size_t __ovld get_enqueued_local_size(uint dimindx);
6429size_t __ovld get_global_linear_id(void);
6430size_t __ovld get_local_linear_id(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -08006431#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +08006432
6433// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
6434
6435/**
6436 * Arc cosine function.
6437 */
6438float __ovld __cnfn acos(float);
6439float2 __ovld __cnfn acos(float2);
6440float3 __ovld __cnfn acos(float3);
6441float4 __ovld __cnfn acos(float4);
6442float8 __ovld __cnfn acos(float8);
6443float16 __ovld __cnfn acos(float16);
6444#ifdef cl_khr_fp64
6445double __ovld __cnfn acos(double);
6446double2 __ovld __cnfn acos(double2);
6447double3 __ovld __cnfn acos(double3);
6448double4 __ovld __cnfn acos(double4);
6449double8 __ovld __cnfn acos(double8);
6450double16 __ovld __cnfn acos(double16);
6451#endif //cl_khr_fp64
6452#ifdef cl_khr_fp16
6453half __ovld __cnfn acos(half);
6454half2 __ovld __cnfn acos(half2);
6455half3 __ovld __cnfn acos(half3);
6456half4 __ovld __cnfn acos(half4);
6457half8 __ovld __cnfn acos(half8);
6458half16 __ovld __cnfn acos(half16);
6459#endif //cl_khr_fp16
6460
6461/**
6462 * Inverse hyperbolic cosine.
6463 */
6464float __ovld __cnfn acosh(float);
6465float2 __ovld __cnfn acosh(float2);
6466float3 __ovld __cnfn acosh(float3);
6467float4 __ovld __cnfn acosh(float4);
6468float8 __ovld __cnfn acosh(float8);
6469float16 __ovld __cnfn acosh(float16);
6470#ifdef cl_khr_fp64
6471double __ovld __cnfn acosh(double);
6472double2 __ovld __cnfn acosh(double2);
6473double3 __ovld __cnfn acosh(double3);
6474double4 __ovld __cnfn acosh(double4);
6475double8 __ovld __cnfn acosh(double8);
6476double16 __ovld __cnfn acosh(double16);
6477#endif //cl_khr_fp64
6478#ifdef cl_khr_fp16
6479half __ovld __cnfn acosh(half);
6480half2 __ovld __cnfn acosh(half2);
6481half3 __ovld __cnfn acosh(half3);
6482half4 __ovld __cnfn acosh(half4);
6483half8 __ovld __cnfn acosh(half8);
6484half16 __ovld __cnfn acosh(half16);
6485#endif //cl_khr_fp16
6486
6487/**
6488 * Compute acos (x) / PI.
6489 */
6490float __ovld __cnfn acospi(float x);
6491float2 __ovld __cnfn acospi(float2 x);
6492float3 __ovld __cnfn acospi(float3 x);
6493float4 __ovld __cnfn acospi(float4 x);
6494float8 __ovld __cnfn acospi(float8 x);
6495float16 __ovld __cnfn acospi(float16 x);
6496#ifdef cl_khr_fp64
6497double __ovld __cnfn acospi(double x);
6498double2 __ovld __cnfn acospi(double2 x);
6499double3 __ovld __cnfn acospi(double3 x);
6500double4 __ovld __cnfn acospi(double4 x);
6501double8 __ovld __cnfn acospi(double8 x);
6502double16 __ovld __cnfn acospi(double16 x);
6503#endif //cl_khr_fp64
6504#ifdef cl_khr_fp16
6505half __ovld __cnfn acospi(half x);
6506half2 __ovld __cnfn acospi(half2 x);
6507half3 __ovld __cnfn acospi(half3 x);
6508half4 __ovld __cnfn acospi(half4 x);
6509half8 __ovld __cnfn acospi(half8 x);
6510half16 __ovld __cnfn acospi(half16 x);
6511#endif //cl_khr_fp16
6512
6513/**
6514 * Arc sine function.
6515 */
6516float __ovld __cnfn asin(float);
6517float2 __ovld __cnfn asin(float2);
6518float3 __ovld __cnfn asin(float3);
6519float4 __ovld __cnfn asin(float4);
6520float8 __ovld __cnfn asin(float8);
6521float16 __ovld __cnfn asin(float16);
6522#ifdef cl_khr_fp64
6523double __ovld __cnfn asin(double);
6524double2 __ovld __cnfn asin(double2);
6525double3 __ovld __cnfn asin(double3);
6526double4 __ovld __cnfn asin(double4);
6527double8 __ovld __cnfn asin(double8);
6528double16 __ovld __cnfn asin(double16);
6529#endif //cl_khr_fp64
6530#ifdef cl_khr_fp16
6531half __ovld __cnfn asin(half);
6532half2 __ovld __cnfn asin(half2);
6533half3 __ovld __cnfn asin(half3);
6534half4 __ovld __cnfn asin(half4);
6535half8 __ovld __cnfn asin(half8);
6536half16 __ovld __cnfn asin(half16);
6537#endif //cl_khr_fp16
6538
6539/**
6540 * Inverse hyperbolic sine.
6541 */
6542float __ovld __cnfn asinh(float);
6543float2 __ovld __cnfn asinh(float2);
6544float3 __ovld __cnfn asinh(float3);
6545float4 __ovld __cnfn asinh(float4);
6546float8 __ovld __cnfn asinh(float8);
6547float16 __ovld __cnfn asinh(float16);
6548#ifdef cl_khr_fp64
6549double __ovld __cnfn asinh(double);
6550double2 __ovld __cnfn asinh(double2);
6551double3 __ovld __cnfn asinh(double3);
6552double4 __ovld __cnfn asinh(double4);
6553double8 __ovld __cnfn asinh(double8);
6554double16 __ovld __cnfn asinh(double16);
6555#endif //cl_khr_fp64
6556#ifdef cl_khr_fp16
6557half __ovld __cnfn asinh(half);
6558half2 __ovld __cnfn asinh(half2);
6559half3 __ovld __cnfn asinh(half3);
6560half4 __ovld __cnfn asinh(half4);
6561half8 __ovld __cnfn asinh(half8);
6562half16 __ovld __cnfn asinh(half16);
6563#endif //cl_khr_fp16
6564
6565/**
6566 * Compute asin (x) / PI.
6567 */
6568float __ovld __cnfn asinpi(float x);
6569float2 __ovld __cnfn asinpi(float2 x);
6570float3 __ovld __cnfn asinpi(float3 x);
6571float4 __ovld __cnfn asinpi(float4 x);
6572float8 __ovld __cnfn asinpi(float8 x);
6573float16 __ovld __cnfn asinpi(float16 x);
6574#ifdef cl_khr_fp64
6575double __ovld __cnfn asinpi(double x);
6576double2 __ovld __cnfn asinpi(double2 x);
6577double3 __ovld __cnfn asinpi(double3 x);
6578double4 __ovld __cnfn asinpi(double4 x);
6579double8 __ovld __cnfn asinpi(double8 x);
6580double16 __ovld __cnfn asinpi(double16 x);
6581#endif //cl_khr_fp64
6582#ifdef cl_khr_fp16
6583half __ovld __cnfn asinpi(half x);
6584half2 __ovld __cnfn asinpi(half2 x);
6585half3 __ovld __cnfn asinpi(half3 x);
6586half4 __ovld __cnfn asinpi(half4 x);
6587half8 __ovld __cnfn asinpi(half8 x);
6588half16 __ovld __cnfn asinpi(half16 x);
6589#endif //cl_khr_fp16
6590
6591/**
6592 * Arc tangent function.
6593 */
6594float __ovld __cnfn atan(float y_over_x);
6595float2 __ovld __cnfn atan(float2 y_over_x);
6596float3 __ovld __cnfn atan(float3 y_over_x);
6597float4 __ovld __cnfn atan(float4 y_over_x);
6598float8 __ovld __cnfn atan(float8 y_over_x);
6599float16 __ovld __cnfn atan(float16 y_over_x);
6600#ifdef cl_khr_fp64
6601double __ovld __cnfn atan(double y_over_x);
6602double2 __ovld __cnfn atan(double2 y_over_x);
6603double3 __ovld __cnfn atan(double3 y_over_x);
6604double4 __ovld __cnfn atan(double4 y_over_x);
6605double8 __ovld __cnfn atan(double8 y_over_x);
6606double16 __ovld __cnfn atan(double16 y_over_x);
6607#endif //cl_khr_fp64
6608#ifdef cl_khr_fp16
6609half __ovld __cnfn atan(half y_over_x);
6610half2 __ovld __cnfn atan(half2 y_over_x);
6611half3 __ovld __cnfn atan(half3 y_over_x);
6612half4 __ovld __cnfn atan(half4 y_over_x);
6613half8 __ovld __cnfn atan(half8 y_over_x);
6614half16 __ovld __cnfn atan(half16 y_over_x);
6615#endif //cl_khr_fp16
6616
6617/**
6618 * Arc tangent of y / x.
6619 */
6620float __ovld __cnfn atan2(float y, float x);
6621float2 __ovld __cnfn atan2(float2 y, float2 x);
6622float3 __ovld __cnfn atan2(float3 y, float3 x);
6623float4 __ovld __cnfn atan2(float4 y, float4 x);
6624float8 __ovld __cnfn atan2(float8 y, float8 x);
6625float16 __ovld __cnfn atan2(float16 y, float16 x);
6626#ifdef cl_khr_fp64
6627double __ovld __cnfn atan2(double y, double x);
6628double2 __ovld __cnfn atan2(double2 y, double2 x);
6629double3 __ovld __cnfn atan2(double3 y, double3 x);
6630double4 __ovld __cnfn atan2(double4 y, double4 x);
6631double8 __ovld __cnfn atan2(double8 y, double8 x);
6632double16 __ovld __cnfn atan2(double16 y, double16 x);
6633#endif //cl_khr_fp64
6634#ifdef cl_khr_fp16
6635half __ovld __cnfn atan2(half y, half x);
6636half2 __ovld __cnfn atan2(half2 y, half2 x);
6637half3 __ovld __cnfn atan2(half3 y, half3 x);
6638half4 __ovld __cnfn atan2(half4 y, half4 x);
6639half8 __ovld __cnfn atan2(half8 y, half8 x);
6640half16 __ovld __cnfn atan2(half16 y, half16 x);
6641#endif //cl_khr_fp16
6642
6643/**
6644 * Hyperbolic arc tangent.
6645 */
6646float __ovld __cnfn atanh(float);
6647float2 __ovld __cnfn atanh(float2);
6648float3 __ovld __cnfn atanh(float3);
6649float4 __ovld __cnfn atanh(float4);
6650float8 __ovld __cnfn atanh(float8);
6651float16 __ovld __cnfn atanh(float16);
6652#ifdef cl_khr_fp64
6653double __ovld __cnfn atanh(double);
6654double2 __ovld __cnfn atanh(double2);
6655double3 __ovld __cnfn atanh(double3);
6656double4 __ovld __cnfn atanh(double4);
6657double8 __ovld __cnfn atanh(double8);
6658double16 __ovld __cnfn atanh(double16);
6659#endif //cl_khr_fp64
6660#ifdef cl_khr_fp16
6661half __ovld __cnfn atanh(half);
6662half2 __ovld __cnfn atanh(half2);
6663half3 __ovld __cnfn atanh(half3);
6664half4 __ovld __cnfn atanh(half4);
6665half8 __ovld __cnfn atanh(half8);
6666half16 __ovld __cnfn atanh(half16);
6667#endif //cl_khr_fp16
6668
6669/**
6670 * Compute atan (x) / PI.
6671 */
6672float __ovld __cnfn atanpi(float x);
6673float2 __ovld __cnfn atanpi(float2 x);
6674float3 __ovld __cnfn atanpi(float3 x);
6675float4 __ovld __cnfn atanpi(float4 x);
6676float8 __ovld __cnfn atanpi(float8 x);
6677float16 __ovld __cnfn atanpi(float16 x);
6678#ifdef cl_khr_fp64
6679double __ovld __cnfn atanpi(double x);
6680double2 __ovld __cnfn atanpi(double2 x);
6681double3 __ovld __cnfn atanpi(double3 x);
6682double4 __ovld __cnfn atanpi(double4 x);
6683double8 __ovld __cnfn atanpi(double8 x);
6684double16 __ovld __cnfn atanpi(double16 x);
6685#endif //cl_khr_fp64
6686#ifdef cl_khr_fp16
6687half __ovld __cnfn atanpi(half x);
6688half2 __ovld __cnfn atanpi(half2 x);
6689half3 __ovld __cnfn atanpi(half3 x);
6690half4 __ovld __cnfn atanpi(half4 x);
6691half8 __ovld __cnfn atanpi(half8 x);
6692half16 __ovld __cnfn atanpi(half16 x);
6693#endif //cl_khr_fp16
6694
6695/**
6696 * Compute atan2 (y, x) / PI.
6697 */
6698float __ovld __cnfn atan2pi(float y, float x);
6699float2 __ovld __cnfn atan2pi(float2 y, float2 x);
6700float3 __ovld __cnfn atan2pi(float3 y, float3 x);
6701float4 __ovld __cnfn atan2pi(float4 y, float4 x);
6702float8 __ovld __cnfn atan2pi(float8 y, float8 x);
6703float16 __ovld __cnfn atan2pi(float16 y, float16 x);
6704#ifdef cl_khr_fp64
6705double __ovld __cnfn atan2pi(double y, double x);
6706double2 __ovld __cnfn atan2pi(double2 y, double2 x);
6707double3 __ovld __cnfn atan2pi(double3 y, double3 x);
6708double4 __ovld __cnfn atan2pi(double4 y, double4 x);
6709double8 __ovld __cnfn atan2pi(double8 y, double8 x);
6710double16 __ovld __cnfn atan2pi(double16 y, double16 x);
6711#endif //cl_khr_fp64
6712#ifdef cl_khr_fp16
6713half __ovld __cnfn atan2pi(half y, half x);
6714half2 __ovld __cnfn atan2pi(half2 y, half2 x);
6715half3 __ovld __cnfn atan2pi(half3 y, half3 x);
6716half4 __ovld __cnfn atan2pi(half4 y, half4 x);
6717half8 __ovld __cnfn atan2pi(half8 y, half8 x);
6718half16 __ovld __cnfn atan2pi(half16 y, half16 x);
6719#endif //cl_khr_fp16
6720
6721/**
6722 * Compute cube-root.
6723 */
6724float __ovld __cnfn cbrt(float);
6725float2 __ovld __cnfn cbrt(float2);
6726float3 __ovld __cnfn cbrt(float3);
6727float4 __ovld __cnfn cbrt(float4);
6728float8 __ovld __cnfn cbrt(float8);
6729float16 __ovld __cnfn cbrt(float16);
6730#ifdef cl_khr_fp64
6731double __ovld __cnfn cbrt(double);
6732double2 __ovld __cnfn cbrt(double2);
6733double3 __ovld __cnfn cbrt(double3);
6734double4 __ovld __cnfn cbrt(double4);
6735double8 __ovld __cnfn cbrt(double8);
6736double16 __ovld __cnfn cbrt(double16);
6737#endif //cl_khr_fp64
6738#ifdef cl_khr_fp16
6739half __ovld __cnfn cbrt(half);
6740half2 __ovld __cnfn cbrt(half2);
6741half3 __ovld __cnfn cbrt(half3);
6742half4 __ovld __cnfn cbrt(half4);
6743half8 __ovld __cnfn cbrt(half8);
6744half16 __ovld __cnfn cbrt(half16);
6745#endif //cl_khr_fp16
6746
6747/**
6748 * Round to integral value using the round to positive
6749 * infinity rounding mode.
6750 */
6751float __ovld __cnfn ceil(float);
6752float2 __ovld __cnfn ceil(float2);
6753float3 __ovld __cnfn ceil(float3);
6754float4 __ovld __cnfn ceil(float4);
6755float8 __ovld __cnfn ceil(float8);
6756float16 __ovld __cnfn ceil(float16);
6757#ifdef cl_khr_fp64
6758double __ovld __cnfn ceil(double);
6759double2 __ovld __cnfn ceil(double2);
6760double3 __ovld __cnfn ceil(double3);
6761double4 __ovld __cnfn ceil(double4);
6762double8 __ovld __cnfn ceil(double8);
6763double16 __ovld __cnfn ceil(double16);
6764#endif //cl_khr_fp64
6765#ifdef cl_khr_fp16
6766half __ovld __cnfn ceil(half);
6767half2 __ovld __cnfn ceil(half2);
6768half3 __ovld __cnfn ceil(half3);
6769half4 __ovld __cnfn ceil(half4);
6770half8 __ovld __cnfn ceil(half8);
6771half16 __ovld __cnfn ceil(half16);
6772#endif //cl_khr_fp16
6773
6774/**
6775 * Returns x with its sign changed to match the sign of y.
6776 */
6777float __ovld __cnfn copysign(float x, float y);
6778float2 __ovld __cnfn copysign(float2 x, float2 y);
6779float3 __ovld __cnfn copysign(float3 x, float3 y);
6780float4 __ovld __cnfn copysign(float4 x, float4 y);
6781float8 __ovld __cnfn copysign(float8 x, float8 y);
6782float16 __ovld __cnfn copysign(float16 x, float16 y);
6783#ifdef cl_khr_fp64
6784double __ovld __cnfn copysign(double x, double y);
6785double2 __ovld __cnfn copysign(double2 x, double2 y);
6786double3 __ovld __cnfn copysign(double3 x, double3 y);
6787double4 __ovld __cnfn copysign(double4 x, double4 y);
6788double8 __ovld __cnfn copysign(double8 x, double8 y);
6789double16 __ovld __cnfn copysign(double16 x, double16 y);
6790#endif //cl_khr_fp64
6791#ifdef cl_khr_fp16
6792half __ovld __cnfn copysign(half x, half y);
6793half2 __ovld __cnfn copysign(half2 x, half2 y);
6794half3 __ovld __cnfn copysign(half3 x, half3 y);
6795half4 __ovld __cnfn copysign(half4 x, half4 y);
6796half8 __ovld __cnfn copysign(half8 x, half8 y);
6797half16 __ovld __cnfn copysign(half16 x, half16 y);
6798#endif //cl_khr_fp16
6799
6800/**
6801 * Compute cosine.
6802 */
6803float __ovld __cnfn cos(float);
6804float2 __ovld __cnfn cos(float2);
6805float3 __ovld __cnfn cos(float3);
6806float4 __ovld __cnfn cos(float4);
6807float8 __ovld __cnfn cos(float8);
6808float16 __ovld __cnfn cos(float16);
6809#ifdef cl_khr_fp64
6810double __ovld __cnfn cos(double);
6811double2 __ovld __cnfn cos(double2);
6812double3 __ovld __cnfn cos(double3);
6813double4 __ovld __cnfn cos(double4);
6814double8 __ovld __cnfn cos(double8);
6815double16 __ovld __cnfn cos(double16);
6816#endif //cl_khr_fp64
6817#ifdef cl_khr_fp16
6818half __ovld __cnfn cos(half);
6819half2 __ovld __cnfn cos(half2);
6820half3 __ovld __cnfn cos(half3);
6821half4 __ovld __cnfn cos(half4);
6822half8 __ovld __cnfn cos(half8);
6823half16 __ovld __cnfn cos(half16);
6824#endif //cl_khr_fp16
6825
6826/**
6827 * Compute hyperbolic cosine.
6828 */
6829float __ovld __cnfn cosh(float);
6830float2 __ovld __cnfn cosh(float2);
6831float3 __ovld __cnfn cosh(float3);
6832float4 __ovld __cnfn cosh(float4);
6833float8 __ovld __cnfn cosh(float8);
6834float16 __ovld __cnfn cosh(float16);
6835#ifdef cl_khr_fp64
6836double __ovld __cnfn cosh(double);
6837double2 __ovld __cnfn cosh(double2);
6838double3 __ovld __cnfn cosh(double3);
6839double4 __ovld __cnfn cosh(double4);
6840double8 __ovld __cnfn cosh(double8);
6841double16 __ovld __cnfn cosh(double16);
6842#endif //cl_khr_fp64
6843#ifdef cl_khr_fp16
6844half __ovld __cnfn cosh(half);
6845half2 __ovld __cnfn cosh(half2);
6846half3 __ovld __cnfn cosh(half3);
6847half4 __ovld __cnfn cosh(half4);
6848half8 __ovld __cnfn cosh(half8);
6849half16 __ovld __cnfn cosh(half16);
6850#endif //cl_khr_fp16
6851
6852/**
6853 * Compute cos (PI * x).
6854 */
6855float __ovld __cnfn cospi(float x);
6856float2 __ovld __cnfn cospi(float2 x);
6857float3 __ovld __cnfn cospi(float3 x);
6858float4 __ovld __cnfn cospi(float4 x);
6859float8 __ovld __cnfn cospi(float8 x);
6860float16 __ovld __cnfn cospi(float16 x);
6861#ifdef cl_khr_fp64
6862double __ovld __cnfn cospi(double x);
6863double2 __ovld __cnfn cospi(double2 x);
6864double3 __ovld __cnfn cospi(double3 x);
6865double4 __ovld __cnfn cospi(double4 x);
6866double8 __ovld __cnfn cospi(double8 x);
6867double16 __ovld __cnfn cospi(double16 x);
6868#endif //cl_khr_fp64
6869#ifdef cl_khr_fp16
6870half __ovld __cnfn cospi(half x);
6871half2 __ovld __cnfn cospi(half2 x);
6872half3 __ovld __cnfn cospi(half3 x);
6873half4 __ovld __cnfn cospi(half4 x);
6874half8 __ovld __cnfn cospi(half8 x);
6875half16 __ovld __cnfn cospi(half16 x);
6876#endif //cl_khr_fp16
6877
6878/**
6879 * Complementary error function.
6880 */
6881float __ovld __cnfn erfc(float);
6882float2 __ovld __cnfn erfc(float2);
6883float3 __ovld __cnfn erfc(float3);
6884float4 __ovld __cnfn erfc(float4);
6885float8 __ovld __cnfn erfc(float8);
6886float16 __ovld __cnfn erfc(float16);
6887#ifdef cl_khr_fp64
6888double __ovld __cnfn erfc(double);
6889double2 __ovld __cnfn erfc(double2);
6890double3 __ovld __cnfn erfc(double3);
6891double4 __ovld __cnfn erfc(double4);
6892double8 __ovld __cnfn erfc(double8);
6893double16 __ovld __cnfn erfc(double16);
6894#endif //cl_khr_fp64
6895#ifdef cl_khr_fp16
6896half __ovld __cnfn erfc(half);
6897half2 __ovld __cnfn erfc(half2);
6898half3 __ovld __cnfn erfc(half3);
6899half4 __ovld __cnfn erfc(half4);
6900half8 __ovld __cnfn erfc(half8);
6901half16 __ovld __cnfn erfc(half16);
6902#endif //cl_khr_fp16
6903
6904/**
6905 * Error function encountered in integrating the
6906 * normal distribution.
6907 */
6908float __ovld __cnfn erf(float);
6909float2 __ovld __cnfn erf(float2);
6910float3 __ovld __cnfn erf(float3);
6911float4 __ovld __cnfn erf(float4);
6912float8 __ovld __cnfn erf(float8);
6913float16 __ovld __cnfn erf(float16);
6914#ifdef cl_khr_fp64
6915double __ovld __cnfn erf(double);
6916double2 __ovld __cnfn erf(double2);
6917double3 __ovld __cnfn erf(double3);
6918double4 __ovld __cnfn erf(double4);
6919double8 __ovld __cnfn erf(double8);
6920double16 __ovld __cnfn erf(double16);
6921#endif //cl_khr_fp64
6922#ifdef cl_khr_fp16
6923half __ovld __cnfn erf(half);
6924half2 __ovld __cnfn erf(half2);
6925half3 __ovld __cnfn erf(half3);
6926half4 __ovld __cnfn erf(half4);
6927half8 __ovld __cnfn erf(half8);
6928half16 __ovld __cnfn erf(half16);
6929#endif //cl_khr_fp16
6930
6931/**
6932 * Compute the base e exponential function of x.
6933 */
6934float __ovld __cnfn exp(float x);
6935float2 __ovld __cnfn exp(float2 x);
6936float3 __ovld __cnfn exp(float3 x);
6937float4 __ovld __cnfn exp(float4 x);
6938float8 __ovld __cnfn exp(float8 x);
6939float16 __ovld __cnfn exp(float16 x);
6940#ifdef cl_khr_fp64
6941double __ovld __cnfn exp(double x);
6942double2 __ovld __cnfn exp(double2 x);
6943double3 __ovld __cnfn exp(double3 x);
6944double4 __ovld __cnfn exp(double4 x);
6945double8 __ovld __cnfn exp(double8 x);
6946double16 __ovld __cnfn exp(double16 x);
6947#endif //cl_khr_fp64
6948#ifdef cl_khr_fp16
6949half __ovld __cnfn exp(half x);
6950half2 __ovld __cnfn exp(half2 x);
6951half3 __ovld __cnfn exp(half3 x);
6952half4 __ovld __cnfn exp(half4 x);
6953half8 __ovld __cnfn exp(half8 x);
6954half16 __ovld __cnfn exp(half16 x);
6955#endif //cl_khr_fp16
6956
6957/**
6958 * Exponential base 2 function.
6959 */
6960float __ovld __cnfn exp2(float);
6961float2 __ovld __cnfn exp2(float2);
6962float3 __ovld __cnfn exp2(float3);
6963float4 __ovld __cnfn exp2(float4);
6964float8 __ovld __cnfn exp2(float8);
6965float16 __ovld __cnfn exp2(float16);
6966#ifdef cl_khr_fp64
6967double __ovld __cnfn exp2(double);
6968double2 __ovld __cnfn exp2(double2);
6969double3 __ovld __cnfn exp2(double3);
6970double4 __ovld __cnfn exp2(double4);
6971double8 __ovld __cnfn exp2(double8);
6972double16 __ovld __cnfn exp2(double16);
6973#endif //cl_khr_fp64
6974#ifdef cl_khr_fp16
6975half __ovld __cnfn exp2(half);
6976half2 __ovld __cnfn exp2(half2);
6977half3 __ovld __cnfn exp2(half3);
6978half4 __ovld __cnfn exp2(half4);
6979half8 __ovld __cnfn exp2(half8);
6980half16 __ovld __cnfn exp2(half16);
6981#endif //cl_khr_fp16
6982
6983/**
6984 * Exponential base 10 function.
6985 */
6986float __ovld __cnfn exp10(float);
6987float2 __ovld __cnfn exp10(float2);
6988float3 __ovld __cnfn exp10(float3);
6989float4 __ovld __cnfn exp10(float4);
6990float8 __ovld __cnfn exp10(float8);
6991float16 __ovld __cnfn exp10(float16);
6992#ifdef cl_khr_fp64
6993double __ovld __cnfn exp10(double);
6994double2 __ovld __cnfn exp10(double2);
6995double3 __ovld __cnfn exp10(double3);
6996double4 __ovld __cnfn exp10(double4);
6997double8 __ovld __cnfn exp10(double8);
6998double16 __ovld __cnfn exp10(double16);
6999#endif //cl_khr_fp64
7000#ifdef cl_khr_fp16
7001half __ovld __cnfn exp10(half);
7002half2 __ovld __cnfn exp10(half2);
7003half3 __ovld __cnfn exp10(half3);
7004half4 __ovld __cnfn exp10(half4);
7005half8 __ovld __cnfn exp10(half8);
7006half16 __ovld __cnfn exp10(half16);
7007#endif //cl_khr_fp16
7008
7009/**
7010 * Compute e^x- 1.0.
7011 */
7012float __ovld __cnfn expm1(float x);
7013float2 __ovld __cnfn expm1(float2 x);
7014float3 __ovld __cnfn expm1(float3 x);
7015float4 __ovld __cnfn expm1(float4 x);
7016float8 __ovld __cnfn expm1(float8 x);
7017float16 __ovld __cnfn expm1(float16 x);
7018#ifdef cl_khr_fp64
7019double __ovld __cnfn expm1(double x);
7020double2 __ovld __cnfn expm1(double2 x);
7021double3 __ovld __cnfn expm1(double3 x);
7022double4 __ovld __cnfn expm1(double4 x);
7023double8 __ovld __cnfn expm1(double8 x);
7024double16 __ovld __cnfn expm1(double16 x);
7025#endif //cl_khr_fp64
7026#ifdef cl_khr_fp16
7027half __ovld __cnfn expm1(half x);
7028half2 __ovld __cnfn expm1(half2 x);
7029half3 __ovld __cnfn expm1(half3 x);
7030half4 __ovld __cnfn expm1(half4 x);
7031half8 __ovld __cnfn expm1(half8 x);
7032half16 __ovld __cnfn expm1(half16 x);
7033#endif //cl_khr_fp16
7034
7035/**
7036 * Compute absolute value of a floating-point number.
7037 */
7038float __ovld __cnfn fabs(float);
7039float2 __ovld __cnfn fabs(float2);
7040float3 __ovld __cnfn fabs(float3);
7041float4 __ovld __cnfn fabs(float4);
7042float8 __ovld __cnfn fabs(float8);
7043float16 __ovld __cnfn fabs(float16);
7044#ifdef cl_khr_fp64
7045double __ovld __cnfn fabs(double);
7046double2 __ovld __cnfn fabs(double2);
7047double3 __ovld __cnfn fabs(double3);
7048double4 __ovld __cnfn fabs(double4);
7049double8 __ovld __cnfn fabs(double8);
7050double16 __ovld __cnfn fabs(double16);
7051#endif //cl_khr_fp64
7052#ifdef cl_khr_fp16
7053half __ovld __cnfn fabs(half);
7054half2 __ovld __cnfn fabs(half2);
7055half3 __ovld __cnfn fabs(half3);
7056half4 __ovld __cnfn fabs(half4);
7057half8 __ovld __cnfn fabs(half8);
7058half16 __ovld __cnfn fabs(half16);
7059#endif //cl_khr_fp16
7060
7061/**
7062 * x - y if x > y, +0 if x is less than or equal to y.
7063 */
7064float __ovld __cnfn fdim(float x, float y);
7065float2 __ovld __cnfn fdim(float2 x, float2 y);
7066float3 __ovld __cnfn fdim(float3 x, float3 y);
7067float4 __ovld __cnfn fdim(float4 x, float4 y);
7068float8 __ovld __cnfn fdim(float8 x, float8 y);
7069float16 __ovld __cnfn fdim(float16 x, float16 y);
7070#ifdef cl_khr_fp64
7071double __ovld __cnfn fdim(double x, double y);
7072double2 __ovld __cnfn fdim(double2 x, double2 y);
7073double3 __ovld __cnfn fdim(double3 x, double3 y);
7074double4 __ovld __cnfn fdim(double4 x, double4 y);
7075double8 __ovld __cnfn fdim(double8 x, double8 y);
7076double16 __ovld __cnfn fdim(double16 x, double16 y);
7077#endif //cl_khr_fp64
7078#ifdef cl_khr_fp16
7079half __ovld __cnfn fdim(half x, half y);
7080half2 __ovld __cnfn fdim(half2 x, half2 y);
7081half3 __ovld __cnfn fdim(half3 x, half3 y);
7082half4 __ovld __cnfn fdim(half4 x, half4 y);
7083half8 __ovld __cnfn fdim(half8 x, half8 y);
7084half16 __ovld __cnfn fdim(half16 x, half16 y);
7085#endif //cl_khr_fp16
7086
7087/**
7088 * Round to integral value using the round to -ve
7089 * infinity rounding mode.
7090 */
7091float __ovld __cnfn floor(float);
7092float2 __ovld __cnfn floor(float2);
7093float3 __ovld __cnfn floor(float3);
7094float4 __ovld __cnfn floor(float4);
7095float8 __ovld __cnfn floor(float8);
7096float16 __ovld __cnfn floor(float16);
7097#ifdef cl_khr_fp64
7098double __ovld __cnfn floor(double);
7099double2 __ovld __cnfn floor(double2);
7100double3 __ovld __cnfn floor(double3);
7101double4 __ovld __cnfn floor(double4);
7102double8 __ovld __cnfn floor(double8);
7103double16 __ovld __cnfn floor(double16);
7104#endif //cl_khr_fp64
7105#ifdef cl_khr_fp16
7106half __ovld __cnfn floor(half);
7107half2 __ovld __cnfn floor(half2);
7108half3 __ovld __cnfn floor(half3);
7109half4 __ovld __cnfn floor(half4);
7110half8 __ovld __cnfn floor(half8);
7111half16 __ovld __cnfn floor(half16);
7112#endif //cl_khr_fp16
7113
7114/**
7115 * Returns the correctly rounded floating-point
7116 * representation of the sum of c with the infinitely
7117 * precise product of a and b. Rounding of
7118 * intermediate products shall not occur. Edge case
7119 * behavior is per the IEEE 754-2008 standard.
7120 */
7121float __ovld __cnfn fma(float a, float b, float c);
7122float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
7123float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
7124float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
7125float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
7126float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
7127#ifdef cl_khr_fp64
7128double __ovld __cnfn fma(double a, double b, double c);
7129double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
7130double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
7131double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
7132double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
7133double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
7134#endif //cl_khr_fp64
7135#ifdef cl_khr_fp16
7136half __ovld __cnfn fma(half a, half b, half c);
7137half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
7138half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
7139half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
7140half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
7141half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
7142#endif //cl_khr_fp16
7143
7144/**
7145 * Returns y if x < y, otherwise it returns x. If one
7146 * argument is a NaN, fmax() returns the other
7147 * argument. If both arguments are NaNs, fmax()
7148 * returns a NaN.
7149 */
7150float __ovld __cnfn fmax(float x, float y);
7151float2 __ovld __cnfn fmax(float2 x, float2 y);
7152float3 __ovld __cnfn fmax(float3 x, float3 y);
7153float4 __ovld __cnfn fmax(float4 x, float4 y);
7154float8 __ovld __cnfn fmax(float8 x, float8 y);
7155float16 __ovld __cnfn fmax(float16 x, float16 y);
7156float2 __ovld __cnfn fmax(float2 x, float y);
7157float3 __ovld __cnfn fmax(float3 x, float y);
7158float4 __ovld __cnfn fmax(float4 x, float y);
7159float8 __ovld __cnfn fmax(float8 x, float y);
7160float16 __ovld __cnfn fmax(float16 x, float y);
7161#ifdef cl_khr_fp64
7162double __ovld __cnfn fmax(double x, double y);
7163double2 __ovld __cnfn fmax(double2 x, double2 y);
7164double3 __ovld __cnfn fmax(double3 x, double3 y);
7165double4 __ovld __cnfn fmax(double4 x, double4 y);
7166double8 __ovld __cnfn fmax(double8 x, double8 y);
7167double16 __ovld __cnfn fmax(double16 x, double16 y);
7168double2 __ovld __cnfn fmax(double2 x, double y);
7169double3 __ovld __cnfn fmax(double3 x, double y);
7170double4 __ovld __cnfn fmax(double4 x, double y);
7171double8 __ovld __cnfn fmax(double8 x, double y);
7172double16 __ovld __cnfn fmax(double16 x, double y);
7173#endif //cl_khr_fp64
7174#ifdef cl_khr_fp16
7175half __ovld __cnfn fmax(half x, half y);
7176half2 __ovld __cnfn fmax(half2 x, half2 y);
7177half3 __ovld __cnfn fmax(half3 x, half3 y);
7178half4 __ovld __cnfn fmax(half4 x, half4 y);
7179half8 __ovld __cnfn fmax(half8 x, half8 y);
7180half16 __ovld __cnfn fmax(half16 x, half16 y);
7181half2 __ovld __cnfn fmax(half2 x, half y);
7182half3 __ovld __cnfn fmax(half3 x, half y);
7183half4 __ovld __cnfn fmax(half4 x, half y);
7184half8 __ovld __cnfn fmax(half8 x, half y);
7185half16 __ovld __cnfn fmax(half16 x, half y);
7186#endif //cl_khr_fp16
7187
7188/**
7189 * Returns y if y < x, otherwise it returns x. If one
7190 * argument is a NaN, fmin() returns the other
7191 * argument. If both arguments are NaNs, fmin()
7192 * returns a NaN.
7193 */
7194float __ovld __cnfn fmin(float x, float y);
7195float2 __ovld __cnfn fmin(float2 x, float2 y);
7196float3 __ovld __cnfn fmin(float3 x, float3 y);
7197float4 __ovld __cnfn fmin(float4 x, float4 y);
7198float8 __ovld __cnfn fmin(float8 x, float8 y);
7199float16 __ovld __cnfn fmin(float16 x, float16 y);
7200float2 __ovld __cnfn fmin(float2 x, float y);
7201float3 __ovld __cnfn fmin(float3 x, float y);
7202float4 __ovld __cnfn fmin(float4 x, float y);
7203float8 __ovld __cnfn fmin(float8 x, float y);
7204float16 __ovld __cnfn fmin(float16 x, float y);
7205#ifdef cl_khr_fp64
7206double __ovld __cnfn fmin(double x, double y);
7207double2 __ovld __cnfn fmin(double2 x, double2 y);
7208double3 __ovld __cnfn fmin(double3 x, double3 y);
7209double4 __ovld __cnfn fmin(double4 x, double4 y);
7210double8 __ovld __cnfn fmin(double8 x, double8 y);
7211double16 __ovld __cnfn fmin(double16 x, double16 y);
7212double2 __ovld __cnfn fmin(double2 x, double y);
7213double3 __ovld __cnfn fmin(double3 x, double y);
7214double4 __ovld __cnfn fmin(double4 x, double y);
7215double8 __ovld __cnfn fmin(double8 x, double y);
7216double16 __ovld __cnfn fmin(double16 x, double y);
7217#endif //cl_khr_fp64
7218#ifdef cl_khr_fp16
7219half __ovld __cnfn fmin(half x, half y);
7220half2 __ovld __cnfn fmin(half2 x, half2 y);
7221half3 __ovld __cnfn fmin(half3 x, half3 y);
7222half4 __ovld __cnfn fmin(half4 x, half4 y);
7223half8 __ovld __cnfn fmin(half8 x, half8 y);
7224half16 __ovld __cnfn fmin(half16 x, half16 y);
7225half2 __ovld __cnfn fmin(half2 x, half y);
7226half3 __ovld __cnfn fmin(half3 x, half y);
7227half4 __ovld __cnfn fmin(half4 x, half y);
7228half8 __ovld __cnfn fmin(half8 x, half y);
7229half16 __ovld __cnfn fmin(half16 x, half y);
7230#endif //cl_khr_fp16
7231
7232/**
7233 * Modulus. Returns x - y * trunc (x/y).
7234 */
7235float __ovld __cnfn fmod(float x, float y);
7236float2 __ovld __cnfn fmod(float2 x, float2 y);
7237float3 __ovld __cnfn fmod(float3 x, float3 y);
7238float4 __ovld __cnfn fmod(float4 x, float4 y);
7239float8 __ovld __cnfn fmod(float8 x, float8 y);
7240float16 __ovld __cnfn fmod(float16 x, float16 y);
7241#ifdef cl_khr_fp64
7242double __ovld __cnfn fmod(double x, double y);
7243double2 __ovld __cnfn fmod(double2 x, double2 y);
7244double3 __ovld __cnfn fmod(double3 x, double3 y);
7245double4 __ovld __cnfn fmod(double4 x, double4 y);
7246double8 __ovld __cnfn fmod(double8 x, double8 y);
7247double16 __ovld __cnfn fmod(double16 x, double16 y);
7248#endif //cl_khr_fp64
7249#ifdef cl_khr_fp16
7250half __ovld __cnfn fmod(half x, half y);
7251half2 __ovld __cnfn fmod(half2 x, half2 y);
7252half3 __ovld __cnfn fmod(half3 x, half3 y);
7253half4 __ovld __cnfn fmod(half4 x, half4 y);
7254half8 __ovld __cnfn fmod(half8 x, half8 y);
7255half16 __ovld __cnfn fmod(half16 x, half16 y);
7256#endif //cl_khr_fp16
7257
7258/**
7259 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
7260 * floor(x) is returned in iptr.
7261 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007262#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007263float __ovld fract(float x, float *iptr);
7264float2 __ovld fract(float2 x, float2 *iptr);
7265float3 __ovld fract(float3 x, float3 *iptr);
7266float4 __ovld fract(float4 x, float4 *iptr);
7267float8 __ovld fract(float8 x, float8 *iptr);
7268float16 __ovld fract(float16 x, float16 *iptr);
7269#ifdef cl_khr_fp64
7270double __ovld fract(double x, double *iptr);
7271double2 __ovld fract(double2 x, double2 *iptr);
7272double3 __ovld fract(double3 x, double3 *iptr);
7273double4 __ovld fract(double4 x, double4 *iptr);
7274double8 __ovld fract(double8 x, double8 *iptr);
7275double16 __ovld fract(double16 x, double16 *iptr);
7276#endif //cl_khr_fp64
7277#ifdef cl_khr_fp16
7278half __ovld fract(half x, half *iptr);
7279half2 __ovld fract(half2 x, half2 *iptr);
7280half3 __ovld fract(half3 x, half3 *iptr);
7281half4 __ovld fract(half4 x, half4 *iptr);
7282half8 __ovld fract(half8 x, half8 *iptr);
7283half16 __ovld fract(half16 x, half16 *iptr);
7284#endif //cl_khr_fp16
7285#else
7286float __ovld fract(float x, __global float *iptr);
7287float2 __ovld fract(float2 x, __global float2 *iptr);
7288float3 __ovld fract(float3 x, __global float3 *iptr);
7289float4 __ovld fract(float4 x, __global float4 *iptr);
7290float8 __ovld fract(float8 x, __global float8 *iptr);
7291float16 __ovld fract(float16 x, __global float16 *iptr);
7292float __ovld fract(float x, __local float *iptr);
7293float2 __ovld fract(float2 x, __local float2 *iptr);
7294float3 __ovld fract(float3 x, __local float3 *iptr);
7295float4 __ovld fract(float4 x, __local float4 *iptr);
7296float8 __ovld fract(float8 x, __local float8 *iptr);
7297float16 __ovld fract(float16 x, __local float16 *iptr);
7298float __ovld fract(float x, __private float *iptr);
7299float2 __ovld fract(float2 x, __private float2 *iptr);
7300float3 __ovld fract(float3 x, __private float3 *iptr);
7301float4 __ovld fract(float4 x, __private float4 *iptr);
7302float8 __ovld fract(float8 x, __private float8 *iptr);
7303float16 __ovld fract(float16 x, __private float16 *iptr);
7304#ifdef cl_khr_fp64
7305double __ovld fract(double x, __global double *iptr);
7306double2 __ovld fract(double2 x, __global double2 *iptr);
7307double3 __ovld fract(double3 x, __global double3 *iptr);
7308double4 __ovld fract(double4 x, __global double4 *iptr);
7309double8 __ovld fract(double8 x, __global double8 *iptr);
7310double16 __ovld fract(double16 x, __global double16 *iptr);
7311double __ovld fract(double x, __local double *iptr);
7312double2 __ovld fract(double2 x, __local double2 *iptr);
7313double3 __ovld fract(double3 x, __local double3 *iptr);
7314double4 __ovld fract(double4 x, __local double4 *iptr);
7315double8 __ovld fract(double8 x, __local double8 *iptr);
7316double16 __ovld fract(double16 x, __local double16 *iptr);
7317double __ovld fract(double x, __private double *iptr);
7318double2 __ovld fract(double2 x, __private double2 *iptr);
7319double3 __ovld fract(double3 x, __private double3 *iptr);
7320double4 __ovld fract(double4 x, __private double4 *iptr);
7321double8 __ovld fract(double8 x, __private double8 *iptr);
7322double16 __ovld fract(double16 x, __private double16 *iptr);
7323#endif //cl_khr_fp64
7324#ifdef cl_khr_fp16
7325half __ovld fract(half x, __global half *iptr);
7326half2 __ovld fract(half2 x, __global half2 *iptr);
7327half3 __ovld fract(half3 x, __global half3 *iptr);
7328half4 __ovld fract(half4 x, __global half4 *iptr);
7329half8 __ovld fract(half8 x, __global half8 *iptr);
7330half16 __ovld fract(half16 x, __global half16 *iptr);
7331half __ovld fract(half x, __local half *iptr);
7332half2 __ovld fract(half2 x, __local half2 *iptr);
7333half3 __ovld fract(half3 x, __local half3 *iptr);
7334half4 __ovld fract(half4 x, __local half4 *iptr);
7335half8 __ovld fract(half8 x, __local half8 *iptr);
7336half16 __ovld fract(half16 x, __local half16 *iptr);
7337half __ovld fract(half x, __private half *iptr);
7338half2 __ovld fract(half2 x, __private half2 *iptr);
7339half3 __ovld fract(half3 x, __private half3 *iptr);
7340half4 __ovld fract(half4 x, __private half4 *iptr);
7341half8 __ovld fract(half8 x, __private half8 *iptr);
7342half16 __ovld fract(half16 x, __private half16 *iptr);
7343#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007344#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007345
7346/**
7347 * Extract mantissa and exponent from x. For each
7348 * component the mantissa returned is a float with
7349 * magnitude in the interval [1/2, 1) or 0. Each
7350 * component of x equals mantissa returned * 2^exp.
7351 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007352#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007353float __ovld frexp(float x, int *exp);
7354float2 __ovld frexp(float2 x, int2 *exp);
7355float3 __ovld frexp(float3 x, int3 *exp);
7356float4 __ovld frexp(float4 x, int4 *exp);
7357float8 __ovld frexp(float8 x, int8 *exp);
7358float16 __ovld frexp(float16 x, int16 *exp);
7359#ifdef cl_khr_fp64
7360double __ovld frexp(double x, int *exp);
7361double2 __ovld frexp(double2 x, int2 *exp);
7362double3 __ovld frexp(double3 x, int3 *exp);
7363double4 __ovld frexp(double4 x, int4 *exp);
7364double8 __ovld frexp(double8 x, int8 *exp);
7365double16 __ovld frexp(double16 x, int16 *exp);
7366#endif //cl_khr_fp64
7367#ifdef cl_khr_fp16
7368half __ovld frexp(half x, int *exp);
7369half2 __ovld frexp(half2 x, int2 *exp);
7370half3 __ovld frexp(half3 x, int3 *exp);
7371half4 __ovld frexp(half4 x, int4 *exp);
7372half8 __ovld frexp(half8 x, int8 *exp);
7373half16 __ovld frexp(half16 x, int16 *exp);
7374#endif //cl_khr_fp16
7375#else
7376float __ovld frexp(float x, __global int *exp);
7377float2 __ovld frexp(float2 x, __global int2 *exp);
7378float3 __ovld frexp(float3 x, __global int3 *exp);
7379float4 __ovld frexp(float4 x, __global int4 *exp);
7380float8 __ovld frexp(float8 x, __global int8 *exp);
7381float16 __ovld frexp(float16 x, __global int16 *exp);
7382float __ovld frexp(float x, __local int *exp);
7383float2 __ovld frexp(float2 x, __local int2 *exp);
7384float3 __ovld frexp(float3 x, __local int3 *exp);
7385float4 __ovld frexp(float4 x, __local int4 *exp);
7386float8 __ovld frexp(float8 x, __local int8 *exp);
7387float16 __ovld frexp(float16 x, __local int16 *exp);
7388float __ovld frexp(float x, __private int *exp);
7389float2 __ovld frexp(float2 x, __private int2 *exp);
7390float3 __ovld frexp(float3 x, __private int3 *exp);
7391float4 __ovld frexp(float4 x, __private int4 *exp);
7392float8 __ovld frexp(float8 x, __private int8 *exp);
7393float16 __ovld frexp(float16 x, __private int16 *exp);
7394#ifdef cl_khr_fp64
7395double __ovld frexp(double x, __global int *exp);
7396double2 __ovld frexp(double2 x, __global int2 *exp);
7397double3 __ovld frexp(double3 x, __global int3 *exp);
7398double4 __ovld frexp(double4 x, __global int4 *exp);
7399double8 __ovld frexp(double8 x, __global int8 *exp);
7400double16 __ovld frexp(double16 x, __global int16 *exp);
7401double __ovld frexp(double x, __local int *exp);
7402double2 __ovld frexp(double2 x, __local int2 *exp);
7403double3 __ovld frexp(double3 x, __local int3 *exp);
7404double4 __ovld frexp(double4 x, __local int4 *exp);
7405double8 __ovld frexp(double8 x, __local int8 *exp);
7406double16 __ovld frexp(double16 x, __local int16 *exp);
7407double __ovld frexp(double x, __private int *exp);
7408double2 __ovld frexp(double2 x, __private int2 *exp);
7409double3 __ovld frexp(double3 x, __private int3 *exp);
7410double4 __ovld frexp(double4 x, __private int4 *exp);
7411double8 __ovld frexp(double8 x, __private int8 *exp);
7412double16 __ovld frexp(double16 x, __private int16 *exp);
7413#endif //cl_khr_fp64
7414#ifdef cl_khr_fp16
7415half __ovld frexp(half x, __global int *exp);
7416half2 __ovld frexp(half2 x, __global int2 *exp);
7417half3 __ovld frexp(half3 x, __global int3 *exp);
7418half4 __ovld frexp(half4 x, __global int4 *exp);
7419half8 __ovld frexp(half8 x, __global int8 *exp);
7420half16 __ovld frexp(half16 x, __global int16 *exp);
7421half __ovld frexp(half x, __local int *exp);
7422half2 __ovld frexp(half2 x, __local int2 *exp);
7423half3 __ovld frexp(half3 x, __local int3 *exp);
7424half4 __ovld frexp(half4 x, __local int4 *exp);
7425half8 __ovld frexp(half8 x, __local int8 *exp);
7426half16 __ovld frexp(half16 x, __local int16 *exp);
7427half __ovld frexp(half x, __private int *exp);
7428half2 __ovld frexp(half2 x, __private int2 *exp);
7429half3 __ovld frexp(half3 x, __private int3 *exp);
7430half4 __ovld frexp(half4 x, __private int4 *exp);
7431half8 __ovld frexp(half8 x, __private int8 *exp);
7432half16 __ovld frexp(half16 x, __private int16 *exp);
7433#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007434#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007435
7436/**
7437 * Compute the value of the square root of x^2 + y^2
7438 * without undue overflow or underflow.
7439 */
7440float __ovld __cnfn hypot(float x, float y);
7441float2 __ovld __cnfn hypot(float2 x, float2 y);
7442float3 __ovld __cnfn hypot(float3 x, float3 y);
7443float4 __ovld __cnfn hypot(float4 x, float4 y);
7444float8 __ovld __cnfn hypot(float8 x, float8 y);
7445float16 __ovld __cnfn hypot(float16 x, float16 y);
7446#ifdef cl_khr_fp64
7447double __ovld __cnfn hypot(double x, double y);
7448double2 __ovld __cnfn hypot(double2 x, double2 y);
7449double3 __ovld __cnfn hypot(double3 x, double3 y);
7450double4 __ovld __cnfn hypot(double4 x, double4 y);
7451double8 __ovld __cnfn hypot(double8 x, double8 y);
7452double16 __ovld __cnfn hypot(double16 x, double16 y);
7453#endif //cl_khr_fp64
7454#ifdef cl_khr_fp16
7455half __ovld __cnfn hypot(half x, half y);
7456half2 __ovld __cnfn hypot(half2 x, half2 y);
7457half3 __ovld __cnfn hypot(half3 x, half3 y);
7458half4 __ovld __cnfn hypot(half4 x, half4 y);
7459half8 __ovld __cnfn hypot(half8 x, half8 y);
7460half16 __ovld __cnfn hypot(half16 x, half16 y);
7461#endif //cl_khr_fp16
7462
7463/**
7464 * Return the exponent as an integer value.
7465 */
7466int __ovld __cnfn ilogb(float x);
7467int2 __ovld __cnfn ilogb(float2 x);
7468int3 __ovld __cnfn ilogb(float3 x);
7469int4 __ovld __cnfn ilogb(float4 x);
7470int8 __ovld __cnfn ilogb(float8 x);
7471int16 __ovld __cnfn ilogb(float16 x);
7472#ifdef cl_khr_fp64
7473int __ovld __cnfn ilogb(double x);
7474int2 __ovld __cnfn ilogb(double2 x);
7475int3 __ovld __cnfn ilogb(double3 x);
7476int4 __ovld __cnfn ilogb(double4 x);
7477int8 __ovld __cnfn ilogb(double8 x);
7478int16 __ovld __cnfn ilogb(double16 x);
7479#endif //cl_khr_fp64
7480#ifdef cl_khr_fp16
7481int __ovld __cnfn ilogb(half x);
7482int2 __ovld __cnfn ilogb(half2 x);
7483int3 __ovld __cnfn ilogb(half3 x);
7484int4 __ovld __cnfn ilogb(half4 x);
7485int8 __ovld __cnfn ilogb(half8 x);
7486int16 __ovld __cnfn ilogb(half16 x);
7487#endif //cl_khr_fp16
7488
7489/**
7490 * Multiply x by 2 to the power n.
7491 */
7492float __ovld __cnfn ldexp(float x, int n);
7493float2 __ovld __cnfn ldexp(float2 x, int2 n);
7494float3 __ovld __cnfn ldexp(float3 x, int3 n);
7495float4 __ovld __cnfn ldexp(float4 x, int4 n);
7496float8 __ovld __cnfn ldexp(float8 x, int8 n);
7497float16 __ovld __cnfn ldexp(float16 x, int16 n);
7498float2 __ovld __cnfn ldexp(float2 x, int n);
7499float3 __ovld __cnfn ldexp(float3 x, int n);
7500float4 __ovld __cnfn ldexp(float4 x, int n);
7501float8 __ovld __cnfn ldexp(float8 x, int n);
7502float16 __ovld __cnfn ldexp(float16 x, int n);
7503#ifdef cl_khr_fp64
7504double __ovld __cnfn ldexp(double x, int n);
7505double2 __ovld __cnfn ldexp(double2 x, int2 n);
7506double3 __ovld __cnfn ldexp(double3 x, int3 n);
7507double4 __ovld __cnfn ldexp(double4 x, int4 n);
7508double8 __ovld __cnfn ldexp(double8 x, int8 n);
7509double16 __ovld __cnfn ldexp(double16 x, int16 n);
7510double2 __ovld __cnfn ldexp(double2 x, int n);
7511double3 __ovld __cnfn ldexp(double3 x, int n);
7512double4 __ovld __cnfn ldexp(double4 x, int n);
7513double8 __ovld __cnfn ldexp(double8 x, int n);
7514double16 __ovld __cnfn ldexp(double16 x, int n);
7515#endif //cl_khr_fp64
7516#ifdef cl_khr_fp16
7517half __ovld __cnfn ldexp(half x, int n);
7518half2 __ovld __cnfn ldexp(half2 x, int2 n);
7519half3 __ovld __cnfn ldexp(half3 x, int3 n);
7520half4 __ovld __cnfn ldexp(half4 x, int4 n);
7521half8 __ovld __cnfn ldexp(half8 x, int8 n);
7522half16 __ovld __cnfn ldexp(half16 x, int16 n);
7523half2 __ovld __cnfn ldexp(half2 x, int n);
7524half3 __ovld __cnfn ldexp(half3 x, int n);
7525half4 __ovld __cnfn ldexp(half4 x, int n);
7526half8 __ovld __cnfn ldexp(half8 x, int n);
7527half16 __ovld __cnfn ldexp(half16 x, int n);
7528#endif //cl_khr_fp16
7529
7530/**
7531 * Log gamma function. Returns the natural
7532 * logarithm of the absolute value of the gamma
7533 * function. The sign of the gamma function is
7534 * returned in the signp argument of lgamma_r.
7535 */
7536float __ovld __cnfn lgamma(float x);
7537float2 __ovld __cnfn lgamma(float2 x);
7538float3 __ovld __cnfn lgamma(float3 x);
7539float4 __ovld __cnfn lgamma(float4 x);
7540float8 __ovld __cnfn lgamma(float8 x);
7541float16 __ovld __cnfn lgamma(float16 x);
7542#ifdef cl_khr_fp64
7543double __ovld __cnfn lgamma(double x);
7544double2 __ovld __cnfn lgamma(double2 x);
7545double3 __ovld __cnfn lgamma(double3 x);
7546double4 __ovld __cnfn lgamma(double4 x);
7547double8 __ovld __cnfn lgamma(double8 x);
7548double16 __ovld __cnfn lgamma(double16 x);
7549#endif //cl_khr_fp64
7550#ifdef cl_khr_fp16
7551half __ovld __cnfn lgamma(half x);
7552half2 __ovld __cnfn lgamma(half2 x);
7553half3 __ovld __cnfn lgamma(half3 x);
7554half4 __ovld __cnfn lgamma(half4 x);
7555half8 __ovld __cnfn lgamma(half8 x);
7556half16 __ovld __cnfn lgamma(half16 x);
7557#endif //cl_khr_fp16
7558
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007559#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007560float __ovld lgamma_r(float x, int *signp);
7561float2 __ovld lgamma_r(float2 x, int2 *signp);
7562float3 __ovld lgamma_r(float3 x, int3 *signp);
7563float4 __ovld lgamma_r(float4 x, int4 *signp);
7564float8 __ovld lgamma_r(float8 x, int8 *signp);
7565float16 __ovld lgamma_r(float16 x, int16 *signp);
7566#ifdef cl_khr_fp64
7567double __ovld lgamma_r(double x, int *signp);
7568double2 __ovld lgamma_r(double2 x, int2 *signp);
7569double3 __ovld lgamma_r(double3 x, int3 *signp);
7570double4 __ovld lgamma_r(double4 x, int4 *signp);
7571double8 __ovld lgamma_r(double8 x, int8 *signp);
7572double16 __ovld lgamma_r(double16 x, int16 *signp);
7573#endif //cl_khr_fp64
7574#ifdef cl_khr_fp16
7575half __ovld lgamma_r(half x, int *signp);
7576half2 __ovld lgamma_r(half2 x, int2 *signp);
7577half3 __ovld lgamma_r(half3 x, int3 *signp);
7578half4 __ovld lgamma_r(half4 x, int4 *signp);
7579half8 __ovld lgamma_r(half8 x, int8 *signp);
7580half16 __ovld lgamma_r(half16 x, int16 *signp);
7581#endif //cl_khr_fp16
7582#else
7583float __ovld lgamma_r(float x, __global int *signp);
7584float2 __ovld lgamma_r(float2 x, __global int2 *signp);
7585float3 __ovld lgamma_r(float3 x, __global int3 *signp);
7586float4 __ovld lgamma_r(float4 x, __global int4 *signp);
7587float8 __ovld lgamma_r(float8 x, __global int8 *signp);
7588float16 __ovld lgamma_r(float16 x, __global int16 *signp);
7589float __ovld lgamma_r(float x, __local int *signp);
7590float2 __ovld lgamma_r(float2 x, __local int2 *signp);
7591float3 __ovld lgamma_r(float3 x, __local int3 *signp);
7592float4 __ovld lgamma_r(float4 x, __local int4 *signp);
7593float8 __ovld lgamma_r(float8 x, __local int8 *signp);
7594float16 __ovld lgamma_r(float16 x, __local int16 *signp);
7595float __ovld lgamma_r(float x, __private int *signp);
7596float2 __ovld lgamma_r(float2 x, __private int2 *signp);
7597float3 __ovld lgamma_r(float3 x, __private int3 *signp);
7598float4 __ovld lgamma_r(float4 x, __private int4 *signp);
7599float8 __ovld lgamma_r(float8 x, __private int8 *signp);
7600float16 __ovld lgamma_r(float16 x, __private int16 *signp);
7601#ifdef cl_khr_fp64
7602double __ovld lgamma_r(double x, __global int *signp);
7603double2 __ovld lgamma_r(double2 x, __global int2 *signp);
7604double3 __ovld lgamma_r(double3 x, __global int3 *signp);
7605double4 __ovld lgamma_r(double4 x, __global int4 *signp);
7606double8 __ovld lgamma_r(double8 x, __global int8 *signp);
7607double16 __ovld lgamma_r(double16 x, __global int16 *signp);
7608double __ovld lgamma_r(double x, __local int *signp);
7609double2 __ovld lgamma_r(double2 x, __local int2 *signp);
7610double3 __ovld lgamma_r(double3 x, __local int3 *signp);
7611double4 __ovld lgamma_r(double4 x, __local int4 *signp);
7612double8 __ovld lgamma_r(double8 x, __local int8 *signp);
7613double16 __ovld lgamma_r(double16 x, __local int16 *signp);
7614double __ovld lgamma_r(double x, __private int *signp);
7615double2 __ovld lgamma_r(double2 x, __private int2 *signp);
7616double3 __ovld lgamma_r(double3 x, __private int3 *signp);
7617double4 __ovld lgamma_r(double4 x, __private int4 *signp);
7618double8 __ovld lgamma_r(double8 x, __private int8 *signp);
7619double16 __ovld lgamma_r(double16 x, __private int16 *signp);
7620#endif //cl_khr_fp64
7621#ifdef cl_khr_fp16
7622half __ovld lgamma_r(half x, __global int *signp);
7623half2 __ovld lgamma_r(half2 x, __global int2 *signp);
7624half3 __ovld lgamma_r(half3 x, __global int3 *signp);
7625half4 __ovld lgamma_r(half4 x, __global int4 *signp);
7626half8 __ovld lgamma_r(half8 x, __global int8 *signp);
7627half16 __ovld lgamma_r(half16 x, __global int16 *signp);
7628half __ovld lgamma_r(half x, __local int *signp);
7629half2 __ovld lgamma_r(half2 x, __local int2 *signp);
7630half3 __ovld lgamma_r(half3 x, __local int3 *signp);
7631half4 __ovld lgamma_r(half4 x, __local int4 *signp);
7632half8 __ovld lgamma_r(half8 x, __local int8 *signp);
7633half16 __ovld lgamma_r(half16 x, __local int16 *signp);
7634half __ovld lgamma_r(half x, __private int *signp);
7635half2 __ovld lgamma_r(half2 x, __private int2 *signp);
7636half3 __ovld lgamma_r(half3 x, __private int3 *signp);
7637half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7638half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7639half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7640#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007641#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007642
7643/**
7644 * Compute natural logarithm.
7645 */
7646float __ovld __cnfn log(float);
7647float2 __ovld __cnfn log(float2);
7648float3 __ovld __cnfn log(float3);
7649float4 __ovld __cnfn log(float4);
7650float8 __ovld __cnfn log(float8);
7651float16 __ovld __cnfn log(float16);
7652#ifdef cl_khr_fp64
7653double __ovld __cnfn log(double);
7654double2 __ovld __cnfn log(double2);
7655double3 __ovld __cnfn log(double3);
7656double4 __ovld __cnfn log(double4);
7657double8 __ovld __cnfn log(double8);
7658double16 __ovld __cnfn log(double16);
7659#endif //cl_khr_fp64
7660#ifdef cl_khr_fp16
7661half __ovld __cnfn log(half);
7662half2 __ovld __cnfn log(half2);
7663half3 __ovld __cnfn log(half3);
7664half4 __ovld __cnfn log(half4);
7665half8 __ovld __cnfn log(half8);
7666half16 __ovld __cnfn log(half16);
7667#endif //cl_khr_fp16
7668
7669/**
7670 * Compute a base 2 logarithm.
7671 */
7672float __ovld __cnfn log2(float);
7673float2 __ovld __cnfn log2(float2);
7674float3 __ovld __cnfn log2(float3);
7675float4 __ovld __cnfn log2(float4);
7676float8 __ovld __cnfn log2(float8);
7677float16 __ovld __cnfn log2(float16);
7678#ifdef cl_khr_fp64
7679double __ovld __cnfn log2(double);
7680double2 __ovld __cnfn log2(double2);
7681double3 __ovld __cnfn log2(double3);
7682double4 __ovld __cnfn log2(double4);
7683double8 __ovld __cnfn log2(double8);
7684double16 __ovld __cnfn log2(double16);
7685#endif //cl_khr_fp64
7686#ifdef cl_khr_fp16
7687half __ovld __cnfn log2(half);
7688half2 __ovld __cnfn log2(half2);
7689half3 __ovld __cnfn log2(half3);
7690half4 __ovld __cnfn log2(half4);
7691half8 __ovld __cnfn log2(half8);
7692half16 __ovld __cnfn log2(half16);
7693#endif //cl_khr_fp16
7694
7695/**
7696 * Compute a base 10 logarithm.
7697 */
7698float __ovld __cnfn log10(float);
7699float2 __ovld __cnfn log10(float2);
7700float3 __ovld __cnfn log10(float3);
7701float4 __ovld __cnfn log10(float4);
7702float8 __ovld __cnfn log10(float8);
7703float16 __ovld __cnfn log10(float16);
7704#ifdef cl_khr_fp64
7705double __ovld __cnfn log10(double);
7706double2 __ovld __cnfn log10(double2);
7707double3 __ovld __cnfn log10(double3);
7708double4 __ovld __cnfn log10(double4);
7709double8 __ovld __cnfn log10(double8);
7710double16 __ovld __cnfn log10(double16);
7711#endif //cl_khr_fp64
7712#ifdef cl_khr_fp16
7713half __ovld __cnfn log10(half);
7714half2 __ovld __cnfn log10(half2);
7715half3 __ovld __cnfn log10(half3);
7716half4 __ovld __cnfn log10(half4);
7717half8 __ovld __cnfn log10(half8);
7718half16 __ovld __cnfn log10(half16);
7719#endif //cl_khr_fp16
7720
7721/**
7722 * Compute a base e logarithm of (1.0 + x).
7723 */
7724float __ovld __cnfn log1p(float x);
7725float2 __ovld __cnfn log1p(float2 x);
7726float3 __ovld __cnfn log1p(float3 x);
7727float4 __ovld __cnfn log1p(float4 x);
7728float8 __ovld __cnfn log1p(float8 x);
7729float16 __ovld __cnfn log1p(float16 x);
7730#ifdef cl_khr_fp64
7731double __ovld __cnfn log1p(double x);
7732double2 __ovld __cnfn log1p(double2 x);
7733double3 __ovld __cnfn log1p(double3 x);
7734double4 __ovld __cnfn log1p(double4 x);
7735double8 __ovld __cnfn log1p(double8 x);
7736double16 __ovld __cnfn log1p(double16 x);
7737#endif //cl_khr_fp64
7738#ifdef cl_khr_fp16
7739half __ovld __cnfn log1p(half x);
7740half2 __ovld __cnfn log1p(half2 x);
7741half3 __ovld __cnfn log1p(half3 x);
7742half4 __ovld __cnfn log1p(half4 x);
7743half8 __ovld __cnfn log1p(half8 x);
7744half16 __ovld __cnfn log1p(half16 x);
7745#endif //cl_khr_fp16
7746
7747/**
7748 * Compute the exponent of x, which is the integral
7749 * part of logr | x |.
7750 */
7751float __ovld __cnfn logb(float x);
7752float2 __ovld __cnfn logb(float2 x);
7753float3 __ovld __cnfn logb(float3 x);
7754float4 __ovld __cnfn logb(float4 x);
7755float8 __ovld __cnfn logb(float8 x);
7756float16 __ovld __cnfn logb(float16 x);
7757#ifdef cl_khr_fp64
7758double __ovld __cnfn logb(double x);
7759double2 __ovld __cnfn logb(double2 x);
7760double3 __ovld __cnfn logb(double3 x);
7761double4 __ovld __cnfn logb(double4 x);
7762double8 __ovld __cnfn logb(double8 x);
7763double16 __ovld __cnfn logb(double16 x);
7764#endif //cl_khr_fp64
7765#ifdef cl_khr_fp16
7766half __ovld __cnfn logb(half x);
7767half2 __ovld __cnfn logb(half2 x);
7768half3 __ovld __cnfn logb(half3 x);
7769half4 __ovld __cnfn logb(half4 x);
7770half8 __ovld __cnfn logb(half8 x);
7771half16 __ovld __cnfn logb(half16 x);
7772#endif //cl_khr_fp16
7773
7774/**
7775 * mad approximates a * b + c. Whether or how the
7776 * product of a * b is rounded and how supernormal or
7777 * subnormal intermediate products are handled is not
7778 * defined. mad is intended to be used where speed is
7779 * preferred over accuracy.
7780 */
7781float __ovld __cnfn mad(float a, float b, float c);
7782float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
7783float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
7784float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
7785float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
7786float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
7787#ifdef cl_khr_fp64
7788double __ovld __cnfn mad(double a, double b, double c);
7789double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
7790double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
7791double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
7792double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
7793double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
7794#endif //cl_khr_fp64
7795#ifdef cl_khr_fp16
7796half __ovld __cnfn mad(half a, half b, half c);
7797half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
7798half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
7799half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
7800half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
7801half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
7802#endif //cl_khr_fp16
7803
7804/**
7805 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
7806 * fmax(x, y).
7807 */
7808float __ovld __cnfn maxmag(float x, float y);
7809float2 __ovld __cnfn maxmag(float2 x, float2 y);
7810float3 __ovld __cnfn maxmag(float3 x, float3 y);
7811float4 __ovld __cnfn maxmag(float4 x, float4 y);
7812float8 __ovld __cnfn maxmag(float8 x, float8 y);
7813float16 __ovld __cnfn maxmag(float16 x, float16 y);
7814#ifdef cl_khr_fp64
7815double __ovld __cnfn maxmag(double x, double y);
7816double2 __ovld __cnfn maxmag(double2 x, double2 y);
7817double3 __ovld __cnfn maxmag(double3 x, double3 y);
7818double4 __ovld __cnfn maxmag(double4 x, double4 y);
7819double8 __ovld __cnfn maxmag(double8 x, double8 y);
7820double16 __ovld __cnfn maxmag(double16 x, double16 y);
7821#endif //cl_khr_fp64
7822#ifdef cl_khr_fp16
7823half __ovld __cnfn maxmag(half x, half y);
7824half2 __ovld __cnfn maxmag(half2 x, half2 y);
7825half3 __ovld __cnfn maxmag(half3 x, half3 y);
7826half4 __ovld __cnfn maxmag(half4 x, half4 y);
7827half8 __ovld __cnfn maxmag(half8 x, half8 y);
7828half16 __ovld __cnfn maxmag(half16 x, half16 y);
7829#endif //cl_khr_fp16
7830
7831/**
7832 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
7833 * fmin(x, y).
7834 */
7835float __ovld __cnfn minmag(float x, float y);
7836float2 __ovld __cnfn minmag(float2 x, float2 y);
7837float3 __ovld __cnfn minmag(float3 x, float3 y);
7838float4 __ovld __cnfn minmag(float4 x, float4 y);
7839float8 __ovld __cnfn minmag(float8 x, float8 y);
7840float16 __ovld __cnfn minmag(float16 x, float16 y);
7841#ifdef cl_khr_fp64
7842double __ovld __cnfn minmag(double x, double y);
7843double2 __ovld __cnfn minmag(double2 x, double2 y);
7844double3 __ovld __cnfn minmag(double3 x, double3 y);
7845double4 __ovld __cnfn minmag(double4 x, double4 y);
7846double8 __ovld __cnfn minmag(double8 x, double8 y);
7847double16 __ovld __cnfn minmag(double16 x, double16 y);
7848#endif //cl_khr_fp64
7849#ifdef cl_khr_fp16
7850half __ovld __cnfn minmag(half x, half y);
7851half2 __ovld __cnfn minmag(half2 x, half2 y);
7852half3 __ovld __cnfn minmag(half3 x, half3 y);
7853half4 __ovld __cnfn minmag(half4 x, half4 y);
7854half8 __ovld __cnfn minmag(half8 x, half8 y);
7855half16 __ovld __cnfn minmag(half16 x, half16 y);
7856#endif //cl_khr_fp16
7857
7858/**
7859 * Decompose a floating-point number. The modf
7860 * function breaks the argument x into integral and
7861 * fractional parts, each of which has the same sign as
7862 * the argument. It stores the integral part in the object
7863 * pointed to by iptr.
7864 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007865#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007866float __ovld modf(float x, float *iptr);
7867float2 __ovld modf(float2 x, float2 *iptr);
7868float3 __ovld modf(float3 x, float3 *iptr);
7869float4 __ovld modf(float4 x, float4 *iptr);
7870float8 __ovld modf(float8 x, float8 *iptr);
7871float16 __ovld modf(float16 x, float16 *iptr);
7872#ifdef cl_khr_fp64
7873double __ovld modf(double x, double *iptr);
7874double2 __ovld modf(double2 x, double2 *iptr);
7875double3 __ovld modf(double3 x, double3 *iptr);
7876double4 __ovld modf(double4 x, double4 *iptr);
7877double8 __ovld modf(double8 x, double8 *iptr);
7878double16 __ovld modf(double16 x, double16 *iptr);
7879#endif //cl_khr_fp64
7880#ifdef cl_khr_fp16
7881half __ovld modf(half x, half *iptr);
7882half2 __ovld modf(half2 x, half2 *iptr);
7883half3 __ovld modf(half3 x, half3 *iptr);
7884half4 __ovld modf(half4 x, half4 *iptr);
7885half8 __ovld modf(half8 x, half8 *iptr);
7886half16 __ovld modf(half16 x, half16 *iptr);
7887#endif //cl_khr_fp16
7888#else
7889float __ovld modf(float x, __global float *iptr);
7890float2 __ovld modf(float2 x, __global float2 *iptr);
7891float3 __ovld modf(float3 x, __global float3 *iptr);
7892float4 __ovld modf(float4 x, __global float4 *iptr);
7893float8 __ovld modf(float8 x, __global float8 *iptr);
7894float16 __ovld modf(float16 x, __global float16 *iptr);
7895float __ovld modf(float x, __local float *iptr);
7896float2 __ovld modf(float2 x, __local float2 *iptr);
7897float3 __ovld modf(float3 x, __local float3 *iptr);
7898float4 __ovld modf(float4 x, __local float4 *iptr);
7899float8 __ovld modf(float8 x, __local float8 *iptr);
7900float16 __ovld modf(float16 x, __local float16 *iptr);
7901float __ovld modf(float x, __private float *iptr);
7902float2 __ovld modf(float2 x, __private float2 *iptr);
7903float3 __ovld modf(float3 x, __private float3 *iptr);
7904float4 __ovld modf(float4 x, __private float4 *iptr);
7905float8 __ovld modf(float8 x, __private float8 *iptr);
7906float16 __ovld modf(float16 x, __private float16 *iptr);
7907#ifdef cl_khr_fp64
7908double __ovld modf(double x, __global double *iptr);
7909double2 __ovld modf(double2 x, __global double2 *iptr);
7910double3 __ovld modf(double3 x, __global double3 *iptr);
7911double4 __ovld modf(double4 x, __global double4 *iptr);
7912double8 __ovld modf(double8 x, __global double8 *iptr);
7913double16 __ovld modf(double16 x, __global double16 *iptr);
7914double __ovld modf(double x, __local double *iptr);
7915double2 __ovld modf(double2 x, __local double2 *iptr);
7916double3 __ovld modf(double3 x, __local double3 *iptr);
7917double4 __ovld modf(double4 x, __local double4 *iptr);
7918double8 __ovld modf(double8 x, __local double8 *iptr);
7919double16 __ovld modf(double16 x, __local double16 *iptr);
7920double __ovld modf(double x, __private double *iptr);
7921double2 __ovld modf(double2 x, __private double2 *iptr);
7922double3 __ovld modf(double3 x, __private double3 *iptr);
7923double4 __ovld modf(double4 x, __private double4 *iptr);
7924double8 __ovld modf(double8 x, __private double8 *iptr);
7925double16 __ovld modf(double16 x, __private double16 *iptr);
7926#endif //cl_khr_fp64
7927#ifdef cl_khr_fp16
7928half __ovld modf(half x, __global half *iptr);
7929half2 __ovld modf(half2 x, __global half2 *iptr);
7930half3 __ovld modf(half3 x, __global half3 *iptr);
7931half4 __ovld modf(half4 x, __global half4 *iptr);
7932half8 __ovld modf(half8 x, __global half8 *iptr);
7933half16 __ovld modf(half16 x, __global half16 *iptr);
7934half __ovld modf(half x, __local half *iptr);
7935half2 __ovld modf(half2 x, __local half2 *iptr);
7936half3 __ovld modf(half3 x, __local half3 *iptr);
7937half4 __ovld modf(half4 x, __local half4 *iptr);
7938half8 __ovld modf(half8 x, __local half8 *iptr);
7939half16 __ovld modf(half16 x, __local half16 *iptr);
7940half __ovld modf(half x, __private half *iptr);
7941half2 __ovld modf(half2 x, __private half2 *iptr);
7942half3 __ovld modf(half3 x, __private half3 *iptr);
7943half4 __ovld modf(half4 x, __private half4 *iptr);
7944half8 __ovld modf(half8 x, __private half8 *iptr);
7945half16 __ovld modf(half16 x, __private half16 *iptr);
7946#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007947#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007948
7949/**
7950 * Returns a quiet NaN. The nancode may be placed
7951 * in the significand of the resulting NaN.
7952 */
7953float __ovld __cnfn nan(uint nancode);
7954float2 __ovld __cnfn nan(uint2 nancode);
7955float3 __ovld __cnfn nan(uint3 nancode);
7956float4 __ovld __cnfn nan(uint4 nancode);
7957float8 __ovld __cnfn nan(uint8 nancode);
7958float16 __ovld __cnfn nan(uint16 nancode);
7959#ifdef cl_khr_fp64
7960double __ovld __cnfn nan(ulong nancode);
7961double2 __ovld __cnfn nan(ulong2 nancode);
7962double3 __ovld __cnfn nan(ulong3 nancode);
7963double4 __ovld __cnfn nan(ulong4 nancode);
7964double8 __ovld __cnfn nan(ulong8 nancode);
7965double16 __ovld __cnfn nan(ulong16 nancode);
7966#endif //cl_khr_fp64
7967#ifdef cl_khr_fp16
7968half __ovld __cnfn nan(ushort nancode);
7969half2 __ovld __cnfn nan(ushort2 nancode);
7970half3 __ovld __cnfn nan(ushort3 nancode);
7971half4 __ovld __cnfn nan(ushort4 nancode);
7972half8 __ovld __cnfn nan(ushort8 nancode);
7973half16 __ovld __cnfn nan(ushort16 nancode);
7974#endif //cl_khr_fp16
7975
7976/**
7977 * Computes the next representable single-precision
7978 * floating-point value following x in the direction of
7979 * y. Thus, if y is less than x, nextafter() returns the
7980 * largest representable floating-point number less
7981 * than x.
7982 */
7983float __ovld __cnfn nextafter(float x, float y);
7984float2 __ovld __cnfn nextafter(float2 x, float2 y);
7985float3 __ovld __cnfn nextafter(float3 x, float3 y);
7986float4 __ovld __cnfn nextafter(float4 x, float4 y);
7987float8 __ovld __cnfn nextafter(float8 x, float8 y);
7988float16 __ovld __cnfn nextafter(float16 x, float16 y);
7989#ifdef cl_khr_fp64
7990double __ovld __cnfn nextafter(double x, double y);
7991double2 __ovld __cnfn nextafter(double2 x, double2 y);
7992double3 __ovld __cnfn nextafter(double3 x, double3 y);
7993double4 __ovld __cnfn nextafter(double4 x, double4 y);
7994double8 __ovld __cnfn nextafter(double8 x, double8 y);
7995double16 __ovld __cnfn nextafter(double16 x, double16 y);
7996#endif //cl_khr_fp64
7997#ifdef cl_khr_fp16
7998half __ovld __cnfn nextafter(half x, half y);
7999half2 __ovld __cnfn nextafter(half2 x, half2 y);
8000half3 __ovld __cnfn nextafter(half3 x, half3 y);
8001half4 __ovld __cnfn nextafter(half4 x, half4 y);
8002half8 __ovld __cnfn nextafter(half8 x, half8 y);
8003half16 __ovld __cnfn nextafter(half16 x, half16 y);
8004#endif //cl_khr_fp16
8005
8006/**
8007 * Compute x to the power y.
8008 */
8009float __ovld __cnfn pow(float x, float y);
8010float2 __ovld __cnfn pow(float2 x, float2 y);
8011float3 __ovld __cnfn pow(float3 x, float3 y);
8012float4 __ovld __cnfn pow(float4 x, float4 y);
8013float8 __ovld __cnfn pow(float8 x, float8 y);
8014float16 __ovld __cnfn pow(float16 x, float16 y);
8015#ifdef cl_khr_fp64
8016double __ovld __cnfn pow(double x, double y);
8017double2 __ovld __cnfn pow(double2 x, double2 y);
8018double3 __ovld __cnfn pow(double3 x, double3 y);
8019double4 __ovld __cnfn pow(double4 x, double4 y);
8020double8 __ovld __cnfn pow(double8 x, double8 y);
8021double16 __ovld __cnfn pow(double16 x, double16 y);
8022#endif //cl_khr_fp64
8023#ifdef cl_khr_fp16
8024half __ovld __cnfn pow(half x, half y);
8025half2 __ovld __cnfn pow(half2 x, half2 y);
8026half3 __ovld __cnfn pow(half3 x, half3 y);
8027half4 __ovld __cnfn pow(half4 x, half4 y);
8028half8 __ovld __cnfn pow(half8 x, half8 y);
8029half16 __ovld __cnfn pow(half16 x, half16 y);
8030#endif //cl_khr_fp16
8031
8032/**
8033 * Compute x to the power y, where y is an integer.
8034 */
8035float __ovld __cnfn pown(float x, int y);
8036float2 __ovld __cnfn pown(float2 x, int2 y);
8037float3 __ovld __cnfn pown(float3 x, int3 y);
8038float4 __ovld __cnfn pown(float4 x, int4 y);
8039float8 __ovld __cnfn pown(float8 x, int8 y);
8040float16 __ovld __cnfn pown(float16 x, int16 y);
8041#ifdef cl_khr_fp64
8042double __ovld __cnfn pown(double x, int y);
8043double2 __ovld __cnfn pown(double2 x, int2 y);
8044double3 __ovld __cnfn pown(double3 x, int3 y);
8045double4 __ovld __cnfn pown(double4 x, int4 y);
8046double8 __ovld __cnfn pown(double8 x, int8 y);
8047double16 __ovld __cnfn pown(double16 x, int16 y);
8048#endif //cl_khr_fp64
8049#ifdef cl_khr_fp16
8050half __ovld __cnfn pown(half x, int y);
8051half2 __ovld __cnfn pown(half2 x, int2 y);
8052half3 __ovld __cnfn pown(half3 x, int3 y);
8053half4 __ovld __cnfn pown(half4 x, int4 y);
8054half8 __ovld __cnfn pown(half8 x, int8 y);
8055half16 __ovld __cnfn pown(half16 x, int16 y);
8056#endif //cl_khr_fp16
8057
8058/**
8059 * Compute x to the power y, where x is >= 0.
8060 */
8061float __ovld __cnfn powr(float x, float y);
8062float2 __ovld __cnfn powr(float2 x, float2 y);
8063float3 __ovld __cnfn powr(float3 x, float3 y);
8064float4 __ovld __cnfn powr(float4 x, float4 y);
8065float8 __ovld __cnfn powr(float8 x, float8 y);
8066float16 __ovld __cnfn powr(float16 x, float16 y);
8067#ifdef cl_khr_fp64
8068double __ovld __cnfn powr(double x, double y);
8069double2 __ovld __cnfn powr(double2 x, double2 y);
8070double3 __ovld __cnfn powr(double3 x, double3 y);
8071double4 __ovld __cnfn powr(double4 x, double4 y);
8072double8 __ovld __cnfn powr(double8 x, double8 y);
8073double16 __ovld __cnfn powr(double16 x, double16 y);
8074#endif //cl_khr_fp64
8075#ifdef cl_khr_fp16
8076half __ovld __cnfn powr(half x, half y);
8077half2 __ovld __cnfn powr(half2 x, half2 y);
8078half3 __ovld __cnfn powr(half3 x, half3 y);
8079half4 __ovld __cnfn powr(half4 x, half4 y);
8080half8 __ovld __cnfn powr(half8 x, half8 y);
8081half16 __ovld __cnfn powr(half16 x, half16 y);
8082#endif //cl_khr_fp16
8083
8084/**
8085 * Compute the value r such that r = x - n*y, where n
8086 * is the integer nearest the exact value of x/y. If there
8087 * are two integers closest to x/y, n shall be the even
8088 * one. If r is zero, it is given the same sign as x.
8089 */
8090float __ovld __cnfn remainder(float x, float y);
8091float2 __ovld __cnfn remainder(float2 x, float2 y);
8092float3 __ovld __cnfn remainder(float3 x, float3 y);
8093float4 __ovld __cnfn remainder(float4 x, float4 y);
8094float8 __ovld __cnfn remainder(float8 x, float8 y);
8095float16 __ovld __cnfn remainder(float16 x, float16 y);
8096#ifdef cl_khr_fp64
8097double __ovld __cnfn remainder(double x, double y);
8098double2 __ovld __cnfn remainder(double2 x, double2 y);
8099double3 __ovld __cnfn remainder(double3 x, double3 y);
8100double4 __ovld __cnfn remainder(double4 x, double4 y);
8101double8 __ovld __cnfn remainder(double8 x, double8 y);
8102double16 __ovld __cnfn remainder(double16 x, double16 y);
8103#endif //cl_khr_fp64
8104#ifdef cl_khr_fp16
8105half __ovld __cnfn remainder(half x, half y);
8106half2 __ovld __cnfn remainder(half2 x, half2 y);
8107half3 __ovld __cnfn remainder(half3 x, half3 y);
8108half4 __ovld __cnfn remainder(half4 x, half4 y);
8109half8 __ovld __cnfn remainder(half8 x, half8 y);
8110half16 __ovld __cnfn remainder(half16 x, half16 y);
8111#endif //cl_khr_fp16
8112
8113/**
8114 * The remquo function computes the value r such
8115 * that r = x - n*y, where n is the integer nearest the
8116 * exact value of x/y. If there are two integers closest
8117 * to x/y, n shall be the even one. If r is zero, it is
8118 * given the same sign as x. This is the same value
8119 * that is returned by the remainder function.
8120 * remquo also calculates the lower seven bits of the
8121 * integral quotient x/y, and gives that value the same
8122 * sign as x/y. It stores this signed value in the object
8123 * pointed to by quo.
8124 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008125#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008126float __ovld remquo(float x, float y, int *quo);
8127float2 __ovld remquo(float2 x, float2 y, int2 *quo);
8128float3 __ovld remquo(float3 x, float3 y, int3 *quo);
8129float4 __ovld remquo(float4 x, float4 y, int4 *quo);
8130float8 __ovld remquo(float8 x, float8 y, int8 *quo);
8131float16 __ovld remquo(float16 x, float16 y, int16 *quo);
8132#ifdef cl_khr_fp64
8133double __ovld remquo(double x, double y, int *quo);
8134double2 __ovld remquo(double2 x, double2 y, int2 *quo);
8135double3 __ovld remquo(double3 x, double3 y, int3 *quo);
8136double4 __ovld remquo(double4 x, double4 y, int4 *quo);
8137double8 __ovld remquo(double8 x, double8 y, int8 *quo);
8138double16 __ovld remquo(double16 x, double16 y, int16 *quo);
8139#endif //cl_khr_fp64
8140#ifdef cl_khr_fp16
8141half __ovld remquo(half x, half y, int *quo);
8142half2 __ovld remquo(half2 x, half2 y, int2 *quo);
8143half3 __ovld remquo(half3 x, half3 y, int3 *quo);
8144half4 __ovld remquo(half4 x, half4 y, int4 *quo);
8145half8 __ovld remquo(half8 x, half8 y, int8 *quo);
8146half16 __ovld remquo(half16 x, half16 y, int16 *quo);
8147
8148#endif //cl_khr_fp16
8149#else
8150float __ovld remquo(float x, float y, __global int *quo);
8151float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
8152float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
8153float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
8154float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
8155float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
8156float __ovld remquo(float x, float y, __local int *quo);
8157float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
8158float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
8159float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
8160float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
8161float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
8162float __ovld remquo(float x, float y, __private int *quo);
8163float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
8164float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
8165float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
8166float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
8167float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
8168#ifdef cl_khr_fp64
8169double __ovld remquo(double x, double y, __global int *quo);
8170double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
8171double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
8172double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
8173double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
8174double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
8175double __ovld remquo(double x, double y, __local int *quo);
8176double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
8177double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
8178double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
8179double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
8180double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
8181double __ovld remquo(double x, double y, __private int *quo);
8182double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
8183double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
8184double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
8185double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
8186double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
8187#endif //cl_khr_fp64
8188#ifdef cl_khr_fp16
8189half __ovld remquo(half x, half y, __global int *quo);
8190half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
8191half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
8192half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
8193half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
8194half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
8195half __ovld remquo(half x, half y, __local int *quo);
8196half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
8197half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
8198half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
8199half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
8200half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
8201half __ovld remquo(half x, half y, __private int *quo);
8202half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
8203half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
8204half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8205half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8206half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8207#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008208#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008209/**
8210 * Round to integral value (using round to nearest
8211 * even rounding mode) in floating-point format.
8212 * Refer to section 7.1 for description of rounding
8213 * modes.
8214 */
8215float __ovld __cnfn rint(float);
8216float2 __ovld __cnfn rint(float2);
8217float3 __ovld __cnfn rint(float3);
8218float4 __ovld __cnfn rint(float4);
8219float8 __ovld __cnfn rint(float8);
8220float16 __ovld __cnfn rint(float16);
8221#ifdef cl_khr_fp64
8222double __ovld __cnfn rint(double);
8223double2 __ovld __cnfn rint(double2);
8224double3 __ovld __cnfn rint(double3);
8225double4 __ovld __cnfn rint(double4);
8226double8 __ovld __cnfn rint(double8);
8227double16 __ovld __cnfn rint(double16);
8228#endif //cl_khr_fp64
8229#ifdef cl_khr_fp16
8230half __ovld __cnfn rint(half);
8231half2 __ovld __cnfn rint(half2);
8232half3 __ovld __cnfn rint(half3);
8233half4 __ovld __cnfn rint(half4);
8234half8 __ovld __cnfn rint(half8);
8235half16 __ovld __cnfn rint(half16);
8236#endif //cl_khr_fp16
8237
8238/**
8239 * Compute x to the power 1/y.
8240 */
8241float __ovld __cnfn rootn(float x, int y);
8242float2 __ovld __cnfn rootn(float2 x, int2 y);
8243float3 __ovld __cnfn rootn(float3 x, int3 y);
8244float4 __ovld __cnfn rootn(float4 x, int4 y);
8245float8 __ovld __cnfn rootn(float8 x, int8 y);
8246float16 __ovld __cnfn rootn(float16 x, int16 y);
8247#ifdef cl_khr_fp64
8248double __ovld __cnfn rootn(double x, int y);
8249double2 __ovld __cnfn rootn(double2 x, int2 y);
8250double3 __ovld __cnfn rootn(double3 x, int3 y);
8251double4 __ovld __cnfn rootn(double4 x, int4 y);
8252double8 __ovld __cnfn rootn(double8 x, int8 y);
8253double16 __ovld __cnfn rootn(double16 x, int16 y);
8254#endif //cl_khr_fp64
8255#ifdef cl_khr_fp16
8256half __ovld __cnfn rootn(half x, int y);
8257half2 __ovld __cnfn rootn(half2 x, int2 y);
8258half3 __ovld __cnfn rootn(half3 x, int3 y);
8259half4 __ovld __cnfn rootn(half4 x, int4 y);
8260half8 __ovld __cnfn rootn(half8 x, int8 y);
8261half16 __ovld __cnfn rootn(half16 x, int16 y);
8262#endif //cl_khr_fp16
8263
8264/**
8265 * Return the integral value nearest to x rounding
8266 * halfway cases away from zero, regardless of the
8267 * current rounding direction.
8268 */
8269float __ovld __cnfn round(float x);
8270float2 __ovld __cnfn round(float2 x);
8271float3 __ovld __cnfn round(float3 x);
8272float4 __ovld __cnfn round(float4 x);
8273float8 __ovld __cnfn round(float8 x);
8274float16 __ovld __cnfn round(float16 x);
8275#ifdef cl_khr_fp64
8276double __ovld __cnfn round(double x);
8277double2 __ovld __cnfn round(double2 x);
8278double3 __ovld __cnfn round(double3 x);
8279double4 __ovld __cnfn round(double4 x);
8280double8 __ovld __cnfn round(double8 x);
8281double16 __ovld __cnfn round(double16 x);
8282#endif //cl_khr_fp64
8283#ifdef cl_khr_fp16
8284half __ovld __cnfn round(half x);
8285half2 __ovld __cnfn round(half2 x);
8286half3 __ovld __cnfn round(half3 x);
8287half4 __ovld __cnfn round(half4 x);
8288half8 __ovld __cnfn round(half8 x);
8289half16 __ovld __cnfn round(half16 x);
8290#endif //cl_khr_fp16
8291
8292/**
8293 * Compute inverse square root.
8294 */
8295float __ovld __cnfn rsqrt(float);
8296float2 __ovld __cnfn rsqrt(float2);
8297float3 __ovld __cnfn rsqrt(float3);
8298float4 __ovld __cnfn rsqrt(float4);
8299float8 __ovld __cnfn rsqrt(float8);
8300float16 __ovld __cnfn rsqrt(float16);
8301#ifdef cl_khr_fp64
8302double __ovld __cnfn rsqrt(double);
8303double2 __ovld __cnfn rsqrt(double2);
8304double3 __ovld __cnfn rsqrt(double3);
8305double4 __ovld __cnfn rsqrt(double4);
8306double8 __ovld __cnfn rsqrt(double8);
8307double16 __ovld __cnfn rsqrt(double16);
8308#endif //cl_khr_fp64
8309#ifdef cl_khr_fp16
8310half __ovld __cnfn rsqrt(half);
8311half2 __ovld __cnfn rsqrt(half2);
8312half3 __ovld __cnfn rsqrt(half3);
8313half4 __ovld __cnfn rsqrt(half4);
8314half8 __ovld __cnfn rsqrt(half8);
8315half16 __ovld __cnfn rsqrt(half16);
8316#endif //cl_khr_fp16
8317
8318/**
8319 * Compute sine.
8320 */
8321float __ovld __cnfn sin(float);
8322float2 __ovld __cnfn sin(float2);
8323float3 __ovld __cnfn sin(float3);
8324float4 __ovld __cnfn sin(float4);
8325float8 __ovld __cnfn sin(float8);
8326float16 __ovld __cnfn sin(float16);
8327#ifdef cl_khr_fp64
8328double __ovld __cnfn sin(double);
8329double2 __ovld __cnfn sin(double2);
8330double3 __ovld __cnfn sin(double3);
8331double4 __ovld __cnfn sin(double4);
8332double8 __ovld __cnfn sin(double8);
8333double16 __ovld __cnfn sin(double16);
8334#endif //cl_khr_fp64
8335#ifdef cl_khr_fp16
8336half __ovld __cnfn sin(half);
8337half2 __ovld __cnfn sin(half2);
8338half3 __ovld __cnfn sin(half3);
8339half4 __ovld __cnfn sin(half4);
8340half8 __ovld __cnfn sin(half8);
8341half16 __ovld __cnfn sin(half16);
8342#endif //cl_khr_fp16
8343
8344/**
8345 * Compute sine and cosine of x. The computed sine
8346 * is the return value and computed cosine is returned
8347 * in cosval.
8348 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008349#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008350float __ovld sincos(float x, float *cosval);
8351float2 __ovld sincos(float2 x, float2 *cosval);
8352float3 __ovld sincos(float3 x, float3 *cosval);
8353float4 __ovld sincos(float4 x, float4 *cosval);
8354float8 __ovld sincos(float8 x, float8 *cosval);
8355float16 __ovld sincos(float16 x, float16 *cosval);
8356#ifdef cl_khr_fp64
8357double __ovld sincos(double x, double *cosval);
8358double2 __ovld sincos(double2 x, double2 *cosval);
8359double3 __ovld sincos(double3 x, double3 *cosval);
8360double4 __ovld sincos(double4 x, double4 *cosval);
8361double8 __ovld sincos(double8 x, double8 *cosval);
8362double16 __ovld sincos(double16 x, double16 *cosval);
8363#endif //cl_khr_fp64
8364#ifdef cl_khr_fp16
8365half __ovld sincos(half x, half *cosval);
8366half2 __ovld sincos(half2 x, half2 *cosval);
8367half3 __ovld sincos(half3 x, half3 *cosval);
8368half4 __ovld sincos(half4 x, half4 *cosval);
8369half8 __ovld sincos(half8 x, half8 *cosval);
8370half16 __ovld sincos(half16 x, half16 *cosval);
8371#endif //cl_khr_fp16
8372#else
8373float __ovld sincos(float x, __global float *cosval);
8374float2 __ovld sincos(float2 x, __global float2 *cosval);
8375float3 __ovld sincos(float3 x, __global float3 *cosval);
8376float4 __ovld sincos(float4 x, __global float4 *cosval);
8377float8 __ovld sincos(float8 x, __global float8 *cosval);
8378float16 __ovld sincos(float16 x, __global float16 *cosval);
8379float __ovld sincos(float x, __local float *cosval);
8380float2 __ovld sincos(float2 x, __local float2 *cosval);
8381float3 __ovld sincos(float3 x, __local float3 *cosval);
8382float4 __ovld sincos(float4 x, __local float4 *cosval);
8383float8 __ovld sincos(float8 x, __local float8 *cosval);
8384float16 __ovld sincos(float16 x, __local float16 *cosval);
8385float __ovld sincos(float x, __private float *cosval);
8386float2 __ovld sincos(float2 x, __private float2 *cosval);
8387float3 __ovld sincos(float3 x, __private float3 *cosval);
8388float4 __ovld sincos(float4 x, __private float4 *cosval);
8389float8 __ovld sincos(float8 x, __private float8 *cosval);
8390float16 __ovld sincos(float16 x, __private float16 *cosval);
8391#ifdef cl_khr_fp64
8392double __ovld sincos(double x, __global double *cosval);
8393double2 __ovld sincos(double2 x, __global double2 *cosval);
8394double3 __ovld sincos(double3 x, __global double3 *cosval);
8395double4 __ovld sincos(double4 x, __global double4 *cosval);
8396double8 __ovld sincos(double8 x, __global double8 *cosval);
8397double16 __ovld sincos(double16 x, __global double16 *cosval);
8398double __ovld sincos(double x, __local double *cosval);
8399double2 __ovld sincos(double2 x, __local double2 *cosval);
8400double3 __ovld sincos(double3 x, __local double3 *cosval);
8401double4 __ovld sincos(double4 x, __local double4 *cosval);
8402double8 __ovld sincos(double8 x, __local double8 *cosval);
8403double16 __ovld sincos(double16 x, __local double16 *cosval);
8404double __ovld sincos(double x, __private double *cosval);
8405double2 __ovld sincos(double2 x, __private double2 *cosval);
8406double3 __ovld sincos(double3 x, __private double3 *cosval);
8407double4 __ovld sincos(double4 x, __private double4 *cosval);
8408double8 __ovld sincos(double8 x, __private double8 *cosval);
8409double16 __ovld sincos(double16 x, __private double16 *cosval);
8410#endif //cl_khr_fp64
8411#ifdef cl_khr_fp16
8412half __ovld sincos(half x, __global half *cosval);
8413half2 __ovld sincos(half2 x, __global half2 *cosval);
8414half3 __ovld sincos(half3 x, __global half3 *cosval);
8415half4 __ovld sincos(half4 x, __global half4 *cosval);
8416half8 __ovld sincos(half8 x, __global half8 *cosval);
8417half16 __ovld sincos(half16 x, __global half16 *cosval);
8418half __ovld sincos(half x, __local half *cosval);
8419half2 __ovld sincos(half2 x, __local half2 *cosval);
8420half3 __ovld sincos(half3 x, __local half3 *cosval);
8421half4 __ovld sincos(half4 x, __local half4 *cosval);
8422half8 __ovld sincos(half8 x, __local half8 *cosval);
8423half16 __ovld sincos(half16 x, __local half16 *cosval);
8424half __ovld sincos(half x, __private half *cosval);
8425half2 __ovld sincos(half2 x, __private half2 *cosval);
8426half3 __ovld sincos(half3 x, __private half3 *cosval);
8427half4 __ovld sincos(half4 x, __private half4 *cosval);
8428half8 __ovld sincos(half8 x, __private half8 *cosval);
8429half16 __ovld sincos(half16 x, __private half16 *cosval);
8430#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008431#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008432
8433/**
8434 * Compute hyperbolic sine.
8435 */
8436float __ovld __cnfn sinh(float);
8437float2 __ovld __cnfn sinh(float2);
8438float3 __ovld __cnfn sinh(float3);
8439float4 __ovld __cnfn sinh(float4);
8440float8 __ovld __cnfn sinh(float8);
8441float16 __ovld __cnfn sinh(float16);
8442#ifdef cl_khr_fp64
8443double __ovld __cnfn sinh(double);
8444double2 __ovld __cnfn sinh(double2);
8445double3 __ovld __cnfn sinh(double3);
8446double4 __ovld __cnfn sinh(double4);
8447double8 __ovld __cnfn sinh(double8);
8448double16 __ovld __cnfn sinh(double16);
8449#endif //cl_khr_fp64
8450#ifdef cl_khr_fp16
8451half __ovld __cnfn sinh(half);
8452half2 __ovld __cnfn sinh(half2);
8453half3 __ovld __cnfn sinh(half3);
8454half4 __ovld __cnfn sinh(half4);
8455half8 __ovld __cnfn sinh(half8);
8456half16 __ovld __cnfn sinh(half16);
8457#endif //cl_khr_fp16
8458
8459/**
8460 * Compute sin (PI * x).
8461 */
8462float __ovld __cnfn sinpi(float x);
8463float2 __ovld __cnfn sinpi(float2 x);
8464float3 __ovld __cnfn sinpi(float3 x);
8465float4 __ovld __cnfn sinpi(float4 x);
8466float8 __ovld __cnfn sinpi(float8 x);
8467float16 __ovld __cnfn sinpi(float16 x);
8468#ifdef cl_khr_fp64
8469double __ovld __cnfn sinpi(double x);
8470double2 __ovld __cnfn sinpi(double2 x);
8471double3 __ovld __cnfn sinpi(double3 x);
8472double4 __ovld __cnfn sinpi(double4 x);
8473double8 __ovld __cnfn sinpi(double8 x);
8474double16 __ovld __cnfn sinpi(double16 x);
8475#endif //cl_khr_fp64
8476#ifdef cl_khr_fp16
8477half __ovld __cnfn sinpi(half x);
8478half2 __ovld __cnfn sinpi(half2 x);
8479half3 __ovld __cnfn sinpi(half3 x);
8480half4 __ovld __cnfn sinpi(half4 x);
8481half8 __ovld __cnfn sinpi(half8 x);
8482half16 __ovld __cnfn sinpi(half16 x);
8483#endif //cl_khr_fp16
8484
8485/**
8486 * Compute square root.
8487 */
8488float __ovld __cnfn sqrt(float);
8489float2 __ovld __cnfn sqrt(float2);
8490float3 __ovld __cnfn sqrt(float3);
8491float4 __ovld __cnfn sqrt(float4);
8492float8 __ovld __cnfn sqrt(float8);
8493float16 __ovld __cnfn sqrt(float16);
8494#ifdef cl_khr_fp64
8495double __ovld __cnfn sqrt(double);
8496double2 __ovld __cnfn sqrt(double2);
8497double3 __ovld __cnfn sqrt(double3);
8498double4 __ovld __cnfn sqrt(double4);
8499double8 __ovld __cnfn sqrt(double8);
8500double16 __ovld __cnfn sqrt(double16);
8501#endif //cl_khr_fp64
8502#ifdef cl_khr_fp16
8503half __ovld __cnfn sqrt(half);
8504half2 __ovld __cnfn sqrt(half2);
8505half3 __ovld __cnfn sqrt(half3);
8506half4 __ovld __cnfn sqrt(half4);
8507half8 __ovld __cnfn sqrt(half8);
8508half16 __ovld __cnfn sqrt(half16);
8509#endif //cl_khr_fp16
8510
8511/**
8512 * Compute tangent.
8513 */
8514float __ovld __cnfn tan(float);
8515float2 __ovld __cnfn tan(float2);
8516float3 __ovld __cnfn tan(float3);
8517float4 __ovld __cnfn tan(float4);
8518float8 __ovld __cnfn tan(float8);
8519float16 __ovld __cnfn tan(float16);
8520#ifdef cl_khr_fp64
8521double __ovld __cnfn tan(double);
8522double2 __ovld __cnfn tan(double2);
8523double3 __ovld __cnfn tan(double3);
8524double4 __ovld __cnfn tan(double4);
8525double8 __ovld __cnfn tan(double8);
8526double16 __ovld __cnfn tan(double16);
8527#endif //cl_khr_fp64
8528#ifdef cl_khr_fp16
8529half __ovld __cnfn tan(half);
8530half2 __ovld __cnfn tan(half2);
8531half3 __ovld __cnfn tan(half3);
8532half4 __ovld __cnfn tan(half4);
8533half8 __ovld __cnfn tan(half8);
8534half16 __ovld __cnfn tan(half16);
8535#endif //cl_khr_fp16
8536
8537/**
8538 * Compute hyperbolic tangent.
8539 */
8540float __ovld __cnfn tanh(float);
8541float2 __ovld __cnfn tanh(float2);
8542float3 __ovld __cnfn tanh(float3);
8543float4 __ovld __cnfn tanh(float4);
8544float8 __ovld __cnfn tanh(float8);
8545float16 __ovld __cnfn tanh(float16);
8546#ifdef cl_khr_fp64
8547double __ovld __cnfn tanh(double);
8548double2 __ovld __cnfn tanh(double2);
8549double3 __ovld __cnfn tanh(double3);
8550double4 __ovld __cnfn tanh(double4);
8551double8 __ovld __cnfn tanh(double8);
8552double16 __ovld __cnfn tanh(double16);
8553#endif //cl_khr_fp64
8554#ifdef cl_khr_fp16
8555half __ovld __cnfn tanh(half);
8556half2 __ovld __cnfn tanh(half2);
8557half3 __ovld __cnfn tanh(half3);
8558half4 __ovld __cnfn tanh(half4);
8559half8 __ovld __cnfn tanh(half8);
8560half16 __ovld __cnfn tanh(half16);
8561#endif //cl_khr_fp16
8562
8563/**
8564 * Compute tan (PI * x).
8565 */
8566float __ovld __cnfn tanpi(float x);
8567float2 __ovld __cnfn tanpi(float2 x);
8568float3 __ovld __cnfn tanpi(float3 x);
8569float4 __ovld __cnfn tanpi(float4 x);
8570float8 __ovld __cnfn tanpi(float8 x);
8571float16 __ovld __cnfn tanpi(float16 x);
8572#ifdef cl_khr_fp64
8573double __ovld __cnfn tanpi(double x);
8574double2 __ovld __cnfn tanpi(double2 x);
8575double3 __ovld __cnfn tanpi(double3 x);
8576double4 __ovld __cnfn tanpi(double4 x);
8577double8 __ovld __cnfn tanpi(double8 x);
8578double16 __ovld __cnfn tanpi(double16 x);
8579#endif //cl_khr_fp64
8580#ifdef cl_khr_fp16
8581half __ovld __cnfn tanpi(half x);
8582half2 __ovld __cnfn tanpi(half2 x);
8583half3 __ovld __cnfn tanpi(half3 x);
8584half4 __ovld __cnfn tanpi(half4 x);
8585half8 __ovld __cnfn tanpi(half8 x);
8586half16 __ovld __cnfn tanpi(half16 x);
8587#endif //cl_khr_fp16
8588
8589/**
8590 * Compute the gamma function.
8591 */
8592float __ovld __cnfn tgamma(float);
8593float2 __ovld __cnfn tgamma(float2);
8594float3 __ovld __cnfn tgamma(float3);
8595float4 __ovld __cnfn tgamma(float4);
8596float8 __ovld __cnfn tgamma(float8);
8597float16 __ovld __cnfn tgamma(float16);
8598#ifdef cl_khr_fp64
8599double __ovld __cnfn tgamma(double);
8600double2 __ovld __cnfn tgamma(double2);
8601double3 __ovld __cnfn tgamma(double3);
8602double4 __ovld __cnfn tgamma(double4);
8603double8 __ovld __cnfn tgamma(double8);
8604double16 __ovld __cnfn tgamma(double16);
8605#endif //cl_khr_fp64
8606#ifdef cl_khr_fp16
8607half __ovld __cnfn tgamma(half);
8608half2 __ovld __cnfn tgamma(half2);
8609half3 __ovld __cnfn tgamma(half3);
8610half4 __ovld __cnfn tgamma(half4);
8611half8 __ovld __cnfn tgamma(half8);
8612half16 __ovld __cnfn tgamma(half16);
8613#endif //cl_khr_fp16
8614
8615/**
8616 * Round to integral value using the round to zero
8617 * rounding mode.
8618 */
8619float __ovld __cnfn trunc(float);
8620float2 __ovld __cnfn trunc(float2);
8621float3 __ovld __cnfn trunc(float3);
8622float4 __ovld __cnfn trunc(float4);
8623float8 __ovld __cnfn trunc(float8);
8624float16 __ovld __cnfn trunc(float16);
8625#ifdef cl_khr_fp64
8626double __ovld __cnfn trunc(double);
8627double2 __ovld __cnfn trunc(double2);
8628double3 __ovld __cnfn trunc(double3);
8629double4 __ovld __cnfn trunc(double4);
8630double8 __ovld __cnfn trunc(double8);
8631double16 __ovld __cnfn trunc(double16);
8632#endif //cl_khr_fp64
8633#ifdef cl_khr_fp16
8634half __ovld __cnfn trunc(half);
8635half2 __ovld __cnfn trunc(half2);
8636half3 __ovld __cnfn trunc(half3);
8637half4 __ovld __cnfn trunc(half4);
8638half8 __ovld __cnfn trunc(half8);
8639half16 __ovld __cnfn trunc(half16);
8640#endif //cl_khr_fp16
8641
8642/**
8643 * Compute cosine. x must be in the range -2^16 ... +2^16.
8644 */
8645float __ovld __cnfn half_cos(float x);
8646float2 __ovld __cnfn half_cos(float2 x);
8647float3 __ovld __cnfn half_cos(float3 x);
8648float4 __ovld __cnfn half_cos(float4 x);
8649float8 __ovld __cnfn half_cos(float8 x);
8650float16 __ovld __cnfn half_cos(float16 x);
8651
8652/**
8653 * Compute x / y.
8654 */
8655float __ovld __cnfn half_divide(float x, float y);
8656float2 __ovld __cnfn half_divide(float2 x, float2 y);
8657float3 __ovld __cnfn half_divide(float3 x, float3 y);
8658float4 __ovld __cnfn half_divide(float4 x, float4 y);
8659float8 __ovld __cnfn half_divide(float8 x, float8 y);
8660float16 __ovld __cnfn half_divide(float16 x, float16 y);
8661
8662/**
8663 * Compute the base- e exponential of x.
8664 */
8665float __ovld __cnfn half_exp(float x);
8666float2 __ovld __cnfn half_exp(float2 x);
8667float3 __ovld __cnfn half_exp(float3 x);
8668float4 __ovld __cnfn half_exp(float4 x);
8669float8 __ovld __cnfn half_exp(float8 x);
8670float16 __ovld __cnfn half_exp(float16 x);
8671
8672/**
8673 * Compute the base- 2 exponential of x.
8674 */
8675float __ovld __cnfn half_exp2(float x);
8676float2 __ovld __cnfn half_exp2(float2 x);
8677float3 __ovld __cnfn half_exp2(float3 x);
8678float4 __ovld __cnfn half_exp2(float4 x);
8679float8 __ovld __cnfn half_exp2(float8 x);
8680float16 __ovld __cnfn half_exp2(float16 x);
8681
8682/**
8683 * Compute the base- 10 exponential of x.
8684 */
8685float __ovld __cnfn half_exp10(float x);
8686float2 __ovld __cnfn half_exp10(float2 x);
8687float3 __ovld __cnfn half_exp10(float3 x);
8688float4 __ovld __cnfn half_exp10(float4 x);
8689float8 __ovld __cnfn half_exp10(float8 x);
8690float16 __ovld __cnfn half_exp10(float16 x);
8691
8692/**
8693 * Compute natural logarithm.
8694 */
8695float __ovld __cnfn half_log(float x);
8696float2 __ovld __cnfn half_log(float2 x);
8697float3 __ovld __cnfn half_log(float3 x);
8698float4 __ovld __cnfn half_log(float4 x);
8699float8 __ovld __cnfn half_log(float8 x);
8700float16 __ovld __cnfn half_log(float16 x);
8701
8702/**
8703 * Compute a base 2 logarithm.
8704 */
8705float __ovld __cnfn half_log2(float x);
8706float2 __ovld __cnfn half_log2(float2 x);
8707float3 __ovld __cnfn half_log2(float3 x);
8708float4 __ovld __cnfn half_log2(float4 x);
8709float8 __ovld __cnfn half_log2(float8 x);
8710float16 __ovld __cnfn half_log2(float16 x);
8711
8712/**
8713 * Compute a base 10 logarithm.
8714 */
8715float __ovld __cnfn half_log10(float x);
8716float2 __ovld __cnfn half_log10(float2 x);
8717float3 __ovld __cnfn half_log10(float3 x);
8718float4 __ovld __cnfn half_log10(float4 x);
8719float8 __ovld __cnfn half_log10(float8 x);
8720float16 __ovld __cnfn half_log10(float16 x);
8721
8722/**
8723 * Compute x to the power y, where x is >= 0.
8724 */
8725float __ovld __cnfn half_powr(float x, float y);
8726float2 __ovld __cnfn half_powr(float2 x, float2 y);
8727float3 __ovld __cnfn half_powr(float3 x, float3 y);
8728float4 __ovld __cnfn half_powr(float4 x, float4 y);
8729float8 __ovld __cnfn half_powr(float8 x, float8 y);
8730float16 __ovld __cnfn half_powr(float16 x, float16 y);
8731
8732/**
8733 * Compute reciprocal.
8734 */
8735float __ovld __cnfn half_recip(float x);
8736float2 __ovld __cnfn half_recip(float2 x);
8737float3 __ovld __cnfn half_recip(float3 x);
8738float4 __ovld __cnfn half_recip(float4 x);
8739float8 __ovld __cnfn half_recip(float8 x);
8740float16 __ovld __cnfn half_recip(float16 x);
8741
8742/**
8743 * Compute inverse square root.
8744 */
8745float __ovld __cnfn half_rsqrt(float x);
8746float2 __ovld __cnfn half_rsqrt(float2 x);
8747float3 __ovld __cnfn half_rsqrt(float3 x);
8748float4 __ovld __cnfn half_rsqrt(float4 x);
8749float8 __ovld __cnfn half_rsqrt(float8 x);
8750float16 __ovld __cnfn half_rsqrt(float16 x);
8751
8752/**
8753 * Compute sine. x must be in the range -2^16 ... +2^16.
8754 */
8755float __ovld __cnfn half_sin(float x);
8756float2 __ovld __cnfn half_sin(float2 x);
8757float3 __ovld __cnfn half_sin(float3 x);
8758float4 __ovld __cnfn half_sin(float4 x);
8759float8 __ovld __cnfn half_sin(float8 x);
8760float16 __ovld __cnfn half_sin(float16 x);
8761
8762/**
8763 * Compute square root.
8764 */
8765float __ovld __cnfn half_sqrt(float x);
8766float2 __ovld __cnfn half_sqrt(float2 x);
8767float3 __ovld __cnfn half_sqrt(float3 x);
8768float4 __ovld __cnfn half_sqrt(float4 x);
8769float8 __ovld __cnfn half_sqrt(float8 x);
8770float16 __ovld __cnfn half_sqrt(float16 x);
8771
8772/**
8773 * Compute tangent. x must be in the range -216 ... +216.
8774 */
8775float __ovld __cnfn half_tan(float x);
8776float2 __ovld __cnfn half_tan(float2 x);
8777float3 __ovld __cnfn half_tan(float3 x);
8778float4 __ovld __cnfn half_tan(float4 x);
8779float8 __ovld __cnfn half_tan(float8 x);
8780float16 __ovld __cnfn half_tan(float16 x);
8781
8782/**
8783 * Compute cosine over an implementation-defined range.
8784 * The maximum error is implementation-defined.
8785 */
8786float __ovld __cnfn native_cos(float x);
8787float2 __ovld __cnfn native_cos(float2 x);
8788float3 __ovld __cnfn native_cos(float3 x);
8789float4 __ovld __cnfn native_cos(float4 x);
8790float8 __ovld __cnfn native_cos(float8 x);
8791float16 __ovld __cnfn native_cos(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008792
8793/**
8794 * Compute x / y over an implementation-defined range.
8795 * The maximum error is implementation-defined.
8796 */
8797float __ovld __cnfn native_divide(float x, float y);
8798float2 __ovld __cnfn native_divide(float2 x, float2 y);
8799float3 __ovld __cnfn native_divide(float3 x, float3 y);
8800float4 __ovld __cnfn native_divide(float4 x, float4 y);
8801float8 __ovld __cnfn native_divide(float8 x, float8 y);
8802float16 __ovld __cnfn native_divide(float16 x, float16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08008803
8804/**
8805 * Compute the base- e exponential of x over an
8806 * implementation-defined range. The maximum error is
8807 * implementation-defined.
8808 */
8809float __ovld __cnfn native_exp(float x);
8810float2 __ovld __cnfn native_exp(float2 x);
8811float3 __ovld __cnfn native_exp(float3 x);
8812float4 __ovld __cnfn native_exp(float4 x);
8813float8 __ovld __cnfn native_exp(float8 x);
8814float16 __ovld __cnfn native_exp(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008815
8816/**
8817 * Compute the base- 2 exponential of x over an
8818 * implementation-defined range. The maximum error is
8819 * implementation-defined.
8820 */
8821float __ovld __cnfn native_exp2(float x);
8822float2 __ovld __cnfn native_exp2(float2 x);
8823float3 __ovld __cnfn native_exp2(float3 x);
8824float4 __ovld __cnfn native_exp2(float4 x);
8825float8 __ovld __cnfn native_exp2(float8 x);
8826float16 __ovld __cnfn native_exp2(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008827
8828/**
8829 * Compute the base- 10 exponential of x over an
8830 * implementation-defined range. The maximum error is
8831 * implementation-defined.
8832 */
8833float __ovld __cnfn native_exp10(float x);
8834float2 __ovld __cnfn native_exp10(float2 x);
8835float3 __ovld __cnfn native_exp10(float3 x);
8836float4 __ovld __cnfn native_exp10(float4 x);
8837float8 __ovld __cnfn native_exp10(float8 x);
8838float16 __ovld __cnfn native_exp10(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008839
8840/**
8841 * Compute natural logarithm over an implementationdefined
8842 * range. The maximum error is implementation
8843 * defined.
8844 */
8845float __ovld __cnfn native_log(float x);
8846float2 __ovld __cnfn native_log(float2 x);
8847float3 __ovld __cnfn native_log(float3 x);
8848float4 __ovld __cnfn native_log(float4 x);
8849float8 __ovld __cnfn native_log(float8 x);
8850float16 __ovld __cnfn native_log(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008851
8852/**
8853 * Compute a base 2 logarithm over an implementationdefined
8854 * range. The maximum error is implementationdefined.
8855 */
8856float __ovld __cnfn native_log2(float x);
8857float2 __ovld __cnfn native_log2(float2 x);
8858float3 __ovld __cnfn native_log2(float3 x);
8859float4 __ovld __cnfn native_log2(float4 x);
8860float8 __ovld __cnfn native_log2(float8 x);
8861float16 __ovld __cnfn native_log2(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008862
8863/**
8864 * Compute a base 10 logarithm over an implementationdefined
8865 * range. The maximum error is implementationdefined.
8866 */
8867float __ovld __cnfn native_log10(float x);
8868float2 __ovld __cnfn native_log10(float2 x);
8869float3 __ovld __cnfn native_log10(float3 x);
8870float4 __ovld __cnfn native_log10(float4 x);
8871float8 __ovld __cnfn native_log10(float8 x);
8872float16 __ovld __cnfn native_log10(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008873
8874/**
8875 * Compute x to the power y, where x is >= 0. The range of
8876 * x and y are implementation-defined. The maximum error
8877 * is implementation-defined.
8878 */
8879float __ovld __cnfn native_powr(float x, float y);
8880float2 __ovld __cnfn native_powr(float2 x, float2 y);
8881float3 __ovld __cnfn native_powr(float3 x, float3 y);
8882float4 __ovld __cnfn native_powr(float4 x, float4 y);
8883float8 __ovld __cnfn native_powr(float8 x, float8 y);
8884float16 __ovld __cnfn native_powr(float16 x, float16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08008885
8886/**
8887 * Compute reciprocal over an implementation-defined
8888 * range. The maximum error is implementation-defined.
8889 */
8890float __ovld __cnfn native_recip(float x);
8891float2 __ovld __cnfn native_recip(float2 x);
8892float3 __ovld __cnfn native_recip(float3 x);
8893float4 __ovld __cnfn native_recip(float4 x);
8894float8 __ovld __cnfn native_recip(float8 x);
8895float16 __ovld __cnfn native_recip(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008896
8897/**
8898 * Compute inverse square root over an implementationdefined
8899 * range. The maximum error is implementationdefined.
8900 */
8901float __ovld __cnfn native_rsqrt(float x);
8902float2 __ovld __cnfn native_rsqrt(float2 x);
8903float3 __ovld __cnfn native_rsqrt(float3 x);
8904float4 __ovld __cnfn native_rsqrt(float4 x);
8905float8 __ovld __cnfn native_rsqrt(float8 x);
8906float16 __ovld __cnfn native_rsqrt(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008907
8908/**
8909 * Compute sine over an implementation-defined range.
8910 * The maximum error is implementation-defined.
8911 */
8912float __ovld __cnfn native_sin(float x);
8913float2 __ovld __cnfn native_sin(float2 x);
8914float3 __ovld __cnfn native_sin(float3 x);
8915float4 __ovld __cnfn native_sin(float4 x);
8916float8 __ovld __cnfn native_sin(float8 x);
8917float16 __ovld __cnfn native_sin(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008918
8919/**
8920 * Compute square root over an implementation-defined
8921 * range. The maximum error is implementation-defined.
8922 */
8923float __ovld __cnfn native_sqrt(float x);
8924float2 __ovld __cnfn native_sqrt(float2 x);
8925float3 __ovld __cnfn native_sqrt(float3 x);
8926float4 __ovld __cnfn native_sqrt(float4 x);
8927float8 __ovld __cnfn native_sqrt(float8 x);
8928float16 __ovld __cnfn native_sqrt(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008929
8930/**
8931 * Compute tangent over an implementation-defined range.
8932 * The maximum error is implementation-defined.
8933 */
8934float __ovld __cnfn native_tan(float x);
8935float2 __ovld __cnfn native_tan(float2 x);
8936float3 __ovld __cnfn native_tan(float3 x);
8937float4 __ovld __cnfn native_tan(float4 x);
8938float8 __ovld __cnfn native_tan(float8 x);
8939float16 __ovld __cnfn native_tan(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008940
8941// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
8942
8943/**
8944 * Returns | x |.
8945 */
8946uchar __ovld __cnfn abs(char x);
8947uchar __ovld __cnfn abs(uchar x);
8948uchar2 __ovld __cnfn abs(char2 x);
8949uchar2 __ovld __cnfn abs(uchar2 x);
8950uchar3 __ovld __cnfn abs(char3 x);
8951uchar3 __ovld __cnfn abs(uchar3 x);
8952uchar4 __ovld __cnfn abs(char4 x);
8953uchar4 __ovld __cnfn abs(uchar4 x);
8954uchar8 __ovld __cnfn abs(char8 x);
8955uchar8 __ovld __cnfn abs(uchar8 x);
8956uchar16 __ovld __cnfn abs(char16 x);
8957uchar16 __ovld __cnfn abs(uchar16 x);
8958ushort __ovld __cnfn abs(short x);
8959ushort __ovld __cnfn abs(ushort x);
8960ushort2 __ovld __cnfn abs(short2 x);
8961ushort2 __ovld __cnfn abs(ushort2 x);
8962ushort3 __ovld __cnfn abs(short3 x);
8963ushort3 __ovld __cnfn abs(ushort3 x);
8964ushort4 __ovld __cnfn abs(short4 x);
8965ushort4 __ovld __cnfn abs(ushort4 x);
8966ushort8 __ovld __cnfn abs(short8 x);
8967ushort8 __ovld __cnfn abs(ushort8 x);
8968ushort16 __ovld __cnfn abs(short16 x);
8969ushort16 __ovld __cnfn abs(ushort16 x);
8970uint __ovld __cnfn abs(int x);
8971uint __ovld __cnfn abs(uint x);
8972uint2 __ovld __cnfn abs(int2 x);
8973uint2 __ovld __cnfn abs(uint2 x);
8974uint3 __ovld __cnfn abs(int3 x);
8975uint3 __ovld __cnfn abs(uint3 x);
8976uint4 __ovld __cnfn abs(int4 x);
8977uint4 __ovld __cnfn abs(uint4 x);
8978uint8 __ovld __cnfn abs(int8 x);
8979uint8 __ovld __cnfn abs(uint8 x);
8980uint16 __ovld __cnfn abs(int16 x);
8981uint16 __ovld __cnfn abs(uint16 x);
8982ulong __ovld __cnfn abs(long x);
8983ulong __ovld __cnfn abs(ulong x);
8984ulong2 __ovld __cnfn abs(long2 x);
8985ulong2 __ovld __cnfn abs(ulong2 x);
8986ulong3 __ovld __cnfn abs(long3 x);
8987ulong3 __ovld __cnfn abs(ulong3 x);
8988ulong4 __ovld __cnfn abs(long4 x);
8989ulong4 __ovld __cnfn abs(ulong4 x);
8990ulong8 __ovld __cnfn abs(long8 x);
8991ulong8 __ovld __cnfn abs(ulong8 x);
8992ulong16 __ovld __cnfn abs(long16 x);
8993ulong16 __ovld __cnfn abs(ulong16 x);
8994
8995/**
8996 * Returns | x - y | without modulo overflow.
8997 */
8998uchar __ovld __cnfn abs_diff(char x, char y);
8999uchar __ovld __cnfn abs_diff(uchar x, uchar y);
9000uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
9001uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
9002uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
9003uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
9004uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
9005uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
9006uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
9007uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
9008uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
9009uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
9010ushort __ovld __cnfn abs_diff(short x, short y);
9011ushort __ovld __cnfn abs_diff(ushort x, ushort y);
9012ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
9013ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
9014ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
9015ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
9016ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
9017ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
9018ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
9019ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
9020ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
9021ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
9022uint __ovld __cnfn abs_diff(int x, int y);
9023uint __ovld __cnfn abs_diff(uint x, uint y);
9024uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
9025uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
9026uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
9027uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
9028uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
9029uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
9030uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
9031uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
9032uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
9033uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
9034ulong __ovld __cnfn abs_diff(long x, long y);
9035ulong __ovld __cnfn abs_diff(ulong x, ulong y);
9036ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
9037ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
9038ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
9039ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
9040ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
9041ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
9042ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
9043ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
9044ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
9045ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
9046
9047/**
9048 * Returns x + y and saturates the result.
9049 */
9050char __ovld __cnfn add_sat(char x, char y);
9051uchar __ovld __cnfn add_sat(uchar x, uchar y);
9052char2 __ovld __cnfn add_sat(char2 x, char2 y);
9053uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
9054char3 __ovld __cnfn add_sat(char3 x, char3 y);
9055uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
9056char4 __ovld __cnfn add_sat(char4 x, char4 y);
9057uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
9058char8 __ovld __cnfn add_sat(char8 x, char8 y);
9059uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
9060char16 __ovld __cnfn add_sat(char16 x, char16 y);
9061uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
9062short __ovld __cnfn add_sat(short x, short y);
9063ushort __ovld __cnfn add_sat(ushort x, ushort y);
9064short2 __ovld __cnfn add_sat(short2 x, short2 y);
9065ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
9066short3 __ovld __cnfn add_sat(short3 x, short3 y);
9067ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
9068short4 __ovld __cnfn add_sat(short4 x, short4 y);
9069ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
9070short8 __ovld __cnfn add_sat(short8 x, short8 y);
9071ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
9072short16 __ovld __cnfn add_sat(short16 x, short16 y);
9073ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
9074int __ovld __cnfn add_sat(int x, int y);
9075uint __ovld __cnfn add_sat(uint x, uint y);
9076int2 __ovld __cnfn add_sat(int2 x, int2 y);
9077uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
9078int3 __ovld __cnfn add_sat(int3 x, int3 y);
9079uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
9080int4 __ovld __cnfn add_sat(int4 x, int4 y);
9081uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
9082int8 __ovld __cnfn add_sat(int8 x, int8 y);
9083uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
9084int16 __ovld __cnfn add_sat(int16 x, int16 y);
9085uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
9086long __ovld __cnfn add_sat(long x, long y);
9087ulong __ovld __cnfn add_sat(ulong x, ulong y);
9088long2 __ovld __cnfn add_sat(long2 x, long2 y);
9089ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
9090long3 __ovld __cnfn add_sat(long3 x, long3 y);
9091ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
9092long4 __ovld __cnfn add_sat(long4 x, long4 y);
9093ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
9094long8 __ovld __cnfn add_sat(long8 x, long8 y);
9095ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
9096long16 __ovld __cnfn add_sat(long16 x, long16 y);
9097ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
9098
9099/**
9100 * Returns (x + y) >> 1. The intermediate sum does
9101 * not modulo overflow.
9102 */
9103char __ovld __cnfn hadd(char x, char y);
9104uchar __ovld __cnfn hadd(uchar x, uchar y);
9105char2 __ovld __cnfn hadd(char2 x, char2 y);
9106uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
9107char3 __ovld __cnfn hadd(char3 x, char3 y);
9108uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
9109char4 __ovld __cnfn hadd(char4 x, char4 y);
9110uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
9111char8 __ovld __cnfn hadd(char8 x, char8 y);
9112uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
9113char16 __ovld __cnfn hadd(char16 x, char16 y);
9114uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
9115short __ovld __cnfn hadd(short x, short y);
9116ushort __ovld __cnfn hadd(ushort x, ushort y);
9117short2 __ovld __cnfn hadd(short2 x, short2 y);
9118ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
9119short3 __ovld __cnfn hadd(short3 x, short3 y);
9120ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
9121short4 __ovld __cnfn hadd(short4 x, short4 y);
9122ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
9123short8 __ovld __cnfn hadd(short8 x, short8 y);
9124ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
9125short16 __ovld __cnfn hadd(short16 x, short16 y);
9126ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
9127int __ovld __cnfn hadd(int x, int y);
9128uint __ovld __cnfn hadd(uint x, uint y);
9129int2 __ovld __cnfn hadd(int2 x, int2 y);
9130uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
9131int3 __ovld __cnfn hadd(int3 x, int3 y);
9132uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
9133int4 __ovld __cnfn hadd(int4 x, int4 y);
9134uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
9135int8 __ovld __cnfn hadd(int8 x, int8 y);
9136uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
9137int16 __ovld __cnfn hadd(int16 x, int16 y);
9138uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
9139long __ovld __cnfn hadd(long x, long y);
9140ulong __ovld __cnfn hadd(ulong x, ulong y);
9141long2 __ovld __cnfn hadd(long2 x, long2 y);
9142ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
9143long3 __ovld __cnfn hadd(long3 x, long3 y);
9144ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
9145long4 __ovld __cnfn hadd(long4 x, long4 y);
9146ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
9147long8 __ovld __cnfn hadd(long8 x, long8 y);
9148ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
9149long16 __ovld __cnfn hadd(long16 x, long16 y);
9150ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
9151
9152/**
9153 * Returns (x + y + 1) >> 1. The intermediate sum
9154 * does not modulo overflow.
9155 */
9156char __ovld __cnfn rhadd(char x, char y);
9157uchar __ovld __cnfn rhadd(uchar x, uchar y);
9158char2 __ovld __cnfn rhadd(char2 x, char2 y);
9159uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
9160char3 __ovld __cnfn rhadd(char3 x, char3 y);
9161uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
9162char4 __ovld __cnfn rhadd(char4 x, char4 y);
9163uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
9164char8 __ovld __cnfn rhadd(char8 x, char8 y);
9165uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
9166char16 __ovld __cnfn rhadd(char16 x, char16 y);
9167uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
9168short __ovld __cnfn rhadd(short x, short y);
9169ushort __ovld __cnfn rhadd(ushort x, ushort y);
9170short2 __ovld __cnfn rhadd(short2 x, short2 y);
9171ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
9172short3 __ovld __cnfn rhadd(short3 x, short3 y);
9173ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
9174short4 __ovld __cnfn rhadd(short4 x, short4 y);
9175ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
9176short8 __ovld __cnfn rhadd(short8 x, short8 y);
9177ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
9178short16 __ovld __cnfn rhadd(short16 x, short16 y);
9179ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
9180int __ovld __cnfn rhadd(int x, int y);
9181uint __ovld __cnfn rhadd(uint x, uint y);
9182int2 __ovld __cnfn rhadd(int2 x, int2 y);
9183uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
9184int3 __ovld __cnfn rhadd(int3 x, int3 y);
9185uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
9186int4 __ovld __cnfn rhadd(int4 x, int4 y);
9187uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
9188int8 __ovld __cnfn rhadd(int8 x, int8 y);
9189uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
9190int16 __ovld __cnfn rhadd(int16 x, int16 y);
9191uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
9192long __ovld __cnfn rhadd(long x, long y);
9193ulong __ovld __cnfn rhadd(ulong x, ulong y);
9194long2 __ovld __cnfn rhadd(long2 x, long2 y);
9195ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
9196long3 __ovld __cnfn rhadd(long3 x, long3 y);
9197ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
9198long4 __ovld __cnfn rhadd(long4 x, long4 y);
9199ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
9200long8 __ovld __cnfn rhadd(long8 x, long8 y);
9201ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
9202long16 __ovld __cnfn rhadd(long16 x, long16 y);
9203ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
9204
9205/**
9206 * Returns min(max(x, minval), maxval).
9207 * Results are undefined if minval > maxval.
9208 */
9209char __ovld __cnfn clamp(char x, char minval, char maxval);
9210uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
9211char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
9212uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
9213char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
9214uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
9215char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
9216uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
9217char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
9218uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
9219char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
9220uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
9221short __ovld __cnfn clamp(short x, short minval, short maxval);
9222ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
9223short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
9224ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
9225short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
9226ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
9227short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
9228ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
9229short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
9230ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
9231short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
9232ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
9233int __ovld __cnfn clamp(int x, int minval, int maxval);
9234uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
9235int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
9236uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
9237int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
9238uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
9239int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
9240uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
9241int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
9242uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
9243int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
9244uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
9245long __ovld __cnfn clamp(long x, long minval, long maxval);
9246ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
9247long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
9248ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
9249long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
9250ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
9251long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
9252ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
9253long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
9254ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
9255long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
9256ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009257char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
9258uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
9259char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
9260uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
9261char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
9262uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
9263char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
9264uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
9265char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
9266uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009267short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
9268ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
9269short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
9270ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
9271short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
9272ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
9273short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
9274ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
9275short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
9276ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009277int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
9278uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
9279int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
9280uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
9281int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
9282uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
9283int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
9284uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
9285int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
9286uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009287long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
9288ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
9289long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
9290ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
9291long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
9292ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
9293long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
9294ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
9295long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
9296ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
9297
9298/**
9299 * Returns the number of leading 0-bits in x, starting
9300 * at the most significant bit position.
9301 */
9302char __ovld __cnfn clz(char x);
9303uchar __ovld __cnfn clz(uchar x);
9304char2 __ovld __cnfn clz(char2 x);
9305uchar2 __ovld __cnfn clz(uchar2 x);
9306char3 __ovld __cnfn clz(char3 x);
9307uchar3 __ovld __cnfn clz(uchar3 x);
9308char4 __ovld __cnfn clz(char4 x);
9309uchar4 __ovld __cnfn clz(uchar4 x);
9310char8 __ovld __cnfn clz(char8 x);
9311uchar8 __ovld __cnfn clz(uchar8 x);
9312char16 __ovld __cnfn clz(char16 x);
9313uchar16 __ovld __cnfn clz(uchar16 x);
9314short __ovld __cnfn clz(short x);
9315ushort __ovld __cnfn clz(ushort x);
9316short2 __ovld __cnfn clz(short2 x);
9317ushort2 __ovld __cnfn clz(ushort2 x);
9318short3 __ovld __cnfn clz(short3 x);
9319ushort3 __ovld __cnfn clz(ushort3 x);
9320short4 __ovld __cnfn clz(short4 x);
9321ushort4 __ovld __cnfn clz(ushort4 x);
9322short8 __ovld __cnfn clz(short8 x);
9323ushort8 __ovld __cnfn clz(ushort8 x);
9324short16 __ovld __cnfn clz(short16 x);
9325ushort16 __ovld __cnfn clz(ushort16 x);
9326int __ovld __cnfn clz(int x);
9327uint __ovld __cnfn clz(uint x);
9328int2 __ovld __cnfn clz(int2 x);
9329uint2 __ovld __cnfn clz(uint2 x);
9330int3 __ovld __cnfn clz(int3 x);
9331uint3 __ovld __cnfn clz(uint3 x);
9332int4 __ovld __cnfn clz(int4 x);
9333uint4 __ovld __cnfn clz(uint4 x);
9334int8 __ovld __cnfn clz(int8 x);
9335uint8 __ovld __cnfn clz(uint8 x);
9336int16 __ovld __cnfn clz(int16 x);
9337uint16 __ovld __cnfn clz(uint16 x);
9338long __ovld __cnfn clz(long x);
9339ulong __ovld __cnfn clz(ulong x);
9340long2 __ovld __cnfn clz(long2 x);
9341ulong2 __ovld __cnfn clz(ulong2 x);
9342long3 __ovld __cnfn clz(long3 x);
9343ulong3 __ovld __cnfn clz(ulong3 x);
9344long4 __ovld __cnfn clz(long4 x);
9345ulong4 __ovld __cnfn clz(ulong4 x);
9346long8 __ovld __cnfn clz(long8 x);
9347ulong8 __ovld __cnfn clz(ulong8 x);
9348long16 __ovld __cnfn clz(long16 x);
9349ulong16 __ovld __cnfn clz(ulong16 x);
9350
9351/**
9352 * Returns the count of trailing 0-bits in x. If x is 0,
9353 * returns the size in bits of the type of x or
9354 * component type of x, if x is a vector.
9355 */
Logan Chienbedbf4f2020-01-06 19:35:19 -08009356#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08009357char __ovld __cnfn ctz(char x);
9358uchar __ovld __cnfn ctz(uchar x);
9359char2 __ovld __cnfn ctz(char2 x);
9360uchar2 __ovld __cnfn ctz(uchar2 x);
9361char3 __ovld __cnfn ctz(char3 x);
9362uchar3 __ovld __cnfn ctz(uchar3 x);
9363char4 __ovld __cnfn ctz(char4 x);
9364uchar4 __ovld __cnfn ctz(uchar4 x);
9365char8 __ovld __cnfn ctz(char8 x);
9366uchar8 __ovld __cnfn ctz(uchar8 x);
9367char16 __ovld __cnfn ctz(char16 x);
9368uchar16 __ovld __cnfn ctz(uchar16 x);
9369short __ovld __cnfn ctz(short x);
9370ushort __ovld __cnfn ctz(ushort x);
9371short2 __ovld __cnfn ctz(short2 x);
9372ushort2 __ovld __cnfn ctz(ushort2 x);
9373short3 __ovld __cnfn ctz(short3 x);
9374ushort3 __ovld __cnfn ctz(ushort3 x);
9375short4 __ovld __cnfn ctz(short4 x);
9376ushort4 __ovld __cnfn ctz(ushort4 x);
9377short8 __ovld __cnfn ctz(short8 x);
9378ushort8 __ovld __cnfn ctz(ushort8 x);
9379short16 __ovld __cnfn ctz(short16 x);
9380ushort16 __ovld __cnfn ctz(ushort16 x);
9381int __ovld __cnfn ctz(int x);
9382uint __ovld __cnfn ctz(uint x);
9383int2 __ovld __cnfn ctz(int2 x);
9384uint2 __ovld __cnfn ctz(uint2 x);
9385int3 __ovld __cnfn ctz(int3 x);
9386uint3 __ovld __cnfn ctz(uint3 x);
9387int4 __ovld __cnfn ctz(int4 x);
9388uint4 __ovld __cnfn ctz(uint4 x);
9389int8 __ovld __cnfn ctz(int8 x);
9390uint8 __ovld __cnfn ctz(uint8 x);
9391int16 __ovld __cnfn ctz(int16 x);
9392uint16 __ovld __cnfn ctz(uint16 x);
9393long __ovld __cnfn ctz(long x);
9394ulong __ovld __cnfn ctz(ulong x);
9395long2 __ovld __cnfn ctz(long2 x);
9396ulong2 __ovld __cnfn ctz(ulong2 x);
9397long3 __ovld __cnfn ctz(long3 x);
9398ulong3 __ovld __cnfn ctz(ulong3 x);
9399long4 __ovld __cnfn ctz(long4 x);
9400ulong4 __ovld __cnfn ctz(ulong4 x);
9401long8 __ovld __cnfn ctz(long8 x);
9402ulong8 __ovld __cnfn ctz(ulong8 x);
9403long16 __ovld __cnfn ctz(long16 x);
9404ulong16 __ovld __cnfn ctz(ulong16 x);
Logan Chienbedbf4f2020-01-06 19:35:19 -08009405#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +08009406
9407/**
9408 * Returns mul_hi(a, b) + c.
9409 */
9410char __ovld __cnfn mad_hi(char a, char b, char c);
9411uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
9412char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
9413uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
9414char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
9415uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
9416char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
9417uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
9418char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
9419uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
9420char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
9421uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
9422short __ovld __cnfn mad_hi(short a, short b, short c);
9423ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
9424short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
9425ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
9426short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
9427ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
9428short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
9429ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
9430short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
9431ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
9432short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
9433ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
9434int __ovld __cnfn mad_hi(int a, int b, int c);
9435uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
9436int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
9437uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
9438int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
9439uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
9440int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
9441uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
9442int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
9443uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
9444int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
9445uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
9446long __ovld __cnfn mad_hi(long a, long b, long c);
9447ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
9448long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
9449ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
9450long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
9451ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
9452long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
9453ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
9454long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
9455ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
9456long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
9457ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
9458
9459/**
9460 * Returns a * b + c and saturates the result.
9461 */
9462char __ovld __cnfn mad_sat(char a, char b, char c);
9463uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
9464char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
9465uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
9466char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
9467uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
9468char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
9469uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
9470char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
9471uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
9472char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
9473uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
9474short __ovld __cnfn mad_sat(short a, short b, short c);
9475ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
9476short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
9477ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
9478short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
9479ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
9480short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
9481ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
9482short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
9483ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
9484short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
9485ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
9486int __ovld __cnfn mad_sat(int a, int b, int c);
9487uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
9488int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
9489uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
9490int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
9491uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
9492int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
9493uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
9494int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
9495uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
9496int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
9497uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
9498long __ovld __cnfn mad_sat(long a, long b, long c);
9499ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
9500long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
9501ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
9502long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
9503ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
9504long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
9505ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
9506long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
9507ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
9508long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
9509ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
9510
9511/**
9512 * Returns y if x < y, otherwise it returns x.
9513 */
9514char __ovld __cnfn max(char x, char y);
9515uchar __ovld __cnfn max(uchar x, uchar y);
9516char2 __ovld __cnfn max(char2 x, char2 y);
9517uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
9518char3 __ovld __cnfn max(char3 x, char3 y);
9519uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
9520char4 __ovld __cnfn max(char4 x, char4 y);
9521uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
9522char8 __ovld __cnfn max(char8 x, char8 y);
9523uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
9524char16 __ovld __cnfn max(char16 x, char16 y);
9525uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
9526short __ovld __cnfn max(short x, short y);
9527ushort __ovld __cnfn max(ushort x, ushort y);
9528short2 __ovld __cnfn max(short2 x, short2 y);
9529ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
9530short3 __ovld __cnfn max(short3 x, short3 y);
9531ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
9532short4 __ovld __cnfn max(short4 x, short4 y);
9533ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
9534short8 __ovld __cnfn max(short8 x, short8 y);
9535ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
9536short16 __ovld __cnfn max(short16 x, short16 y);
9537ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
9538int __ovld __cnfn max(int x, int y);
9539uint __ovld __cnfn max(uint x, uint y);
9540int2 __ovld __cnfn max(int2 x, int2 y);
9541uint2 __ovld __cnfn max(uint2 x, uint2 y);
9542int3 __ovld __cnfn max(int3 x, int3 y);
9543uint3 __ovld __cnfn max(uint3 x, uint3 y);
9544int4 __ovld __cnfn max(int4 x, int4 y);
9545uint4 __ovld __cnfn max(uint4 x, uint4 y);
9546int8 __ovld __cnfn max(int8 x, int8 y);
9547uint8 __ovld __cnfn max(uint8 x, uint8 y);
9548int16 __ovld __cnfn max(int16 x, int16 y);
9549uint16 __ovld __cnfn max(uint16 x, uint16 y);
9550long __ovld __cnfn max(long x, long y);
9551ulong __ovld __cnfn max(ulong x, ulong y);
9552long2 __ovld __cnfn max(long2 x, long2 y);
9553ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
9554long3 __ovld __cnfn max(long3 x, long3 y);
9555ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
9556long4 __ovld __cnfn max(long4 x, long4 y);
9557ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
9558long8 __ovld __cnfn max(long8 x, long8 y);
9559ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
9560long16 __ovld __cnfn max(long16 x, long16 y);
9561ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009562char2 __ovld __cnfn max(char2 x, char y);
9563uchar2 __ovld __cnfn max(uchar2 x, uchar y);
9564char3 __ovld __cnfn max(char3 x, char y);
9565uchar3 __ovld __cnfn max(uchar3 x, uchar y);
9566char4 __ovld __cnfn max(char4 x, char y);
9567uchar4 __ovld __cnfn max(uchar4 x, uchar y);
9568char8 __ovld __cnfn max(char8 x, char y);
9569uchar8 __ovld __cnfn max(uchar8 x, uchar y);
9570char16 __ovld __cnfn max(char16 x, char y);
9571uchar16 __ovld __cnfn max(uchar16 x, uchar y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009572short2 __ovld __cnfn max(short2 x, short y);
9573ushort2 __ovld __cnfn max(ushort2 x, ushort y);
9574short3 __ovld __cnfn max(short3 x, short y);
9575ushort3 __ovld __cnfn max(ushort3 x, ushort y);
9576short4 __ovld __cnfn max(short4 x, short y);
9577ushort4 __ovld __cnfn max(ushort4 x, ushort y);
9578short8 __ovld __cnfn max(short8 x, short y);
9579ushort8 __ovld __cnfn max(ushort8 x, ushort y);
9580short16 __ovld __cnfn max(short16 x, short y);
9581ushort16 __ovld __cnfn max(ushort16 x, ushort y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009582int2 __ovld __cnfn max(int2 x, int y);
9583uint2 __ovld __cnfn max(uint2 x, uint y);
9584int3 __ovld __cnfn max(int3 x, int y);
9585uint3 __ovld __cnfn max(uint3 x, uint y);
9586int4 __ovld __cnfn max(int4 x, int y);
9587uint4 __ovld __cnfn max(uint4 x, uint y);
9588int8 __ovld __cnfn max(int8 x, int y);
9589uint8 __ovld __cnfn max(uint8 x, uint y);
9590int16 __ovld __cnfn max(int16 x, int y);
9591uint16 __ovld __cnfn max(uint16 x, uint y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009592long2 __ovld __cnfn max(long2 x, long y);
9593ulong2 __ovld __cnfn max(ulong2 x, ulong y);
9594long3 __ovld __cnfn max(long3 x, long y);
9595ulong3 __ovld __cnfn max(ulong3 x, ulong y);
9596long4 __ovld __cnfn max(long4 x, long y);
9597ulong4 __ovld __cnfn max(ulong4 x, ulong y);
9598long8 __ovld __cnfn max(long8 x, long y);
9599ulong8 __ovld __cnfn max(ulong8 x, ulong y);
9600long16 __ovld __cnfn max(long16 x, long y);
9601ulong16 __ovld __cnfn max(ulong16 x, ulong y);
9602
9603/**
9604 * Returns y if y < x, otherwise it returns x.
9605 */
9606char __ovld __cnfn min(char x, char y);
9607uchar __ovld __cnfn min(uchar x, uchar y);
9608char2 __ovld __cnfn min(char2 x, char2 y);
9609uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
9610char3 __ovld __cnfn min(char3 x, char3 y);
9611uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
9612char4 __ovld __cnfn min(char4 x, char4 y);
9613uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
9614char8 __ovld __cnfn min(char8 x, char8 y);
9615uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
9616char16 __ovld __cnfn min(char16 x, char16 y);
9617uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
9618short __ovld __cnfn min(short x, short y);
9619ushort __ovld __cnfn min(ushort x, ushort y);
9620short2 __ovld __cnfn min(short2 x, short2 y);
9621ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
9622short3 __ovld __cnfn min(short3 x, short3 y);
9623ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
9624short4 __ovld __cnfn min(short4 x, short4 y);
9625ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
9626short8 __ovld __cnfn min(short8 x, short8 y);
9627ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
9628short16 __ovld __cnfn min(short16 x, short16 y);
9629ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
9630int __ovld __cnfn min(int x, int y);
9631uint __ovld __cnfn min(uint x, uint y);
9632int2 __ovld __cnfn min(int2 x, int2 y);
9633uint2 __ovld __cnfn min(uint2 x, uint2 y);
9634int3 __ovld __cnfn min(int3 x, int3 y);
9635uint3 __ovld __cnfn min(uint3 x, uint3 y);
9636int4 __ovld __cnfn min(int4 x, int4 y);
9637uint4 __ovld __cnfn min(uint4 x, uint4 y);
9638int8 __ovld __cnfn min(int8 x, int8 y);
9639uint8 __ovld __cnfn min(uint8 x, uint8 y);
9640int16 __ovld __cnfn min(int16 x, int16 y);
9641uint16 __ovld __cnfn min(uint16 x, uint16 y);
9642long __ovld __cnfn min(long x, long y);
9643ulong __ovld __cnfn min(ulong x, ulong y);
9644long2 __ovld __cnfn min(long2 x, long2 y);
9645ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
9646long3 __ovld __cnfn min(long3 x, long3 y);
9647ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
9648long4 __ovld __cnfn min(long4 x, long4 y);
9649ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
9650long8 __ovld __cnfn min(long8 x, long8 y);
9651ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
9652long16 __ovld __cnfn min(long16 x, long16 y);
9653ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009654char2 __ovld __cnfn min(char2 x, char y);
9655uchar2 __ovld __cnfn min(uchar2 x, uchar y);
9656char3 __ovld __cnfn min(char3 x, char y);
9657uchar3 __ovld __cnfn min(uchar3 x, uchar y);
9658char4 __ovld __cnfn min(char4 x, char y);
9659uchar4 __ovld __cnfn min(uchar4 x, uchar y);
9660char8 __ovld __cnfn min(char8 x, char y);
9661uchar8 __ovld __cnfn min(uchar8 x, uchar y);
9662char16 __ovld __cnfn min(char16 x, char y);
9663uchar16 __ovld __cnfn min(uchar16 x, uchar y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009664short2 __ovld __cnfn min(short2 x, short y);
9665ushort2 __ovld __cnfn min(ushort2 x, ushort y);
9666short3 __ovld __cnfn min(short3 x, short y);
9667ushort3 __ovld __cnfn min(ushort3 x, ushort y);
9668short4 __ovld __cnfn min(short4 x, short y);
9669ushort4 __ovld __cnfn min(ushort4 x, ushort y);
9670short8 __ovld __cnfn min(short8 x, short y);
9671ushort8 __ovld __cnfn min(ushort8 x, ushort y);
9672short16 __ovld __cnfn min(short16 x, short y);
9673ushort16 __ovld __cnfn min(ushort16 x, ushort y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009674int2 __ovld __cnfn min(int2 x, int y);
9675uint2 __ovld __cnfn min(uint2 x, uint y);
9676int3 __ovld __cnfn min(int3 x, int y);
9677uint3 __ovld __cnfn min(uint3 x, uint y);
9678int4 __ovld __cnfn min(int4 x, int y);
9679uint4 __ovld __cnfn min(uint4 x, uint y);
9680int8 __ovld __cnfn min(int8 x, int y);
9681uint8 __ovld __cnfn min(uint8 x, uint y);
9682int16 __ovld __cnfn min(int16 x, int y);
9683uint16 __ovld __cnfn min(uint16 x, uint y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009684long2 __ovld __cnfn min(long2 x, long y);
9685ulong2 __ovld __cnfn min(ulong2 x, ulong y);
9686long3 __ovld __cnfn min(long3 x, long y);
9687ulong3 __ovld __cnfn min(ulong3 x, ulong y);
9688long4 __ovld __cnfn min(long4 x, long y);
9689ulong4 __ovld __cnfn min(ulong4 x, ulong y);
9690long8 __ovld __cnfn min(long8 x, long y);
9691ulong8 __ovld __cnfn min(ulong8 x, ulong y);
9692long16 __ovld __cnfn min(long16 x, long y);
9693ulong16 __ovld __cnfn min(ulong16 x, ulong y);
9694
9695/**
9696 * Computes x * y and returns the high half of the
9697 * product of x and y.
9698 */
9699char __ovld __cnfn mul_hi(char x, char y);
9700uchar __ovld __cnfn mul_hi(uchar x, uchar y);
9701char2 __ovld __cnfn mul_hi(char2 x, char2 y);
9702uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
9703char3 __ovld __cnfn mul_hi(char3 x, char3 y);
9704uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
9705char4 __ovld __cnfn mul_hi(char4 x, char4 y);
9706uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
9707char8 __ovld __cnfn mul_hi(char8 x, char8 y);
9708uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
9709char16 __ovld __cnfn mul_hi(char16 x, char16 y);
9710uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
9711short __ovld __cnfn mul_hi(short x, short y);
9712ushort __ovld __cnfn mul_hi(ushort x, ushort y);
9713short2 __ovld __cnfn mul_hi(short2 x, short2 y);
9714ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
9715short3 __ovld __cnfn mul_hi(short3 x, short3 y);
9716ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
9717short4 __ovld __cnfn mul_hi(short4 x, short4 y);
9718ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
9719short8 __ovld __cnfn mul_hi(short8 x, short8 y);
9720ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
9721short16 __ovld __cnfn mul_hi(short16 x, short16 y);
9722ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
9723int __ovld __cnfn mul_hi(int x, int y);
9724uint __ovld __cnfn mul_hi(uint x, uint y);
9725int2 __ovld __cnfn mul_hi(int2 x, int2 y);
9726uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
9727int3 __ovld __cnfn mul_hi(int3 x, int3 y);
9728uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
9729int4 __ovld __cnfn mul_hi(int4 x, int4 y);
9730uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
9731int8 __ovld __cnfn mul_hi(int8 x, int8 y);
9732uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
9733int16 __ovld __cnfn mul_hi(int16 x, int16 y);
9734uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
9735long __ovld __cnfn mul_hi(long x, long y);
9736ulong __ovld __cnfn mul_hi(ulong x, ulong y);
9737long2 __ovld __cnfn mul_hi(long2 x, long2 y);
9738ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
9739long3 __ovld __cnfn mul_hi(long3 x, long3 y);
9740ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
9741long4 __ovld __cnfn mul_hi(long4 x, long4 y);
9742ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
9743long8 __ovld __cnfn mul_hi(long8 x, long8 y);
9744ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
9745long16 __ovld __cnfn mul_hi(long16 x, long16 y);
9746ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
9747
9748/**
9749 * For each element in v, the bits are shifted left by
9750 * the number of bits given by the corresponding
9751 * element in i (subject to usual shift modulo rules
9752 * described in section 6.3). Bits shifted off the left
9753 * side of the element are shifted back in from the
9754 * right.
9755 */
9756char __ovld __cnfn rotate(char v, char i);
9757uchar __ovld __cnfn rotate(uchar v, uchar i);
9758char2 __ovld __cnfn rotate(char2 v, char2 i);
9759uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
9760char3 __ovld __cnfn rotate(char3 v, char3 i);
9761uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
9762char4 __ovld __cnfn rotate(char4 v, char4 i);
9763uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
9764char8 __ovld __cnfn rotate(char8 v, char8 i);
9765uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
9766char16 __ovld __cnfn rotate(char16 v, char16 i);
9767uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
9768short __ovld __cnfn rotate(short v, short i);
9769ushort __ovld __cnfn rotate(ushort v, ushort i);
9770short2 __ovld __cnfn rotate(short2 v, short2 i);
9771ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
9772short3 __ovld __cnfn rotate(short3 v, short3 i);
9773ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
9774short4 __ovld __cnfn rotate(short4 v, short4 i);
9775ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
9776short8 __ovld __cnfn rotate(short8 v, short8 i);
9777ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
9778short16 __ovld __cnfn rotate(short16 v, short16 i);
9779ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
9780int __ovld __cnfn rotate(int v, int i);
9781uint __ovld __cnfn rotate(uint v, uint i);
9782int2 __ovld __cnfn rotate(int2 v, int2 i);
9783uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
9784int3 __ovld __cnfn rotate(int3 v, int3 i);
9785uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
9786int4 __ovld __cnfn rotate(int4 v, int4 i);
9787uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
9788int8 __ovld __cnfn rotate(int8 v, int8 i);
9789uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
9790int16 __ovld __cnfn rotate(int16 v, int16 i);
9791uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
9792long __ovld __cnfn rotate(long v, long i);
9793ulong __ovld __cnfn rotate(ulong v, ulong i);
9794long2 __ovld __cnfn rotate(long2 v, long2 i);
9795ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
9796long3 __ovld __cnfn rotate(long3 v, long3 i);
9797ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
9798long4 __ovld __cnfn rotate(long4 v, long4 i);
9799ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
9800long8 __ovld __cnfn rotate(long8 v, long8 i);
9801ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
9802long16 __ovld __cnfn rotate(long16 v, long16 i);
9803ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
9804
9805/**
9806 * Returns x - y and saturates the result.
9807 */
9808char __ovld __cnfn sub_sat(char x, char y);
9809uchar __ovld __cnfn sub_sat(uchar x, uchar y);
9810char2 __ovld __cnfn sub_sat(char2 x, char2 y);
9811uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
9812char3 __ovld __cnfn sub_sat(char3 x, char3 y);
9813uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
9814char4 __ovld __cnfn sub_sat(char4 x, char4 y);
9815uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
9816char8 __ovld __cnfn sub_sat(char8 x, char8 y);
9817uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
9818char16 __ovld __cnfn sub_sat(char16 x, char16 y);
9819uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
9820short __ovld __cnfn sub_sat(short x, short y);
9821ushort __ovld __cnfn sub_sat(ushort x, ushort y);
9822short2 __ovld __cnfn sub_sat(short2 x, short2 y);
9823ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
9824short3 __ovld __cnfn sub_sat(short3 x, short3 y);
9825ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
9826short4 __ovld __cnfn sub_sat(short4 x, short4 y);
9827ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
9828short8 __ovld __cnfn sub_sat(short8 x, short8 y);
9829ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
9830short16 __ovld __cnfn sub_sat(short16 x, short16 y);
9831ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
9832int __ovld __cnfn sub_sat(int x, int y);
9833uint __ovld __cnfn sub_sat(uint x, uint y);
9834int2 __ovld __cnfn sub_sat(int2 x, int2 y);
9835uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
9836int3 __ovld __cnfn sub_sat(int3 x, int3 y);
9837uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
9838int4 __ovld __cnfn sub_sat(int4 x, int4 y);
9839uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
9840int8 __ovld __cnfn sub_sat(int8 x, int8 y);
9841uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
9842int16 __ovld __cnfn sub_sat(int16 x, int16 y);
9843uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
9844long __ovld __cnfn sub_sat(long x, long y);
9845ulong __ovld __cnfn sub_sat(ulong x, ulong y);
9846long2 __ovld __cnfn sub_sat(long2 x, long2 y);
9847ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
9848long3 __ovld __cnfn sub_sat(long3 x, long3 y);
9849ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
9850long4 __ovld __cnfn sub_sat(long4 x, long4 y);
9851ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
9852long8 __ovld __cnfn sub_sat(long8 x, long8 y);
9853ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
9854long16 __ovld __cnfn sub_sat(long16 x, long16 y);
9855ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
9856
9857/**
9858 * result[i] = ((short)hi[i] << 8) | lo[i]
9859 * result[i] = ((ushort)hi[i] << 8) | lo[i]
9860 */
9861short __ovld __cnfn upsample(char hi, uchar lo);
9862ushort __ovld __cnfn upsample(uchar hi, uchar lo);
9863short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
9864short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
9865short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
9866short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
9867short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
9868ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
9869ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
9870ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
9871ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
9872ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
9873
9874/**
9875 * result[i] = ((int)hi[i] << 16) | lo[i]
9876 * result[i] = ((uint)hi[i] << 16) | lo[i]
9877 */
9878int __ovld __cnfn upsample(short hi, ushort lo);
9879uint __ovld __cnfn upsample(ushort hi, ushort lo);
9880int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
9881int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
9882int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
9883int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
9884int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
9885uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
9886uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
9887uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
9888uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
9889uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
9890/**
9891 * result[i] = ((long)hi[i] << 32) | lo[i]
9892 * result[i] = ((ulong)hi[i] << 32) | lo[i]
9893 */
9894long __ovld __cnfn upsample(int hi, uint lo);
9895ulong __ovld __cnfn upsample(uint hi, uint lo);
9896long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
9897long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
9898long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
9899long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
9900long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
9901ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
9902ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
9903ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
9904ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
9905ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
9906
9907/*
9908 * popcount(x): returns the number of set bit in x
9909 */
Pirama Arumuga Nainar7e1f8392021-08-16 17:30:48 -07009910#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +08009911char __ovld __cnfn popcount(char x);
9912uchar __ovld __cnfn popcount(uchar x);
9913char2 __ovld __cnfn popcount(char2 x);
9914uchar2 __ovld __cnfn popcount(uchar2 x);
9915char3 __ovld __cnfn popcount(char3 x);
9916uchar3 __ovld __cnfn popcount(uchar3 x);
9917char4 __ovld __cnfn popcount(char4 x);
9918uchar4 __ovld __cnfn popcount(uchar4 x);
9919char8 __ovld __cnfn popcount(char8 x);
9920uchar8 __ovld __cnfn popcount(uchar8 x);
9921char16 __ovld __cnfn popcount(char16 x);
9922uchar16 __ovld __cnfn popcount(uchar16 x);
9923short __ovld __cnfn popcount(short x);
9924ushort __ovld __cnfn popcount(ushort x);
9925short2 __ovld __cnfn popcount(short2 x);
9926ushort2 __ovld __cnfn popcount(ushort2 x);
9927short3 __ovld __cnfn popcount(short3 x);
9928ushort3 __ovld __cnfn popcount(ushort3 x);
9929short4 __ovld __cnfn popcount(short4 x);
9930ushort4 __ovld __cnfn popcount(ushort4 x);
9931short8 __ovld __cnfn popcount(short8 x);
9932ushort8 __ovld __cnfn popcount(ushort8 x);
9933short16 __ovld __cnfn popcount(short16 x);
9934ushort16 __ovld __cnfn popcount(ushort16 x);
9935int __ovld __cnfn popcount(int x);
9936uint __ovld __cnfn popcount(uint x);
9937int2 __ovld __cnfn popcount(int2 x);
9938uint2 __ovld __cnfn popcount(uint2 x);
9939int3 __ovld __cnfn popcount(int3 x);
9940uint3 __ovld __cnfn popcount(uint3 x);
9941int4 __ovld __cnfn popcount(int4 x);
9942uint4 __ovld __cnfn popcount(uint4 x);
9943int8 __ovld __cnfn popcount(int8 x);
9944uint8 __ovld __cnfn popcount(uint8 x);
9945int16 __ovld __cnfn popcount(int16 x);
9946uint16 __ovld __cnfn popcount(uint16 x);
9947long __ovld __cnfn popcount(long x);
9948ulong __ovld __cnfn popcount(ulong x);
9949long2 __ovld __cnfn popcount(long2 x);
9950ulong2 __ovld __cnfn popcount(ulong2 x);
9951long3 __ovld __cnfn popcount(long3 x);
9952ulong3 __ovld __cnfn popcount(ulong3 x);
9953long4 __ovld __cnfn popcount(long4 x);
9954ulong4 __ovld __cnfn popcount(ulong4 x);
9955long8 __ovld __cnfn popcount(long8 x);
9956ulong8 __ovld __cnfn popcount(ulong8 x);
9957long16 __ovld __cnfn popcount(long16 x);
9958ulong16 __ovld __cnfn popcount(ulong16 x);
Pirama Arumuga Nainar7e1f8392021-08-16 17:30:48 -07009959#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +08009960
9961/**
9962 * Multiply two 24-bit integer values x and y and add
9963 * the 32-bit integer result to the 32-bit integer z.
9964 * Refer to definition of mul24 to see how the 24-bit
9965 * integer multiplication is performed.
9966 */
9967int __ovld __cnfn mad24(int x, int y, int z);
9968uint __ovld __cnfn mad24(uint x, uint y, uint z);
9969int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
9970uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
9971int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
9972uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
9973int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
9974uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
9975int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
9976uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
9977int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
9978uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
9979
9980/**
9981 * Multiply two 24-bit integer values x and y. x and y
9982 * are 32-bit integers but only the low 24-bits are used
9983 * to perform the multiplication. mul24 should only
9984 * be used when values in x and y are in the range [-
9985 * 2^23, 2^23-1] if x and y are signed integers and in the
9986 * range [0, 2^24-1] if x and y are unsigned integers. If
9987 * x and y are not in this range, the multiplication
9988 * result is implementation-defined.
9989 */
9990int __ovld __cnfn mul24(int x, int y);
9991uint __ovld __cnfn mul24(uint x, uint y);
9992int2 __ovld __cnfn mul24(int2 x, int2 y);
9993uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
9994int3 __ovld __cnfn mul24(int3 x, int3 y);
9995uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
9996int4 __ovld __cnfn mul24(int4 x, int4 y);
9997uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
9998int8 __ovld __cnfn mul24(int8 x, int8 y);
9999uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
10000int16 __ovld __cnfn mul24(int16 x, int16 y);
10001uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
10002
10003// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
10004
10005/**
10006 * Returns fmin(fmax(x, minval), maxval).
10007 * Results are undefined if minval > maxval.
10008 */
10009float __ovld __cnfn clamp(float x, float minval, float maxval);
10010float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
10011float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
10012float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
10013float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
10014float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
10015float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
10016float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
10017float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
10018float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
10019float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
10020#ifdef cl_khr_fp64
10021double __ovld __cnfn clamp(double x, double minval, double maxval);
10022double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
10023double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
10024double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
10025double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
10026double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
10027double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
10028double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
10029double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
10030double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
10031double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
10032#endif //cl_khr_fp64
10033#ifdef cl_khr_fp16
10034half __ovld __cnfn clamp(half x, half minval, half maxval);
10035half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
10036half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
10037half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
10038half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
10039half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
10040half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
10041half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
10042half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
10043half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
10044half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
10045#endif //cl_khr_fp16
10046
10047/**
10048 * Converts radians to degrees, i.e. (180 / PI) *
10049 * radians.
10050 */
10051float __ovld __cnfn degrees(float radians);
10052float2 __ovld __cnfn degrees(float2 radians);
10053float3 __ovld __cnfn degrees(float3 radians);
10054float4 __ovld __cnfn degrees(float4 radians);
10055float8 __ovld __cnfn degrees(float8 radians);
10056float16 __ovld __cnfn degrees(float16 radians);
10057#ifdef cl_khr_fp64
10058double __ovld __cnfn degrees(double radians);
10059double2 __ovld __cnfn degrees(double2 radians);
10060double3 __ovld __cnfn degrees(double3 radians);
10061double4 __ovld __cnfn degrees(double4 radians);
10062double8 __ovld __cnfn degrees(double8 radians);
10063double16 __ovld __cnfn degrees(double16 radians);
10064#endif //cl_khr_fp64
10065#ifdef cl_khr_fp16
10066half __ovld __cnfn degrees(half radians);
10067half2 __ovld __cnfn degrees(half2 radians);
10068half3 __ovld __cnfn degrees(half3 radians);
10069half4 __ovld __cnfn degrees(half4 radians);
10070half8 __ovld __cnfn degrees(half8 radians);
10071half16 __ovld __cnfn degrees(half16 radians);
10072#endif //cl_khr_fp16
10073
10074/**
10075 * Returns y if x < y, otherwise it returns x. If x and y
10076 * are infinite or NaN, the return values are undefined.
10077 */
10078float __ovld __cnfn max(float x, float y);
10079float2 __ovld __cnfn max(float2 x, float2 y);
10080float3 __ovld __cnfn max(float3 x, float3 y);
10081float4 __ovld __cnfn max(float4 x, float4 y);
10082float8 __ovld __cnfn max(float8 x, float8 y);
10083float16 __ovld __cnfn max(float16 x, float16 y);
10084float2 __ovld __cnfn max(float2 x, float y);
10085float3 __ovld __cnfn max(float3 x, float y);
10086float4 __ovld __cnfn max(float4 x, float y);
10087float8 __ovld __cnfn max(float8 x, float y);
10088float16 __ovld __cnfn max(float16 x, float y);
10089#ifdef cl_khr_fp64
10090double __ovld __cnfn max(double x, double y);
10091double2 __ovld __cnfn max(double2 x, double2 y);
10092double3 __ovld __cnfn max(double3 x, double3 y);
10093double4 __ovld __cnfn max(double4 x, double4 y);
10094double8 __ovld __cnfn max(double8 x, double8 y);
10095double16 __ovld __cnfn max(double16 x, double16 y);
10096double2 __ovld __cnfn max(double2 x, double y);
10097double3 __ovld __cnfn max(double3 x, double y);
10098double4 __ovld __cnfn max(double4 x, double y);
10099double8 __ovld __cnfn max(double8 x, double y);
10100double16 __ovld __cnfn max(double16 x, double y);
10101#endif //cl_khr_fp64
10102#ifdef cl_khr_fp16
10103half __ovld __cnfn max(half x, half y);
10104half2 __ovld __cnfn max(half2 x, half2 y);
10105half3 __ovld __cnfn max(half3 x, half3 y);
10106half4 __ovld __cnfn max(half4 x, half4 y);
10107half8 __ovld __cnfn max(half8 x, half8 y);
10108half16 __ovld __cnfn max(half16 x, half16 y);
10109half2 __ovld __cnfn max(half2 x, half y);
10110half3 __ovld __cnfn max(half3 x, half y);
10111half4 __ovld __cnfn max(half4 x, half y);
10112half8 __ovld __cnfn max(half8 x, half y);
10113half16 __ovld __cnfn max(half16 x, half y);
10114#endif //cl_khr_fp16
10115
10116/**
10117 * Returns y if y < x, otherwise it returns x. If x and y
10118 * are infinite or NaN, the return values are undefined.
10119 */
10120float __ovld __cnfn min(float x, float y);
10121float2 __ovld __cnfn min(float2 x, float2 y);
10122float3 __ovld __cnfn min(float3 x, float3 y);
10123float4 __ovld __cnfn min(float4 x, float4 y);
10124float8 __ovld __cnfn min(float8 x, float8 y);
10125float16 __ovld __cnfn min(float16 x, float16 y);
10126float2 __ovld __cnfn min(float2 x, float y);
10127float3 __ovld __cnfn min(float3 x, float y);
10128float4 __ovld __cnfn min(float4 x, float y);
10129float8 __ovld __cnfn min(float8 x, float y);
10130float16 __ovld __cnfn min(float16 x, float y);
10131#ifdef cl_khr_fp64
10132double __ovld __cnfn min(double x, double y);
10133double2 __ovld __cnfn min(double2 x, double2 y);
10134double3 __ovld __cnfn min(double3 x, double3 y);
10135double4 __ovld __cnfn min(double4 x, double4 y);
10136double8 __ovld __cnfn min(double8 x, double8 y);
10137double16 __ovld __cnfn min(double16 x, double16 y);
10138double2 __ovld __cnfn min(double2 x, double y);
10139double3 __ovld __cnfn min(double3 x, double y);
10140double4 __ovld __cnfn min(double4 x, double y);
10141double8 __ovld __cnfn min(double8 x, double y);
10142double16 __ovld __cnfn min(double16 x, double y);
10143#endif //cl_khr_fp64
10144#ifdef cl_khr_fp16
10145half __ovld __cnfn min(half x, half y);
10146half2 __ovld __cnfn min(half2 x, half2 y);
10147half3 __ovld __cnfn min(half3 x, half3 y);
10148half4 __ovld __cnfn min(half4 x, half4 y);
10149half8 __ovld __cnfn min(half8 x, half8 y);
10150half16 __ovld __cnfn min(half16 x, half16 y);
10151half2 __ovld __cnfn min(half2 x, half y);
10152half3 __ovld __cnfn min(half3 x, half y);
10153half4 __ovld __cnfn min(half4 x, half y);
10154half8 __ovld __cnfn min(half8 x, half y);
10155half16 __ovld __cnfn min(half16 x, half y);
10156#endif //cl_khr_fp16
10157
10158/**
10159 * Returns the linear blend of x & y implemented as:
10160 * x + (y - x) * a
10161 * a must be a value in the range 0.0 ... 1.0. If a is not
10162 * in the range 0.0 ... 1.0, the return values are
10163 * undefined.
10164 */
10165float __ovld __cnfn mix(float x, float y, float a);
10166float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
10167float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
10168float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
10169float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
10170float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
10171float2 __ovld __cnfn mix(float2 x, float2 y, float a);
10172float3 __ovld __cnfn mix(float3 x, float3 y, float a);
10173float4 __ovld __cnfn mix(float4 x, float4 y, float a);
10174float8 __ovld __cnfn mix(float8 x, float8 y, float a);
10175float16 __ovld __cnfn mix(float16 x, float16 y, float a);
10176#ifdef cl_khr_fp64
10177double __ovld __cnfn mix(double x, double y, double a);
10178double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
10179double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
10180double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
10181double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
10182double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
10183double2 __ovld __cnfn mix(double2 x, double2 y, double a);
10184double3 __ovld __cnfn mix(double3 x, double3 y, double a);
10185double4 __ovld __cnfn mix(double4 x, double4 y, double a);
10186double8 __ovld __cnfn mix(double8 x, double8 y, double a);
10187double16 __ovld __cnfn mix(double16 x, double16 y, double a);
10188#endif //cl_khr_fp64
10189#ifdef cl_khr_fp16
10190half __ovld __cnfn mix(half x, half y, half a);
10191half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
10192half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
10193half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
10194half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
10195half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
10196half2 __ovld __cnfn mix(half2 x, half2 y, half a);
10197half3 __ovld __cnfn mix(half3 x, half3 y, half a);
10198half4 __ovld __cnfn mix(half4 x, half4 y, half a);
10199half8 __ovld __cnfn mix(half8 x, half8 y, half a);
10200half16 __ovld __cnfn mix(half16 x, half16 y, half a);
10201#endif //cl_khr_fp16
10202
10203/**
10204 * Converts degrees to radians, i.e. (PI / 180) *
10205 * degrees.
10206 */
10207float __ovld __cnfn radians(float degrees);
10208float2 __ovld __cnfn radians(float2 degrees);
10209float3 __ovld __cnfn radians(float3 degrees);
10210float4 __ovld __cnfn radians(float4 degrees);
10211float8 __ovld __cnfn radians(float8 degrees);
10212float16 __ovld __cnfn radians(float16 degrees);
10213#ifdef cl_khr_fp64
10214double __ovld __cnfn radians(double degrees);
10215double2 __ovld __cnfn radians(double2 degrees);
10216double3 __ovld __cnfn radians(double3 degrees);
10217double4 __ovld __cnfn radians(double4 degrees);
10218double8 __ovld __cnfn radians(double8 degrees);
10219double16 __ovld __cnfn radians(double16 degrees);
10220#endif //cl_khr_fp64
10221#ifdef cl_khr_fp16
10222half __ovld __cnfn radians(half degrees);
10223half2 __ovld __cnfn radians(half2 degrees);
10224half3 __ovld __cnfn radians(half3 degrees);
10225half4 __ovld __cnfn radians(half4 degrees);
10226half8 __ovld __cnfn radians(half8 degrees);
10227half16 __ovld __cnfn radians(half16 degrees);
10228#endif //cl_khr_fp16
10229
10230/**
10231 * Returns 0.0 if x < edge, otherwise it returns 1.0.
10232 */
10233float __ovld __cnfn step(float edge, float x);
10234float2 __ovld __cnfn step(float2 edge, float2 x);
10235float3 __ovld __cnfn step(float3 edge, float3 x);
10236float4 __ovld __cnfn step(float4 edge, float4 x);
10237float8 __ovld __cnfn step(float8 edge, float8 x);
10238float16 __ovld __cnfn step(float16 edge, float16 x);
10239float2 __ovld __cnfn step(float edge, float2 x);
10240float3 __ovld __cnfn step(float edge, float3 x);
10241float4 __ovld __cnfn step(float edge, float4 x);
10242float8 __ovld __cnfn step(float edge, float8 x);
10243float16 __ovld __cnfn step(float edge, float16 x);
10244#ifdef cl_khr_fp64
10245double __ovld __cnfn step(double edge, double x);
10246double2 __ovld __cnfn step(double2 edge, double2 x);
10247double3 __ovld __cnfn step(double3 edge, double3 x);
10248double4 __ovld __cnfn step(double4 edge, double4 x);
10249double8 __ovld __cnfn step(double8 edge, double8 x);
10250double16 __ovld __cnfn step(double16 edge, double16 x);
10251double2 __ovld __cnfn step(double edge, double2 x);
10252double3 __ovld __cnfn step(double edge, double3 x);
10253double4 __ovld __cnfn step(double edge, double4 x);
10254double8 __ovld __cnfn step(double edge, double8 x);
10255double16 __ovld __cnfn step(double edge, double16 x);
10256#endif //cl_khr_fp64
10257#ifdef cl_khr_fp16
10258half __ovld __cnfn step(half edge, half x);
10259half2 __ovld __cnfn step(half2 edge, half2 x);
10260half3 __ovld __cnfn step(half3 edge, half3 x);
10261half4 __ovld __cnfn step(half4 edge, half4 x);
10262half8 __ovld __cnfn step(half8 edge, half8 x);
10263half16 __ovld __cnfn step(half16 edge, half16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +080010264half2 __ovld __cnfn step(half edge, half2 x);
10265half3 __ovld __cnfn step(half edge, half3 x);
10266half4 __ovld __cnfn step(half edge, half4 x);
10267half8 __ovld __cnfn step(half edge, half8 x);
10268half16 __ovld __cnfn step(half edge, half16 x);
10269#endif //cl_khr_fp16
10270
10271/**
10272 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
10273 * performs smooth Hermite interpolation between 0
10274 * and 1when edge0 < x < edge1. This is useful in
10275 * cases where you would want a threshold function
10276 * with a smooth transition.
10277 * This is equivalent to:
10278 * gentype t;
10279 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
10280 * return t * t * (3 - 2 * t);
10281 * Results are undefined if edge0 >= edge1 or if x,
10282 * edge0 or edge1 is a NaN.
10283 */
10284float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
10285float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
10286float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
10287float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
10288float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
10289float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
10290float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
10291float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
10292float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
10293float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
10294float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
10295#ifdef cl_khr_fp64
10296double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
10297double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
10298double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
10299double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
10300double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
10301double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
10302double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
10303double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
10304double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
10305double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
10306double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
10307#endif //cl_khr_fp64
10308#ifdef cl_khr_fp16
10309half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
10310half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
10311half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
10312half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
10313half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
10314half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +080010315half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
10316half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
10317half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
10318half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
10319half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
10320#endif //cl_khr_fp16
10321
10322/**
10323 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
10324 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
10325 */
10326float __ovld __cnfn sign(float x);
10327float2 __ovld __cnfn sign(float2 x);
10328float3 __ovld __cnfn sign(float3 x);
10329float4 __ovld __cnfn sign(float4 x);
10330float8 __ovld __cnfn sign(float8 x);
10331float16 __ovld __cnfn sign(float16 x);
10332#ifdef cl_khr_fp64
10333double __ovld __cnfn sign(double x);
10334double2 __ovld __cnfn sign(double2 x);
10335double3 __ovld __cnfn sign(double3 x);
10336double4 __ovld __cnfn sign(double4 x);
10337double8 __ovld __cnfn sign(double8 x);
10338double16 __ovld __cnfn sign(double16 x);
10339#endif //cl_khr_fp64
10340#ifdef cl_khr_fp16
10341half __ovld __cnfn sign(half x);
10342half2 __ovld __cnfn sign(half2 x);
10343half3 __ovld __cnfn sign(half3 x);
10344half4 __ovld __cnfn sign(half4 x);
10345half8 __ovld __cnfn sign(half8 x);
10346half16 __ovld __cnfn sign(half16 x);
10347#endif //cl_khr_fp16
10348
10349// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
10350
10351/**
10352 * Returns the cross product of p0.xyz and p1.xyz. The
10353 * w component of float4 result returned will be 0.0.
10354 */
10355float4 __ovld __cnfn cross(float4 p0, float4 p1);
10356float3 __ovld __cnfn cross(float3 p0, float3 p1);
10357#ifdef cl_khr_fp64
10358double4 __ovld __cnfn cross(double4 p0, double4 p1);
10359double3 __ovld __cnfn cross(double3 p0, double3 p1);
10360#endif //cl_khr_fp64
10361#ifdef cl_khr_fp16
10362half4 __ovld __cnfn cross(half4 p0, half4 p1);
10363half3 __ovld __cnfn cross(half3 p0, half3 p1);
10364#endif //cl_khr_fp16
10365
10366/**
10367 * Compute dot product.
10368 */
10369float __ovld __cnfn dot(float p0, float p1);
10370float __ovld __cnfn dot(float2 p0, float2 p1);
10371float __ovld __cnfn dot(float3 p0, float3 p1);
10372float __ovld __cnfn dot(float4 p0, float4 p1);
10373#ifdef cl_khr_fp64
10374double __ovld __cnfn dot(double p0, double p1);
10375double __ovld __cnfn dot(double2 p0, double2 p1);
10376double __ovld __cnfn dot(double3 p0, double3 p1);
10377double __ovld __cnfn dot(double4 p0, double4 p1);
10378#endif //cl_khr_fp64
10379#ifdef cl_khr_fp16
10380half __ovld __cnfn dot(half p0, half p1);
10381half __ovld __cnfn dot(half2 p0, half2 p1);
10382half __ovld __cnfn dot(half3 p0, half3 p1);
10383half __ovld __cnfn dot(half4 p0, half4 p1);
10384#endif //cl_khr_fp16
10385
10386/**
10387 * Returns the distance between p0 and p1. This is
10388 * calculated as length(p0 - p1).
10389 */
10390float __ovld __cnfn distance(float p0, float p1);
10391float __ovld __cnfn distance(float2 p0, float2 p1);
10392float __ovld __cnfn distance(float3 p0, float3 p1);
10393float __ovld __cnfn distance(float4 p0, float4 p1);
10394#ifdef cl_khr_fp64
10395double __ovld __cnfn distance(double p0, double p1);
10396double __ovld __cnfn distance(double2 p0, double2 p1);
10397double __ovld __cnfn distance(double3 p0, double3 p1);
10398double __ovld __cnfn distance(double4 p0, double4 p1);
10399#endif //cl_khr_fp64
10400#ifdef cl_khr_fp16
10401half __ovld __cnfn distance(half p0, half p1);
10402half __ovld __cnfn distance(half2 p0, half2 p1);
10403half __ovld __cnfn distance(half3 p0, half3 p1);
10404half __ovld __cnfn distance(half4 p0, half4 p1);
10405#endif //cl_khr_fp16
10406
10407/**
10408 * Return the length of vector p, i.e.,
10409 * sqrt(p.x2 + p.y 2 + ...)
10410 */
10411float __ovld __cnfn length(float p);
10412float __ovld __cnfn length(float2 p);
10413float __ovld __cnfn length(float3 p);
10414float __ovld __cnfn length(float4 p);
10415#ifdef cl_khr_fp64
10416double __ovld __cnfn length(double p);
10417double __ovld __cnfn length(double2 p);
10418double __ovld __cnfn length(double3 p);
10419double __ovld __cnfn length(double4 p);
10420#endif //cl_khr_fp64
10421#ifdef cl_khr_fp16
10422half __ovld __cnfn length(half p);
10423half __ovld __cnfn length(half2 p);
10424half __ovld __cnfn length(half3 p);
10425half __ovld __cnfn length(half4 p);
10426#endif //cl_khr_fp16
10427
10428/**
10429 * Returns a vector in the same direction as p but with a
10430 * length of 1.
10431 */
10432float __ovld __cnfn normalize(float p);
10433float2 __ovld __cnfn normalize(float2 p);
10434float3 __ovld __cnfn normalize(float3 p);
10435float4 __ovld __cnfn normalize(float4 p);
10436#ifdef cl_khr_fp64
10437double __ovld __cnfn normalize(double p);
10438double2 __ovld __cnfn normalize(double2 p);
10439double3 __ovld __cnfn normalize(double3 p);
10440double4 __ovld __cnfn normalize(double4 p);
10441#endif //cl_khr_fp64
10442#ifdef cl_khr_fp16
10443half __ovld __cnfn normalize(half p);
10444half2 __ovld __cnfn normalize(half2 p);
10445half3 __ovld __cnfn normalize(half3 p);
10446half4 __ovld __cnfn normalize(half4 p);
10447#endif //cl_khr_fp16
10448
10449/**
10450 * Returns fast_length(p0 - p1).
10451 */
10452float __ovld __cnfn fast_distance(float p0, float p1);
10453float __ovld __cnfn fast_distance(float2 p0, float2 p1);
10454float __ovld __cnfn fast_distance(float3 p0, float3 p1);
10455float __ovld __cnfn fast_distance(float4 p0, float4 p1);
10456#ifdef cl_khr_fp16
10457half __ovld __cnfn fast_distance(half p0, half p1);
10458half __ovld __cnfn fast_distance(half2 p0, half2 p1);
10459half __ovld __cnfn fast_distance(half3 p0, half3 p1);
10460half __ovld __cnfn fast_distance(half4 p0, half4 p1);
10461#endif //cl_khr_fp16
10462
10463/**
10464 * Returns the length of vector p computed as:
10465 * half_sqrt(p.x2 + p.y2 + ...)
10466 */
10467float __ovld __cnfn fast_length(float p);
10468float __ovld __cnfn fast_length(float2 p);
10469float __ovld __cnfn fast_length(float3 p);
10470float __ovld __cnfn fast_length(float4 p);
10471#ifdef cl_khr_fp16
10472half __ovld __cnfn fast_length(half p);
10473half __ovld __cnfn fast_length(half2 p);
10474half __ovld __cnfn fast_length(half3 p);
10475half __ovld __cnfn fast_length(half4 p);
10476#endif //cl_khr_fp16
10477
10478/**
10479 * Returns a vector in the same direction as p but with a
10480 * length of 1. fast_normalize is computed as:
10481 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
10482 * The result shall be within 8192 ulps error from the
10483 * infinitely precise result of
10484 * if (all(p == 0.0f))
10485 * result = p;
10486 * else
10487 * result = p / sqrt (p.x^2 + p.y^2 + ...);
10488 * with the following exceptions:
10489 * 1) If the sum of squares is greater than FLT_MAX
10490 * then the value of the floating-point values in the
10491 * result vector are undefined.
10492 * 2) If the sum of squares is less than FLT_MIN then
10493 * the implementation may return back p.
10494 * 3) If the device is in "denorms are flushed to zero"
10495 * mode, individual operand elements with magnitude
10496 * less than sqrt(FLT_MIN) may be flushed to zero
10497 * before proceeding with the calculation.
10498 */
10499float __ovld __cnfn fast_normalize(float p);
10500float2 __ovld __cnfn fast_normalize(float2 p);
10501float3 __ovld __cnfn fast_normalize(float3 p);
10502float4 __ovld __cnfn fast_normalize(float4 p);
10503#ifdef cl_khr_fp16
10504half __ovld __cnfn fast_normalize(half p);
10505half2 __ovld __cnfn fast_normalize(half2 p);
10506half3 __ovld __cnfn fast_normalize(half3 p);
10507half4 __ovld __cnfn fast_normalize(half4 p);
10508#endif //cl_khr_fp16
10509
10510// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
10511
10512/**
10513 * intn isequal (floatn x, floatn y)
10514 * Returns the component-wise compare of x == y.
10515 */
10516int __ovld __cnfn isequal(float x, float y);
10517int2 __ovld __cnfn isequal(float2 x, float2 y);
10518int3 __ovld __cnfn isequal(float3 x, float3 y);
10519int4 __ovld __cnfn isequal(float4 x, float4 y);
10520int8 __ovld __cnfn isequal(float8 x, float8 y);
10521int16 __ovld __cnfn isequal(float16 x, float16 y);
10522#ifdef cl_khr_fp64
10523int __ovld __cnfn isequal(double x, double y);
10524long2 __ovld __cnfn isequal(double2 x, double2 y);
10525long3 __ovld __cnfn isequal(double3 x, double3 y);
10526long4 __ovld __cnfn isequal(double4 x, double4 y);
10527long8 __ovld __cnfn isequal(double8 x, double8 y);
10528long16 __ovld __cnfn isequal(double16 x, double16 y);
10529#endif //cl_khr_fp64
10530#ifdef cl_khr_fp16
10531int __ovld __cnfn isequal(half x, half y);
10532short2 __ovld __cnfn isequal(half2 x, half2 y);
10533short3 __ovld __cnfn isequal(half3 x, half3 y);
10534short4 __ovld __cnfn isequal(half4 x, half4 y);
10535short8 __ovld __cnfn isequal(half8 x, half8 y);
10536short16 __ovld __cnfn isequal(half16 x, half16 y);
10537#endif //cl_khr_fp16
10538
10539/**
10540 * Returns the component-wise compare of x != y.
10541 */
10542int __ovld __cnfn isnotequal(float x, float y);
10543int2 __ovld __cnfn isnotequal(float2 x, float2 y);
10544int3 __ovld __cnfn isnotequal(float3 x, float3 y);
10545int4 __ovld __cnfn isnotequal(float4 x, float4 y);
10546int8 __ovld __cnfn isnotequal(float8 x, float8 y);
10547int16 __ovld __cnfn isnotequal(float16 x, float16 y);
10548#ifdef cl_khr_fp64
10549int __ovld __cnfn isnotequal(double x, double y);
10550long2 __ovld __cnfn isnotequal(double2 x, double2 y);
10551long3 __ovld __cnfn isnotequal(double3 x, double3 y);
10552long4 __ovld __cnfn isnotequal(double4 x, double4 y);
10553long8 __ovld __cnfn isnotequal(double8 x, double8 y);
10554long16 __ovld __cnfn isnotequal(double16 x, double16 y);
10555#endif //cl_khr_fp64
10556#ifdef cl_khr_fp16
10557int __ovld __cnfn isnotequal(half x, half y);
10558short2 __ovld __cnfn isnotequal(half2 x, half2 y);
10559short3 __ovld __cnfn isnotequal(half3 x, half3 y);
10560short4 __ovld __cnfn isnotequal(half4 x, half4 y);
10561short8 __ovld __cnfn isnotequal(half8 x, half8 y);
10562short16 __ovld __cnfn isnotequal(half16 x, half16 y);
10563#endif //cl_khr_fp16
10564
10565/**
10566 * Returns the component-wise compare of x > y.
10567 */
10568int __ovld __cnfn isgreater(float x, float y);
10569int2 __ovld __cnfn isgreater(float2 x, float2 y);
10570int3 __ovld __cnfn isgreater(float3 x, float3 y);
10571int4 __ovld __cnfn isgreater(float4 x, float4 y);
10572int8 __ovld __cnfn isgreater(float8 x, float8 y);
10573int16 __ovld __cnfn isgreater(float16 x, float16 y);
10574#ifdef cl_khr_fp64
10575int __ovld __cnfn isgreater(double x, double y);
10576long2 __ovld __cnfn isgreater(double2 x, double2 y);
10577long3 __ovld __cnfn isgreater(double3 x, double3 y);
10578long4 __ovld __cnfn isgreater(double4 x, double4 y);
10579long8 __ovld __cnfn isgreater(double8 x, double8 y);
10580long16 __ovld __cnfn isgreater(double16 x, double16 y);
10581#endif //cl_khr_fp64
10582#ifdef cl_khr_fp16
10583int __ovld __cnfn isgreater(half x, half y);
10584short2 __ovld __cnfn isgreater(half2 x, half2 y);
10585short3 __ovld __cnfn isgreater(half3 x, half3 y);
10586short4 __ovld __cnfn isgreater(half4 x, half4 y);
10587short8 __ovld __cnfn isgreater(half8 x, half8 y);
10588short16 __ovld __cnfn isgreater(half16 x, half16 y);
10589#endif //cl_khr_fp16
10590
10591/**
10592 * Returns the component-wise compare of x >= y.
10593 */
10594int __ovld __cnfn isgreaterequal(float x, float y);
10595int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
10596int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
10597int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
10598int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
10599int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
10600#ifdef cl_khr_fp64
10601int __ovld __cnfn isgreaterequal(double x, double y);
10602long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
10603long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
10604long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
10605long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
10606long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
10607#endif //cl_khr_fp64
10608#ifdef cl_khr_fp16
10609int __ovld __cnfn isgreaterequal(half x, half y);
10610short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
10611short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
10612short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
10613short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
10614short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
10615#endif //cl_khr_fp16
10616
10617/**
10618 * Returns the component-wise compare of x < y.
10619 */
10620int __ovld __cnfn isless(float x, float y);
10621int2 __ovld __cnfn isless(float2 x, float2 y);
10622int3 __ovld __cnfn isless(float3 x, float3 y);
10623int4 __ovld __cnfn isless(float4 x, float4 y);
10624int8 __ovld __cnfn isless(float8 x, float8 y);
10625int16 __ovld __cnfn isless(float16 x, float16 y);
10626#ifdef cl_khr_fp64
10627int __ovld __cnfn isless(double x, double y);
10628long2 __ovld __cnfn isless(double2 x, double2 y);
10629long3 __ovld __cnfn isless(double3 x, double3 y);
10630long4 __ovld __cnfn isless(double4 x, double4 y);
10631long8 __ovld __cnfn isless(double8 x, double8 y);
10632long16 __ovld __cnfn isless(double16 x, double16 y);
10633#endif //cl_khr_fp64
10634#ifdef cl_khr_fp16
10635int __ovld __cnfn isless(half x, half y);
10636short2 __ovld __cnfn isless(half2 x, half2 y);
10637short3 __ovld __cnfn isless(half3 x, half3 y);
10638short4 __ovld __cnfn isless(half4 x, half4 y);
10639short8 __ovld __cnfn isless(half8 x, half8 y);
10640short16 __ovld __cnfn isless(half16 x, half16 y);
10641#endif //cl_khr_fp16
10642
10643/**
10644 * Returns the component-wise compare of x <= y.
10645 */
10646int __ovld __cnfn islessequal(float x, float y);
10647int2 __ovld __cnfn islessequal(float2 x, float2 y);
10648int3 __ovld __cnfn islessequal(float3 x, float3 y);
10649int4 __ovld __cnfn islessequal(float4 x, float4 y);
10650int8 __ovld __cnfn islessequal(float8 x, float8 y);
10651int16 __ovld __cnfn islessequal(float16 x, float16 y);
10652#ifdef cl_khr_fp64
10653int __ovld __cnfn islessequal(double x, double y);
10654long2 __ovld __cnfn islessequal(double2 x, double2 y);
10655long3 __ovld __cnfn islessequal(double3 x, double3 y);
10656long4 __ovld __cnfn islessequal(double4 x, double4 y);
10657long8 __ovld __cnfn islessequal(double8 x, double8 y);
10658long16 __ovld __cnfn islessequal(double16 x, double16 y);
10659#endif //cl_khr_fp64
10660#ifdef cl_khr_fp16
10661int __ovld __cnfn islessequal(half x, half y);
10662short2 __ovld __cnfn islessequal(half2 x, half2 y);
10663short3 __ovld __cnfn islessequal(half3 x, half3 y);
10664short4 __ovld __cnfn islessequal(half4 x, half4 y);
10665short8 __ovld __cnfn islessequal(half8 x, half8 y);
10666short16 __ovld __cnfn islessequal(half16 x, half16 y);
10667#endif //cl_khr_fp16
10668
10669/**
10670 * Returns the component-wise compare of
10671 * (x < y) || (x > y) .
10672 */
10673int __ovld __cnfn islessgreater(float x, float y);
10674int2 __ovld __cnfn islessgreater(float2 x, float2 y);
10675int3 __ovld __cnfn islessgreater(float3 x, float3 y);
10676int4 __ovld __cnfn islessgreater(float4 x, float4 y);
10677int8 __ovld __cnfn islessgreater(float8 x, float8 y);
10678int16 __ovld __cnfn islessgreater(float16 x, float16 y);
10679#ifdef cl_khr_fp64
10680int __ovld __cnfn islessgreater(double x, double y);
10681long2 __ovld __cnfn islessgreater(double2 x, double2 y);
10682long3 __ovld __cnfn islessgreater(double3 x, double3 y);
10683long4 __ovld __cnfn islessgreater(double4 x, double4 y);
10684long8 __ovld __cnfn islessgreater(double8 x, double8 y);
10685long16 __ovld __cnfn islessgreater(double16 x, double16 y);
10686#endif //cl_khr_fp64
10687#ifdef cl_khr_fp16
10688int __ovld __cnfn islessgreater(half x, half y);
10689short2 __ovld __cnfn islessgreater(half2 x, half2 y);
10690short3 __ovld __cnfn islessgreater(half3 x, half3 y);
10691short4 __ovld __cnfn islessgreater(half4 x, half4 y);
10692short8 __ovld __cnfn islessgreater(half8 x, half8 y);
10693short16 __ovld __cnfn islessgreater(half16 x, half16 y);
10694#endif //cl_khr_fp16
10695
10696/**
10697 * Test for finite value.
10698 */
10699int __ovld __cnfn isfinite(float);
10700int2 __ovld __cnfn isfinite(float2);
10701int3 __ovld __cnfn isfinite(float3);
10702int4 __ovld __cnfn isfinite(float4);
10703int8 __ovld __cnfn isfinite(float8);
10704int16 __ovld __cnfn isfinite(float16);
10705#ifdef cl_khr_fp64
10706int __ovld __cnfn isfinite(double);
10707long2 __ovld __cnfn isfinite(double2);
10708long3 __ovld __cnfn isfinite(double3);
10709long4 __ovld __cnfn isfinite(double4);
10710long8 __ovld __cnfn isfinite(double8);
10711long16 __ovld __cnfn isfinite(double16);
10712#endif //cl_khr_fp64
10713#ifdef cl_khr_fp16
10714int __ovld __cnfn isfinite(half);
10715short2 __ovld __cnfn isfinite(half2);
10716short3 __ovld __cnfn isfinite(half3);
10717short4 __ovld __cnfn isfinite(half4);
10718short8 __ovld __cnfn isfinite(half8);
10719short16 __ovld __cnfn isfinite(half16);
10720#endif //cl_khr_fp16
10721
10722/**
10723 * Test for infinity value (+ve or -ve) .
10724 */
10725int __ovld __cnfn isinf(float);
10726int2 __ovld __cnfn isinf(float2);
10727int3 __ovld __cnfn isinf(float3);
10728int4 __ovld __cnfn isinf(float4);
10729int8 __ovld __cnfn isinf(float8);
10730int16 __ovld __cnfn isinf(float16);
10731#ifdef cl_khr_fp64
10732int __ovld __cnfn isinf(double);
10733long2 __ovld __cnfn isinf(double2);
10734long3 __ovld __cnfn isinf(double3);
10735long4 __ovld __cnfn isinf(double4);
10736long8 __ovld __cnfn isinf(double8);
10737long16 __ovld __cnfn isinf(double16);
10738#endif //cl_khr_fp64
10739#ifdef cl_khr_fp16
10740int __ovld __cnfn isinf(half);
10741short2 __ovld __cnfn isinf(half2);
10742short3 __ovld __cnfn isinf(half3);
10743short4 __ovld __cnfn isinf(half4);
10744short8 __ovld __cnfn isinf(half8);
10745short16 __ovld __cnfn isinf(half16);
10746#endif //cl_khr_fp16
10747
10748/**
10749 * Test for a NaN.
10750 */
10751int __ovld __cnfn isnan(float);
10752int2 __ovld __cnfn isnan(float2);
10753int3 __ovld __cnfn isnan(float3);
10754int4 __ovld __cnfn isnan(float4);
10755int8 __ovld __cnfn isnan(float8);
10756int16 __ovld __cnfn isnan(float16);
10757#ifdef cl_khr_fp64
10758int __ovld __cnfn isnan(double);
10759long2 __ovld __cnfn isnan(double2);
10760long3 __ovld __cnfn isnan(double3);
10761long4 __ovld __cnfn isnan(double4);
10762long8 __ovld __cnfn isnan(double8);
10763long16 __ovld __cnfn isnan(double16);
10764#endif //cl_khr_fp64
10765#ifdef cl_khr_fp16
10766int __ovld __cnfn isnan(half);
10767short2 __ovld __cnfn isnan(half2);
10768short3 __ovld __cnfn isnan(half3);
10769short4 __ovld __cnfn isnan(half4);
10770short8 __ovld __cnfn isnan(half8);
10771short16 __ovld __cnfn isnan(half16);
10772#endif //cl_khr_fp16
10773
10774/**
10775 * Test for a normal value.
10776 */
10777int __ovld __cnfn isnormal(float);
10778int2 __ovld __cnfn isnormal(float2);
10779int3 __ovld __cnfn isnormal(float3);
10780int4 __ovld __cnfn isnormal(float4);
10781int8 __ovld __cnfn isnormal(float8);
10782int16 __ovld __cnfn isnormal(float16);
10783#ifdef cl_khr_fp64
10784int __ovld __cnfn isnormal(double);
10785long2 __ovld __cnfn isnormal(double2);
10786long3 __ovld __cnfn isnormal(double3);
10787long4 __ovld __cnfn isnormal(double4);
10788long8 __ovld __cnfn isnormal(double8);
10789long16 __ovld __cnfn isnormal(double16);
10790#endif //cl_khr_fp64
10791#ifdef cl_khr_fp16
10792int __ovld __cnfn isnormal(half);
10793short2 __ovld __cnfn isnormal(half2);
10794short3 __ovld __cnfn isnormal(half3);
10795short4 __ovld __cnfn isnormal(half4);
10796short8 __ovld __cnfn isnormal(half8);
10797short16 __ovld __cnfn isnormal(half16);
10798#endif //cl_khr_fp16
10799
10800/**
10801 * Test if arguments are ordered. isordered() takes
10802 * arguments x and y, and returns the result
10803 * isequal(x, x) && isequal(y, y).
10804 */
10805int __ovld __cnfn isordered(float x, float y);
10806int2 __ovld __cnfn isordered(float2 x, float2 y);
10807int3 __ovld __cnfn isordered(float3 x, float3 y);
10808int4 __ovld __cnfn isordered(float4 x, float4 y);
10809int8 __ovld __cnfn isordered(float8 x, float8 y);
10810int16 __ovld __cnfn isordered(float16 x, float16 y);
10811#ifdef cl_khr_fp64
10812int __ovld __cnfn isordered(double x, double y);
10813long2 __ovld __cnfn isordered(double2 x, double2 y);
10814long3 __ovld __cnfn isordered(double3 x, double3 y);
10815long4 __ovld __cnfn isordered(double4 x, double4 y);
10816long8 __ovld __cnfn isordered(double8 x, double8 y);
10817long16 __ovld __cnfn isordered(double16 x, double16 y);
10818#endif //cl_khr_fp64
10819#ifdef cl_khr_fp16
10820int __ovld __cnfn isordered(half x, half y);
10821short2 __ovld __cnfn isordered(half2 x, half2 y);
10822short3 __ovld __cnfn isordered(half3 x, half3 y);
10823short4 __ovld __cnfn isordered(half4 x, half4 y);
10824short8 __ovld __cnfn isordered(half8 x, half8 y);
10825short16 __ovld __cnfn isordered(half16 x, half16 y);
10826#endif //cl_khr_fp16
10827
10828/**
10829 * Test if arguments are unordered. isunordered()
10830 * takes arguments x and y, returning non-zero if x or y
10831 * is NaN, and zero otherwise.
10832 */
10833int __ovld __cnfn isunordered(float x, float y);
10834int2 __ovld __cnfn isunordered(float2 x, float2 y);
10835int3 __ovld __cnfn isunordered(float3 x, float3 y);
10836int4 __ovld __cnfn isunordered(float4 x, float4 y);
10837int8 __ovld __cnfn isunordered(float8 x, float8 y);
10838int16 __ovld __cnfn isunordered(float16 x, float16 y);
10839#ifdef cl_khr_fp64
10840int __ovld __cnfn isunordered(double x, double y);
10841long2 __ovld __cnfn isunordered(double2 x, double2 y);
10842long3 __ovld __cnfn isunordered(double3 x, double3 y);
10843long4 __ovld __cnfn isunordered(double4 x, double4 y);
10844long8 __ovld __cnfn isunordered(double8 x, double8 y);
10845long16 __ovld __cnfn isunordered(double16 x, double16 y);
10846#endif //cl_khr_fp64
10847#ifdef cl_khr_fp16
10848int __ovld __cnfn isunordered(half x, half y);
10849short2 __ovld __cnfn isunordered(half2 x, half2 y);
10850short3 __ovld __cnfn isunordered(half3 x, half3 y);
10851short4 __ovld __cnfn isunordered(half4 x, half4 y);
10852short8 __ovld __cnfn isunordered(half8 x, half8 y);
10853short16 __ovld __cnfn isunordered(half16 x, half16 y);
10854#endif //cl_khr_fp16
10855
10856/**
10857 * Test for sign bit. The scalar version of the function
10858 * returns a 1 if the sign bit in the float is set else returns
10859 * 0. The vector version of the function returns the
10860 * following for each component in floatn: a -1 if the
10861 * sign bit in the float is set else returns 0.
10862 */
10863int __ovld __cnfn signbit(float);
10864int2 __ovld __cnfn signbit(float2);
10865int3 __ovld __cnfn signbit(float3);
10866int4 __ovld __cnfn signbit(float4);
10867int8 __ovld __cnfn signbit(float8);
10868int16 __ovld __cnfn signbit(float16);
10869#ifdef cl_khr_fp64
10870int __ovld __cnfn signbit(double);
10871long2 __ovld __cnfn signbit(double2);
10872long3 __ovld __cnfn signbit(double3);
10873long4 __ovld __cnfn signbit(double4);
10874long8 __ovld __cnfn signbit(double8);
10875long16 __ovld __cnfn signbit(double16);
10876#endif //cl_khr_fp64
10877#ifdef cl_khr_fp16
10878int __ovld __cnfn signbit(half);
10879short2 __ovld __cnfn signbit(half2);
10880short3 __ovld __cnfn signbit(half3);
10881short4 __ovld __cnfn signbit(half4);
10882short8 __ovld __cnfn signbit(half8);
10883short16 __ovld __cnfn signbit(half16);
10884#endif //cl_khr_fp16
10885
10886/**
10887 * Returns 1 if the most significant bit in any component
10888 * of x is set; otherwise returns 0.
10889 */
10890int __ovld __cnfn any(char x);
10891int __ovld __cnfn any(char2 x);
10892int __ovld __cnfn any(char3 x);
10893int __ovld __cnfn any(char4 x);
10894int __ovld __cnfn any(char8 x);
10895int __ovld __cnfn any(char16 x);
10896int __ovld __cnfn any(short x);
10897int __ovld __cnfn any(short2 x);
10898int __ovld __cnfn any(short3 x);
10899int __ovld __cnfn any(short4 x);
10900int __ovld __cnfn any(short8 x);
10901int __ovld __cnfn any(short16 x);
10902int __ovld __cnfn any(int x);
10903int __ovld __cnfn any(int2 x);
10904int __ovld __cnfn any(int3 x);
10905int __ovld __cnfn any(int4 x);
10906int __ovld __cnfn any(int8 x);
10907int __ovld __cnfn any(int16 x);
10908int __ovld __cnfn any(long x);
10909int __ovld __cnfn any(long2 x);
10910int __ovld __cnfn any(long3 x);
10911int __ovld __cnfn any(long4 x);
10912int __ovld __cnfn any(long8 x);
10913int __ovld __cnfn any(long16 x);
10914
10915/**
10916 * Returns 1 if the most significant bit in all components
10917 * of x is set; otherwise returns 0.
10918 */
10919int __ovld __cnfn all(char x);
10920int __ovld __cnfn all(char2 x);
10921int __ovld __cnfn all(char3 x);
10922int __ovld __cnfn all(char4 x);
10923int __ovld __cnfn all(char8 x);
10924int __ovld __cnfn all(char16 x);
10925int __ovld __cnfn all(short x);
10926int __ovld __cnfn all(short2 x);
10927int __ovld __cnfn all(short3 x);
10928int __ovld __cnfn all(short4 x);
10929int __ovld __cnfn all(short8 x);
10930int __ovld __cnfn all(short16 x);
10931int __ovld __cnfn all(int x);
10932int __ovld __cnfn all(int2 x);
10933int __ovld __cnfn all(int3 x);
10934int __ovld __cnfn all(int4 x);
10935int __ovld __cnfn all(int8 x);
10936int __ovld __cnfn all(int16 x);
10937int __ovld __cnfn all(long x);
10938int __ovld __cnfn all(long2 x);
10939int __ovld __cnfn all(long3 x);
10940int __ovld __cnfn all(long4 x);
10941int __ovld __cnfn all(long8 x);
10942int __ovld __cnfn all(long16 x);
10943
10944/**
10945 * Each bit of the result is the corresponding bit of a if
10946 * the corresponding bit of c is 0. Otherwise it is the
10947 * corresponding bit of b.
10948 */
10949char __ovld __cnfn bitselect(char a, char b, char c);
10950uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
10951char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
10952uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
10953char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
10954uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
10955char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
10956uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
10957char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
10958uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
10959char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
10960uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
10961short __ovld __cnfn bitselect(short a, short b, short c);
10962ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
10963short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
10964ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
10965short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
10966ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
10967short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
10968ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
10969short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
10970ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
10971short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
10972ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
10973int __ovld __cnfn bitselect(int a, int b, int c);
10974uint __ovld __cnfn bitselect(uint a, uint b, uint c);
10975int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
10976uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
10977int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
10978uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
10979int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
10980uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
10981int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
10982uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
10983int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
10984uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
10985long __ovld __cnfn bitselect(long a, long b, long c);
10986ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
10987long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
10988ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
10989long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
10990ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
10991long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
10992ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
10993long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
10994ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
10995long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
10996ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
10997float __ovld __cnfn bitselect(float a, float b, float c);
10998float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
10999float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
11000float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
11001float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
11002float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
11003#ifdef cl_khr_fp64
11004double __ovld __cnfn bitselect(double a, double b, double c);
11005double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
11006double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
11007double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
11008double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
11009double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
11010#endif //cl_khr_fp64
11011#ifdef cl_khr_fp16
11012half __ovld __cnfn bitselect(half a, half b, half c);
11013half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
11014half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
11015half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
11016half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
11017half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
11018#endif //cl_khr_fp16
11019
11020/**
11021 * For each component of a vector type,
11022 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
11023 * For a scalar type, result = c ? b : a.
Logan Chien55afb0a2018-10-15 10:42:14 +080011024 * b and a must have the same type.
11025 * c must have the same number of elements and bits as a.
Logan Chien2833ffb2018-10-09 10:03:24 +080011026 */
11027char __ovld __cnfn select(char a, char b, char c);
11028uchar __ovld __cnfn select(uchar a, uchar b, char c);
11029char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
11030uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
11031char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
11032uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
11033char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
11034uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
11035char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
11036uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
11037char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
11038uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011039
Logan Chien2833ffb2018-10-09 10:03:24 +080011040short __ovld __cnfn select(short a, short b, short c);
11041ushort __ovld __cnfn select(ushort a, ushort b, short c);
11042short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
11043ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
11044short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
11045ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
11046short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
11047ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
11048short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
11049ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
11050short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
11051ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011052
Logan Chien2833ffb2018-10-09 10:03:24 +080011053int __ovld __cnfn select(int a, int b, int c);
11054uint __ovld __cnfn select(uint a, uint b, int c);
11055int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
11056uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
11057int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
11058uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
11059int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
11060uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
11061int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
11062uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
11063int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
11064uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
Logan Chien2833ffb2018-10-09 10:03:24 +080011065float __ovld __cnfn select(float a, float b, int c);
11066float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
11067float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
11068float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
11069float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
11070float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011071
Logan Chien2833ffb2018-10-09 10:03:24 +080011072long __ovld __cnfn select(long a, long b, long c);
11073ulong __ovld __cnfn select(ulong a, ulong b, long c);
11074long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
11075ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
11076long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
11077ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
11078long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
11079ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
11080long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
11081ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
11082long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
11083ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011084
Logan Chien2833ffb2018-10-09 10:03:24 +080011085char __ovld __cnfn select(char a, char b, uchar c);
11086uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
11087char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
11088uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
11089char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
11090uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
11091char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
11092uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
11093char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
11094uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
11095char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
11096uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011097
Logan Chien2833ffb2018-10-09 10:03:24 +080011098short __ovld __cnfn select(short a, short b, ushort c);
11099ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
11100short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
11101ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
11102short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
11103ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
11104short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
11105ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
11106short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
11107ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
11108short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
11109ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011110
Logan Chien2833ffb2018-10-09 10:03:24 +080011111int __ovld __cnfn select(int a, int b, uint c);
11112uint __ovld __cnfn select(uint a, uint b, uint c);
11113int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
11114uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
11115int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
11116uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
11117int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
11118uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
11119int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
11120uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
11121int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
11122uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
Logan Chien2833ffb2018-10-09 10:03:24 +080011123float __ovld __cnfn select(float a, float b, uint c);
11124float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
11125float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
11126float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
11127float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
11128float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011129
Logan Chien2833ffb2018-10-09 10:03:24 +080011130long __ovld __cnfn select(long a, long b, ulong c);
11131ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
11132long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
11133ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
11134long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
11135ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
11136long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
11137ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
11138long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
11139ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
11140long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
11141ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011142
Logan Chien2833ffb2018-10-09 10:03:24 +080011143#ifdef cl_khr_fp64
11144double __ovld __cnfn select(double a, double b, long c);
11145double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
11146double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
11147double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
11148double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
11149double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
11150double __ovld __cnfn select(double a, double b, ulong c);
11151double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
11152double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
11153double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
11154double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
11155double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
11156#endif //cl_khr_fp64
11157#ifdef cl_khr_fp16
11158half __ovld __cnfn select(half a, half b, short c);
11159half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
11160half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
11161half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
11162half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
11163half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
11164half __ovld __cnfn select(half a, half b, ushort c);
11165half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
11166half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
11167half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
11168half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
11169half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
11170#endif //cl_khr_fp16
11171
11172// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
11173// 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
11174/**
11175 * Use generic type gentype to indicate the built-in data types
11176 * char, uchar, short, ushort, int, uint, long, ulong, float,
11177 * double or half.
11178 *
11179 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
11180 *
11181 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
11182 *
Logan Chien55afb0a2018-10-15 10:42:14 +080011183 * The address computed as (p + (offset * n)) must be
Logan Chien2833ffb2018-10-09 10:03:24 +080011184 * 8-bit aligned if gentype is char, uchar;
11185 * 16-bit aligned if gentype is short, ushort, half;
11186 * 32-bit aligned if gentype is int, uint, float;
11187 * 64-bit aligned if gentype is long, ulong, double.
11188 */
11189
11190char2 __ovld vload2(size_t offset, const __constant char *p);
11191uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
11192short2 __ovld vload2(size_t offset, const __constant short *p);
11193ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
11194int2 __ovld vload2(size_t offset, const __constant int *p);
11195uint2 __ovld vload2(size_t offset, const __constant uint *p);
11196long2 __ovld vload2(size_t offset, const __constant long *p);
11197ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
11198float2 __ovld vload2(size_t offset, const __constant float *p);
11199char3 __ovld vload3(size_t offset, const __constant char *p);
11200uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
11201short3 __ovld vload3(size_t offset, const __constant short *p);
11202ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
11203int3 __ovld vload3(size_t offset, const __constant int *p);
11204uint3 __ovld vload3(size_t offset, const __constant uint *p);
11205long3 __ovld vload3(size_t offset, const __constant long *p);
11206ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
11207float3 __ovld vload3(size_t offset, const __constant float *p);
11208char4 __ovld vload4(size_t offset, const __constant char *p);
11209uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
11210short4 __ovld vload4(size_t offset, const __constant short *p);
11211ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
11212int4 __ovld vload4(size_t offset, const __constant int *p);
11213uint4 __ovld vload4(size_t offset, const __constant uint *p);
11214long4 __ovld vload4(size_t offset, const __constant long *p);
11215ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
11216float4 __ovld vload4(size_t offset, const __constant float *p);
11217char8 __ovld vload8(size_t offset, const __constant char *p);
11218uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
11219short8 __ovld vload8(size_t offset, const __constant short *p);
11220ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
11221int8 __ovld vload8(size_t offset, const __constant int *p);
11222uint8 __ovld vload8(size_t offset, const __constant uint *p);
11223long8 __ovld vload8(size_t offset, const __constant long *p);
11224ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
11225float8 __ovld vload8(size_t offset, const __constant float *p);
11226char16 __ovld vload16(size_t offset, const __constant char *p);
11227uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
11228short16 __ovld vload16(size_t offset, const __constant short *p);
11229ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
11230int16 __ovld vload16(size_t offset, const __constant int *p);
11231uint16 __ovld vload16(size_t offset, const __constant uint *p);
11232long16 __ovld vload16(size_t offset, const __constant long *p);
11233ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
11234float16 __ovld vload16(size_t offset, const __constant float *p);
11235#ifdef cl_khr_fp64
11236double2 __ovld vload2(size_t offset, const __constant double *p);
11237double3 __ovld vload3(size_t offset, const __constant double *p);
11238double4 __ovld vload4(size_t offset, const __constant double *p);
11239double8 __ovld vload8(size_t offset, const __constant double *p);
11240double16 __ovld vload16(size_t offset, const __constant double *p);
11241#endif //cl_khr_fp64
11242
11243#ifdef cl_khr_fp16
11244half __ovld vload(size_t offset, const __constant half *p);
11245half2 __ovld vload2(size_t offset, const __constant half *p);
11246half3 __ovld vload3(size_t offset, const __constant half *p);
11247half4 __ovld vload4(size_t offset, const __constant half *p);
11248half8 __ovld vload8(size_t offset, const __constant half *p);
11249half16 __ovld vload16(size_t offset, const __constant half *p);
11250#endif //cl_khr_fp16
11251
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011252#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011253char2 __ovld vload2(size_t offset, const char *p);
11254uchar2 __ovld vload2(size_t offset, const uchar *p);
11255short2 __ovld vload2(size_t offset, const short *p);
11256ushort2 __ovld vload2(size_t offset, const ushort *p);
11257int2 __ovld vload2(size_t offset, const int *p);
11258uint2 __ovld vload2(size_t offset, const uint *p);
11259long2 __ovld vload2(size_t offset, const long *p);
11260ulong2 __ovld vload2(size_t offset, const ulong *p);
11261float2 __ovld vload2(size_t offset, const float *p);
11262char3 __ovld vload3(size_t offset, const char *p);
11263uchar3 __ovld vload3(size_t offset, const uchar *p);
11264short3 __ovld vload3(size_t offset, const short *p);
11265ushort3 __ovld vload3(size_t offset, const ushort *p);
11266int3 __ovld vload3(size_t offset, const int *p);
11267uint3 __ovld vload3(size_t offset, const uint *p);
11268long3 __ovld vload3(size_t offset, const long *p);
11269ulong3 __ovld vload3(size_t offset, const ulong *p);
11270float3 __ovld vload3(size_t offset, const float *p);
11271char4 __ovld vload4(size_t offset, const char *p);
11272uchar4 __ovld vload4(size_t offset, const uchar *p);
11273short4 __ovld vload4(size_t offset, const short *p);
11274ushort4 __ovld vload4(size_t offset, const ushort *p);
11275int4 __ovld vload4(size_t offset, const int *p);
11276uint4 __ovld vload4(size_t offset, const uint *p);
11277long4 __ovld vload4(size_t offset, const long *p);
11278ulong4 __ovld vload4(size_t offset, const ulong *p);
11279float4 __ovld vload4(size_t offset, const float *p);
11280char8 __ovld vload8(size_t offset, const char *p);
11281uchar8 __ovld vload8(size_t offset, const uchar *p);
11282short8 __ovld vload8(size_t offset, const short *p);
11283ushort8 __ovld vload8(size_t offset, const ushort *p);
11284int8 __ovld vload8(size_t offset, const int *p);
11285uint8 __ovld vload8(size_t offset, const uint *p);
11286long8 __ovld vload8(size_t offset, const long *p);
11287ulong8 __ovld vload8(size_t offset, const ulong *p);
11288float8 __ovld vload8(size_t offset, const float *p);
11289char16 __ovld vload16(size_t offset, const char *p);
11290uchar16 __ovld vload16(size_t offset, const uchar *p);
11291short16 __ovld vload16(size_t offset, const short *p);
11292ushort16 __ovld vload16(size_t offset, const ushort *p);
11293int16 __ovld vload16(size_t offset, const int *p);
11294uint16 __ovld vload16(size_t offset, const uint *p);
11295long16 __ovld vload16(size_t offset, const long *p);
11296ulong16 __ovld vload16(size_t offset, const ulong *p);
11297float16 __ovld vload16(size_t offset, const float *p);
11298
11299#ifdef cl_khr_fp64
11300double2 __ovld vload2(size_t offset, const double *p);
11301double3 __ovld vload3(size_t offset, const double *p);
11302double4 __ovld vload4(size_t offset, const double *p);
11303double8 __ovld vload8(size_t offset, const double *p);
11304double16 __ovld vload16(size_t offset, const double *p);
11305#endif //cl_khr_fp64
11306
11307#ifdef cl_khr_fp16
11308half __ovld vload(size_t offset, const half *p);
11309half2 __ovld vload2(size_t offset, const half *p);
11310half3 __ovld vload3(size_t offset, const half *p);
11311half4 __ovld vload4(size_t offset, const half *p);
11312half8 __ovld vload8(size_t offset, const half *p);
11313half16 __ovld vload16(size_t offset, const half *p);
11314#endif //cl_khr_fp16
11315#else
11316char2 __ovld vload2(size_t offset, const __global char *p);
11317uchar2 __ovld vload2(size_t offset, const __global uchar *p);
11318short2 __ovld vload2(size_t offset, const __global short *p);
11319ushort2 __ovld vload2(size_t offset, const __global ushort *p);
11320int2 __ovld vload2(size_t offset, const __global int *p);
11321uint2 __ovld vload2(size_t offset, const __global uint *p);
11322long2 __ovld vload2(size_t offset, const __global long *p);
11323ulong2 __ovld vload2(size_t offset, const __global ulong *p);
11324float2 __ovld vload2(size_t offset, const __global float *p);
11325char3 __ovld vload3(size_t offset, const __global char *p);
11326uchar3 __ovld vload3(size_t offset, const __global uchar *p);
11327short3 __ovld vload3(size_t offset, const __global short *p);
11328ushort3 __ovld vload3(size_t offset, const __global ushort *p);
11329int3 __ovld vload3(size_t offset, const __global int *p);
11330uint3 __ovld vload3(size_t offset, const __global uint *p);
11331long3 __ovld vload3(size_t offset, const __global long *p);
11332ulong3 __ovld vload3(size_t offset, const __global ulong *p);
11333float3 __ovld vload3(size_t offset, const __global float *p);
11334char4 __ovld vload4(size_t offset, const __global char *p);
11335uchar4 __ovld vload4(size_t offset, const __global uchar *p);
11336short4 __ovld vload4(size_t offset, const __global short *p);
11337ushort4 __ovld vload4(size_t offset, const __global ushort *p);
11338int4 __ovld vload4(size_t offset, const __global int *p);
11339uint4 __ovld vload4(size_t offset, const __global uint *p);
11340long4 __ovld vload4(size_t offset, const __global long *p);
11341ulong4 __ovld vload4(size_t offset, const __global ulong *p);
11342float4 __ovld vload4(size_t offset, const __global float *p);
11343char8 __ovld vload8(size_t offset, const __global char *p);
11344uchar8 __ovld vload8(size_t offset, const __global uchar *p);
11345short8 __ovld vload8(size_t offset, const __global short *p);
11346ushort8 __ovld vload8(size_t offset, const __global ushort *p);
11347int8 __ovld vload8(size_t offset, const __global int *p);
11348uint8 __ovld vload8(size_t offset, const __global uint *p);
11349long8 __ovld vload8(size_t offset, const __global long *p);
11350ulong8 __ovld vload8(size_t offset, const __global ulong *p);
11351float8 __ovld vload8(size_t offset, const __global float *p);
11352char16 __ovld vload16(size_t offset, const __global char *p);
11353uchar16 __ovld vload16(size_t offset, const __global uchar *p);
11354short16 __ovld vload16(size_t offset, const __global short *p);
11355ushort16 __ovld vload16(size_t offset, const __global ushort *p);
11356int16 __ovld vload16(size_t offset, const __global int *p);
11357uint16 __ovld vload16(size_t offset, const __global uint *p);
11358long16 __ovld vload16(size_t offset, const __global long *p);
11359ulong16 __ovld vload16(size_t offset, const __global ulong *p);
11360float16 __ovld vload16(size_t offset, const __global float *p);
11361char2 __ovld vload2(size_t offset, const __local char *p);
11362uchar2 __ovld vload2(size_t offset, const __local uchar *p);
11363short2 __ovld vload2(size_t offset, const __local short *p);
11364ushort2 __ovld vload2(size_t offset, const __local ushort *p);
11365int2 __ovld vload2(size_t offset, const __local int *p);
11366uint2 __ovld vload2(size_t offset, const __local uint *p);
11367long2 __ovld vload2(size_t offset, const __local long *p);
11368ulong2 __ovld vload2(size_t offset, const __local ulong *p);
11369float2 __ovld vload2(size_t offset, const __local float *p);
11370char3 __ovld vload3(size_t offset, const __local char *p);
11371uchar3 __ovld vload3(size_t offset, const __local uchar *p);
11372short3 __ovld vload3(size_t offset, const __local short *p);
11373ushort3 __ovld vload3(size_t offset, const __local ushort *p);
11374int3 __ovld vload3(size_t offset, const __local int *p);
11375uint3 __ovld vload3(size_t offset, const __local uint *p);
11376long3 __ovld vload3(size_t offset, const __local long *p);
11377ulong3 __ovld vload3(size_t offset, const __local ulong *p);
11378float3 __ovld vload3(size_t offset, const __local float *p);
11379char4 __ovld vload4(size_t offset, const __local char *p);
11380uchar4 __ovld vload4(size_t offset, const __local uchar *p);
11381short4 __ovld vload4(size_t offset, const __local short *p);
11382ushort4 __ovld vload4(size_t offset, const __local ushort *p);
11383int4 __ovld vload4(size_t offset, const __local int *p);
11384uint4 __ovld vload4(size_t offset, const __local uint *p);
11385long4 __ovld vload4(size_t offset, const __local long *p);
11386ulong4 __ovld vload4(size_t offset, const __local ulong *p);
11387float4 __ovld vload4(size_t offset, const __local float *p);
11388char8 __ovld vload8(size_t offset, const __local char *p);
11389uchar8 __ovld vload8(size_t offset, const __local uchar *p);
11390short8 __ovld vload8(size_t offset, const __local short *p);
11391ushort8 __ovld vload8(size_t offset, const __local ushort *p);
11392int8 __ovld vload8(size_t offset, const __local int *p);
11393uint8 __ovld vload8(size_t offset, const __local uint *p);
11394long8 __ovld vload8(size_t offset, const __local long *p);
11395ulong8 __ovld vload8(size_t offset, const __local ulong *p);
11396float8 __ovld vload8(size_t offset, const __local float *p);
11397char16 __ovld vload16(size_t offset, const __local char *p);
11398uchar16 __ovld vload16(size_t offset, const __local uchar *p);
11399short16 __ovld vload16(size_t offset, const __local short *p);
11400ushort16 __ovld vload16(size_t offset, const __local ushort *p);
11401int16 __ovld vload16(size_t offset, const __local int *p);
11402uint16 __ovld vload16(size_t offset, const __local uint *p);
11403long16 __ovld vload16(size_t offset, const __local long *p);
11404ulong16 __ovld vload16(size_t offset, const __local ulong *p);
11405float16 __ovld vload16(size_t offset, const __local float *p);
11406char2 __ovld vload2(size_t offset, const __private char *p);
11407uchar2 __ovld vload2(size_t offset, const __private uchar *p);
11408short2 __ovld vload2(size_t offset, const __private short *p);
11409ushort2 __ovld vload2(size_t offset, const __private ushort *p);
11410int2 __ovld vload2(size_t offset, const __private int *p);
11411uint2 __ovld vload2(size_t offset, const __private uint *p);
11412long2 __ovld vload2(size_t offset, const __private long *p);
11413ulong2 __ovld vload2(size_t offset, const __private ulong *p);
11414float2 __ovld vload2(size_t offset, const __private float *p);
11415char3 __ovld vload3(size_t offset, const __private char *p);
11416uchar3 __ovld vload3(size_t offset, const __private uchar *p);
11417short3 __ovld vload3(size_t offset, const __private short *p);
11418ushort3 __ovld vload3(size_t offset, const __private ushort *p);
11419int3 __ovld vload3(size_t offset, const __private int *p);
11420uint3 __ovld vload3(size_t offset, const __private uint *p);
11421long3 __ovld vload3(size_t offset, const __private long *p);
11422ulong3 __ovld vload3(size_t offset, const __private ulong *p);
11423float3 __ovld vload3(size_t offset, const __private float *p);
11424char4 __ovld vload4(size_t offset, const __private char *p);
11425uchar4 __ovld vload4(size_t offset, const __private uchar *p);
11426short4 __ovld vload4(size_t offset, const __private short *p);
11427ushort4 __ovld vload4(size_t offset, const __private ushort *p);
11428int4 __ovld vload4(size_t offset, const __private int *p);
11429uint4 __ovld vload4(size_t offset, const __private uint *p);
11430long4 __ovld vload4(size_t offset, const __private long *p);
11431ulong4 __ovld vload4(size_t offset, const __private ulong *p);
11432float4 __ovld vload4(size_t offset, const __private float *p);
11433char8 __ovld vload8(size_t offset, const __private char *p);
11434uchar8 __ovld vload8(size_t offset, const __private uchar *p);
11435short8 __ovld vload8(size_t offset, const __private short *p);
11436ushort8 __ovld vload8(size_t offset, const __private ushort *p);
11437int8 __ovld vload8(size_t offset, const __private int *p);
11438uint8 __ovld vload8(size_t offset, const __private uint *p);
11439long8 __ovld vload8(size_t offset, const __private long *p);
11440ulong8 __ovld vload8(size_t offset, const __private ulong *p);
11441float8 __ovld vload8(size_t offset, const __private float *p);
11442char16 __ovld vload16(size_t offset, const __private char *p);
11443uchar16 __ovld vload16(size_t offset, const __private uchar *p);
11444short16 __ovld vload16(size_t offset, const __private short *p);
11445ushort16 __ovld vload16(size_t offset, const __private ushort *p);
11446int16 __ovld vload16(size_t offset, const __private int *p);
11447uint16 __ovld vload16(size_t offset, const __private uint *p);
11448long16 __ovld vload16(size_t offset, const __private long *p);
11449ulong16 __ovld vload16(size_t offset, const __private ulong *p);
11450float16 __ovld vload16(size_t offset, const __private float *p);
11451
11452#ifdef cl_khr_fp64
11453double2 __ovld vload2(size_t offset, const __global double *p);
11454double3 __ovld vload3(size_t offset, const __global double *p);
11455double4 __ovld vload4(size_t offset, const __global double *p);
11456double8 __ovld vload8(size_t offset, const __global double *p);
11457double16 __ovld vload16(size_t offset, const __global double *p);
11458double2 __ovld vload2(size_t offset, const __local double *p);
11459double3 __ovld vload3(size_t offset, const __local double *p);
11460double4 __ovld vload4(size_t offset, const __local double *p);
11461double8 __ovld vload8(size_t offset, const __local double *p);
11462double16 __ovld vload16(size_t offset, const __local double *p);
11463double2 __ovld vload2(size_t offset, const __private double *p);
11464double3 __ovld vload3(size_t offset, const __private double *p);
11465double4 __ovld vload4(size_t offset, const __private double *p);
11466double8 __ovld vload8(size_t offset, const __private double *p);
11467double16 __ovld vload16(size_t offset, const __private double *p);
11468#endif //cl_khr_fp64
11469
11470#ifdef cl_khr_fp16
11471half __ovld vload(size_t offset, const __global half *p);
11472half2 __ovld vload2(size_t offset, const __global half *p);
11473half3 __ovld vload3(size_t offset, const __global half *p);
11474half4 __ovld vload4(size_t offset, const __global half *p);
11475half8 __ovld vload8(size_t offset, const __global half *p);
11476half16 __ovld vload16(size_t offset, const __global half *p);
11477half __ovld vload(size_t offset, const __local half *p);
11478half2 __ovld vload2(size_t offset, const __local half *p);
11479half3 __ovld vload3(size_t offset, const __local half *p);
11480half4 __ovld vload4(size_t offset, const __local half *p);
11481half8 __ovld vload8(size_t offset, const __local half *p);
11482half16 __ovld vload16(size_t offset, const __local half *p);
11483half __ovld vload(size_t offset, const __private half *p);
11484half2 __ovld vload2(size_t offset, const __private half *p);
11485half3 __ovld vload3(size_t offset, const __private half *p);
11486half4 __ovld vload4(size_t offset, const __private half *p);
11487half8 __ovld vload8(size_t offset, const __private half *p);
11488half16 __ovld vload16(size_t offset, const __private half *p);
11489#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011490#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011491
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011492#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011493void __ovld vstore2(char2 data, size_t offset, char *p);
11494void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
11495void __ovld vstore2(short2 data, size_t offset, short *p);
11496void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
11497void __ovld vstore2(int2 data, size_t offset, int *p);
11498void __ovld vstore2(uint2 data, size_t offset, uint *p);
11499void __ovld vstore2(long2 data, size_t offset, long *p);
11500void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
11501void __ovld vstore2(float2 data, size_t offset, float *p);
11502void __ovld vstore3(char3 data, size_t offset, char *p);
11503void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
11504void __ovld vstore3(short3 data, size_t offset, short *p);
11505void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
11506void __ovld vstore3(int3 data, size_t offset, int *p);
11507void __ovld vstore3(uint3 data, size_t offset, uint *p);
11508void __ovld vstore3(long3 data, size_t offset, long *p);
11509void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
11510void __ovld vstore3(float3 data, size_t offset, float *p);
11511void __ovld vstore4(char4 data, size_t offset, char *p);
11512void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
11513void __ovld vstore4(short4 data, size_t offset, short *p);
11514void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
11515void __ovld vstore4(int4 data, size_t offset, int *p);
11516void __ovld vstore4(uint4 data, size_t offset, uint *p);
11517void __ovld vstore4(long4 data, size_t offset, long *p);
11518void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
11519void __ovld vstore4(float4 data, size_t offset, float *p);
11520void __ovld vstore8(char8 data, size_t offset, char *p);
11521void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
11522void __ovld vstore8(short8 data, size_t offset, short *p);
11523void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
11524void __ovld vstore8(int8 data, size_t offset, int *p);
11525void __ovld vstore8(uint8 data, size_t offset, uint *p);
11526void __ovld vstore8(long8 data, size_t offset, long *p);
11527void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
11528void __ovld vstore8(float8 data, size_t offset, float *p);
11529void __ovld vstore16(char16 data, size_t offset, char *p);
11530void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
11531void __ovld vstore16(short16 data, size_t offset, short *p);
11532void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
11533void __ovld vstore16(int16 data, size_t offset, int *p);
11534void __ovld vstore16(uint16 data, size_t offset, uint *p);
11535void __ovld vstore16(long16 data, size_t offset, long *p);
11536void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
11537void __ovld vstore16(float16 data, size_t offset, float *p);
11538#ifdef cl_khr_fp64
11539void __ovld vstore2(double2 data, size_t offset, double *p);
11540void __ovld vstore3(double3 data, size_t offset, double *p);
11541void __ovld vstore4(double4 data, size_t offset, double *p);
11542void __ovld vstore8(double8 data, size_t offset, double *p);
11543void __ovld vstore16(double16 data, size_t offset, double *p);
11544#endif //cl_khr_fp64
11545#ifdef cl_khr_fp16
11546void __ovld vstore(half data, size_t offset, half *p);
11547void __ovld vstore2(half2 data, size_t offset, half *p);
11548void __ovld vstore3(half3 data, size_t offset, half *p);
11549void __ovld vstore4(half4 data, size_t offset, half *p);
11550void __ovld vstore8(half8 data, size_t offset, half *p);
11551void __ovld vstore16(half16 data, size_t offset, half *p);
11552#endif //cl_khr_fp16
11553#else
11554void __ovld vstore2(char2 data, size_t offset, __global char *p);
11555void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
11556void __ovld vstore2(short2 data, size_t offset, __global short *p);
11557void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
11558void __ovld vstore2(int2 data, size_t offset, __global int *p);
11559void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
11560void __ovld vstore2(long2 data, size_t offset, __global long *p);
11561void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
11562void __ovld vstore2(float2 data, size_t offset, __global float *p);
11563void __ovld vstore3(char3 data, size_t offset, __global char *p);
11564void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
11565void __ovld vstore3(short3 data, size_t offset, __global short *p);
11566void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
11567void __ovld vstore3(int3 data, size_t offset, __global int *p);
11568void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
11569void __ovld vstore3(long3 data, size_t offset, __global long *p);
11570void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
11571void __ovld vstore3(float3 data, size_t offset, __global float *p);
11572void __ovld vstore4(char4 data, size_t offset, __global char *p);
11573void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
11574void __ovld vstore4(short4 data, size_t offset, __global short *p);
11575void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
11576void __ovld vstore4(int4 data, size_t offset, __global int *p);
11577void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
11578void __ovld vstore4(long4 data, size_t offset, __global long *p);
11579void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
11580void __ovld vstore4(float4 data, size_t offset, __global float *p);
11581void __ovld vstore8(char8 data, size_t offset, __global char *p);
11582void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
11583void __ovld vstore8(short8 data, size_t offset, __global short *p);
11584void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
11585void __ovld vstore8(int8 data, size_t offset, __global int *p);
11586void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
11587void __ovld vstore8(long8 data, size_t offset, __global long *p);
11588void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
11589void __ovld vstore8(float8 data, size_t offset, __global float *p);
11590void __ovld vstore16(char16 data, size_t offset, __global char *p);
11591void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
11592void __ovld vstore16(short16 data, size_t offset, __global short *p);
11593void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
11594void __ovld vstore16(int16 data, size_t offset, __global int *p);
11595void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
11596void __ovld vstore16(long16 data, size_t offset, __global long *p);
11597void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
11598void __ovld vstore16(float16 data, size_t offset, __global float *p);
11599void __ovld vstore2(char2 data, size_t offset, __local char *p);
11600void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
11601void __ovld vstore2(short2 data, size_t offset, __local short *p);
11602void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
11603void __ovld vstore2(int2 data, size_t offset, __local int *p);
11604void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
11605void __ovld vstore2(long2 data, size_t offset, __local long *p);
11606void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
11607void __ovld vstore2(float2 data, size_t offset, __local float *p);
11608void __ovld vstore3(char3 data, size_t offset, __local char *p);
11609void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
11610void __ovld vstore3(short3 data, size_t offset, __local short *p);
11611void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
11612void __ovld vstore3(int3 data, size_t offset, __local int *p);
11613void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
11614void __ovld vstore3(long3 data, size_t offset, __local long *p);
11615void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
11616void __ovld vstore3(float3 data, size_t offset, __local float *p);
11617void __ovld vstore4(char4 data, size_t offset, __local char *p);
11618void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
11619void __ovld vstore4(short4 data, size_t offset, __local short *p);
11620void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
11621void __ovld vstore4(int4 data, size_t offset, __local int *p);
11622void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
11623void __ovld vstore4(long4 data, size_t offset, __local long *p);
11624void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
11625void __ovld vstore4(float4 data, size_t offset, __local float *p);
11626void __ovld vstore8(char8 data, size_t offset, __local char *p);
11627void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
11628void __ovld vstore8(short8 data, size_t offset, __local short *p);
11629void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
11630void __ovld vstore8(int8 data, size_t offset, __local int *p);
11631void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
11632void __ovld vstore8(long8 data, size_t offset, __local long *p);
11633void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
11634void __ovld vstore8(float8 data, size_t offset, __local float *p);
11635void __ovld vstore16(char16 data, size_t offset, __local char *p);
11636void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
11637void __ovld vstore16(short16 data, size_t offset, __local short *p);
11638void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
11639void __ovld vstore16(int16 data, size_t offset, __local int *p);
11640void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
11641void __ovld vstore16(long16 data, size_t offset, __local long *p);
11642void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
11643void __ovld vstore16(float16 data, size_t offset, __local float *p);
11644void __ovld vstore2(char2 data, size_t offset, __private char *p);
11645void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
11646void __ovld vstore2(short2 data, size_t offset, __private short *p);
11647void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
11648void __ovld vstore2(int2 data, size_t offset, __private int *p);
11649void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
11650void __ovld vstore2(long2 data, size_t offset, __private long *p);
11651void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
11652void __ovld vstore2(float2 data, size_t offset, __private float *p);
11653void __ovld vstore3(char3 data, size_t offset, __private char *p);
11654void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
11655void __ovld vstore3(short3 data, size_t offset, __private short *p);
11656void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
11657void __ovld vstore3(int3 data, size_t offset, __private int *p);
11658void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
11659void __ovld vstore3(long3 data, size_t offset, __private long *p);
11660void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
11661void __ovld vstore3(float3 data, size_t offset, __private float *p);
11662void __ovld vstore4(char4 data, size_t offset, __private char *p);
11663void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
11664void __ovld vstore4(short4 data, size_t offset, __private short *p);
11665void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
11666void __ovld vstore4(int4 data, size_t offset, __private int *p);
11667void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
11668void __ovld vstore4(long4 data, size_t offset, __private long *p);
11669void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
11670void __ovld vstore4(float4 data, size_t offset, __private float *p);
11671void __ovld vstore8(char8 data, size_t offset, __private char *p);
11672void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
11673void __ovld vstore8(short8 data, size_t offset, __private short *p);
11674void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
11675void __ovld vstore8(int8 data, size_t offset, __private int *p);
11676void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
11677void __ovld vstore8(long8 data, size_t offset, __private long *p);
11678void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
11679void __ovld vstore8(float8 data, size_t offset, __private float *p);
11680void __ovld vstore16(char16 data, size_t offset, __private char *p);
11681void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
11682void __ovld vstore16(short16 data, size_t offset, __private short *p);
11683void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
11684void __ovld vstore16(int16 data, size_t offset, __private int *p);
11685void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
11686void __ovld vstore16(long16 data, size_t offset, __private long *p);
11687void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
11688void __ovld vstore16(float16 data, size_t offset, __private float *p);
11689#ifdef cl_khr_fp64
11690void __ovld vstore2(double2 data, size_t offset, __global double *p);
11691void __ovld vstore3(double3 data, size_t offset, __global double *p);
11692void __ovld vstore4(double4 data, size_t offset, __global double *p);
11693void __ovld vstore8(double8 data, size_t offset, __global double *p);
11694void __ovld vstore16(double16 data, size_t offset, __global double *p);
11695void __ovld vstore2(double2 data, size_t offset, __local double *p);
11696void __ovld vstore3(double3 data, size_t offset, __local double *p);
11697void __ovld vstore4(double4 data, size_t offset, __local double *p);
11698void __ovld vstore8(double8 data, size_t offset, __local double *p);
11699void __ovld vstore16(double16 data, size_t offset, __local double *p);
11700void __ovld vstore2(double2 data, size_t offset, __private double *p);
11701void __ovld vstore3(double3 data, size_t offset, __private double *p);
11702void __ovld vstore4(double4 data, size_t offset, __private double *p);
11703void __ovld vstore8(double8 data, size_t offset, __private double *p);
11704void __ovld vstore16(double16 data, size_t offset, __private double *p);
11705#endif //cl_khr_fp64
11706#ifdef cl_khr_fp16
11707void __ovld vstore(half data, size_t offset, __global half *p);
11708void __ovld vstore2(half2 data, size_t offset, __global half *p);
11709void __ovld vstore3(half3 data, size_t offset, __global half *p);
11710void __ovld vstore4(half4 data, size_t offset, __global half *p);
11711void __ovld vstore8(half8 data, size_t offset, __global half *p);
11712void __ovld vstore16(half16 data, size_t offset, __global half *p);
11713void __ovld vstore(half data, size_t offset, __local half *p);
11714void __ovld vstore2(half2 data, size_t offset, __local half *p);
11715void __ovld vstore3(half3 data, size_t offset, __local half *p);
11716void __ovld vstore4(half4 data, size_t offset, __local half *p);
11717void __ovld vstore8(half8 data, size_t offset, __local half *p);
11718void __ovld vstore16(half16 data, size_t offset, __local half *p);
11719void __ovld vstore(half data, size_t offset, __private half *p);
11720void __ovld vstore2(half2 data, size_t offset, __private half *p);
11721void __ovld vstore3(half3 data, size_t offset, __private half *p);
11722void __ovld vstore4(half4 data, size_t offset, __private half *p);
11723void __ovld vstore8(half8 data, size_t offset, __private half *p);
11724void __ovld vstore16(half16 data, size_t offset, __private half *p);
11725#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011726#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011727
11728/**
11729 * Read sizeof (half) bytes of data from address
11730 * (p + offset). The data read is interpreted as a
11731 * half value. The half value is converted to a
11732 * float value and the float value is returned.
11733 * The read address computed as (p + offset)
11734 * must be 16-bit aligned.
11735 */
11736float __ovld vload_half(size_t offset, const __constant half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011737#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011738float __ovld vload_half(size_t offset, const half *p);
11739#else
11740float __ovld vload_half(size_t offset, const __global half *p);
11741float __ovld vload_half(size_t offset, const __local half *p);
11742float __ovld vload_half(size_t offset, const __private half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011743#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011744
11745/**
11746 * Read sizeof (halfn) bytes of data from address
11747 * (p + (offset * n)). The data read is interpreted
11748 * as a halfn value. The halfn value read is
11749 * converted to a floatn value and the floatn
11750 * value is returned. The read address computed
11751 * as (p + (offset * n)) must be 16-bit aligned.
11752 */
11753float2 __ovld vload_half2(size_t offset, const __constant half *p);
11754float3 __ovld vload_half3(size_t offset, const __constant half *p);
11755float4 __ovld vload_half4(size_t offset, const __constant half *p);
11756float8 __ovld vload_half8(size_t offset, const __constant half *p);
11757float16 __ovld vload_half16(size_t offset, const __constant half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011758#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011759float2 __ovld vload_half2(size_t offset, const half *p);
11760float3 __ovld vload_half3(size_t offset, const half *p);
11761float4 __ovld vload_half4(size_t offset, const half *p);
11762float8 __ovld vload_half8(size_t offset, const half *p);
11763float16 __ovld vload_half16(size_t offset, const half *p);
11764#else
11765float2 __ovld vload_half2(size_t offset, const __global half *p);
11766float3 __ovld vload_half3(size_t offset, const __global half *p);
11767float4 __ovld vload_half4(size_t offset, const __global half *p);
11768float8 __ovld vload_half8(size_t offset, const __global half *p);
11769float16 __ovld vload_half16(size_t offset, const __global half *p);
11770float2 __ovld vload_half2(size_t offset, const __local half *p);
11771float3 __ovld vload_half3(size_t offset, const __local half *p);
11772float4 __ovld vload_half4(size_t offset, const __local half *p);
11773float8 __ovld vload_half8(size_t offset, const __local half *p);
11774float16 __ovld vload_half16(size_t offset, const __local half *p);
11775float2 __ovld vload_half2(size_t offset, const __private half *p);
11776float3 __ovld vload_half3(size_t offset, const __private half *p);
11777float4 __ovld vload_half4(size_t offset, const __private half *p);
11778float8 __ovld vload_half8(size_t offset, const __private half *p);
11779float16 __ovld vload_half16(size_t offset, const __private half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011780#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011781
11782/**
11783 * The float value given by data is first
11784 * converted to a half value using the appropriate
11785 * rounding mode. The half value is then written
11786 * to address computed as (p + offset). The
11787 * address computed as (p + offset) must be 16-
11788 * bit aligned.
11789 * vstore_half use the current rounding mode.
11790 * The default current rounding mode is round to
11791 * nearest even.
11792 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011793#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011794void __ovld vstore_half(float data, size_t offset, half *p);
11795void __ovld vstore_half_rte(float data, size_t offset, half *p);
11796void __ovld vstore_half_rtz(float data, size_t offset, half *p);
11797void __ovld vstore_half_rtp(float data, size_t offset, half *p);
11798void __ovld vstore_half_rtn(float data, size_t offset, half *p);
11799#ifdef cl_khr_fp64
11800void __ovld vstore_half(double data, size_t offset, half *p);
11801void __ovld vstore_half_rte(double data, size_t offset, half *p);
11802void __ovld vstore_half_rtz(double data, size_t offset, half *p);
11803void __ovld vstore_half_rtp(double data, size_t offset, half *p);
11804void __ovld vstore_half_rtn(double data, size_t offset, half *p);
11805#endif //cl_khr_fp64
11806#else
11807void __ovld vstore_half(float data, size_t offset, __global half *p);
11808void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
11809void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
11810void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
11811void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
11812void __ovld vstore_half(float data, size_t offset, __local half *p);
11813void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
11814void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
11815void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
11816void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
11817void __ovld vstore_half(float data, size_t offset, __private half *p);
11818void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
11819void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
11820void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
11821void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
11822#ifdef cl_khr_fp64
11823void __ovld vstore_half(double data, size_t offset, __global half *p);
11824void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
11825void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
11826void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
11827void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
11828void __ovld vstore_half(double data, size_t offset, __local half *p);
11829void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
11830void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
11831void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
11832void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
11833void __ovld vstore_half(double data, size_t offset, __private half *p);
11834void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
11835void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
11836void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
11837void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11838#endif //cl_khr_fp64
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011839#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011840
11841/**
11842 * The floatn value given by data is converted to
11843 * a halfn value using the appropriate rounding
11844 * mode. The halfn value is then written to
11845 * address computed as (p + (offset * n)). The
11846 * address computed as (p + (offset * n)) must be
11847 * 16-bit aligned.
11848 * vstore_halfn uses the current rounding mode.
11849 * The default current rounding mode is round to
11850 * nearest even.
11851 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011852#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011853void __ovld vstore_half2(float2 data, size_t offset, half *p);
11854void __ovld vstore_half3(float3 data, size_t offset, half *p);
11855void __ovld vstore_half4(float4 data, size_t offset, half *p);
11856void __ovld vstore_half8(float8 data, size_t offset, half *p);
11857void __ovld vstore_half16(float16 data, size_t offset, half *p);
11858void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
11859void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
11860void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
11861void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
11862void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
11863void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
11864void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
11865void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
11866void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
11867void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
11868void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
11869void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
11870void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
11871void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
11872void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
11873void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
11874void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
11875void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
11876void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
11877void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
11878#ifdef cl_khr_fp64
11879void __ovld vstore_half2(double2 data, size_t offset, half *p);
11880void __ovld vstore_half3(double3 data, size_t offset, half *p);
11881void __ovld vstore_half4(double4 data, size_t offset, half *p);
11882void __ovld vstore_half8(double8 data, size_t offset, half *p);
11883void __ovld vstore_half16(double16 data, size_t offset, half *p);
11884void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
11885void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
11886void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
11887void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
11888void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
11889void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
11890void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
11891void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
11892void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
11893void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
11894void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
11895void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
11896void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
11897void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
11898void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
11899void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
11900void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
11901void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
11902void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
11903void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
11904#endif //cl_khr_fp64
11905#else
11906void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
11907void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
11908void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
11909void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
11910void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
11911void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
11912void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
11913void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
11914void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
11915void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
11916void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
11917void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
11918void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
11919void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
11920void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
11921void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
11922void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
11923void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
11924void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
11925void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
11926void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
11927void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
11928void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
11929void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
11930void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
11931void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
11932void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
11933void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
11934void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
11935void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
11936void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
11937void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
11938void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
11939void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
11940void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
11941void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
11942void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
11943void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
11944void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
11945void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
11946void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
11947void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
11948void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
11949void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
11950void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
11951void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
11952void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
11953void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
11954void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
11955void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
11956void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
11957void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
11958void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
11959void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
11960void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
11961void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
11962void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
11963void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
11964void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
11965void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
11966void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
11967void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
11968void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
11969void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
11970void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
11971void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
11972void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
11973void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
11974void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
11975void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
11976void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
11977void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
11978void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
11979void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
11980void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
11981#ifdef cl_khr_fp64
11982void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
11983void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
11984void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
11985void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
11986void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
11987void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
11988void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
11989void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
11990void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
11991void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
11992void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
11993void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
11994void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
11995void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
11996void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
11997void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
11998void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
11999void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
12000void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
12001void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
12002void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
12003void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
12004void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
12005void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
12006void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
12007void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
12008void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
12009void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
12010void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
12011void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
12012void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
12013void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
12014void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
12015void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
12016void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
12017void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
12018void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
12019void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
12020void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
12021void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
12022void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
12023void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
12024void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
12025void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
12026void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
12027void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
12028void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
12029void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
12030void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
12031void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
12032void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
12033void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
12034void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
12035void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
12036void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
12037void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
12038void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
12039void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
12040void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
12041void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
12042void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
12043void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
12044void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
12045void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
12046void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
12047void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
12048void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
12049void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
12050void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
12051void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
12052void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
12053void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
12054void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12055void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12056void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12057#endif //cl_khr_fp64
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012058#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012059
12060/**
12061 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
12062 * bytes of data from address (p + (offset * n)).
12063 * The data read is interpreted as a halfn value.
12064 * The halfn value read is converted to a floatn
12065 * value and the floatn value is returned.
12066 * The address computed as (p + (offset * n))
12067 * must be aligned to sizeof (halfn) bytes.
12068 * For n = 3, vloada_half3 reads a half3 from
12069 * address (p + (offset * 4)) and returns a float3.
12070 * The address computed as (p + (offset * 4))
12071 * must be aligned to sizeof (half) * 4 bytes.
12072 */
Logan Chien2833ffb2018-10-09 10:03:24 +080012073float2 __ovld vloada_half2(size_t offset, const __constant half *p);
12074float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12075float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12076float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12077float16 __ovld vloada_half16(size_t offset, const __constant half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012078#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012079float2 __ovld vloada_half2(size_t offset, const half *p);
12080float3 __ovld vloada_half3(size_t offset, const half *p);
12081float4 __ovld vloada_half4(size_t offset, const half *p);
12082float8 __ovld vloada_half8(size_t offset, const half *p);
12083float16 __ovld vloada_half16(size_t offset, const half *p);
12084#else
Logan Chien2833ffb2018-10-09 10:03:24 +080012085float2 __ovld vloada_half2(size_t offset, const __global half *p);
12086float3 __ovld vloada_half3(size_t offset, const __global half *p);
12087float4 __ovld vloada_half4(size_t offset, const __global half *p);
12088float8 __ovld vloada_half8(size_t offset, const __global half *p);
12089float16 __ovld vloada_half16(size_t offset, const __global half *p);
Logan Chien2833ffb2018-10-09 10:03:24 +080012090float2 __ovld vloada_half2(size_t offset, const __local half *p);
12091float3 __ovld vloada_half3(size_t offset, const __local half *p);
12092float4 __ovld vloada_half4(size_t offset, const __local half *p);
12093float8 __ovld vloada_half8(size_t offset, const __local half *p);
12094float16 __ovld vloada_half16(size_t offset, const __local half *p);
Logan Chien2833ffb2018-10-09 10:03:24 +080012095float2 __ovld vloada_half2(size_t offset, const __private half *p);
12096float3 __ovld vloada_half3(size_t offset, const __private half *p);
12097float4 __ovld vloada_half4(size_t offset, const __private half *p);
12098float8 __ovld vloada_half8(size_t offset, const __private half *p);
12099float16 __ovld vloada_half16(size_t offset, const __private half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012100#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012101
12102/**
12103 * The floatn value given by data is converted to
12104 * a halfn value using the appropriate rounding
12105 * mode.
12106 * For n = 1, 2, 4, 8 and 16, the halfn value is
12107 * written to the address computed as (p + (offset
12108 * * n)). The address computed as (p + (offset *
12109 * n)) must be aligned to sizeof (halfn) bytes.
12110 * For n = 3, the half3 value is written to the
12111 * address computed as (p + (offset * 4)). The
12112 * address computed as (p + (offset * 4)) must be
12113 * aligned to sizeof (half) * 4 bytes.
12114 * vstorea_halfn uses the current rounding
12115 * mode. The default current rounding mode is
12116 * round to nearest even.
12117 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012118#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012119void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12120void __ovld vstorea_half3(float3 data, size_t offset, half *p);
12121void __ovld vstorea_half4(float4 data, size_t offset, half *p);
12122void __ovld vstorea_half8(float8 data, size_t offset, half *p);
12123void __ovld vstorea_half16(float16 data, size_t offset, half *p);
12124
Logan Chien2833ffb2018-10-09 10:03:24 +080012125void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
12126void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
12127void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
12128void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
12129void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
12130
Logan Chien2833ffb2018-10-09 10:03:24 +080012131void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
12132void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
12133void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
12134void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
12135void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
12136
Logan Chien2833ffb2018-10-09 10:03:24 +080012137void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
12138void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
12139void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
12140void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
12141void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
12142
Logan Chien2833ffb2018-10-09 10:03:24 +080012143void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
12144void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
12145void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
12146void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
12147void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
12148
12149#ifdef cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080012150void __ovld vstorea_half2(double2 data, size_t offset, half *p);
12151void __ovld vstorea_half3(double3 data, size_t offset, half *p);
12152void __ovld vstorea_half4(double4 data, size_t offset, half *p);
12153void __ovld vstorea_half8(double8 data, size_t offset, half *p);
12154void __ovld vstorea_half16(double16 data, size_t offset, half *p);
12155
Logan Chien2833ffb2018-10-09 10:03:24 +080012156void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
12157void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
12158void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
12159void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
12160void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
12161
Logan Chien2833ffb2018-10-09 10:03:24 +080012162void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
12163void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
12164void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
12165void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
12166void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
12167
Logan Chien2833ffb2018-10-09 10:03:24 +080012168void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
12169void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
12170void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
12171void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
12172void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
12173
Logan Chien2833ffb2018-10-09 10:03:24 +080012174void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
12175void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
12176void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
12177void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
12178void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
12179#endif //cl_khr_fp64
12180
12181#else
Logan Chien2833ffb2018-10-09 10:03:24 +080012182void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
12183void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
12184void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
12185void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
12186void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
12187
Logan Chien2833ffb2018-10-09 10:03:24 +080012188void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
12189void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
12190void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
12191void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
12192void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
12193
Logan Chien2833ffb2018-10-09 10:03:24 +080012194void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
12195void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
12196void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
12197void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
12198void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
12199
Logan Chien2833ffb2018-10-09 10:03:24 +080012200void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
12201void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
12202void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
12203void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
12204void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
12205
Logan Chien2833ffb2018-10-09 10:03:24 +080012206void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
12207void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
12208void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
12209void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
12210void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
12211
Logan Chien2833ffb2018-10-09 10:03:24 +080012212void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
12213void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
12214void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
12215void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
12216void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
12217
Logan Chien2833ffb2018-10-09 10:03:24 +080012218void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
12219void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
12220void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
12221void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
12222void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
12223
Logan Chien2833ffb2018-10-09 10:03:24 +080012224void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
12225void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
12226void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
12227void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
12228void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
12229
Logan Chien2833ffb2018-10-09 10:03:24 +080012230void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
12231void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
12232void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
12233void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
12234void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
12235
Logan Chien2833ffb2018-10-09 10:03:24 +080012236void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
12237void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
12238void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
12239void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
12240void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
12241
Logan Chien2833ffb2018-10-09 10:03:24 +080012242void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
12243void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
12244void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
12245void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
12246void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
12247
Logan Chien2833ffb2018-10-09 10:03:24 +080012248void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
12249void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
12250void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
12251void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
12252void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
12253
Logan Chien2833ffb2018-10-09 10:03:24 +080012254void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
12255void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
12256void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
12257void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
12258void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
12259
Logan Chien2833ffb2018-10-09 10:03:24 +080012260void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
12261void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
12262void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
12263void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
12264void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
12265
Logan Chien2833ffb2018-10-09 10:03:24 +080012266void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
12267void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
12268void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
12269void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
12270void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
12271
12272#ifdef cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080012273void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
12274void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
12275void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
12276void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
12277void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
12278
Logan Chien2833ffb2018-10-09 10:03:24 +080012279void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
12280void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
12281void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
12282void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
12283void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
12284
Logan Chien2833ffb2018-10-09 10:03:24 +080012285void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
12286void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
12287void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
12288void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
12289void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
12290
Logan Chien2833ffb2018-10-09 10:03:24 +080012291void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
12292void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
12293void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
12294void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
12295void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
12296
Logan Chien2833ffb2018-10-09 10:03:24 +080012297void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
12298void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
12299void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
12300void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
12301void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
12302
Logan Chien2833ffb2018-10-09 10:03:24 +080012303void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
12304void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
12305void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
12306void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
12307void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
12308
Logan Chien2833ffb2018-10-09 10:03:24 +080012309void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
12310void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
12311void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
12312void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
12313void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
12314
Logan Chien2833ffb2018-10-09 10:03:24 +080012315void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
12316void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
12317void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
12318void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
12319void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
12320
Logan Chien2833ffb2018-10-09 10:03:24 +080012321void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
12322void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
12323void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
12324void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
12325void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
12326
Logan Chien2833ffb2018-10-09 10:03:24 +080012327void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
12328void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
12329void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
12330void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
12331void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
12332
Logan Chien2833ffb2018-10-09 10:03:24 +080012333void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
12334void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
12335void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
12336void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
12337void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
12338
Logan Chien2833ffb2018-10-09 10:03:24 +080012339void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
12340void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
12341void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
12342void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
12343void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
12344
Logan Chien2833ffb2018-10-09 10:03:24 +080012345void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
12346void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
12347void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
12348void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
12349void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
12350
Logan Chien2833ffb2018-10-09 10:03:24 +080012351void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
12352void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
12353void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
12354void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
12355void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
12356
Logan Chien2833ffb2018-10-09 10:03:24 +080012357void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
12358void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
12359void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12360void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12361void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12362#endif //cl_khr_fp64
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012363#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012364
12365// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12366
Logan Chien2833ffb2018-10-09 10:03:24 +080012367/**
12368 * All work-items in a work-group executing the kernel
12369 * on a processor must execute this function before any
12370 * are allowed to continue execution beyond the barrier.
12371 * This function must be encountered by all work-items in
12372 * a work-group executing the kernel.
12373 * If barrier is inside a conditional statement, then all
12374 * work-items must enter the conditional if any work-item
12375 * enters the conditional statement and executes the
12376 * barrier.
12377 * If barrer is inside a loop, all work-items must execute
12378 * the barrier for each iteration of the loop before any are
12379 * allowed to continue execution beyond the barrier.
12380 * The barrier function also queues a memory fence
12381 * (reads and writes) to ensure correct ordering of
12382 * memory operations to local or global memory.
12383 * The flags argument specifies the memory address space
12384 * and can be set to a combination of the following literal
12385 * values.
12386 * CLK_LOCAL_MEM_FENCE - The barrier function
12387 * will either flush any variables stored in local memory
12388 * or queue a memory fence to ensure correct ordering of
12389 * memory operations to local memory.
12390 * CLK_GLOBAL_MEM_FENCE - The barrier function
12391 * will queue a memory fence to ensure correct ordering
12392 * of memory operations to global memory. This can be
12393 * useful when work-items, for example, write to buffer or
12394 * image objects and then want to read the updated data.
12395 */
12396
Logan Chien55afb0a2018-10-15 10:42:14 +080012397void __ovld __conv barrier(cl_mem_fence_flags flags);
Logan Chien2833ffb2018-10-09 10:03:24 +080012398
Logan Chienbedbf4f2020-01-06 19:35:19 -080012399#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080012400void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
12401void __ovld __conv work_group_barrier(cl_mem_fence_flags flags);
Logan Chienbedbf4f2020-01-06 19:35:19 -080012402#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080012403
12404// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
12405
12406/**
12407 * Orders loads and stores of a work-item
12408 * executing a kernel. This means that loads
12409 * and stores preceding the mem_fence will
12410 * be committed to memory before any loads
12411 * and stores following the mem_fence.
12412 * The flags argument specifies the memory
12413 * address space and can be set to a
12414 * combination of the following literal
12415 * values:
12416 * CLK_LOCAL_MEM_FENCE
12417 * CLK_GLOBAL_MEM_FENCE.
12418 */
12419void __ovld mem_fence(cl_mem_fence_flags flags);
12420
12421/**
12422 * Read memory barrier that orders only
12423 * loads.
12424 * The flags argument specifies the memory
Logan Chien55afb0a2018-10-15 10:42:14 +080012425 * address space and can be set to a
Logan Chien2833ffb2018-10-09 10:03:24 +080012426 * combination of the following literal
12427 * values:
12428 * CLK_LOCAL_MEM_FENCE
12429 * CLK_GLOBAL_MEM_FENCE.
12430 */
12431void __ovld read_mem_fence(cl_mem_fence_flags flags);
12432
12433/**
12434 * Write memory barrier that orders only
12435 * stores.
12436 * The flags argument specifies the memory
Logan Chien55afb0a2018-10-15 10:42:14 +080012437 * address space and can be set to a
Logan Chien2833ffb2018-10-09 10:03:24 +080012438 * combination of the following literal
12439 * values:
12440 * CLK_LOCAL_MEM_FENCE
12441 * CLK_GLOBAL_MEM_FENCE.
12442 */
12443void __ovld write_mem_fence(cl_mem_fence_flags flags);
12444
12445// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
12446
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012447#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012448cl_mem_fence_flags __ovld get_fence(const void *ptr);
12449cl_mem_fence_flags __ovld get_fence(void *ptr);
12450
Logan Chien55afb0a2018-10-15 10:42:14 +080012451/**
Logan Chien2833ffb2018-10-09 10:03:24 +080012452 * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
12453 * and checked in Sema since they should be declared as
12454 * addr gentype* to_addr (gentype*);
12455 * where gentype is builtin type or user defined type.
12456 */
12457
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012458#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012459
12460// 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
12461
12462/**
12463 * event_t async_work_group_copy (
12464 * __global gentype *dst,
12465 * const __local gentype *src,
12466 * size_t num_elements,
12467 * event_t event)
12468 * Perform an async copy of num_elements
12469 * gentype elements from src to dst. The async
12470 * copy is performed by all work-items in a workgroup
12471 * and this built-in function must therefore
12472 * be encountered by all work-items in a workgroup
12473 * executing the kernel with the same
12474 * argument values; otherwise the results are
12475 * undefined.
12476 * Returns an event object that can be used by
12477 * wait_group_events to wait for the async copy
12478 * to finish. The event argument can also be used
12479 * to associate the async_work_group_copy with
12480 * a previous async copy allowing an event to be
12481 * shared by multiple async copies; otherwise event
12482 * should be zero.
12483 * If event argument is non-zero, the event object
12484 * supplied in event argument will be returned.
12485 * This function does not perform any implicit
12486 * synchronization of source data such as using a
12487 * barrier before performing the copy.
12488 */
12489event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
12490event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
12491event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
12492event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
12493event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
12494event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
12495event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
12496event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
12497event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
12498event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
12499event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
12500event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
12501event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
12502event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
12503event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
12504event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
12505event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
12506event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
12507event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
12508event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
12509event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
12510event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
12511event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
12512event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
12513event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
12514event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
12515event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
12516event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
12517event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
12518event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
12519event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
12520event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
12521event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
12522event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
12523event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
12524event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
12525event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
12526event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
12527event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
12528event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
12529event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
12530event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
12531event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
12532event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
12533event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
12534event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
12535event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
12536event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
12537event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
12538event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
12539event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
12540event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
12541event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
12542event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
12543event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
12544event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
12545event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
12546event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
12547event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
12548event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
12549event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
12550event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
12551event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
12552event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
12553event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
12554event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
12555event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
12556event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
12557event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
12558event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
12559event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
12560event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
12561event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
12562event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
12563event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
12564event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
12565event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
12566event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
12567event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
12568event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
12569event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
12570event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
12571event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
12572event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
12573event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
12574event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
12575event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
12576event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
12577event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
12578event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
12579event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
12580event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
12581event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
12582event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
12583event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
12584event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
12585event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
12586event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
12587event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
12588event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
12589event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
12590event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
12591event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
12592event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
12593event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
12594event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
12595event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
12596event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
12597#ifdef cl_khr_fp64
12598event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
12599event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
12600event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
12601event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
12602event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
12603event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
12604event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
12605event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
12606event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
12607event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
12608event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
12609event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
12610#endif //cl_khr_fp64
12611#ifdef cl_khr_fp16
12612event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
12613event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
12614event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
12615event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
12616event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
12617event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
12618event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
12619event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
12620event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
12621event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
12622event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
12623event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
12624#endif //cl_khr_fp16
12625
12626/**
12627 * Perform an async gather of num_elements
12628 * gentype elements from src to dst. The
12629 * src_stride is the stride in elements for each
12630 * gentype element read from src. The dst_stride
12631 * is the stride in elements for each gentype
12632 * element written to dst. The async gather is
12633 * performed by all work-items in a work-group.
12634 * This built-in function must therefore be
12635 * encountered by all work-items in a work-group
12636 * executing the kernel with the same argument
12637 * values; otherwise the results are undefined.
12638 * Returns an event object that can be used by
12639 * wait_group_events to wait for the async copy
12640 * to finish. The event argument can also be used
12641 * to associate the
12642 * async_work_group_strided_copy with a
12643 * previous async copy allowing an event to be
12644 * shared by multiple async copies; otherwise event
12645 * should be zero.
12646 * If event argument is non-zero, the event object
12647 * supplied in event argument will be returned.
12648 * This function does not perform any implicit
12649 * synchronization of source data such as using a
12650 * barrier before performing the copy.
12651 */
12652event_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);
12653event_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);
12654event_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);
12655event_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);
12656event_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);
12657event_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);
12658event_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);
12659event_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);
12660event_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);
12661event_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);
12662event_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);
12663event_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);
12664event_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);
12665event_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);
12666event_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);
12667event_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);
12668event_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);
12669event_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);
12670event_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);
12671event_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);
12672event_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);
12673event_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);
12674event_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);
12675event_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);
12676event_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);
12677event_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);
12678event_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);
12679event_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);
12680event_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);
12681event_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);
12682event_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);
12683event_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);
12684event_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);
12685event_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);
12686event_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);
12687event_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);
12688event_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);
12689event_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);
12690event_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);
12691event_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);
12692event_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);
12693event_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);
12694event_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);
12695event_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);
12696event_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);
12697event_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);
12698event_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);
12699event_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);
12700event_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);
12701event_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);
12702event_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);
12703event_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);
12704event_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);
12705event_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);
12706event_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);
12707event_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);
12708event_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);
12709event_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);
12710event_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);
12711event_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);
12712event_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);
12713event_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);
12714event_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);
12715event_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);
12716event_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);
12717event_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);
12718event_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);
12719event_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);
12720event_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);
12721event_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);
12722event_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);
12723event_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);
12724event_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);
12725event_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);
12726event_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);
12727event_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);
12728event_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);
12729event_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);
12730event_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);
12731event_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);
12732event_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);
12733event_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);
12734event_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);
12735event_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);
12736event_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);
12737event_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);
12738event_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);
12739event_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);
12740event_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);
12741event_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);
12742event_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);
12743event_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);
12744event_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);
12745event_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);
12746event_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);
12747event_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);
12748event_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);
12749event_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);
12750event_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);
12751event_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);
12752event_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);
12753event_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);
12754event_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);
12755event_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);
12756event_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);
12757event_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);
12758event_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);
12759event_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);
12760#ifdef cl_khr_fp64
12761event_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);
12762event_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);
12763event_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);
12764event_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);
12765event_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);
12766event_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);
12767event_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);
12768event_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);
12769event_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);
12770event_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);
12771event_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);
12772event_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);
12773#endif //cl_khr_fp64
12774#ifdef cl_khr_fp16
12775event_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);
12776event_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);
12777event_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);
12778event_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);
12779event_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);
12780event_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);
12781event_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);
12782event_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);
12783event_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);
12784event_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);
12785event_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);
12786event_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);
12787#endif //cl_khr_fp16
12788
12789/**
12790 * Wait for events that identify the
12791 * async_work_group_copy operations to
12792 * complete. The event objects specified in
12793 * event_list will be released after the wait is
12794 * performed.
12795 * This function must be encountered by all workitems
12796 * in a work-group executing the kernel with
12797 * the same num_events and event objects specified
12798 * in event_list; otherwise the results are undefined.
12799 */
12800void __ovld wait_group_events(int num_events, event_t *event_list);
12801
12802/**
12803 * Prefetch num_elements * sizeof(gentype)
12804 * bytes into the global cache. The prefetch
12805 * instruction is applied to a work-item in a workgroup
12806 * and does not affect the functional
12807 * behavior of the kernel.
12808 */
12809void __ovld prefetch(const __global char *p, size_t num_elements);
12810void __ovld prefetch(const __global uchar *p, size_t num_elements);
12811void __ovld prefetch(const __global short *p, size_t num_elements);
12812void __ovld prefetch(const __global ushort *p, size_t num_elements);
12813void __ovld prefetch(const __global int *p, size_t num_elements);
12814void __ovld prefetch(const __global uint *p, size_t num_elements);
12815void __ovld prefetch(const __global long *p, size_t num_elements);
12816void __ovld prefetch(const __global ulong *p, size_t num_elements);
12817void __ovld prefetch(const __global float *p, size_t num_elements);
12818void __ovld prefetch(const __global char2 *p, size_t num_elements);
12819void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
12820void __ovld prefetch(const __global short2 *p, size_t num_elements);
12821void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
12822void __ovld prefetch(const __global int2 *p, size_t num_elements);
12823void __ovld prefetch(const __global uint2 *p, size_t num_elements);
12824void __ovld prefetch(const __global long2 *p, size_t num_elements);
12825void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
12826void __ovld prefetch(const __global float2 *p, size_t num_elements);
12827void __ovld prefetch(const __global char3 *p, size_t num_elements);
12828void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
12829void __ovld prefetch(const __global short3 *p, size_t num_elements);
12830void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
12831void __ovld prefetch(const __global int3 *p, size_t num_elements);
12832void __ovld prefetch(const __global uint3 *p, size_t num_elements);
12833void __ovld prefetch(const __global long3 *p, size_t num_elements);
12834void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
12835void __ovld prefetch(const __global float3 *p, size_t num_elements);
12836void __ovld prefetch(const __global char4 *p, size_t num_elements);
12837void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
12838void __ovld prefetch(const __global short4 *p, size_t num_elements);
12839void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
12840void __ovld prefetch(const __global int4 *p, size_t num_elements);
12841void __ovld prefetch(const __global uint4 *p, size_t num_elements);
12842void __ovld prefetch(const __global long4 *p, size_t num_elements);
12843void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
12844void __ovld prefetch(const __global float4 *p, size_t num_elements);
12845void __ovld prefetch(const __global char8 *p, size_t num_elements);
12846void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
12847void __ovld prefetch(const __global short8 *p, size_t num_elements);
12848void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
12849void __ovld prefetch(const __global int8 *p, size_t num_elements);
12850void __ovld prefetch(const __global uint8 *p, size_t num_elements);
12851void __ovld prefetch(const __global long8 *p, size_t num_elements);
12852void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
12853void __ovld prefetch(const __global float8 *p, size_t num_elements);
12854void __ovld prefetch(const __global char16 *p, size_t num_elements);
12855void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
12856void __ovld prefetch(const __global short16 *p, size_t num_elements);
12857void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
12858void __ovld prefetch(const __global int16 *p, size_t num_elements);
12859void __ovld prefetch(const __global uint16 *p, size_t num_elements);
12860void __ovld prefetch(const __global long16 *p, size_t num_elements);
12861void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
12862void __ovld prefetch(const __global float16 *p, size_t num_elements);
12863#ifdef cl_khr_fp64
12864void __ovld prefetch(const __global double *p, size_t num_elements);
12865void __ovld prefetch(const __global double2 *p, size_t num_elements);
12866void __ovld prefetch(const __global double3 *p, size_t num_elements);
12867void __ovld prefetch(const __global double4 *p, size_t num_elements);
12868void __ovld prefetch(const __global double8 *p, size_t num_elements);
12869void __ovld prefetch(const __global double16 *p, size_t num_elements);
12870#endif //cl_khr_fp64
12871#ifdef cl_khr_fp16
12872void __ovld prefetch(const __global half *p, size_t num_elements);
12873void __ovld prefetch(const __global half2 *p, size_t num_elements);
12874void __ovld prefetch(const __global half3 *p, size_t num_elements);
12875void __ovld prefetch(const __global half4 *p, size_t num_elements);
12876void __ovld prefetch(const __global half8 *p, size_t num_elements);
12877void __ovld prefetch(const __global half16 *p, size_t num_elements);
12878#endif // cl_khr_fp16
12879
12880// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
12881
12882#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
12883#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
12884#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
12885#endif
12886/**
12887 * Read the 32-bit value (referred to as old)
12888 * stored at location pointed by p. Compute
12889 * (old + val) and store result at location
12890 * pointed by p. The function returns old.
12891 */
12892int __ovld atomic_add(volatile __global int *p, int val);
12893unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
12894int __ovld atomic_add(volatile __local int *p, int val);
12895unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070012896#ifdef __OPENCL_CPP_VERSION__
12897int __ovld atomic_add(volatile int *p, int val);
12898unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val);
12899#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012900
12901#if defined(cl_khr_global_int32_base_atomics)
12902int __ovld atom_add(volatile __global int *p, int val);
12903unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
12904#endif
12905#if defined(cl_khr_local_int32_base_atomics)
12906int __ovld atom_add(volatile __local int *p, int val);
12907unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
12908#endif
12909
12910#if defined(cl_khr_int64_base_atomics)
12911long __ovld atom_add(volatile __global long *p, long val);
12912unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
12913long __ovld atom_add(volatile __local long *p, long val);
12914unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
12915#endif
12916
12917/**
12918 * Read the 32-bit value (referred to as old) stored at location pointed by p.
12919 * Compute (old - val) and store result at location pointed by p. The function
12920 * returns old.
12921 */
12922int __ovld atomic_sub(volatile __global int *p, int val);
12923unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
12924int __ovld atomic_sub(volatile __local int *p, int val);
12925unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070012926#ifdef __OPENCL_CPP_VERSION__
12927int __ovld atomic_sub(volatile int *p, int val);
12928unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val);
12929#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012930
12931#if defined(cl_khr_global_int32_base_atomics)
12932int __ovld atom_sub(volatile __global int *p, int val);
12933unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
12934#endif
12935#if defined(cl_khr_local_int32_base_atomics)
12936int __ovld atom_sub(volatile __local int *p, int val);
12937unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
12938#endif
12939
12940#if defined(cl_khr_int64_base_atomics)
12941long __ovld atom_sub(volatile __global long *p, long val);
12942unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
12943long __ovld atom_sub(volatile __local long *p, long val);
12944unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
12945#endif
12946
12947/**
12948 * Swaps the old value stored at location p
12949 * with new value given by val. Returns old
12950 * value.
12951 */
12952int __ovld atomic_xchg(volatile __global int *p, int val);
12953unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
12954int __ovld atomic_xchg(volatile __local int *p, int val);
12955unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
12956float __ovld atomic_xchg(volatile __global float *p, float val);
12957float __ovld atomic_xchg(volatile __local float *p, float val);
Logan Chiendf4f7662019-09-04 16:45:23 -070012958#ifdef __OPENCL_CPP_VERSION__
12959int __ovld atomic_xchg(volatile int *p, int val);
12960unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val);
12961float __ovld atomic_xchg(volatile float *p, float val);
12962#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012963
12964#if defined(cl_khr_global_int32_base_atomics)
12965int __ovld atom_xchg(volatile __global int *p, int val);
Logan Chien55afb0a2018-10-15 10:42:14 +080012966unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
Logan Chien2833ffb2018-10-09 10:03:24 +080012967#endif
12968#if defined(cl_khr_local_int32_base_atomics)
Logan Chien55afb0a2018-10-15 10:42:14 +080012969int __ovld atom_xchg(volatile __local int *p, int val);
Logan Chien2833ffb2018-10-09 10:03:24 +080012970unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
12971#endif
12972
12973#if defined(cl_khr_int64_base_atomics)
12974long __ovld atom_xchg(volatile __global long *p, long val);
12975long __ovld atom_xchg(volatile __local long *p, long val);
12976unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
12977unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
12978#endif
12979
12980/**
12981 * Read the 32-bit value (referred to as old)
12982 * stored at location pointed by p. Compute
12983 * (old + 1) and store result at location
12984 * pointed by p. The function returns old.
12985 */
12986int __ovld atomic_inc(volatile __global int *p);
12987unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
12988int __ovld atomic_inc(volatile __local int *p);
12989unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
Logan Chiendf4f7662019-09-04 16:45:23 -070012990#ifdef __OPENCL_CPP_VERSION__
12991int __ovld atomic_inc(volatile int *p);
12992unsigned int __ovld atomic_inc(volatile unsigned int *p);
12993#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012994
12995#if defined(cl_khr_global_int32_base_atomics)
12996int __ovld atom_inc(volatile __global int *p);
12997unsigned int __ovld atom_inc(volatile __global unsigned int *p);
12998#endif
12999#if defined(cl_khr_local_int32_base_atomics)
13000int __ovld atom_inc(volatile __local int *p);
13001unsigned int __ovld atom_inc(volatile __local unsigned int *p);
13002#endif
13003
13004#if defined(cl_khr_int64_base_atomics)
13005long __ovld atom_inc(volatile __global long *p);
13006unsigned long __ovld atom_inc(volatile __global unsigned long *p);
13007long __ovld atom_inc(volatile __local long *p);
13008unsigned long __ovld atom_inc(volatile __local unsigned long *p);
13009#endif
13010
13011/**
13012 * Read the 32-bit value (referred to as old)
13013 * stored at location pointed by p. Compute
13014 * (old - 1) and store result at location
13015 * pointed by p. The function returns old.
13016 */
13017int __ovld atomic_dec(volatile __global int *p);
13018unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
13019int __ovld atomic_dec(volatile __local int *p);
13020unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
Logan Chiendf4f7662019-09-04 16:45:23 -070013021#ifdef __OPENCL_CPP_VERSION__
13022int __ovld atomic_dec(volatile int *p);
13023unsigned int __ovld atomic_dec(volatile unsigned int *p);
13024#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013025
13026#if defined(cl_khr_global_int32_base_atomics)
13027int __ovld atom_dec(volatile __global int *p);
13028unsigned int __ovld atom_dec(volatile __global unsigned int *p);
13029#endif
13030#if defined(cl_khr_local_int32_base_atomics)
13031int __ovld atom_dec(volatile __local int *p);
13032unsigned int __ovld atom_dec(volatile __local unsigned int *p);
13033#endif
13034
13035#if defined(cl_khr_int64_base_atomics)
13036long __ovld atom_dec(volatile __global long *p);
13037unsigned long __ovld atom_dec(volatile __global unsigned long *p);
13038long __ovld atom_dec(volatile __local long *p);
13039unsigned long __ovld atom_dec(volatile __local unsigned long *p);
13040#endif
13041
13042/**
13043 * Read the 32-bit value (referred to as old)
13044 * stored at location pointed by p. Compute
13045 * (old == cmp) ? val : old and store result at
13046 * location pointed by p. The function
13047 * returns old.
13048 */
13049int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
13050unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13051int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
13052unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013053#ifdef __OPENCL_CPP_VERSION__
13054int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val);
13055unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val);
13056#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013057
13058#if defined(cl_khr_global_int32_base_atomics)
13059int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
13060unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13061#endif
13062#if defined(cl_khr_local_int32_base_atomics)
13063int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
13064unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
13065#endif
13066
13067#if defined(cl_khr_int64_base_atomics)
13068long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
13069unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
13070long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
13071unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
13072#endif
13073
13074/**
13075 * Read the 32-bit value (referred to as old)
13076 * stored at location pointed by p. Compute
13077 * min(old, val) and store minimum value at
13078 * location pointed by p. The function
13079 * returns old.
13080 */
13081int __ovld atomic_min(volatile __global int *p, int val);
13082unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
13083int __ovld atomic_min(volatile __local int *p, int val);
13084unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013085#ifdef __OPENCL_CPP_VERSION__
13086int __ovld atomic_min(volatile int *p, int val);
13087unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val);
13088#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013089
13090#if defined(cl_khr_global_int32_extended_atomics)
13091int __ovld atom_min(volatile __global int *p, int val);
13092unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
13093#endif
13094#if defined(cl_khr_local_int32_extended_atomics)
13095int __ovld atom_min(volatile __local int *p, int val);
13096unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
13097#endif
13098
13099#if defined(cl_khr_int64_extended_atomics)
13100long __ovld atom_min(volatile __global long *p, long val);
13101unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
Logan Chien2833ffb2018-10-09 10:03:24 +080013102long __ovld atom_min(volatile __local long *p, long val);
13103unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
13104#endif
13105
13106/**
13107 * Read the 32-bit value (referred to as old)
13108 * stored at location pointed by p. Compute
13109 * max(old, val) and store maximum value at
13110 * location pointed by p. The function
13111 * returns old.
13112 */
13113int __ovld atomic_max(volatile __global int *p, int val);
13114unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
13115int __ovld atomic_max(volatile __local int *p, int val);
13116unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013117#ifdef __OPENCL_CPP_VERSION__
13118int __ovld atomic_max(volatile int *p, int val);
13119unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val);
13120#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013121
13122#if defined(cl_khr_global_int32_extended_atomics)
13123int __ovld atom_max(volatile __global int *p, int val);
13124unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
13125#endif
13126#if defined(cl_khr_local_int32_extended_atomics)
13127int __ovld atom_max(volatile __local int *p, int val);
13128unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
13129#endif
13130
13131#if defined(cl_khr_int64_extended_atomics)
13132long __ovld atom_max(volatile __global long *p, long val);
13133unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
13134long __ovld atom_max(volatile __local long *p, long val);
13135unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
13136#endif
13137
13138/**
13139 * Read the 32-bit value (referred to as old)
13140 * stored at location pointed by p. Compute
13141 * (old & val) and store result at location
13142 * pointed by p. The function returns old.
13143 */
13144int __ovld atomic_and(volatile __global int *p, int val);
13145unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
13146int __ovld atomic_and(volatile __local int *p, int val);
13147unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013148#ifdef __OPENCL_CPP_VERSION__
13149int __ovld atomic_and(volatile int *p, int val);
13150unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val);
13151#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013152
13153#if defined(cl_khr_global_int32_extended_atomics)
13154int __ovld atom_and(volatile __global int *p, int val);
13155unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
13156#endif
13157#if defined(cl_khr_local_int32_extended_atomics)
13158int __ovld atom_and(volatile __local int *p, int val);
13159unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
13160#endif
13161
13162#if defined(cl_khr_int64_extended_atomics)
13163long __ovld atom_and(volatile __global long *p, long val);
13164unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
13165long __ovld atom_and(volatile __local long *p, long val);
13166unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
13167#endif
13168
13169/**
13170 * Read the 32-bit value (referred to as old)
13171 * stored at location pointed by p. Compute
13172 * (old | val) and store result at location
13173 * pointed by p. The function returns old.
13174 */
13175int __ovld atomic_or(volatile __global int *p, int val);
13176unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
13177int __ovld atomic_or(volatile __local int *p, int val);
13178unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013179#ifdef __OPENCL_CPP_VERSION__
13180int __ovld atomic_or(volatile int *p, int val);
13181unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val);
13182#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013183
13184#if defined(cl_khr_global_int32_extended_atomics)
13185int __ovld atom_or(volatile __global int *p, int val);
13186unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
13187#endif
13188#if defined(cl_khr_local_int32_extended_atomics)
13189int __ovld atom_or(volatile __local int *p, int val);
13190unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
13191#endif
13192
13193#if defined(cl_khr_int64_extended_atomics)
13194long __ovld atom_or(volatile __global long *p, long val);
13195unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
13196long __ovld atom_or(volatile __local long *p, long val);
13197unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
13198#endif
13199
13200/**
13201 * Read the 32-bit value (referred to as old)
13202 * stored at location pointed by p. Compute
13203 * (old ^ val) and store result at location
13204 * pointed by p. The function returns old.
13205 */
13206int __ovld atomic_xor(volatile __global int *p, int val);
13207unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
13208int __ovld atomic_xor(volatile __local int *p, int val);
13209unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013210#ifdef __OPENCL_CPP_VERSION__
13211int __ovld atomic_xor(volatile int *p, int val);
13212unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val);
13213#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013214
13215#if defined(cl_khr_global_int32_extended_atomics)
13216int __ovld atom_xor(volatile __global int *p, int val);
13217unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
13218#endif
13219#if defined(cl_khr_local_int32_extended_atomics)
13220int __ovld atom_xor(volatile __local int *p, int val);
13221unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
13222#endif
13223
Logan Chien55afb0a2018-10-15 10:42:14 +080013224#if defined(cl_khr_int64_extended_atomics)
13225long __ovld atom_xor(volatile __global long *p, long val);
13226unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val);
13227long __ovld atom_xor(volatile __local long *p, long val);
13228unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val);
13229#endif
13230
Logan Chien2833ffb2018-10-09 10:03:24 +080013231#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13232#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
13233#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
13234#endif
13235
13236// OpenCL v2.0 s6.13.11 - Atomics Functions
13237
Logan Chienbedbf4f2020-01-06 19:35:19 -080013238#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080013239
13240// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
13241#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13242#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
13243#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
13244#endif
13245
13246// atomic_init()
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013247#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080013248void __ovld atomic_init(volatile atomic_int *object, int value);
13249void __ovld atomic_init(volatile atomic_uint *object, uint value);
13250void __ovld atomic_init(volatile atomic_float *object, float value);
13251#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13252void __ovld atomic_init(volatile atomic_long *object, long value);
13253void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
13254#ifdef cl_khr_fp64
13255void __ovld atomic_init(volatile atomic_double *object, double value);
13256#endif //cl_khr_fp64
13257#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013258#endif //defined(__opencl_c_generic_address_space)
13259#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13260void __ovld atomic_init(volatile __global atomic_int *object, int value);
13261void __ovld atomic_init(volatile __local atomic_int *object, int value);
13262void __ovld atomic_init(volatile __global atomic_uint *object, uint value);
13263void __ovld atomic_init(volatile __local atomic_uint *object, uint value);
13264void __ovld atomic_init(volatile __global atomic_float *object, float value);
13265void __ovld atomic_init(volatile __local atomic_float *object, float value);
13266#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13267void __ovld atomic_init(volatile __global atomic_long *object, long value);
13268void __ovld atomic_init(volatile __local atomic_long *object, long value);
13269void __ovld atomic_init(volatile __global atomic_ulong *object, ulong value);
13270void __ovld atomic_init(volatile __local atomic_ulong *object, ulong value);
13271#ifdef cl_khr_fp64
13272void __ovld atomic_init(volatile __global atomic_double *object, double value);
13273void __ovld atomic_init(volatile __local atomic_double *object, double value);
13274#endif //cl_khr_fp64
13275#endif
13276#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chien2833ffb2018-10-09 10:03:24 +080013277
13278// atomic_work_item_fence()
13279void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
13280
13281// atomic_fetch()
Logan Chien2833ffb2018-10-09 10:03:24 +080013282// OpenCL v2.0 s6.13.11.7.5:
13283// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
Logan Chien2833ffb2018-10-09 10:03:24 +080013284
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013285#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13286#if defined(__opencl_c_generic_address_space)
13287int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
13288uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
13289int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
13290uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
13291int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
13292uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
13293int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
13294uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
13295int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
13296uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
13297int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
13298uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
13299int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
13300uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
Logan Chien55afb0a2018-10-15 10:42:14 +080013301#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013302long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
13303ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
13304long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
13305ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
13306long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
13307ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
13308long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
13309ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
13310long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
13311ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
13312long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
13313ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
13314long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
13315ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
Logan Chien2833ffb2018-10-09 10:03:24 +080013316uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
Logan Chien2833ffb2018-10-09 10:03:24 +080013317uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013318#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13319#endif //defined(__opencl_c_generic_address_space)
13320#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13321int __ovld atomic_fetch_add(volatile __global atomic_int *object, int operand);
13322int __ovld atomic_fetch_add(volatile __local atomic_int *object, int operand);
13323uint __ovld atomic_fetch_add(volatile __global atomic_uint *object, uint operand);
13324uint __ovld atomic_fetch_add(volatile __local atomic_uint *object, uint operand);
13325int __ovld atomic_fetch_sub(volatile __global atomic_int *object, int operand);
13326int __ovld atomic_fetch_sub(volatile __local atomic_int *object, int operand);
13327uint __ovld atomic_fetch_sub(volatile __global atomic_uint *object, uint operand);
13328uint __ovld atomic_fetch_sub(volatile __local atomic_uint *object, uint operand);
13329int __ovld atomic_fetch_or(volatile __global atomic_int *object, int operand);
13330int __ovld atomic_fetch_or(volatile __local atomic_int *object, int operand);
13331uint __ovld atomic_fetch_or(volatile __global atomic_uint *object, uint operand);
13332uint __ovld atomic_fetch_or(volatile __local atomic_uint *object, uint operand);
13333int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand);
13334int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand);
13335uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand);
13336uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);i
13337int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand);
13338int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand);
13339uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand);
13340uint __ovld atomic_fetch_and(volatile __local atomic_uint *object, uint operand);
13341int __ovld atomic_fetch_min(volatile __global atomic_int *object, int operand);
13342int __ovld atomic_fetch_min(volatile __local atomic_int *object, int operand);
13343uint __ovld atomic_fetch_min(volatile __global atomic_uint *object, uint operand);
13344uint __ovld atomic_fetch_min(volatile __local atomic_uint *object, uint operand);
13345int __ovld atomic_fetch_max(volatile __global atomic_int *object, int operand);
13346int __ovld atomic_fetch_max(volatile __local atomic_int *object, int operand);
13347uint __ovld atomic_fetch_max(volatile __global atomic_uint *object, uint operand);
13348uint __ovld atomic_fetch_max(volatile __local atomic_uint *object, uint operand);
13349#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13350long __ovld atomic_fetch_add(volatile __global atomic_long *object, long operand);
13351long __ovld atomic_fetch_add(volatile __local atomic_long *object, long operand);
13352ulong __ovld atomic_fetch_add(volatile __global atomic_ulong *object, ulong operand);
13353ulong __ovld atomic_fetch_add(volatile __local atomic_ulong *object, ulong operand);
13354uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13355uintptr_t __ovld atomic_fetch_add(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13356long __ovld atomic_fetch_sub(volatile __global atomic_long *object, long operand);
13357long __ovld atomic_fetch_sub(volatile __local atomic_long *object, long operand);
13358ulong __ovld atomic_fetch_sub(volatile __global atomic_ulong *object, ulong operand);
13359ulong __ovld atomic_fetch_sub(volatile __local atomic_ulong *object, ulong operand);
13360uintptr_t __ovld atomic_fetch_sub(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13361uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13362long __ovld atomic_fetch_or(volatile __global atomic_long *object, long operand);
13363long __ovld atomic_fetch_or(volatile __local atomic_long *object, long operand);
13364ulong __ovld atomic_fetch_or(volatile __global atomic_ulong *object, ulong operand);
13365ulong __ovld atomic_fetch_or(volatile __local atomic_ulong *object, ulong operand);
13366uintptr_t __ovld atomic_fetch_or(volatile __global atomic_uintptr_t *object, intptr_t operand);
13367uintptr_t __ovld atomic_fetch_or(volatile __local atomic_uintptr_t *object, intptr_t operand);
13368intptr_t __ovld atomic_fetch_or(volatile __global atomic_intptr_t *object, uintptr_t operand);
13369intptr_t __ovld atomic_fetch_or(volatile __local atomic_intptr_t *object, uintptr_t operand);
13370long __ovld atomic_fetch_xor(volatile __global atomic_long *object, long operand);
13371long __ovld atomic_fetch_xor(volatile __local atomic_long *object, long operand);
13372ulong __ovld atomic_fetch_xor(volatile __global atomic_ulong *object, ulong operand);
13373ulong __ovld atomic_fetch_xor(volatile __local atomic_ulong *object, ulong operand);
13374uintptr_t __ovld atomic_fetch_xor(volatile __global atomic_uintptr_t *object, intptr_t operand);
13375uintptr_t __ovld atomic_fetch_xor(volatile __local atomic_uintptr_t *object, intptr_t operand);
13376intptr_t __ovld atomic_fetch_xor(volatile __global atomic_intptr_t *object, uintptr_t operand);
13377intptr_t __ovld atomic_fetch_xor(volatile __local atomic_intptr_t *object, uintptr_t operand);
13378long __ovld atomic_fetch_and(volatile __global atomic_long *object, long operand);
13379long __ovld atomic_fetch_and(volatile __local atomic_long *object, long operand);
13380ulong __ovld atomic_fetch_and(volatile __global atomic_ulong *object, ulong operand);
13381ulong __ovld atomic_fetch_and(volatile __local atomic_ulong *object, ulong operand);
13382uintptr_t __ovld atomic_fetch_and(volatile __global atomic_uintptr_t *object, intptr_t operand);
13383uintptr_t __ovld atomic_fetch_and(volatile __local atomic_uintptr_t *object, intptr_t operand);
13384intptr_t __ovld atomic_fetch_and(volatile __global atomic_intptr_t *object, uintptr_t operand);
13385intptr_t __ovld atomic_fetch_and(volatile __local atomic_intptr_t *object, uintptr_t operand);
13386long __ovld atomic_fetch_min(volatile __global atomic_long *object, long operand);
13387long __ovld atomic_fetch_min(volatile __local atomic_long *object, long operand);
13388ulong __ovld atomic_fetch_min(volatile __global atomic_ulong *object, ulong operand);
13389ulong __ovld atomic_fetch_min(volatile __local atomic_ulong *object, ulong operand);
13390uintptr_t __ovld atomic_fetch_min(volatile __global atomic_uintptr_t *object, intptr_t operand);
13391uintptr_t __ovld atomic_fetch_min(volatile __local atomic_uintptr_t *object, intptr_t operand);
13392intptr_t __ovld atomic_fetch_min(volatile __global atomic_intptr_t *object, uintptr_t operand);
13393intptr_t __ovld atomic_fetch_min(volatile __local atomic_intptr_t *object, uintptr_t operand);
13394long __ovld atomic_fetch_max(volatile __global atomic_long *object, long operand);
13395long __ovld atomic_fetch_max(volatile __local atomic_long *object, long operand);
13396ulong __ovld atomic_fetch_max(volatile __global atomic_ulong *object, ulong operand);
13397ulong __ovld atomic_fetch_max(volatile __local atomic_ulong *object, ulong operand);
13398uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13399uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13400#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13401#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13402#endif
13403
13404#if defined(__opencl_c_atomic_scope_device)
13405#if defined(__opencl_c_generic_address_space)
13406int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13407uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13408int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13409uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13410int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13411uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13412int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13413uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13414int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13415uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13416int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13417uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13418int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13419uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13420#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13421long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13422ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13423long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13424ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13425long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13426ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13427long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13428ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13429long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13430ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13431long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13432ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13433long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13434ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13435uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
Logan Chien2833ffb2018-10-09 10:03:24 +080013436uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013437#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13438#endif //defined(__opencl_c_generic_address_space)
13439#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13440int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13441int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13442uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13443uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13444int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13445int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13446uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13447uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13448int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13449int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13450uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13451uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13452int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13453int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13454uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13455uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13456int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13457int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13458uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13459uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13460int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13461int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13462uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13463uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13464int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13465int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13466uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13467uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13468#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13469long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13470long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13471ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13472ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13473uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13474uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13475long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13476long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13477ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13478ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13479uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13480uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13481long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13482long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13483ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13484ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13485uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13486uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13487intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13488intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13489long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13490long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13491ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13492ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13493uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13494uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13495intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13496intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13497long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13498long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13499ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13500ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13501uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13502uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13503intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13504intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13505long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13506long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13507ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13508ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13509uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13510uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13511intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13512intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13513long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13514long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13515ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13516ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13517uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13518uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13519#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13520#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13521#endif
13522
13523#if defined(__opencl_c_generic_address_space)
13524int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13525uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13526int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13527uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13528int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13529uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13530int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13531uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13532int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13533uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13534int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13535uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13536int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13537uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13538#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13539long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13540ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13541long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13542ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13543long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13544ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13545long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13546ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13547long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13548ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13549long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13550ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13551long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13552ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13553uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080013554uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080013555#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013556#endif //defined(__opencl_c_generic_address_space)
13557#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13558int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13559int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13560uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13561uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13562int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13563int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13564uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13565uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13566int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13567int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13568uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13569uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13570int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13571int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13572uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13573uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13574int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13575int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13576uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13577uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13578int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13579int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13580uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13581uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13582int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13583int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13584uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13585uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13586#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13587long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13588long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13589uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13590uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13591ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13592ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13593long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13594long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13595ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13596ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13597uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13598uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13599long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13600long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13601ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13602ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13603uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13604uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13605intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13606intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13607long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13608long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13609ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13610ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13611uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13612uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13613intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13614intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13615long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13616long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13617ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13618ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13619uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13620uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13621intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13622intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13623long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13624long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13625ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13626ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13627uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13628uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13629intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13630intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13631long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13632long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13633ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13634ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13635uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13636uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13637#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13638#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chien2833ffb2018-10-09 10:03:24 +080013639
13640// atomic_store()
13641
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013642#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13643#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080013644void __ovld atomic_store(volatile atomic_int *object, int desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013645void __ovld atomic_store(volatile atomic_uint *object, uint desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013646void __ovld atomic_store(volatile atomic_float *object, float desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013647
Logan Chien2833ffb2018-10-09 10:03:24 +080013648#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13649#ifdef cl_khr_fp64
13650void __ovld atomic_store(volatile atomic_double *object, double desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013651#endif //cl_khr_fp64
13652void __ovld atomic_store(volatile atomic_long *object, long desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013653void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013654#endif
13655#endif //defined(__opencl_c_generic_address_space)
13656#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13657void __ovld atomic_store(volatile __global atomic_int *object, int desired);
13658void __ovld atomic_store(volatile __local atomic_int *object, int desired);
13659void __ovld atomic_store(volatile __global atomic_uint *object, uint desired);
13660void __ovld atomic_store(volatile __local atomic_uint *object, uint desired);
13661void __ovld atomic_store(volatile __global atomic_float *object, float desired);
13662void __ovld atomic_store(volatile __local atomic_float *object, float desired);
13663#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13664#ifdef cl_khr_fp64
13665void __ovld atomic_store(volatile __global atomic_double *object, double desired);
13666void __ovld atomic_store(volatile __local atomic_double *object, double desired);
13667#endif //cl_khr_fp64
13668void __ovld atomic_store(volatile __global atomic_long *object, long desired);
13669void __ovld atomic_store(volatile __local atomic_long *object, long desired);
13670void __ovld atomic_store(volatile __global atomic_ulong *object, ulong desired);
13671void __ovld atomic_store(volatile __local atomic_ulong *object, ulong desired);
13672#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13673#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chien2833ffb2018-10-09 10:03:24 +080013674#endif
13675
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013676#if defined(__opencl_c_atomic_scope_device)
13677#if defined(__opencl_c_generic_address_space)
13678void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
13679void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13680void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
13681#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13682#ifdef cl_khr_fp64
13683void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
13684#endif //cl_khr_fp64
13685void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13686void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13687#endif
13688#endif //defined(__opencl_c_generic_address_space)
13689#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13690void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order);
13691void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order);
13692void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
13693void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
13694void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order);
13695void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order);
13696#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13697#ifdef cl_khr_fp64
13698void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order);
13699void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order);
13700#endif
13701void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order);
13702void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order);
13703void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
13704void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
13705#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13706#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13707#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013708
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013709#if defined(__opencl_c_generic_address_space)
13710void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13711void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13712void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13713#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13714#ifdef cl_khr_fp64
13715void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13716#endif //cl_khr_fp64
13717void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13718void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13719#endif
13720#endif //defined(__opencl_c_generic_address_space)
13721#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13722void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
13723void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
13724void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13725void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13726void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
13727void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
13728#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13729#ifdef cl_khr_fp64
13730void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
13731void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
13732#endif //cl_khr_fp64
13733void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
13734void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
13735void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13736void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13737#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13738#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13739
13740// atomic_load()
13741#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13742#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080013743int __ovld atomic_load(volatile atomic_int *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080013744uint __ovld atomic_load(volatile atomic_uint *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080013745float __ovld atomic_load(volatile atomic_float *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080013746#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13747#ifdef cl_khr_fp64
13748double __ovld atomic_load(volatile atomic_double *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080013749#endif //cl_khr_fp64
13750long __ovld atomic_load(volatile atomic_long *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080013751ulong __ovld atomic_load(volatile atomic_ulong *object);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013752#endif
13753#endif //defined(__opencl_c_generic_address_space)
13754#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13755int __ovld atomic_load(volatile __global atomic_int *object);
13756int __ovld atomic_load(volatile __local atomic_int *object);
13757uint __ovld atomic_load(volatile __global atomic_uint *object);
13758uint __ovld atomic_load(volatile __local atomic_uint *object);
13759float __ovld atomic_load(volatile __global atomic_float *object);
13760float __ovld atomic_load(volatile __local atomic_float *object);
13761#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13762#ifdef cl_khr_fp64
13763double __ovld atomic_load(volatile __global atomic_double *object);
13764double __ovld atomic_load(volatile __local atomic_double *object);
13765#endif //cl_khr_fp64
13766long __ovld atomic_load(volatile __global atomic_long *object);
13767long __ovld atomic_load(volatile __local atomic_long *object);
13768ulong __ovld atomic_load(volatile __global atomic_ulong *object);
13769ulong __ovld atomic_load(volatile __local atomic_ulong *object);
13770#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13771#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13772#endif
13773
13774#if defined(__opencl_c_atomic_scope_device)
13775#if defined(__opencl_c_generic_address_space)
13776int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
13777uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
13778float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
13779#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13780#ifdef cl_khr_fp64
13781double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
13782#endif //cl_khr_fp64
13783long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
Logan Chien2833ffb2018-10-09 10:03:24 +080013784ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013785#endif
13786#endif //defined(__opencl_c_generic_address_space)
13787#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13788int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order);
13789int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order);
13790uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order);
13791uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order);
13792float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order);
13793float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order);
13794#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13795#ifdef cl_khr_fp64
13796double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order);
13797double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order);
13798#endif //cl_khr_fp64
13799long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order);
13800long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order);
13801ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order);
13802ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order);
13803#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13804#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13805#endif
13806
13807#if defined(__opencl_c_generic_address_space)
13808int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
13809uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
13810float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
13811#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13812#ifdef cl_khr_fp64
13813double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
13814#endif //cl_khr_fp64
13815long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080013816ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
13817#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013818#endif //defined(__opencl_c_generic_address_space)
13819#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13820int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order, memory_scope scope);
13821int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order, memory_scope scope);
13822uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order, memory_scope scope);
13823uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order, memory_scope scope);
13824float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order, memory_scope scope);
13825float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order, memory_scope scope);
13826#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13827#ifdef cl_khr_fp64
13828double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order, memory_scope scope);
13829double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order, memory_scope scope);
13830#endif
13831long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order, memory_scope scope);
13832long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order, memory_scope scope);
13833ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order, memory_scope scope);
13834ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order, memory_scope scope);
13835#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13836#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chien2833ffb2018-10-09 10:03:24 +080013837
13838// atomic_exchange()
13839
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013840#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13841#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080013842int __ovld atomic_exchange(volatile atomic_int *object, int desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013843uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013844float __ovld atomic_exchange(volatile atomic_float *object, float desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013845#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13846#ifdef cl_khr_fp64
13847double __ovld atomic_exchange(volatile atomic_double *object, double desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013848#endif //cl_khr_fp64
13849long __ovld atomic_exchange(volatile atomic_long *object, long desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013850ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013851#endif
13852#endif //defined(__opencl_c_generic_address_space)
13853#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13854int __ovld atomic_exchange(volatile __global atomic_int *object, int desired);
13855int __ovld atomic_exchange(volatile __local atomic_int *object, int desired);
13856uint __ovld atomic_exchange(volatile __global atomic_uint *object, uint desired);
13857uint __ovld atomic_exchange(volatile __local atomic_uint *object, uint desired);
13858float __ovld atomic_exchange(volatile __global atomic_float *object, float desired);
13859float __ovld atomic_exchange(volatile __local atomic_float *object, float desired);
13860#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13861#ifdef cl_khr_fp64
13862double __ovld atomic_exchange(volatile __global atomic_double *object, double desired);
13863double __ovld atomic_exchange(volatile __local atomic_double *object, double desired);
13864#endif //cl_khr_fp64
13865long __ovld atomic_exchange(volatile __global atomic_long *object, long desired);
13866long __ovld atomic_exchange(volatile __local atomic_long *object, long desired);
13867ulong __ovld atomic_exchange(volatile __global atomic_ulong *object, ulong desired);
13868ulong __ovld atomic_exchange(volatile __local atomic_ulong *object, ulong desired);
13869#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13870#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chien2833ffb2018-10-09 10:03:24 +080013871#endif
13872
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013873#if defined(__opencl_c_atomic_scope_device)
13874#if defined(__opencl_c_generic_address_space)
13875int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
13876uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13877float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
13878#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13879#ifdef cl_khr_fp64
13880double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
13881#endif //cl_khr_fp64
13882long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13883ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13884#endif
13885#endif //defined(__opencl_c_generic_address_space)
13886#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13887int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order);
13888int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order);
13889uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
13890uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
13891float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order);
13892float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order);
13893#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13894#ifdef cl_khr_fp64
13895double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order);
13896double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order);
13897#endif //cl_khr_fp64
13898long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order);
13899long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order);
13900ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
13901ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
13902#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi
13903#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13904#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013905
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013906#if defined(__opencl_c_generic_address_space)
13907int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13908uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13909float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13910#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13911#ifdef cl_khr_fp64
13912double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13913#endif //cl_khr_fp64
13914long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13915ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13916#endif
13917#endif //defined(__opencl_c_generic_address_space)
13918#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13919int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
13920int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
13921uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13922uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13923float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
13924float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
13925#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13926#ifdef cl_khr_fp64
13927double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
13928double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
13929#endif //cl_khr_fp64
13930long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
13931long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
13932ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13933ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13934#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13935#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
13936
13937// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
13938#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13939#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080013940bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080013941bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013942bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
13943bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
13944bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
13945bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
13946#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13947#ifdef cl_khr_fp64
13948bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
13949bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
13950#endif //cl_khr_fp64
13951bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
13952bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
13953bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
13954bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
13955#endif
13956#endif //defined(__opencl_c_generic_address_space)
13957#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
13958bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __global int *expected, int desired);
13959bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __local int *expected, int desired);
13960bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __private int *expected, int desired);
13961bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __global int *expected, int desired);
13962bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __local int *expected, int desired);
13963bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __private int *expected, int desired);
13964bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __global uint *expected, uint desired);
13965bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __local uint *expected, uint desired);
13966bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __private uint *expected, uint desired);
13967bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __global uint *expected, uint desired);
13968bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __local uint *expected, uint desired);
13969bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __private uint *expected, uint desired);
13970bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __global float *expected, float desired);
13971bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __local float *expected, float desired);
13972bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __private float *expected, float desired);
13973bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __global float *expected, float desired);
13974bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __local float *expected, float desired);
13975bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __private float *expected, float desired);
13976bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __global int *expected, int desired);
13977bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __local int *expected, int desired);
13978bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __private int *expected, int desired);
13979bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __global int *expected, int desired);
13980bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __local int *expected, int desired);
13981bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __private int *expected, int desired);
13982bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __global uint *expected, uint desired);
13983bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __local uint *expected, uint desired);
13984bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __private uint *expected, uint desired);
13985bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __global uint *expected, uint desired);
13986bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __local uint *expected, uint desired);
13987bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __private uint *expected, uint desired);
13988bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __global float *expected, float desired);
13989bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __local float *expected, float desired);
13990bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __private float *expected, float desired);
13991bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __global float *expected, float desired);
13992bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __local float *expected, float desired);
13993bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __private float *expected, float desired);
13994#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13995#ifdef cl_khr_fp64
13996bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __global double *expected, double desired);
13997bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __local double *expected, double desired);
13998bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __private double *expected, double desired);
13999bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __global double *expected, double desired);
14000bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __local double *expected, double desired);
14001bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __private double *expected, double desired);
14002bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __global double *expected, double desired);
14003bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __local double *expected, double desired);
14004bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __private double *expected, double desired);
14005bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __global double *expected, double desired);
14006bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __local double *expected, double desired);
14007bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __private double *expected, double desired);
14008#endif //cl_khr_fp64
14009bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __global long *expected, long desired);
14010bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __local long *expected, long desired);
14011bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __private long *expected, long desired);
14012bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __global long *expected, long desired);
14013bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __local long *expected, long desired);
14014bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __private long *expected, long desired);
14015bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
14016bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
14017bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
14018bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
14019bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
14020bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
14021bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __global long *expected, long desired);
14022bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __local long *expected, long desired);
14023bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __private long *expected, long desired);
14024bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __global long *expected, long desired);
14025bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __local long *expected, long desired);
14026bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __private long *expected, long desired);
14027bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
14028bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
14029bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
14030bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
14031bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
14032bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
14033#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14034#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
14035#endif
14036
14037#if defined(__opencl_c_generic_address_space)
14038bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14039 int desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014040bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14041 uint desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014042bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14043 int desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014044bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14045 uint desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014046bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14047 float desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014048bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14049 float desired, memory_order success, memory_order failure);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014050#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14051#ifdef cl_khr_fp64
14052bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14053 double desired, memory_order success, memory_order failure);
14054bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14055 double desired, memory_order success, memory_order failure);
14056#endif //cl_khr_fp64
14057bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14058 long desired, memory_order success, memory_order failure);
14059bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14060 long desired, memory_order success, memory_order failure);
14061bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14062 ulong desired, memory_order success, memory_order failure);
14063bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14064 ulong desired, memory_order success, memory_order failure);
14065#endif
14066#endif //defined(__opencl_c_generic_address_space)
14067#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
14068bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
14069 int desired, memory_order success, memory_order failure);
14070bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
14071 int desired, memory_order success, memory_order failure);
14072bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
14073 int desired, memory_order success, memory_order failure);
14074bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
14075 int desired, memory_order success, memory_order failure);
14076bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
14077 int desired, memory_order success, memory_order failure);
14078bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
14079 int desired, memory_order success, memory_order failure);
14080bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
14081 uint desired, memory_order success, memory_order failure);
14082bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
14083 uint desired, memory_order success, memory_order failure);
14084bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
14085 uint desired, memory_order success, memory_order failure);
14086bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
14087 uint desired, memory_order success, memory_order failure);
14088bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
14089 uint desired, memory_order success, memory_order failure);
14090bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
14091 uint desired, memory_order success, memory_order failure);
14092bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
14093 float desired, memory_order success, memory_order failure);
14094bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
14095 float desired, memory_order success, memory_order failure);
14096bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
14097 float desired, memory_order success, memory_order failure);
14098bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
14099 float desired, memory_order success, memory_order failure);
14100bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
14101 float desired, memory_order success, memory_order failure);
14102bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
14103 float desired, memory_order success, memory_order failure);
14104bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
14105 int desired, memory_order success, memory_order failure);
14106bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
14107 int desired, memory_order success, memory_order failure);
14108bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
14109 int desired, memory_order success, memory_order failure);
14110bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
14111 int desired, memory_order success, memory_order failure);
14112bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
14113 int desired, memory_order success, memory_order failure);
14114bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
14115 int desired, memory_order success, memory_order failure);
14116bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
14117 uint desired, memory_order success, memory_order failure);
14118bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
14119 uint desired, memory_order success, memory_order failure);
14120bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
14121 uint desired, memory_order success, memory_order failure);
14122bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
14123 uint desired, memory_order success, memory_order failure);
14124bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
14125 uint desired, memory_order success, memory_order failure);
14126bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
14127 uint desired, memory_order success, memory_order failure);
14128bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
14129 float desired, memory_order success, memory_order failure);
14130bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
14131 float desired, memory_order success, memory_order failure);
14132bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
14133 float desired, memory_order success, memory_order failure);
14134bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
14135 float desired, memory_order success, memory_order failure);
14136bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
14137 float desired, memory_order success, memory_order failure);
14138bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
14139 float desired, memory_order success, memory_order failure);
14140#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14141#ifdef cl_khr_fp64
14142bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
14143 double desired, memory_order success, memory_order failure);
14144bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
14145 double desired, memory_order success, memory_order failure);
14146bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
14147 double desired, memory_order success, memory_order failure);
14148bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
14149 double desired, memory_order success, memory_order failure);
14150bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
14151 double desired, memory_order success, memory_order failure);
14152bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
14153 double desired, memory_order success, memory_order failure);
14154bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
14155 double desired, memory_order success, memory_order failure);
14156bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
14157 double desired, memory_order success, memory_order failure);
14158bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
14159 double desired, memory_order success, memory_order failure);
14160bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
14161 double desired, memory_order success, memory_order failure);
14162bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
14163 double desired, memory_order success, memory_order failure);
14164bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
14165 double desired, memory_order success, memory_order failure);
14166#endif //cl_khr_fp64
14167bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
14168 long desired, memory_order success, memory_order failure);
14169bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
14170 long desired, memory_order success, memory_order failure);
14171bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
14172 long desired, memory_order success, memory_order failure);
14173bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
14174 long desired, memory_order success, memory_order failure);
14175bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
14176 long desired, memory_order success, memory_order failure);
14177bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
14178 long desired, memory_order success, memory_order failure);
14179bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14180 ulong desired, memory_order success, memory_order failure);
14181bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14182 ulong desired, memory_order success, memory_order failure);
14183bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14184 ulong desired, memory_order success, memory_order failure);
14185bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14186 ulong desired, memory_order success, memory_order failure);
14187bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14188 ulong desired, memory_order success, memory_order failure);
14189bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14190 ulong desired, memory_order success, memory_order failure);
14191bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
14192 long desired, memory_order success, memory_order failure);
14193bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
14194 long desired, memory_order success, memory_order failure);
14195bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
14196 long desired, memory_order success, memory_order failure);
14197bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
14198 long desired, memory_order success, memory_order failure);
14199bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
14200 long desired, memory_order success, memory_order failure);
14201bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
14202 long desired, memory_order success, memory_order failure);
14203bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14204 ulong desired, memory_order success, memory_order failure);
14205bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14206 ulong desired, memory_order success, memory_order failure);
14207bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14208 ulong desired, memory_order success, memory_order failure);
14209bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14210 ulong desired, memory_order success, memory_order failure);
14211bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14212 ulong desired, memory_order success, memory_order failure);
14213bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14214 ulong desired, memory_order success, memory_order failure);
14215#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14216#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
14217
14218#if defined(__opencl_c_generic_address_space)
14219bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14220 int desired, memory_order success, memory_order failure, memory_scope scope);
14221bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14222 uint desired, memory_order success, memory_order failure, memory_scope scope);
14223bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14224 int desired, memory_order success, memory_order failure, memory_scope scope);
14225bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14226 uint desired, memory_order success, memory_order failure, memory_scope scope);
14227bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14228 float desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014229bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14230 float desired, memory_order success, memory_order failure, memory_scope scope);
14231#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14232#ifdef cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080014233bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14234 double desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014235bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14236 double desired, memory_order success, memory_order failure, memory_scope scope);
14237#endif //cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080014238bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14239 long desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014240bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14241 long desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014242bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14243 ulong desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014244bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14245 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14246#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014247#endif //defined(__opencl_c_generic_address_space)
14248#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
14249bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
14250 int desired, memory_order success, memory_order failure, memory_scope scope);
14251bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
14252 int desired, memory_order success, memory_order failure, memory_scope scope);
14253bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
14254 int desired, memory_order success, memory_order failure, memory_scope scope);
14255bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
14256 int desired, memory_order success, memory_order failure, memory_scope scope);
14257bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
14258 int desired, memory_order success, memory_order failure, memory_scope scope);
14259bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
14260 int desired, memory_order success, memory_order failure, memory_scope scope);
14261bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
14262 uint desired, memory_order success, memory_order failure, memory_scope scope);
14263bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
14264 uint desired, memory_order success, memory_order failure, memory_scope scope);
14265bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
14266 uint desired, memory_order success, memory_order failure, memory_scope scope);
14267bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
14268 uint desired, memory_order success, memory_order failure, memory_scope scope);
14269bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
14270 uint desired, memory_order success, memory_order failure, memory_scope scope);
14271bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
14272 uint desired, memory_order success, memory_order failure, memory_scope scope);
14273bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
14274 float desired, memory_order success, memory_order failure, memory_scope scope);
14275bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
14276 float desired, memory_order success, memory_order failure, memory_scope scope);
14277bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
14278 float desired, memory_order success, memory_order failure, memory_scope scope);
14279bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
14280 float desired, memory_order success, memory_order failure, memory_scope scope);
14281bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
14282 float desired, memory_order success, memory_order failure, memory_scope scope);
14283bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
14284 float desired, memory_order success, memory_order failure, memory_scope scope);
14285bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
14286 int desired, memory_order success, memory_order failure, memory_scope scope);
14287bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
14288 int desired, memory_order success, memory_order failure, memory_scope scope);
14289bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
14290 int desired, memory_order success, memory_order failure, memory_scope scope);
14291bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
14292 int desired, memory_order success, memory_order failure, memory_scope scope);
14293bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
14294 int desired, memory_order success, memory_order failure, memory_scope scope);
14295bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
14296 int desired, memory_order success, memory_order failure, memory_scope scope);
14297bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
14298 uint desired, memory_order success, memory_order failure, memory_scope scope);
14299bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
14300 uint desired, memory_order success, memory_order failure, memory_scope scope);
14301bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
14302 uint desired, memory_order success, memory_order failure, memory_scope scope);
14303bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
14304 uint desired, memory_order success, memory_order failure, memory_scope scope);
14305bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
14306 uint desired, memory_order success, memory_order failure, memory_scope scope);
14307bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
14308 uint desired, memory_order success, memory_order failure, memory_scope scope);
14309bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
14310 float desired, memory_order success, memory_order failure, memory_scope scope);
14311bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
14312 float desired, memory_order success, memory_order failure, memory_scope scope);
14313bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
14314 float desired, memory_order success, memory_order failure, memory_scope scope);
14315bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
14316 float desired, memory_order success, memory_order failure, memory_scope scope);
14317bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
14318 float desired, memory_order success, memory_order failure, memory_scope scope);
14319bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
14320 float desired, memory_order success, memory_order failure, memory_scope scope);
14321#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14322#ifdef cl_khr_fp64
14323bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
14324 double desired, memory_order success, memory_order failure, memory_scope scope);
14325bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
14326 double desired, memory_order success, memory_order failure, memory_scope scope);
14327bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
14328 double desired, memory_order success, memory_order failure, memory_scope scope);
14329bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
14330 double desired, memory_order success, memory_order failure, memory_scope scope);
14331bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
14332 double desired, memory_order success, memory_order failure, memory_scope scope);
14333bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
14334 double desired, memory_order success, memory_order failure, memory_scope scope);
14335bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
14336 double desired, memory_order success, memory_order failure, memory_scope scope);
14337bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
14338 double desired, memory_order success, memory_order failure, memory_scope scope);
14339bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
14340 double desired, memory_order success, memory_order failure, memory_scope scope);
14341bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
14342 double desired, memory_order success, memory_order failure, memory_scope scope);
14343bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
14344 double desired, memory_order success, memory_order failure, memory_scope scope);
14345bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
14346 double desired, memory_order success, memory_order failure, memory_scope scope);
14347#endif //cl_khr_fp64
14348bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
14349 long desired, memory_order success, memory_order failure, memory_scope scope);
14350bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
14351 long desired, memory_order success, memory_order failure, memory_scope scope);
14352bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
14353 long desired, memory_order success, memory_order failure, memory_scope scope);
14354bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
14355 long desired, memory_order success, memory_order failure, memory_scope scope);
14356bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
14357 long desired, memory_order success, memory_order failure, memory_scope scope);
14358bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
14359 long desired, memory_order success, memory_order failure, memory_scope scope);
14360bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14361 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14362bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14363 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14364bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14365 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14366bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14367 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14368bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14369 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14370bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14371 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14372bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
14373 long desired, memory_order success, memory_order failure, memory_scope scope);
14374bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
14375 long desired, memory_order success, memory_order failure, memory_scope scope);
14376bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
14377 long desired, memory_order success, memory_order failure, memory_scope scope);
14378bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
14379 long desired, memory_order success, memory_order failure, memory_scope scope);
14380bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
14381 long desired, memory_order success, memory_order failure, memory_scope scope);
14382bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
14383 long desired, memory_order success, memory_order failure, memory_scope scope);
14384bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14385 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14386bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14387 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14388bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14389 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14390bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14391 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14392bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14393 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14394bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14395 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14396#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14397#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chien2833ffb2018-10-09 10:03:24 +080014398
14399// atomic_flag_test_and_set() and atomic_flag_clear()
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014400#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14401#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080014402bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014403void __ovld atomic_flag_clear(volatile atomic_flag *object);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014404#endif //defined(__opencl_c_generic_address_space)
14405#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
14406bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *object);
14407bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *object);
14408void __ovld atomic_flag_clear(volatile __global atomic_flag *object);
14409void __ovld atomic_flag_clear(volatile __local atomic_flag *object);
14410#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
14411#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080014412
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014413#if defined(__opencl_c_atomic_scope_device)
14414#if defined(__opencl_c_generic_address_space)
14415bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
14416void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
14417#endif //defined(__opencl_c_generic_address_space)
14418#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
14419bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order);
14420bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order);
14421void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order);
14422void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order);
14423#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
14424#endif
14425
14426#if defined(__opencl_c_generic_address_space)
14427bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14428void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14429#endif //defined(__opencl_c_generic_address_space)
14430#if __OPENCL_C_VERSION__ >= CL_VERSION_3_0
14431bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
14432bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
14433void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
14434void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
14435#endif //__OPENCL_C_VERSION__ >= CL_VERSION_3_0
Logan Chienbedbf4f2020-01-06 19:35:19 -080014436#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080014437
14438// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
14439
14440/**
14441 * The shuffle and shuffle2 built-in functions construct
14442 * a permutation of elements from one or two input
14443 * vectors respectively that are of the same type,
14444 * returning a vector with the same element type as the
14445 * input and length that is the same as the shuffle mask.
14446 * The size of each element in the mask must match the
14447 * size of each element in the result. For shuffle, only
14448 * the ilogb(2m-1) least significant bits of each mask
14449 * element are considered. For shuffle2, only the
14450 * ilogb(2m-1)+1 least significant bits of each mask
14451 * element are considered. Other bits in the mask shall
14452 * be ignored.
14453 * The elements of the input vectors are numbered from
14454 * left to right across one or both of the vectors. For this
14455 * purpose, the number of elements in a vector is given
14456 * by vec_step(gentypem). The shuffle mask operand
14457 * specifies, for each element of the result vector, which
14458 * element of the one or two input vectors the result
14459 * element gets.
14460 * Examples:
14461 * uint4 mask = (uint4)(3, 2,
14462 * 1, 0);
14463 * float4 a;
14464 * float4 r = shuffle(a, mask);
14465 * // r.s0123 = a.wzyx
14466 * uint8 mask = (uint8)(0, 1, 2, 3,
14467 * 4, 5, 6, 7);
14468 * float4 a, b;
14469 * float8 r = shuffle2(a, b, mask);
14470 * // r.s0123 = a.xyzw
14471 * // r.s4567 = b.xyzw
14472 * uint4 mask;
14473 * float8 a;
14474 * float4 b;
14475 * b = shuffle(a, mask);
14476 * Examples that are not valid are:
14477 * uint8 mask;
14478 * short16 a;
14479 * short8 b;
14480 * b = shuffle(a, mask); <- not valid
14481 */
14482char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
14483char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
14484char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
14485char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
14486
14487uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
14488uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
14489uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
14490uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
14491
14492short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
14493short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
14494short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
14495short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
14496
14497ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
14498ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
14499ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
14500ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
14501
14502int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
14503int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
14504int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
14505int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
14506
14507uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
14508uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
14509uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
14510uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
14511
14512long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
14513long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
14514long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
14515long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
14516
14517ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
14518ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
14519ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
14520ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
14521
14522float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
14523float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
14524float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
14525float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
14526
14527char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
14528char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
14529char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
14530char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
14531
14532uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
14533uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
14534uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
14535uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
14536
14537short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
14538short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
14539short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
14540short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
14541
14542ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
14543ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
14544ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
14545ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
14546
14547int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
14548int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
14549int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
14550int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
14551
14552uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
14553uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
14554uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
14555uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
14556
14557long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
14558long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
14559long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
14560long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
14561
14562ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
14563ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
14564ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
14565ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
14566
14567float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
14568float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
14569float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
14570float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
14571
14572char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
14573char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
14574char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
14575char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
14576
14577uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
14578uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
14579uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
14580uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
14581
14582short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
14583short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
14584short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
14585short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
14586
14587ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
14588ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
14589ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
14590ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
14591
14592int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
14593int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
14594int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
14595int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
14596
14597uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
14598uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
14599uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
14600uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
14601
14602long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
14603long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
14604long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
14605long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
14606
14607ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
14608ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
14609ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
14610ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
14611
14612float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
14613float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
14614float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
14615float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
14616
14617char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
14618char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
14619char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
14620char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
14621
14622uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
14623uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
14624uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
14625uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
14626
14627short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
14628short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
14629short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
14630short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
14631
14632ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
14633ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
14634ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
14635ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
14636
14637int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
14638int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
14639int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
14640int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
14641
14642uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
14643uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
14644uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
14645uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
14646
14647long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
14648long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
14649long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
14650long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
14651
14652ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
14653ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
14654ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
14655ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
14656
14657float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
14658float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
14659float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
14660float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
14661
14662#ifdef cl_khr_fp64
14663double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
14664double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
14665double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
14666double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
14667
14668double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
14669double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
14670double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
14671double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
14672
14673double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
14674double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
14675double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
14676double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
14677
14678double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
14679double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
14680double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
14681double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
14682#endif //cl_khr_fp64
14683
14684#ifdef cl_khr_fp16
14685half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
14686half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
14687half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
14688half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
14689
14690half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
14691half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
14692half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
14693half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
14694
14695half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
14696half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
14697half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
14698half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
14699
14700half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
14701half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
14702half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
14703half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
14704#endif //cl_khr_fp16
14705
14706char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
14707char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
14708char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
14709char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
14710
14711uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
14712uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
14713uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
14714uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
14715
14716short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
14717short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
14718short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
14719short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
14720
14721ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
14722ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
14723ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
14724ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
14725
14726int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
14727int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
14728int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
14729int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
14730
14731uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
14732uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
14733uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
14734uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
14735
14736long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
14737long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
14738long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
14739long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
14740
14741ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
14742ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
14743ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
14744ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
14745
14746float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
14747float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
14748float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
14749float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
14750
14751char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
14752char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
14753char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
14754char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
14755
14756uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
14757uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
14758uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
14759uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
14760
14761short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
14762short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
14763short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
14764short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
14765
14766ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
14767ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
14768ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
14769ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
14770
14771int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
14772int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
14773int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
14774int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
14775
14776uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
14777uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
14778uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
14779uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
14780
14781long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
14782long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
14783long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
14784long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
14785
14786ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
14787ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
14788ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
14789ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
14790
14791float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
14792float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
14793float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
14794float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
14795
14796char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
14797char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
14798char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
14799char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
14800
14801uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
14802uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
14803uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
14804uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
14805
14806short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
14807short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
14808short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
14809short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
14810
14811ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
14812ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
14813ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
14814ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
14815
14816int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
14817int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
14818int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
14819int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
14820
14821uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
14822uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
14823uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
14824uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
14825
14826long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
14827long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
14828long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
14829long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
14830
14831ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
14832ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
14833ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
14834ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
14835
14836float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
14837float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
14838float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
14839float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
14840
14841char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
14842char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
14843char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
14844char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
14845
14846uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
14847uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
14848uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
14849uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
14850
14851short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
14852short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
14853short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
14854short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
14855
14856ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
14857ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
14858ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
14859ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
14860
14861int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
14862int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
14863int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
14864int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
14865
14866uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
14867uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
14868uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
14869uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
14870
14871long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
14872long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
14873long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
14874long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
14875
14876ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
14877ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
14878ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
14879ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
14880
14881float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
14882float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
14883float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
14884float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
14885
14886#ifdef cl_khr_fp64
14887double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
14888double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
14889double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
14890double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
14891
14892double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
14893double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
14894double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
14895double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
14896
14897double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
14898double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
14899double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
14900double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
14901
14902double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
14903double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
14904double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
14905double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
14906#endif //cl_khr_fp64
14907
14908#ifdef cl_khr_fp16
14909half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
14910half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
14911half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
14912half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
14913
14914half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
14915half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
14916half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
14917half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
14918
14919half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
14920half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
14921half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
14922half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
14923
14924half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
14925half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
14926half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
14927half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
14928#endif //cl_khr_fp16
14929
Logan Chien2833ffb2018-10-09 10:03:24 +080014930// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
14931
Logan Chien55afb0a2018-10-15 10:42:14 +080014932#ifdef cl_khr_gl_msaa_sharing
14933#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
14934#endif //cl_khr_gl_msaa_sharing
14935
Logan Chien2833ffb2018-10-09 10:03:24 +080014936/**
14937 * Use the coordinate (coord.xy) to do an element lookup in
14938 * the 2D image object specified by image.
14939 *
14940 * Use the coordinate (coord.x, coord.y, coord.z) to do
14941 * an element lookup in the 3D image object specified
14942 * by image. coord.w is ignored.
14943 *
14944 * Use the coordinate (coord.z) to index into the
14945 * 2D image array object specified by image_array
14946 * and (coord.x, coord.y) to do an element lookup in
14947 * the 2D image object specified by image.
14948 *
14949 * Use the coordinate (x) to do an element lookup in
14950 * the 1D image object specified by image.
14951 *
14952 * Use the coordinate (coord.y) to index into the
14953 * 1D image array object specified by image_array
14954 * and (coord.x) to do an element lookup in
14955 * the 1D image object specified by image.
14956 *
14957 * Use the coordinate (cood.xy) and sample to do an
14958 * element lookup in the 2D multi-sample image specified
14959 * by image.
14960 *
14961 * Use coord.xy and sample to do an element
14962 * lookup in the 2D multi-sample image layer
14963 * identified by index coord.z in the 2D multi-sample
14964 * image array specified by image.
14965 *
14966 * For mipmap images, use the mip-level specified by
14967 * the Level-of-Detail (lod) or use gradients for LOD
14968 * computation.
14969 *
14970 * read_imagef returns floating-point values in the
14971 * range [0.0 ... 1.0] for image objects created with
14972 * image_channel_data_type set to one of the predefined
14973 * packed formats or CL_UNORM_INT8, or
14974 * CL_UNORM_INT16.
14975 *
14976 * read_imagef returns floating-point values in the
14977 * range [-1.0 ... 1.0] for image objects created with
14978 * image_channel_data_type set to CL_SNORM_INT8,
14979 * or CL_SNORM_INT16.
14980 *
14981 * read_imagef returns floating-point values for image
14982 * objects created with image_channel_data_type set to
14983 * CL_HALF_FLOAT or CL_FLOAT.
14984 *
14985 * read_imagei and read_imageui return
14986 * unnormalized signed integer and unsigned integer
14987 * values respectively. Each channel will be stored in a
14988 * 32-bit integer.
14989 *
14990 * read_imagei can only be used with image objects
14991 * created with image_channel_data_type set to one of
14992 * the following values:
14993 * CL_SIGNED_INT8,
14994 * CL_SIGNED_INT16 and
14995 * CL_SIGNED_INT32.
14996 * If the image_channel_data_type is not one of the
14997 * above values, the values returned by read_imagei
14998 * are undefined.
14999 *
15000 * read_imageui can only be used with image objects
15001 * created with image_channel_data_type set to one of
15002 * the following values:
15003 * CL_UNSIGNED_INT8,
15004 * CL_UNSIGNED_INT16 and
15005 * CL_UNSIGNED_INT32.
15006 * If the image_channel_data_type is not one of the
15007 * above values, the values returned by read_imageui
15008 * are undefined.
15009 *
15010 * The read_image{i|ui} calls support a nearest filter
15011 * only. The filter_mode specified in sampler
15012 * must be set to CLK_FILTER_NEAREST; otherwise
15013 * the values returned are undefined.
Logan Chien55afb0a2018-10-15 10:42:14 +080015014
Logan Chien2833ffb2018-10-09 10:03:24 +080015015 * The read_image{f|i|ui} calls that take
15016 * integer coordinates must use a sampler with
15017 * normalized coordinates set to
15018 * CLK_NORMALIZED_COORDS_FALSE and
15019 * addressing mode set to
15020 * CLK_ADDRESS_CLAMP_TO_EDGE,
15021 * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
15022 * otherwise the values returned are undefined.
15023 *
15024 * Values returned by read_imagef for image objects
15025 * with image_channel_data_type values not specified
15026 * in the description above are undefined.
15027 */
15028
15029float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
15030float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
15031
15032int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
15033int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
15034uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
15035uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
15036
15037float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
15038float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
15039
15040int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
15041int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
15042uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
15043uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
15044
Logan Chienbedbf4f2020-01-06 19:35:19 -080015045#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015046float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15047float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15048
15049int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15050int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15051uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15052uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015053#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015054
15055float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
15056float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
15057
15058int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
15059int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
15060uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
15061uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
15062
Logan Chienbedbf4f2020-01-06 19:35:19 -080015063#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015064float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15065float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15066
15067int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15068int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15069uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15070uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015071#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015072
15073#ifdef cl_khr_depth_images
15074float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
15075float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
15076
15077float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
15078float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
15079#endif //cl_khr_depth_images
15080
15081#if defined(cl_khr_gl_msaa_sharing)
15082float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
15083int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
15084uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
15085
15086float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
15087
15088float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
15089int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
15090uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
15091
15092float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
15093#endif //cl_khr_gl_msaa_sharing
15094
15095// OpenCL Extension v2.0 s9.18 - Mipmaps
Logan Chienbedbf4f2020-01-06 19:35:19 -080015096#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015097#ifdef cl_khr_mipmap_image
15098
15099float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15100int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15101uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15102
15103float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15104int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15105uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15106
15107float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15108int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15109uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15110
15111float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15112
15113float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15114int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15115uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15116
15117float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15118
15119float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15120int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15121uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15122
15123float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15124int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15125uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15126
15127float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15128int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15129uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15130
15131float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15132int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15133uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15134
15135float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15136
15137float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15138int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15139uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15140
15141float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15142
15143float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15144int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15145uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15146
Logan Chien2833ffb2018-10-09 10:03:24 +080015147#endif //cl_khr_mipmap_image
Logan Chienbedbf4f2020-01-06 19:35:19 -080015148#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015149
Logan Chienbedbf4f2020-01-06 19:35:19 -080015150#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chiendbcf4122019-03-21 10:50:25 +080015151
Logan Chien2833ffb2018-10-09 10:03:24 +080015152/**
15153* Sampler-less Image Access
15154*/
15155
15156float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
15157int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
15158uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
15159
15160float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
15161int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
15162uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
15163
15164float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
15165int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
15166uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
15167
15168float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
15169int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
15170uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
15171
15172float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
15173int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
15174uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
15175
15176#ifdef cl_khr_depth_images
15177float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
15178float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
15179#endif //cl_khr_depth_images
15180
15181float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
15182int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
15183uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
15184
Logan Chienbedbf4f2020-01-06 19:35:19 -080015185#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chiendbcf4122019-03-21 10:50:25 +080015186
Logan Chien2833ffb2018-10-09 10:03:24 +080015187// Image read functions returning half4 type
15188#ifdef cl_khr_fp16
15189half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
15190half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
Logan Chien2833ffb2018-10-09 10:03:24 +080015191half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
15192half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
15193half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
15194half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015195#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chiendbcf4122019-03-21 10:50:25 +080015196half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
15197half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
Logan Chien2833ffb2018-10-09 10:03:24 +080015198half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
15199half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
Logan Chiendbcf4122019-03-21 10:50:25 +080015200/**
15201 * Sampler-less Image Access
15202 */
Logan Chien2833ffb2018-10-09 10:03:24 +080015203half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
15204half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
15205half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
15206half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
15207half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
15208half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015209#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015210#endif //cl_khr_fp16
15211
15212// Image read functions for read_write images
Logan Chienbedbf4f2020-01-06 19:35:19 -080015213#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015214float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
15215int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
15216uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
15217
15218float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
15219int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
15220uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
15221
15222float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
15223int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
15224uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
15225
15226float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
15227int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
15228uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
15229
15230float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
15231int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
15232uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
15233
15234float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
15235int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
15236uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
15237
15238#ifdef cl_khr_depth_images
15239float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
15240float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
15241#endif //cl_khr_depth_images
15242
15243#if cl_khr_gl_msaa_sharing
15244float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
15245int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
15246uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
15247
15248float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
15249int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
15250uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
15251
15252float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
15253float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
15254#endif //cl_khr_gl_msaa_sharing
15255
Logan Chienbedbf4f2020-01-06 19:35:19 -080015256#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015257#ifdef cl_khr_mipmap_image
15258float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15259int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15260uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15261
15262float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15263int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15264uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15265
15266float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15267int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15268uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15269
15270float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15271
15272float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15273int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15274uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15275
15276float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15277
15278float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15279int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15280uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15281
15282float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15283int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15284uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15285
15286float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15287int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15288uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15289
15290float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15291int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15292uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15293
15294float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15295
15296float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15297int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15298uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15299
15300float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15301
15302float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15303int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15304uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15305
Logan Chien2833ffb2018-10-09 10:03:24 +080015306#endif //cl_khr_mipmap_image
Logan Chienbedbf4f2020-01-06 19:35:19 -080015307#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015308
15309// Image read functions returning half4 type
15310#ifdef cl_khr_fp16
15311half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
15312half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
15313half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
15314half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
15315half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
15316half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
15317#endif //cl_khr_fp16
Logan Chienbedbf4f2020-01-06 19:35:19 -080015318#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015319
15320/**
15321 * Write color value to location specified by coordinate
15322 * (coord.x, coord.y) in the 2D image object specified by image.
15323 * (coord.x, coord.y) are considered to be unnormalized coordinates
15324 * and must be in the range 0 ... image width - 1, and 0
15325 * ... image height - 1.
15326
15327 * Write color value to location specified by coordinate
15328 * (coord.x, coord.y) in the 2D image object specified by index
15329 * (coord.z) of the 2D image array object image_array.
15330 * (coord.x, coord.y) are considered to be unnormalized
15331 * coordinates and must be in the range 0 ... image width
15332 * - 1.
15333 *
15334 * Write color value to location specified by coordinate
15335 * (coord) in the 1D image (buffer) object specified by image.
15336 * coord is considered to be unnormalized coordinates
15337 * and must be in the range 0 ... image width - 1.
15338 *
15339 * Write color value to location specified by coordinate
15340 * (coord.x) in the 1D image object specified by index
15341 * (coord.y) of the 1D image array object image_array.
15342 * x is considered to be unnormalized coordinates
15343 * and must be in the range 0 ... image width - 1.
15344 *
15345 * Write color value to location specified by coordinate
15346 * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
15347 * coord.x & coord.y are considered to be unnormalized coordinates
15348 * and must be in the range 0 ... image width - 1, and 0
15349 * ... image height - 1.
15350 *
15351 * For mipmap images, use mip-level specified by lod.
15352 *
15353 * Appropriate data format conversion to the specified
15354 * image format is done before writing the color value.
15355 *
15356 * write_imagef can only be used with image objects
15357 * created with image_channel_data_type set to one of
15358 * the pre-defined packed formats or set to
15359 * CL_SNORM_INT8, CL_UNORM_INT8,
15360 * CL_SNORM_INT16, CL_UNORM_INT16,
15361 * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
15362 * format conversion will be done to convert channel
15363 * data from a floating-point value to actual data format
15364 * in which the channels are stored.
15365 *
15366 * write_imagei can only be used with image objects
15367 * created with image_channel_data_type set to one of
15368 * the following values:
15369 * CL_SIGNED_INT8,
15370 * CL_SIGNED_INT16 and
15371 * CL_SIGNED_INT32.
15372 *
15373 * write_imageui can only be used with image objects
15374 * created with image_channel_data_type set to one of
15375 * the following values:
15376 * CL_UNSIGNED_INT8,
15377 * CL_UNSIGNED_INT16 and
15378 * CL_UNSIGNED_INT32.
15379 *
15380 * The behavior of write_imagef, write_imagei and
15381 * write_imageui for image objects created with
15382 * image_channel_data_type values not specified in
15383 * the description above or with (x, y) coordinate
15384 * values that are not in the range (0 ... image width -1,
15385 * 0 ... image height - 1), respectively, is undefined.
15386 */
15387void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
15388void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
15389void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
15390
15391void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
15392void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
15393void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
15394
15395void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
15396void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
15397void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
15398
15399void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
15400void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
15401void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
15402
15403void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
15404void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
15405void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
15406
Logan Chien55afb0a2018-10-15 10:42:14 +080015407#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015408void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
15409void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
15410void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015411#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015412
15413#ifdef cl_khr_depth_images
15414void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
15415void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
15416#endif //cl_khr_depth_images
15417
15418// OpenCL Extension v2.0 s9.18 - Mipmaps
Logan Chienbedbf4f2020-01-06 19:35:19 -080015419#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015420#if defined(cl_khr_mipmap_image_writes)
Logan Chien2833ffb2018-10-09 10:03:24 +080015421void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
15422void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
15423void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
15424
15425void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
15426void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
15427void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
15428
15429void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
15430void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
15431void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
15432
15433void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
15434void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
15435void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
15436
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015437void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float depth);
15438void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float depth);
Logan Chien2833ffb2018-10-09 10:03:24 +080015439
Logan Chien55afb0a2018-10-15 10:42:14 +080015440#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015441void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
15442void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
15443void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015444#endif //cl_khr_3d_image_writes
15445
15446#endif //defined(cl_khr_mipmap_image_writes)
Logan Chienbedbf4f2020-01-06 19:35:19 -080015447#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015448
15449// Image write functions for half4 type
15450#ifdef cl_khr_fp16
15451void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
15452void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015453#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015454void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015455#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015456void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
15457void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
15458void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
15459#endif //cl_khr_fp16
15460
15461// Image write functions for read_write images
Logan Chienbedbf4f2020-01-06 19:35:19 -080015462#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015463void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
15464void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
15465void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
15466
15467void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
15468void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
15469void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
15470
15471void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
15472void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
15473void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
15474
15475void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
15476void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
15477void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
15478
15479void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
15480void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
15481void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
15482
Logan Chien55afb0a2018-10-15 10:42:14 +080015483#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015484void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
15485void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
15486void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015487#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015488
15489#ifdef cl_khr_depth_images
15490void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
15491void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
15492#endif //cl_khr_depth_images
15493
Logan Chienbedbf4f2020-01-06 19:35:19 -080015494#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015495#if defined(cl_khr_mipmap_image_writes)
Logan Chien2833ffb2018-10-09 10:03:24 +080015496void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
15497void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
15498void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
15499
15500void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
15501void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
15502void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
15503
15504void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
15505void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
15506void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
15507
15508void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
15509void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
15510void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
15511
15512void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
15513void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
15514
Logan Chien55afb0a2018-10-15 10:42:14 +080015515#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015516void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
15517void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
15518void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015519#endif //cl_khr_3d_image_writes
15520
15521#endif //cl_khr_mipmap_image_writes
Logan Chienbedbf4f2020-01-06 19:35:19 -080015522#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015523
15524// Image write functions for half4 type
15525#ifdef cl_khr_fp16
15526void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
15527void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015528#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015529void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015530#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015531void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
15532void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
15533void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
15534#endif //cl_khr_fp16
Logan Chienbedbf4f2020-01-06 19:35:19 -080015535#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015536
15537// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
15538// access qualifier, which by default assume read_only access qualifier. Image query builtin
15539// functions with write_only image argument should also be declared.
15540
15541/**
15542 * Return the image width in pixels.
15543 *
15544 */
15545int __ovld __cnfn get_image_width(read_only image1d_t image);
15546int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
15547int __ovld __cnfn get_image_width(read_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015548#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015549int __ovld __cnfn get_image_width(read_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015550#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015551int __ovld __cnfn get_image_width(read_only image1d_array_t image);
15552int __ovld __cnfn get_image_width(read_only image2d_array_t image);
15553#ifdef cl_khr_depth_images
15554int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
15555int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
15556#endif //cl_khr_depth_images
15557#if defined(cl_khr_gl_msaa_sharing)
15558int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
15559int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
15560int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
15561int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
15562#endif //cl_khr_gl_msaa_sharing
15563
15564int __ovld __cnfn get_image_width(write_only image1d_t image);
15565int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
15566int __ovld __cnfn get_image_width(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015567#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015568int __ovld __cnfn get_image_width(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015569#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015570int __ovld __cnfn get_image_width(write_only image1d_array_t image);
15571int __ovld __cnfn get_image_width(write_only image2d_array_t image);
15572#ifdef cl_khr_depth_images
15573int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
15574int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
15575#endif //cl_khr_depth_images
15576#if defined(cl_khr_gl_msaa_sharing)
15577int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
15578int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
15579int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
15580int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
15581#endif //cl_khr_gl_msaa_sharing
15582
Logan Chienbedbf4f2020-01-06 19:35:19 -080015583#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015584int __ovld __cnfn get_image_width(read_write image1d_t image);
15585int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
15586int __ovld __cnfn get_image_width(read_write image2d_t image);
15587int __ovld __cnfn get_image_width(read_write image3d_t image);
15588int __ovld __cnfn get_image_width(read_write image1d_array_t image);
15589int __ovld __cnfn get_image_width(read_write image2d_array_t image);
15590#ifdef cl_khr_depth_images
15591int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
15592int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
15593#endif //cl_khr_depth_images
15594#if defined(cl_khr_gl_msaa_sharing)
15595int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
15596int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
15597int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
15598int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
15599#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015600#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015601
15602/**
15603 * Return the image height in pixels.
15604 */
15605int __ovld __cnfn get_image_height(read_only image2d_t image);
15606int __ovld __cnfn get_image_height(read_only image3d_t image);
15607int __ovld __cnfn get_image_height(read_only image2d_array_t image);
15608#ifdef cl_khr_depth_images
15609int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
15610int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
15611#endif //cl_khr_depth_images
15612#if defined(cl_khr_gl_msaa_sharing)
15613int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
15614int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
15615int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
15616int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
15617#endif //cl_khr_gl_msaa_sharing
15618
15619int __ovld __cnfn get_image_height(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015620#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015621int __ovld __cnfn get_image_height(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015622#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015623int __ovld __cnfn get_image_height(write_only image2d_array_t image);
15624#ifdef cl_khr_depth_images
15625int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
15626int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
15627#endif //cl_khr_depth_images
15628#if defined(cl_khr_gl_msaa_sharing)
15629int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
15630int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
15631int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
15632int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
15633#endif //cl_khr_gl_msaa_sharing
15634
Logan Chienbedbf4f2020-01-06 19:35:19 -080015635#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015636int __ovld __cnfn get_image_height(read_write image2d_t image);
15637int __ovld __cnfn get_image_height(read_write image3d_t image);
15638int __ovld __cnfn get_image_height(read_write image2d_array_t image);
15639#ifdef cl_khr_depth_images
15640int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
15641int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
15642#endif //cl_khr_depth_images
15643#if defined(cl_khr_gl_msaa_sharing)
15644int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
15645int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
15646int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
15647int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
15648#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015649#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015650
15651/**
15652 * Return the image depth in pixels.
15653 */
15654int __ovld __cnfn get_image_depth(read_only image3d_t image);
15655
Logan Chien55afb0a2018-10-15 10:42:14 +080015656#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015657int __ovld __cnfn get_image_depth(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015658#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015659
Logan Chienbedbf4f2020-01-06 19:35:19 -080015660#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015661int __ovld __cnfn get_image_depth(read_write image3d_t image);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015662#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015663
15664// OpenCL Extension v2.0 s9.18 - Mipmaps
Logan Chienbedbf4f2020-01-06 19:35:19 -080015665#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015666#ifdef cl_khr_mipmap_image
15667/**
15668 * Return the image miplevels.
15669 */
15670
15671int __ovld get_image_num_mip_levels(read_only image1d_t image);
15672int __ovld get_image_num_mip_levels(read_only image2d_t image);
15673int __ovld get_image_num_mip_levels(read_only image3d_t image);
15674
15675int __ovld get_image_num_mip_levels(write_only image1d_t image);
15676int __ovld get_image_num_mip_levels(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015677#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015678int __ovld get_image_num_mip_levels(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015679#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015680
Logan Chien2833ffb2018-10-09 10:03:24 +080015681int __ovld get_image_num_mip_levels(read_write image1d_t image);
15682int __ovld get_image_num_mip_levels(read_write image2d_t image);
15683int __ovld get_image_num_mip_levels(read_write image3d_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080015684
15685int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
15686int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
15687int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
15688int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
15689
15690int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
15691int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
15692int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
15693int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
15694
Logan Chien2833ffb2018-10-09 10:03:24 +080015695int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
15696int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
15697int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
15698int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080015699
15700#endif //cl_khr_mipmap_image
Logan Chienbedbf4f2020-01-06 19:35:19 -080015701#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015702
15703/**
15704 * Return the channel data type. Valid values are:
15705 * CLK_SNORM_INT8
15706 * CLK_SNORM_INT16
15707 * CLK_UNORM_INT8
15708 * CLK_UNORM_INT16
15709 * CLK_UNORM_SHORT_565
15710 * CLK_UNORM_SHORT_555
15711 * CLK_UNORM_SHORT_101010
15712 * CLK_SIGNED_INT8
15713 * CLK_SIGNED_INT16
15714 * CLK_SIGNED_INT32
15715 * CLK_UNSIGNED_INT8
15716 * CLK_UNSIGNED_INT16
15717 * CLK_UNSIGNED_INT32
15718 * CLK_HALF_FLOAT
15719 * CLK_FLOAT
15720 */
15721
Logan Chien2833ffb2018-10-09 10:03:24 +080015722int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
15723int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
15724int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
15725int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
15726int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
15727int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
15728#ifdef cl_khr_depth_images
15729int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
15730int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
15731#endif //cl_khr_depth_images
15732#if defined(cl_khr_gl_msaa_sharing)
15733int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
15734int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
15735int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
15736int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
15737#endif //cl_khr_gl_msaa_sharing
15738
15739int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
15740int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
15741int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015742#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015743int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015744#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015745int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
15746int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
15747#ifdef cl_khr_depth_images
15748int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
15749int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
15750#endif //cl_khr_depth_images
15751#if defined(cl_khr_gl_msaa_sharing)
15752int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
15753int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
15754int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
15755int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
15756#endif //cl_khr_gl_msaa_sharing
15757
Logan Chienbedbf4f2020-01-06 19:35:19 -080015758#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015759int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
15760int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
15761int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
15762int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
15763int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
15764int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
15765#ifdef cl_khr_depth_images
15766int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
15767int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
15768#endif //cl_khr_depth_images
15769#if defined(cl_khr_gl_msaa_sharing)
15770int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
15771int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
15772int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
15773int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
15774#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015775#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015776
15777/**
15778 * Return the image channel order. Valid values are:
15779 * CLK_A
15780 * CLK_R
15781 * CLK_Rx
15782 * CLK_RG
15783 * CLK_RGx
15784 * CLK_RA
15785 * CLK_RGB
15786 * CLK_RGBx
15787 * CLK_RGBA
15788 * CLK_ARGB
15789 * CLK_BGRA
15790 * CLK_INTENSITY
15791 * CLK_LUMINANCE
15792 */
Logan Chien2833ffb2018-10-09 10:03:24 +080015793
15794int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
15795int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
15796int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
15797int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
15798int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
15799int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
15800#ifdef cl_khr_depth_images
15801int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
15802int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
15803#endif //cl_khr_depth_images
15804#if defined(cl_khr_gl_msaa_sharing)
15805int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
15806int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
15807int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
15808int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
15809#endif //cl_khr_gl_msaa_sharing
15810
15811int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
15812int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
15813int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015814#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015815int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015816#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015817int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
15818int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
15819#ifdef cl_khr_depth_images
15820int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
15821int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
15822#endif //cl_khr_depth_images
15823#if defined(cl_khr_gl_msaa_sharing)
15824int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
15825int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
15826int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
15827int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
15828#endif //cl_khr_gl_msaa_sharing
15829
Logan Chienbedbf4f2020-01-06 19:35:19 -080015830#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015831int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
15832int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
15833int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
15834int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
15835int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
15836int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
15837#ifdef cl_khr_depth_images
15838int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
15839int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
15840#endif //cl_khr_depth_images
15841#if defined(cl_khr_gl_msaa_sharing)
15842int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
15843int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
15844int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
15845int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
15846#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015847#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015848
15849/**
15850 * Return the 2D image width and height as an int2
15851 * type. The width is returned in the x component, and
15852 * the height in the y component.
15853 */
15854int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
15855int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
15856#ifdef cl_khr_depth_images
15857int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
15858int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
15859#endif //cl_khr_depth_images
15860#if defined(cl_khr_gl_msaa_sharing)
15861int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
15862int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
15863int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
15864int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
15865#endif //cl_khr_gl_msaa_sharing
15866
15867int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
15868int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
15869#ifdef cl_khr_depth_images
15870int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
15871int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
15872#endif //cl_khr_depth_images
15873#if defined(cl_khr_gl_msaa_sharing)
15874int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
15875int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
15876int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
15877int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
15878#endif //cl_khr_gl_msaa_sharing
15879
Logan Chienbedbf4f2020-01-06 19:35:19 -080015880#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015881int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
15882int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
15883#ifdef cl_khr_depth_images
15884int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
15885int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
15886#endif //cl_khr_depth_images
15887#if defined(cl_khr_gl_msaa_sharing)
15888int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
15889int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
15890int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
15891int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
15892#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015893#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015894
15895/**
15896 * Return the 3D image width, height, and depth as an
15897 * int4 type. The width is returned in the x
15898 * component, height in the y component, depth in the z
15899 * component and the w component is 0.
15900 */
15901int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015902#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015903int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015904#endif
Logan Chienbedbf4f2020-01-06 19:35:19 -080015905#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015906int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015907#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015908
15909/**
15910 * Return the image array size.
15911 */
15912
15913size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
15914size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
15915#ifdef cl_khr_depth_images
15916size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
15917#endif //cl_khr_depth_images
15918#if defined(cl_khr_gl_msaa_sharing)
15919size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
15920size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
15921#endif //cl_khr_gl_msaa_sharing
15922
15923size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
15924size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
15925#ifdef cl_khr_depth_images
15926size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
15927#endif //cl_khr_depth_images
15928#if defined(cl_khr_gl_msaa_sharing)
15929size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
15930size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
15931#endif //cl_khr_gl_msaa_sharing
15932
Logan Chienbedbf4f2020-01-06 19:35:19 -080015933#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015934size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
15935size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
15936#ifdef cl_khr_depth_images
15937size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
15938#endif //cl_khr_depth_images
15939#if defined(cl_khr_gl_msaa_sharing)
15940size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
15941size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
15942#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015943#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015944
15945/**
15946* Return the number of samples associated with image
15947*/
15948#if defined(cl_khr_gl_msaa_sharing)
15949int __ovld get_image_num_samples(read_only image2d_msaa_t image);
15950int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080015951int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
15952int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
15953
15954int __ovld get_image_num_samples(write_only image2d_msaa_t image);
15955int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080015956int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
15957int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
15958
Logan Chienbedbf4f2020-01-06 19:35:19 -080015959#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015960int __ovld get_image_num_samples(read_write image2d_msaa_t image);
15961int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080015962int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
15963int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015964#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015965#endif
15966
15967// OpenCL v2.0 s6.13.15 - Work-group Functions
15968
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080015969#if defined(__opencl_c_work_group_collective_functions)
Logan Chien55afb0a2018-10-15 10:42:14 +080015970int __ovld __conv work_group_all(int predicate);
15971int __ovld __conv work_group_any(int predicate);
Logan Chien2833ffb2018-10-09 10:03:24 +080015972
15973#ifdef cl_khr_fp16
Logan Chien55afb0a2018-10-15 10:42:14 +080015974half __ovld __conv work_group_broadcast(half a, size_t local_id);
15975half __ovld __conv work_group_broadcast(half a, size_t x, size_t y);
15976half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z);
Logan Chien2833ffb2018-10-09 10:03:24 +080015977#endif
Logan Chien55afb0a2018-10-15 10:42:14 +080015978int __ovld __conv work_group_broadcast(int a, size_t local_id);
15979int __ovld __conv work_group_broadcast(int a, size_t x, size_t y);
15980int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z);
15981uint __ovld __conv work_group_broadcast(uint a, size_t local_id);
15982uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y);
15983uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z);
15984long __ovld __conv work_group_broadcast(long a, size_t local_id);
15985long __ovld __conv work_group_broadcast(long a, size_t x, size_t y);
15986long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z);
15987ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id);
15988ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y);
15989ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
15990float __ovld __conv work_group_broadcast(float a, size_t local_id);
15991float __ovld __conv work_group_broadcast(float a, size_t x, size_t y);
15992float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z);
Logan Chien2833ffb2018-10-09 10:03:24 +080015993#ifdef cl_khr_fp64
Logan Chien55afb0a2018-10-15 10:42:14 +080015994double __ovld __conv work_group_broadcast(double a, size_t local_id);
15995double __ovld __conv work_group_broadcast(double a, size_t x, size_t y);
15996double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z);
Logan Chien2833ffb2018-10-09 10:03:24 +080015997#endif //cl_khr_fp64
15998
15999#ifdef cl_khr_fp16
Logan Chien55afb0a2018-10-15 10:42:14 +080016000half __ovld __conv work_group_reduce_add(half x);
16001half __ovld __conv work_group_reduce_min(half x);
16002half __ovld __conv work_group_reduce_max(half x);
16003half __ovld __conv work_group_scan_exclusive_add(half x);
16004half __ovld __conv work_group_scan_exclusive_min(half x);
16005half __ovld __conv work_group_scan_exclusive_max(half x);
16006half __ovld __conv work_group_scan_inclusive_add(half x);
16007half __ovld __conv work_group_scan_inclusive_min(half x);
16008half __ovld __conv work_group_scan_inclusive_max(half x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016009#endif
Logan Chien55afb0a2018-10-15 10:42:14 +080016010int __ovld __conv work_group_reduce_add(int x);
16011int __ovld __conv work_group_reduce_min(int x);
16012int __ovld __conv work_group_reduce_max(int x);
16013int __ovld __conv work_group_scan_exclusive_add(int x);
16014int __ovld __conv work_group_scan_exclusive_min(int x);
16015int __ovld __conv work_group_scan_exclusive_max(int x);
16016int __ovld __conv work_group_scan_inclusive_add(int x);
16017int __ovld __conv work_group_scan_inclusive_min(int x);
16018int __ovld __conv work_group_scan_inclusive_max(int x);
16019uint __ovld __conv work_group_reduce_add(uint x);
16020uint __ovld __conv work_group_reduce_min(uint x);
16021uint __ovld __conv work_group_reduce_max(uint x);
16022uint __ovld __conv work_group_scan_exclusive_add(uint x);
16023uint __ovld __conv work_group_scan_exclusive_min(uint x);
16024uint __ovld __conv work_group_scan_exclusive_max(uint x);
16025uint __ovld __conv work_group_scan_inclusive_add(uint x);
16026uint __ovld __conv work_group_scan_inclusive_min(uint x);
16027uint __ovld __conv work_group_scan_inclusive_max(uint x);
16028long __ovld __conv work_group_reduce_add(long x);
16029long __ovld __conv work_group_reduce_min(long x);
16030long __ovld __conv work_group_reduce_max(long x);
16031long __ovld __conv work_group_scan_exclusive_add(long x);
16032long __ovld __conv work_group_scan_exclusive_min(long x);
16033long __ovld __conv work_group_scan_exclusive_max(long x);
16034long __ovld __conv work_group_scan_inclusive_add(long x);
16035long __ovld __conv work_group_scan_inclusive_min(long x);
16036long __ovld __conv work_group_scan_inclusive_max(long x);
16037ulong __ovld __conv work_group_reduce_add(ulong x);
16038ulong __ovld __conv work_group_reduce_min(ulong x);
16039ulong __ovld __conv work_group_reduce_max(ulong x);
16040ulong __ovld __conv work_group_scan_exclusive_add(ulong x);
16041ulong __ovld __conv work_group_scan_exclusive_min(ulong x);
16042ulong __ovld __conv work_group_scan_exclusive_max(ulong x);
16043ulong __ovld __conv work_group_scan_inclusive_add(ulong x);
16044ulong __ovld __conv work_group_scan_inclusive_min(ulong x);
16045ulong __ovld __conv work_group_scan_inclusive_max(ulong x);
16046float __ovld __conv work_group_reduce_add(float x);
16047float __ovld __conv work_group_reduce_min(float x);
16048float __ovld __conv work_group_reduce_max(float x);
16049float __ovld __conv work_group_scan_exclusive_add(float x);
16050float __ovld __conv work_group_scan_exclusive_min(float x);
16051float __ovld __conv work_group_scan_exclusive_max(float x);
16052float __ovld __conv work_group_scan_inclusive_add(float x);
16053float __ovld __conv work_group_scan_inclusive_min(float x);
16054float __ovld __conv work_group_scan_inclusive_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016055#ifdef cl_khr_fp64
Logan Chien55afb0a2018-10-15 10:42:14 +080016056double __ovld __conv work_group_reduce_add(double x);
16057double __ovld __conv work_group_reduce_min(double x);
16058double __ovld __conv work_group_reduce_max(double x);
16059double __ovld __conv work_group_scan_exclusive_add(double x);
16060double __ovld __conv work_group_scan_exclusive_min(double x);
16061double __ovld __conv work_group_scan_exclusive_max(double x);
16062double __ovld __conv work_group_scan_inclusive_add(double x);
16063double __ovld __conv work_group_scan_inclusive_min(double x);
16064double __ovld __conv work_group_scan_inclusive_max(double x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016065#endif //cl_khr_fp64
16066
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016067#endif //defined(__opencl_c_work_group_collective_functions)
Logan Chien2833ffb2018-10-09 10:03:24 +080016068
16069// OpenCL v2.0 s6.13.16 - Pipe Functions
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016070#if defined(__opencl_c_pipes)
Logan Chien2833ffb2018-10-09 10:03:24 +080016071bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016072#endif //defined(__opencl_c_pipes)
Logan Chien2833ffb2018-10-09 10:03:24 +080016073
16074
16075// OpenCL v2.0 s6.13.17 - Enqueue Kernels
Logan Chienbedbf4f2020-01-06 19:35:19 -080016076#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016077
Logan Chien2833ffb2018-10-09 10:03:24 +080016078ndrange_t __ovld ndrange_1D(size_t);
16079ndrange_t __ovld ndrange_1D(size_t, size_t);
16080ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
16081
16082ndrange_t __ovld ndrange_2D(const size_t[2]);
16083ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
16084ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
16085
16086ndrange_t __ovld ndrange_3D(const size_t[3]);
16087ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
16088ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
16089
Logan Chienbedbf4f2020-01-06 19:35:19 -080016090int __ovld enqueue_marker(queue_t, uint, const clk_event_t*, clk_event_t*);
Logan Chien2833ffb2018-10-09 10:03:24 +080016091
16092void __ovld retain_event(clk_event_t);
16093
16094void __ovld release_event(clk_event_t);
16095
Logan Chien55afb0a2018-10-15 10:42:14 +080016096clk_event_t __ovld create_user_event(void);
Logan Chien2833ffb2018-10-09 10:03:24 +080016097
16098void __ovld set_user_event_status(clk_event_t e, int state);
16099
Logan Chien55afb0a2018-10-15 10:42:14 +080016100bool __ovld is_valid_event (clk_event_t event);
Logan Chien2833ffb2018-10-09 10:03:24 +080016101
16102void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
16103
16104queue_t __ovld get_default_queue(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016105#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016106
16107// OpenCL Extension v2.0 s9.17 - Sub-groups
16108
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016109#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
Logan Chien2833ffb2018-10-09 10:03:24 +080016110// Shared Sub Group Functions
16111uint __ovld get_sub_group_size(void);
16112uint __ovld get_max_sub_group_size(void);
16113uint __ovld get_num_sub_groups(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016114#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016115uint __ovld get_enqueued_num_sub_groups(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016116#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016117uint __ovld get_sub_group_id(void);
16118uint __ovld get_sub_group_local_id(void);
16119
Logan Chien55afb0a2018-10-15 10:42:14 +080016120void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016121#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080016122void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016123#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016124
Logan Chien55afb0a2018-10-15 10:42:14 +080016125int __ovld __conv sub_group_all(int predicate);
16126int __ovld __conv sub_group_any(int predicate);
Logan Chien2833ffb2018-10-09 10:03:24 +080016127
Logan Chien55afb0a2018-10-15 10:42:14 +080016128int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id);
16129uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id);
16130long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id);
16131ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id);
16132float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id);
Logan Chien2833ffb2018-10-09 10:03:24 +080016133
Logan Chien55afb0a2018-10-15 10:42:14 +080016134int __ovld __conv sub_group_reduce_add(int x);
16135uint __ovld __conv sub_group_reduce_add(uint x);
16136long __ovld __conv sub_group_reduce_add(long x);
16137ulong __ovld __conv sub_group_reduce_add(ulong x);
16138float __ovld __conv sub_group_reduce_add(float x);
16139int __ovld __conv sub_group_reduce_min(int x);
16140uint __ovld __conv sub_group_reduce_min(uint x);
16141long __ovld __conv sub_group_reduce_min(long x);
16142ulong __ovld __conv sub_group_reduce_min(ulong x);
16143float __ovld __conv sub_group_reduce_min(float x);
16144int __ovld __conv sub_group_reduce_max(int x);
16145uint __ovld __conv sub_group_reduce_max(uint x);
16146long __ovld __conv sub_group_reduce_max(long x);
16147ulong __ovld __conv sub_group_reduce_max(ulong x);
16148float __ovld __conv sub_group_reduce_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016149
Logan Chien55afb0a2018-10-15 10:42:14 +080016150int __ovld __conv sub_group_scan_exclusive_add(int x);
16151uint __ovld __conv sub_group_scan_exclusive_add(uint x);
16152long __ovld __conv sub_group_scan_exclusive_add(long x);
16153ulong __ovld __conv sub_group_scan_exclusive_add(ulong x);
16154float __ovld __conv sub_group_scan_exclusive_add(float x);
16155int __ovld __conv sub_group_scan_exclusive_min(int x);
16156uint __ovld __conv sub_group_scan_exclusive_min(uint x);
16157long __ovld __conv sub_group_scan_exclusive_min(long x);
16158ulong __ovld __conv sub_group_scan_exclusive_min(ulong x);
16159float __ovld __conv sub_group_scan_exclusive_min(float x);
16160int __ovld __conv sub_group_scan_exclusive_max(int x);
16161uint __ovld __conv sub_group_scan_exclusive_max(uint x);
16162long __ovld __conv sub_group_scan_exclusive_max(long x);
16163ulong __ovld __conv sub_group_scan_exclusive_max(ulong x);
16164float __ovld __conv sub_group_scan_exclusive_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016165
Logan Chien55afb0a2018-10-15 10:42:14 +080016166int __ovld __conv sub_group_scan_inclusive_add(int x);
16167uint __ovld __conv sub_group_scan_inclusive_add(uint x);
16168long __ovld __conv sub_group_scan_inclusive_add(long x);
16169ulong __ovld __conv sub_group_scan_inclusive_add(ulong x);
16170float __ovld __conv sub_group_scan_inclusive_add(float x);
16171int __ovld __conv sub_group_scan_inclusive_min(int x);
16172uint __ovld __conv sub_group_scan_inclusive_min(uint x);
16173long __ovld __conv sub_group_scan_inclusive_min(long x);
16174ulong __ovld __conv sub_group_scan_inclusive_min(ulong x);
16175float __ovld __conv sub_group_scan_inclusive_min(float x);
16176int __ovld __conv sub_group_scan_inclusive_max(int x);
16177uint __ovld __conv sub_group_scan_inclusive_max(uint x);
16178long __ovld __conv sub_group_scan_inclusive_max(long x);
16179ulong __ovld __conv sub_group_scan_inclusive_max(ulong x);
16180float __ovld __conv sub_group_scan_inclusive_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016181
16182#ifdef cl_khr_fp16
Logan Chien55afb0a2018-10-15 10:42:14 +080016183half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id);
16184half __ovld __conv sub_group_reduce_add(half x);
16185half __ovld __conv sub_group_reduce_min(half x);
16186half __ovld __conv sub_group_reduce_max(half x);
16187half __ovld __conv sub_group_scan_exclusive_add(half x);
16188half __ovld __conv sub_group_scan_exclusive_min(half x);
16189half __ovld __conv sub_group_scan_exclusive_max(half x);
16190half __ovld __conv sub_group_scan_inclusive_add(half x);
16191half __ovld __conv sub_group_scan_inclusive_min(half x);
16192half __ovld __conv sub_group_scan_inclusive_max(half x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016193#endif //cl_khr_fp16
16194
16195#ifdef cl_khr_fp64
Logan Chien55afb0a2018-10-15 10:42:14 +080016196double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id);
16197double __ovld __conv sub_group_reduce_add(double x);
16198double __ovld __conv sub_group_reduce_min(double x);
16199double __ovld __conv sub_group_reduce_max(double x);
16200double __ovld __conv sub_group_scan_exclusive_add(double x);
16201double __ovld __conv sub_group_scan_exclusive_min(double x);
16202double __ovld __conv sub_group_scan_exclusive_max(double x);
16203double __ovld __conv sub_group_scan_inclusive_add(double x);
16204double __ovld __conv sub_group_scan_inclusive_min(double x);
16205double __ovld __conv sub_group_scan_inclusive_max(double x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016206#endif //cl_khr_fp64
16207
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016208#endif //cl_khr_subgroups cl_intel_subgroups __opencl_c_subgroups
Logan Chien2833ffb2018-10-09 10:03:24 +080016209
Sasha Smundak0fc590b2020-10-07 08:11:59 -070016210#if defined(cl_khr_subgroup_extended_types)
16211char __ovld __conv sub_group_broadcast( char value, uint index );
16212char2 __ovld __conv sub_group_broadcast( char2 value, uint index );
16213char3 __ovld __conv sub_group_broadcast( char3 value, uint index );
16214char4 __ovld __conv sub_group_broadcast( char4 value, uint index );
16215char8 __ovld __conv sub_group_broadcast( char8 value, uint index );
16216char16 __ovld __conv sub_group_broadcast( char16 value, uint index );
16217
16218uchar __ovld __conv sub_group_broadcast( uchar value, uint index );
16219uchar2 __ovld __conv sub_group_broadcast( uchar2 value, uint index );
16220uchar3 __ovld __conv sub_group_broadcast( uchar3 value, uint index );
16221uchar4 __ovld __conv sub_group_broadcast( uchar4 value, uint index );
16222uchar8 __ovld __conv sub_group_broadcast( uchar8 value, uint index );
16223uchar16 __ovld __conv sub_group_broadcast( uchar16 value, uint index );
16224
16225short __ovld __conv sub_group_broadcast( short value, uint index );
16226short2 __ovld __conv sub_group_broadcast( short2 value, uint index );
16227short3 __ovld __conv sub_group_broadcast( short3 value, uint index );
16228short4 __ovld __conv sub_group_broadcast( short4 value, uint index );
16229short8 __ovld __conv sub_group_broadcast( short8 value, uint index );
16230short16 __ovld __conv sub_group_broadcast( short16 value, uint index );
16231
16232ushort __ovld __conv sub_group_broadcast( ushort value, uint index );
16233ushort2 __ovld __conv sub_group_broadcast( ushort2 value, uint index );
16234ushort3 __ovld __conv sub_group_broadcast( ushort3 value, uint index );
16235ushort4 __ovld __conv sub_group_broadcast( ushort4 value, uint index );
16236ushort8 __ovld __conv sub_group_broadcast( ushort8 value, uint index );
16237ushort16 __ovld __conv sub_group_broadcast( ushort16 value, uint index );
16238
16239// scalar int broadcast is part of cl_khr_subgroups
16240int2 __ovld __conv sub_group_broadcast( int2 value, uint index );
16241int3 __ovld __conv sub_group_broadcast( int3 value, uint index );
16242int4 __ovld __conv sub_group_broadcast( int4 value, uint index );
16243int8 __ovld __conv sub_group_broadcast( int8 value, uint index );
16244int16 __ovld __conv sub_group_broadcast( int16 value, uint index );
16245
16246// scalar uint broadcast is part of cl_khr_subgroups
16247uint2 __ovld __conv sub_group_broadcast( uint2 value, uint index );
16248uint3 __ovld __conv sub_group_broadcast( uint3 value, uint index );
16249uint4 __ovld __conv sub_group_broadcast( uint4 value, uint index );
16250uint8 __ovld __conv sub_group_broadcast( uint8 value, uint index );
16251uint16 __ovld __conv sub_group_broadcast( uint16 value, uint index );
16252
16253// scalar long broadcast is part of cl_khr_subgroups
16254long2 __ovld __conv sub_group_broadcast( long2 value, uint index );
16255long3 __ovld __conv sub_group_broadcast( long3 value, uint index );
16256long4 __ovld __conv sub_group_broadcast( long4 value, uint index );
16257long8 __ovld __conv sub_group_broadcast( long8 value, uint index );
16258long16 __ovld __conv sub_group_broadcast( long16 value, uint index );
16259
16260// scalar ulong broadcast is part of cl_khr_subgroups
16261ulong2 __ovld __conv sub_group_broadcast( ulong2 value, uint index );
16262ulong3 __ovld __conv sub_group_broadcast( ulong3 value, uint index );
16263ulong4 __ovld __conv sub_group_broadcast( ulong4 value, uint index );
16264ulong8 __ovld __conv sub_group_broadcast( ulong8 value, uint index );
16265ulong16 __ovld __conv sub_group_broadcast( ulong16 value, uint index );
16266
16267// scalar float broadcast is part of cl_khr_subgroups
16268float2 __ovld __conv sub_group_broadcast( float2 value, uint index );
16269float3 __ovld __conv sub_group_broadcast( float3 value, uint index );
16270float4 __ovld __conv sub_group_broadcast( float4 value, uint index );
16271float8 __ovld __conv sub_group_broadcast( float8 value, uint index );
16272float16 __ovld __conv sub_group_broadcast( float16 value, uint index );
16273
16274char __ovld __conv sub_group_reduce_add( char value );
16275uchar __ovld __conv sub_group_reduce_add( uchar value );
16276short __ovld __conv sub_group_reduce_add( short value );
16277ushort __ovld __conv sub_group_reduce_add( ushort value );
16278
16279char __ovld __conv sub_group_reduce_min( char value );
16280uchar __ovld __conv sub_group_reduce_min( uchar value );
16281short __ovld __conv sub_group_reduce_min( short value );
16282ushort __ovld __conv sub_group_reduce_min( ushort value );
16283
16284char __ovld __conv sub_group_reduce_max( char value );
16285uchar __ovld __conv sub_group_reduce_max( uchar value );
16286short __ovld __conv sub_group_reduce_max( short value );
16287ushort __ovld __conv sub_group_reduce_max( ushort value );
16288
16289char __ovld __conv sub_group_scan_inclusive_add( char value );
16290uchar __ovld __conv sub_group_scan_inclusive_add( uchar value );
16291short __ovld __conv sub_group_scan_inclusive_add( short value );
16292ushort __ovld __conv sub_group_scan_inclusive_add( ushort value );
16293
16294char __ovld __conv sub_group_scan_inclusive_min( char value );
16295uchar __ovld __conv sub_group_scan_inclusive_min( uchar value );
16296short __ovld __conv sub_group_scan_inclusive_min( short value );
16297ushort __ovld __conv sub_group_scan_inclusive_min( ushort value );
16298
16299char __ovld __conv sub_group_scan_inclusive_max( char value );
16300uchar __ovld __conv sub_group_scan_inclusive_max( uchar value );
16301short __ovld __conv sub_group_scan_inclusive_max( short value );
16302ushort __ovld __conv sub_group_scan_inclusive_max( ushort value );
16303
16304char __ovld __conv sub_group_scan_exclusive_add( char value );
16305uchar __ovld __conv sub_group_scan_exclusive_add( uchar value );
16306short __ovld __conv sub_group_scan_exclusive_add( short value );
16307ushort __ovld __conv sub_group_scan_exclusive_add( ushort value );
16308
16309char __ovld __conv sub_group_scan_exclusive_min( char value );
16310uchar __ovld __conv sub_group_scan_exclusive_min( uchar value );
16311short __ovld __conv sub_group_scan_exclusive_min( short value );
16312ushort __ovld __conv sub_group_scan_exclusive_min( ushort value );
16313
16314char __ovld __conv sub_group_scan_exclusive_max( char value );
16315uchar __ovld __conv sub_group_scan_exclusive_max( uchar value );
16316short __ovld __conv sub_group_scan_exclusive_max( short value );
16317ushort __ovld __conv sub_group_scan_exclusive_max( ushort value );
16318
16319#if defined(cl_khr_fp16)
16320// scalar half broadcast is part of cl_khr_subgroups
16321half2 __ovld __conv sub_group_broadcast( half2 value, uint index );
16322half3 __ovld __conv sub_group_broadcast( half3 value, uint index );
16323half4 __ovld __conv sub_group_broadcast( half4 value, uint index );
16324half8 __ovld __conv sub_group_broadcast( half8 value, uint index );
16325half16 __ovld __conv sub_group_broadcast( half16 value, uint index );
16326#endif // cl_khr_fp16
16327
16328#if defined(cl_khr_fp64)
16329// scalar double broadcast is part of cl_khr_subgroups
16330double2 __ovld __conv sub_group_broadcast( double2 value, uint index );
16331double3 __ovld __conv sub_group_broadcast( double3 value, uint index );
16332double4 __ovld __conv sub_group_broadcast( double4 value, uint index );
16333double8 __ovld __conv sub_group_broadcast( double8 value, uint index );
16334double16 __ovld __conv sub_group_broadcast( double16 value, uint index );
16335#endif // cl_khr_fp64
16336
16337#endif // cl_khr_subgroup_extended_types
16338
16339#if defined(cl_khr_subgroup_non_uniform_vote)
16340int __ovld sub_group_elect(void);
16341int __ovld sub_group_non_uniform_all( int predicate );
16342int __ovld sub_group_non_uniform_any( int predicate );
16343
16344int __ovld sub_group_non_uniform_all_equal( char value );
16345int __ovld sub_group_non_uniform_all_equal( uchar value );
16346int __ovld sub_group_non_uniform_all_equal( short value );
16347int __ovld sub_group_non_uniform_all_equal( ushort value );
16348int __ovld sub_group_non_uniform_all_equal( int value );
16349int __ovld sub_group_non_uniform_all_equal( uint value );
16350int __ovld sub_group_non_uniform_all_equal( long value );
16351int __ovld sub_group_non_uniform_all_equal( ulong value );
16352int __ovld sub_group_non_uniform_all_equal( float value );
16353
16354#if defined(cl_khr_fp16)
16355int __ovld sub_group_non_uniform_all_equal( half value );
16356#endif // cl_khr_fp16
16357
16358#if defined(cl_khr_fp64)
16359int __ovld sub_group_non_uniform_all_equal( double value );
16360#endif // cl_khr_fp64
16361
16362#endif // cl_khr_subgroup_non_uniform_vote
16363
16364#if defined(cl_khr_subgroup_ballot)
16365char __ovld sub_group_non_uniform_broadcast( char value, uint index );
16366char2 __ovld sub_group_non_uniform_broadcast( char2 value, uint index );
16367char3 __ovld sub_group_non_uniform_broadcast( char3 value, uint index );
16368char4 __ovld sub_group_non_uniform_broadcast( char4 value, uint index );
16369char8 __ovld sub_group_non_uniform_broadcast( char8 value, uint index );
16370char16 __ovld sub_group_non_uniform_broadcast( char16 value, uint index );
16371
16372uchar __ovld sub_group_non_uniform_broadcast( uchar value, uint index );
16373uchar2 __ovld sub_group_non_uniform_broadcast( uchar2 value, uint index );
16374uchar3 __ovld sub_group_non_uniform_broadcast( uchar3 value, uint index );
16375uchar4 __ovld sub_group_non_uniform_broadcast( uchar4 value, uint index );
16376uchar8 __ovld sub_group_non_uniform_broadcast( uchar8 value, uint index );
16377uchar16 __ovld sub_group_non_uniform_broadcast( uchar16 value, uint index );
16378
16379short __ovld sub_group_non_uniform_broadcast( short value, uint index );
16380short2 __ovld sub_group_non_uniform_broadcast( short2 value, uint index );
16381short3 __ovld sub_group_non_uniform_broadcast( short3 value, uint index );
16382short4 __ovld sub_group_non_uniform_broadcast( short4 value, uint index );
16383short8 __ovld sub_group_non_uniform_broadcast( short8 value, uint index );
16384short16 __ovld sub_group_non_uniform_broadcast( short16 value, uint index );
16385
16386ushort __ovld sub_group_non_uniform_broadcast( ushort value, uint index );
16387ushort2 __ovld sub_group_non_uniform_broadcast( ushort2 value, uint index );
16388ushort3 __ovld sub_group_non_uniform_broadcast( ushort3 value, uint index );
16389ushort4 __ovld sub_group_non_uniform_broadcast( ushort4 value, uint index );
16390ushort8 __ovld sub_group_non_uniform_broadcast( ushort8 value, uint index );
16391ushort16 __ovld sub_group_non_uniform_broadcast( ushort16 value, uint index );
16392
16393int __ovld sub_group_non_uniform_broadcast( int value, uint index );
16394int2 __ovld sub_group_non_uniform_broadcast( int2 value, uint index );
16395int3 __ovld sub_group_non_uniform_broadcast( int3 value, uint index );
16396int4 __ovld sub_group_non_uniform_broadcast( int4 value, uint index );
16397int8 __ovld sub_group_non_uniform_broadcast( int8 value, uint index );
16398int16 __ovld sub_group_non_uniform_broadcast( int16 value, uint index );
16399
16400uint __ovld sub_group_non_uniform_broadcast( uint value, uint index );
16401uint2 __ovld sub_group_non_uniform_broadcast( uint2 value, uint index );
16402uint3 __ovld sub_group_non_uniform_broadcast( uint3 value, uint index );
16403uint4 __ovld sub_group_non_uniform_broadcast( uint4 value, uint index );
16404uint8 __ovld sub_group_non_uniform_broadcast( uint8 value, uint index );
16405uint16 __ovld sub_group_non_uniform_broadcast( uint16 value, uint index );
16406
16407long __ovld sub_group_non_uniform_broadcast( long value, uint index );
16408long2 __ovld sub_group_non_uniform_broadcast( long2 value, uint index );
16409long3 __ovld sub_group_non_uniform_broadcast( long3 value, uint index );
16410long4 __ovld sub_group_non_uniform_broadcast( long4 value, uint index );
16411long8 __ovld sub_group_non_uniform_broadcast( long8 value, uint index );
16412long16 __ovld sub_group_non_uniform_broadcast( long16 value, uint index );
16413
16414ulong __ovld sub_group_non_uniform_broadcast( ulong value, uint index );
16415ulong2 __ovld sub_group_non_uniform_broadcast( ulong2 value, uint index );
16416ulong3 __ovld sub_group_non_uniform_broadcast( ulong3 value, uint index );
16417ulong4 __ovld sub_group_non_uniform_broadcast( ulong4 value, uint index );
16418ulong8 __ovld sub_group_non_uniform_broadcast( ulong8 value, uint index );
16419ulong16 __ovld sub_group_non_uniform_broadcast( ulong16 value, uint index );
16420
16421float __ovld sub_group_non_uniform_broadcast( float value, uint index );
16422float2 __ovld sub_group_non_uniform_broadcast( float2 value, uint index );
16423float3 __ovld sub_group_non_uniform_broadcast( float3 value, uint index );
16424float4 __ovld sub_group_non_uniform_broadcast( float4 value, uint index );
16425float8 __ovld sub_group_non_uniform_broadcast( float8 value, uint index );
16426float16 __ovld sub_group_non_uniform_broadcast( float16 value, uint index );
16427
16428char __ovld sub_group_broadcast_first( char value );
16429uchar __ovld sub_group_broadcast_first( uchar value );
16430short __ovld sub_group_broadcast_first( short value );
16431ushort __ovld sub_group_broadcast_first( ushort value );
16432int __ovld sub_group_broadcast_first( int value );
16433uint __ovld sub_group_broadcast_first( uint value );
16434long __ovld sub_group_broadcast_first( long value );
16435ulong __ovld sub_group_broadcast_first( ulong value );
16436float __ovld sub_group_broadcast_first( float value );
16437
16438uint4 __ovld sub_group_ballot( int predicate );
16439int __ovld __cnfn sub_group_inverse_ballot( uint4 value );
16440int __ovld __cnfn sub_group_ballot_bit_extract( uint4 value, uint index );
16441uint __ovld __cnfn sub_group_ballot_bit_count( uint4 value );
16442
16443uint __ovld sub_group_ballot_inclusive_scan( uint4 value );
16444uint __ovld sub_group_ballot_exclusive_scan( uint4 value );
16445uint __ovld sub_group_ballot_find_lsb( uint4 value );
16446uint __ovld sub_group_ballot_find_msb( uint4 value );
16447
16448uint4 __ovld __cnfn get_sub_group_eq_mask(void);
16449uint4 __ovld __cnfn get_sub_group_ge_mask(void);
16450uint4 __ovld __cnfn get_sub_group_gt_mask(void);
16451uint4 __ovld __cnfn get_sub_group_le_mask(void);
16452uint4 __ovld __cnfn get_sub_group_lt_mask(void);
16453
16454#if defined(cl_khr_fp16)
16455half __ovld sub_group_non_uniform_broadcast( half value, uint index );
16456half2 __ovld sub_group_non_uniform_broadcast( half2 value, uint index );
16457half3 __ovld sub_group_non_uniform_broadcast( half3 value, uint index );
16458half4 __ovld sub_group_non_uniform_broadcast( half4 value, uint index );
16459half8 __ovld sub_group_non_uniform_broadcast( half8 value, uint index );
16460half16 __ovld sub_group_non_uniform_broadcast( half16 value, uint index );
16461
16462half __ovld sub_group_broadcast_first( half value );
16463#endif // cl_khr_fp16
16464
16465#if defined(cl_khr_fp64)
16466double __ovld sub_group_non_uniform_broadcast( double value, uint index );
16467double2 __ovld sub_group_non_uniform_broadcast( double2 value, uint index );
16468double3 __ovld sub_group_non_uniform_broadcast( double3 value, uint index );
16469double4 __ovld sub_group_non_uniform_broadcast( double4 value, uint index );
16470double8 __ovld sub_group_non_uniform_broadcast( double8 value, uint index );
16471double16 __ovld sub_group_non_uniform_broadcast( double16 value, uint index );
16472
16473double __ovld sub_group_broadcast_first( double value );
16474#endif // cl_khr_fp64
16475
16476#endif // cl_khr_subgroup_ballot
16477
16478#if defined(cl_khr_subgroup_non_uniform_arithmetic)
16479char __ovld sub_group_non_uniform_reduce_add( char value );
16480uchar __ovld sub_group_non_uniform_reduce_add( uchar value );
16481short __ovld sub_group_non_uniform_reduce_add( short value );
16482ushort __ovld sub_group_non_uniform_reduce_add( ushort value );
16483int __ovld sub_group_non_uniform_reduce_add( int value );
16484uint __ovld sub_group_non_uniform_reduce_add( uint value );
16485long __ovld sub_group_non_uniform_reduce_add( long value );
16486ulong __ovld sub_group_non_uniform_reduce_add( ulong value );
16487float __ovld sub_group_non_uniform_reduce_add( float value );
16488
16489char __ovld sub_group_non_uniform_reduce_mul( char value );
16490uchar __ovld sub_group_non_uniform_reduce_mul( uchar value );
16491short __ovld sub_group_non_uniform_reduce_mul( short value );
16492ushort __ovld sub_group_non_uniform_reduce_mul( ushort value );
16493int __ovld sub_group_non_uniform_reduce_mul( int value );
16494uint __ovld sub_group_non_uniform_reduce_mul( uint value );
16495long __ovld sub_group_non_uniform_reduce_mul( long value );
16496ulong __ovld sub_group_non_uniform_reduce_mul( ulong value );
16497float __ovld sub_group_non_uniform_reduce_mul( float value );
16498
16499char __ovld sub_group_non_uniform_reduce_min( char value );
16500uchar __ovld sub_group_non_uniform_reduce_min( uchar value );
16501short __ovld sub_group_non_uniform_reduce_min( short value );
16502ushort __ovld sub_group_non_uniform_reduce_min( ushort value );
16503int __ovld sub_group_non_uniform_reduce_min( int value );
16504uint __ovld sub_group_non_uniform_reduce_min( uint value );
16505long __ovld sub_group_non_uniform_reduce_min( long value );
16506ulong __ovld sub_group_non_uniform_reduce_min( ulong value );
16507float __ovld sub_group_non_uniform_reduce_min( float value );
16508
16509char __ovld sub_group_non_uniform_reduce_max( char value );
16510uchar __ovld sub_group_non_uniform_reduce_max( uchar value );
16511short __ovld sub_group_non_uniform_reduce_max( short value );
16512ushort __ovld sub_group_non_uniform_reduce_max( ushort value );
16513int __ovld sub_group_non_uniform_reduce_max( int value );
16514uint __ovld sub_group_non_uniform_reduce_max( uint value );
16515long __ovld sub_group_non_uniform_reduce_max( long value );
16516ulong __ovld sub_group_non_uniform_reduce_max( ulong value );
16517float __ovld sub_group_non_uniform_reduce_max( float value );
16518
16519char __ovld sub_group_non_uniform_scan_inclusive_add( char value );
16520uchar __ovld sub_group_non_uniform_scan_inclusive_add( uchar value );
16521short __ovld sub_group_non_uniform_scan_inclusive_add( short value );
16522ushort __ovld sub_group_non_uniform_scan_inclusive_add( ushort value );
16523int __ovld sub_group_non_uniform_scan_inclusive_add( int value );
16524uint __ovld sub_group_non_uniform_scan_inclusive_add( uint value );
16525long __ovld sub_group_non_uniform_scan_inclusive_add( long value );
16526ulong __ovld sub_group_non_uniform_scan_inclusive_add( ulong value );
16527float __ovld sub_group_non_uniform_scan_inclusive_add( float value );
16528
16529char __ovld sub_group_non_uniform_scan_inclusive_mul( char value );
16530uchar __ovld sub_group_non_uniform_scan_inclusive_mul( uchar value );
16531short __ovld sub_group_non_uniform_scan_inclusive_mul( short value );
16532ushort __ovld sub_group_non_uniform_scan_inclusive_mul( ushort value );
16533int __ovld sub_group_non_uniform_scan_inclusive_mul( int value );
16534uint __ovld sub_group_non_uniform_scan_inclusive_mul( uint value );
16535long __ovld sub_group_non_uniform_scan_inclusive_mul( long value );
16536ulong __ovld sub_group_non_uniform_scan_inclusive_mul( ulong value );
16537float __ovld sub_group_non_uniform_scan_inclusive_mul( float value );
16538
16539char __ovld sub_group_non_uniform_scan_inclusive_min( char value );
16540uchar __ovld sub_group_non_uniform_scan_inclusive_min( uchar value );
16541short __ovld sub_group_non_uniform_scan_inclusive_min( short value );
16542ushort __ovld sub_group_non_uniform_scan_inclusive_min( ushort value );
16543int __ovld sub_group_non_uniform_scan_inclusive_min( int value );
16544uint __ovld sub_group_non_uniform_scan_inclusive_min( uint value );
16545long __ovld sub_group_non_uniform_scan_inclusive_min( long value );
16546ulong __ovld sub_group_non_uniform_scan_inclusive_min( ulong value );
16547float __ovld sub_group_non_uniform_scan_inclusive_min( float value );
16548
16549char __ovld sub_group_non_uniform_scan_inclusive_max( char value );
16550uchar __ovld sub_group_non_uniform_scan_inclusive_max( uchar value );
16551short __ovld sub_group_non_uniform_scan_inclusive_max( short value );
16552ushort __ovld sub_group_non_uniform_scan_inclusive_max( ushort value );
16553int __ovld sub_group_non_uniform_scan_inclusive_max( int value );
16554uint __ovld sub_group_non_uniform_scan_inclusive_max( uint value );
16555long __ovld sub_group_non_uniform_scan_inclusive_max( long value );
16556ulong __ovld sub_group_non_uniform_scan_inclusive_max( ulong value );
16557float __ovld sub_group_non_uniform_scan_inclusive_max( float value );
16558
16559char __ovld sub_group_non_uniform_scan_exclusive_add( char value );
16560uchar __ovld sub_group_non_uniform_scan_exclusive_add( uchar value );
16561short __ovld sub_group_non_uniform_scan_exclusive_add( short value );
16562ushort __ovld sub_group_non_uniform_scan_exclusive_add( ushort value );
16563int __ovld sub_group_non_uniform_scan_exclusive_add( int value );
16564uint __ovld sub_group_non_uniform_scan_exclusive_add( uint value );
16565long __ovld sub_group_non_uniform_scan_exclusive_add( long value );
16566ulong __ovld sub_group_non_uniform_scan_exclusive_add( ulong value );
16567float __ovld sub_group_non_uniform_scan_exclusive_add( float value );
16568
16569char __ovld sub_group_non_uniform_scan_exclusive_mul( char value );
16570uchar __ovld sub_group_non_uniform_scan_exclusive_mul( uchar value );
16571short __ovld sub_group_non_uniform_scan_exclusive_mul( short value );
16572ushort __ovld sub_group_non_uniform_scan_exclusive_mul( ushort value );
16573int __ovld sub_group_non_uniform_scan_exclusive_mul( int value );
16574uint __ovld sub_group_non_uniform_scan_exclusive_mul( uint value );
16575long __ovld sub_group_non_uniform_scan_exclusive_mul( long value );
16576ulong __ovld sub_group_non_uniform_scan_exclusive_mul( ulong value );
16577float __ovld sub_group_non_uniform_scan_exclusive_mul( float value );
16578
16579char __ovld sub_group_non_uniform_scan_exclusive_min( char value );
16580uchar __ovld sub_group_non_uniform_scan_exclusive_min( uchar value );
16581short __ovld sub_group_non_uniform_scan_exclusive_min( short value );
16582ushort __ovld sub_group_non_uniform_scan_exclusive_min( ushort value );
16583int __ovld sub_group_non_uniform_scan_exclusive_min( int value );
16584uint __ovld sub_group_non_uniform_scan_exclusive_min( uint value );
16585long __ovld sub_group_non_uniform_scan_exclusive_min( long value );
16586ulong __ovld sub_group_non_uniform_scan_exclusive_min( ulong value );
16587float __ovld sub_group_non_uniform_scan_exclusive_min( float value );
16588
16589char __ovld sub_group_non_uniform_scan_exclusive_max( char value );
16590uchar __ovld sub_group_non_uniform_scan_exclusive_max( uchar value );
16591short __ovld sub_group_non_uniform_scan_exclusive_max( short value );
16592ushort __ovld sub_group_non_uniform_scan_exclusive_max( ushort value );
16593int __ovld sub_group_non_uniform_scan_exclusive_max( int value );
16594uint __ovld sub_group_non_uniform_scan_exclusive_max( uint value );
16595long __ovld sub_group_non_uniform_scan_exclusive_max( long value );
16596ulong __ovld sub_group_non_uniform_scan_exclusive_max( ulong value );
16597float __ovld sub_group_non_uniform_scan_exclusive_max( float value );
16598
16599char __ovld sub_group_non_uniform_reduce_and( char value );
16600uchar __ovld sub_group_non_uniform_reduce_and( uchar value );
16601short __ovld sub_group_non_uniform_reduce_and( short value );
16602ushort __ovld sub_group_non_uniform_reduce_and( ushort value );
16603int __ovld sub_group_non_uniform_reduce_and( int value );
16604uint __ovld sub_group_non_uniform_reduce_and( uint value );
16605long __ovld sub_group_non_uniform_reduce_and( long value );
16606ulong __ovld sub_group_non_uniform_reduce_and( ulong value );
16607
16608char __ovld sub_group_non_uniform_reduce_or( char value );
16609uchar __ovld sub_group_non_uniform_reduce_or( uchar value );
16610short __ovld sub_group_non_uniform_reduce_or( short value );
16611ushort __ovld sub_group_non_uniform_reduce_or( ushort value );
16612int __ovld sub_group_non_uniform_reduce_or( int value );
16613uint __ovld sub_group_non_uniform_reduce_or( uint value );
16614long __ovld sub_group_non_uniform_reduce_or( long value );
16615ulong __ovld sub_group_non_uniform_reduce_or( ulong value );
16616
16617char __ovld sub_group_non_uniform_reduce_xor( char value );
16618uchar __ovld sub_group_non_uniform_reduce_xor( uchar value );
16619short __ovld sub_group_non_uniform_reduce_xor( short value );
16620ushort __ovld sub_group_non_uniform_reduce_xor( ushort value );
16621int __ovld sub_group_non_uniform_reduce_xor( int value );
16622uint __ovld sub_group_non_uniform_reduce_xor( uint value );
16623long __ovld sub_group_non_uniform_reduce_xor( long value );
16624ulong __ovld sub_group_non_uniform_reduce_xor( ulong value );
16625
16626char __ovld sub_group_non_uniform_scan_inclusive_and( char value );
16627uchar __ovld sub_group_non_uniform_scan_inclusive_and( uchar value );
16628short __ovld sub_group_non_uniform_scan_inclusive_and( short value );
16629ushort __ovld sub_group_non_uniform_scan_inclusive_and( ushort value );
16630int __ovld sub_group_non_uniform_scan_inclusive_and( int value );
16631uint __ovld sub_group_non_uniform_scan_inclusive_and( uint value );
16632long __ovld sub_group_non_uniform_scan_inclusive_and( long value );
16633ulong __ovld sub_group_non_uniform_scan_inclusive_and( ulong value );
16634
16635char __ovld sub_group_non_uniform_scan_inclusive_or( char value );
16636uchar __ovld sub_group_non_uniform_scan_inclusive_or( uchar value );
16637short __ovld sub_group_non_uniform_scan_inclusive_or( short value );
16638ushort __ovld sub_group_non_uniform_scan_inclusive_or( ushort value );
16639int __ovld sub_group_non_uniform_scan_inclusive_or( int value );
16640uint __ovld sub_group_non_uniform_scan_inclusive_or( uint value );
16641long __ovld sub_group_non_uniform_scan_inclusive_or( long value );
16642ulong __ovld sub_group_non_uniform_scan_inclusive_or( ulong value );
16643
16644char __ovld sub_group_non_uniform_scan_inclusive_xor( char value );
16645uchar __ovld sub_group_non_uniform_scan_inclusive_xor( uchar value );
16646short __ovld sub_group_non_uniform_scan_inclusive_xor( short value );
16647ushort __ovld sub_group_non_uniform_scan_inclusive_xor( ushort value );
16648int __ovld sub_group_non_uniform_scan_inclusive_xor( int value );
16649uint __ovld sub_group_non_uniform_scan_inclusive_xor( uint value );
16650long __ovld sub_group_non_uniform_scan_inclusive_xor( long value );
16651ulong __ovld sub_group_non_uniform_scan_inclusive_xor( ulong value );
16652
16653char __ovld sub_group_non_uniform_scan_exclusive_and( char value );
16654uchar __ovld sub_group_non_uniform_scan_exclusive_and( uchar value );
16655short __ovld sub_group_non_uniform_scan_exclusive_and( short value );
16656ushort __ovld sub_group_non_uniform_scan_exclusive_and( ushort value );
16657int __ovld sub_group_non_uniform_scan_exclusive_and( int value );
16658uint __ovld sub_group_non_uniform_scan_exclusive_and( uint value );
16659long __ovld sub_group_non_uniform_scan_exclusive_and( long value );
16660ulong __ovld sub_group_non_uniform_scan_exclusive_and( ulong value );
16661
16662char __ovld sub_group_non_uniform_scan_exclusive_or( char value );
16663uchar __ovld sub_group_non_uniform_scan_exclusive_or( uchar value );
16664short __ovld sub_group_non_uniform_scan_exclusive_or( short value );
16665ushort __ovld sub_group_non_uniform_scan_exclusive_or( ushort value );
16666int __ovld sub_group_non_uniform_scan_exclusive_or( int value );
16667uint __ovld sub_group_non_uniform_scan_exclusive_or( uint value );
16668long __ovld sub_group_non_uniform_scan_exclusive_or( long value );
16669ulong __ovld sub_group_non_uniform_scan_exclusive_or( ulong value );
16670
16671char __ovld sub_group_non_uniform_scan_exclusive_xor( char value );
16672uchar __ovld sub_group_non_uniform_scan_exclusive_xor( uchar value );
16673short __ovld sub_group_non_uniform_scan_exclusive_xor( short value );
16674ushort __ovld sub_group_non_uniform_scan_exclusive_xor( ushort value );
16675int __ovld sub_group_non_uniform_scan_exclusive_xor( int value );
16676uint __ovld sub_group_non_uniform_scan_exclusive_xor( uint value );
16677long __ovld sub_group_non_uniform_scan_exclusive_xor( long value );
16678ulong __ovld sub_group_non_uniform_scan_exclusive_xor( ulong value );
16679
16680int __ovld sub_group_non_uniform_reduce_logical_and( int predicate );
16681int __ovld sub_group_non_uniform_reduce_logical_or( int predicate );
16682int __ovld sub_group_non_uniform_reduce_logical_xor( int predicate );
16683
16684int __ovld sub_group_non_uniform_scan_inclusive_logical_and( int predicate );
16685int __ovld sub_group_non_uniform_scan_inclusive_logical_or( int predicate );
16686int __ovld sub_group_non_uniform_scan_inclusive_logical_xor( int predicate );
16687
16688int __ovld sub_group_non_uniform_scan_exclusive_logical_and( int predicate );
16689int __ovld sub_group_non_uniform_scan_exclusive_logical_or( int predicate );
16690int __ovld sub_group_non_uniform_scan_exclusive_logical_xor( int predicate );
16691
16692#if defined(cl_khr_fp16)
16693half __ovld sub_group_non_uniform_reduce_add( half value );
16694half __ovld sub_group_non_uniform_reduce_mul( half value );
16695half __ovld sub_group_non_uniform_reduce_min( half value );
16696half __ovld sub_group_non_uniform_reduce_max( half value );
16697half __ovld sub_group_non_uniform_scan_inclusive_add( half value );
16698half __ovld sub_group_non_uniform_scan_inclusive_mul( half value );
16699half __ovld sub_group_non_uniform_scan_inclusive_min( half value );
16700half __ovld sub_group_non_uniform_scan_inclusive_max( half value );
16701half __ovld sub_group_non_uniform_scan_exclusive_add( half value );
16702half __ovld sub_group_non_uniform_scan_exclusive_mul( half value );
16703half __ovld sub_group_non_uniform_scan_exclusive_min( half value );
16704half __ovld sub_group_non_uniform_scan_exclusive_max( half value );
16705#endif // cl_khr_fp16
16706
16707#if defined(cl_khr_fp64)
16708double __ovld sub_group_non_uniform_reduce_add( double value );
16709double __ovld sub_group_non_uniform_reduce_mul( double value );
16710double __ovld sub_group_non_uniform_reduce_min( double value );
16711double __ovld sub_group_non_uniform_reduce_max( double value );
16712double __ovld sub_group_non_uniform_scan_inclusive_add( double value );
16713double __ovld sub_group_non_uniform_scan_inclusive_mul( double value );
16714double __ovld sub_group_non_uniform_scan_inclusive_min( double value );
16715double __ovld sub_group_non_uniform_scan_inclusive_max( double value );
16716double __ovld sub_group_non_uniform_scan_exclusive_add( double value );
16717double __ovld sub_group_non_uniform_scan_exclusive_mul( double value );
16718double __ovld sub_group_non_uniform_scan_exclusive_min( double value );
16719double __ovld sub_group_non_uniform_scan_exclusive_max( double value );
16720#endif // cl_khr_fp64
16721
16722#endif // cl_khr_subgroup_non_uniform_arithmetic
16723
16724#if defined(cl_khr_subgroup_shuffle)
16725char __ovld sub_group_shuffle( char value, uint index );
16726uchar __ovld sub_group_shuffle( uchar value, uint index );
16727short __ovld sub_group_shuffle( short value, uint index );
16728ushort __ovld sub_group_shuffle( ushort value, uint index );
16729int __ovld sub_group_shuffle( int value, uint index );
16730uint __ovld sub_group_shuffle( uint value, uint index );
16731long __ovld sub_group_shuffle( long value, uint index );
16732ulong __ovld sub_group_shuffle( ulong value, uint index );
16733float __ovld sub_group_shuffle( float value, uint index );
16734
16735char __ovld sub_group_shuffle_xor( char value, uint mask );
16736uchar __ovld sub_group_shuffle_xor( uchar value, uint mask );
16737short __ovld sub_group_shuffle_xor( short value, uint mask );
16738ushort __ovld sub_group_shuffle_xor( ushort value, uint mask );
16739int __ovld sub_group_shuffle_xor( int value, uint mask );
16740uint __ovld sub_group_shuffle_xor( uint value, uint mask );
16741long __ovld sub_group_shuffle_xor( long value, uint mask );
16742ulong __ovld sub_group_shuffle_xor( ulong value, uint mask );
16743float __ovld sub_group_shuffle_xor( float value, uint mask );
16744
16745#if defined(cl_khr_fp16)
16746half __ovld sub_group_shuffle( half value, uint index );
16747half __ovld sub_group_shuffle_xor( half value, uint mask );
16748#endif // cl_khr_fp16
16749
16750#if defined(cl_khr_fp64)
16751double __ovld sub_group_shuffle( double value, uint index );
16752double __ovld sub_group_shuffle_xor( double value, uint mask );
16753#endif // cl_khr_fp64
16754
16755#endif // cl_khr_subgroup_shuffle
16756
16757#if defined(cl_khr_subgroup_shuffle_relative)
16758char __ovld sub_group_shuffle_up( char value, uint delta );
16759uchar __ovld sub_group_shuffle_up( uchar value, uint delta );
16760short __ovld sub_group_shuffle_up( short value, uint delta );
16761ushort __ovld sub_group_shuffle_up( ushort value, uint delta );
16762int __ovld sub_group_shuffle_up( int value, uint delta );
16763uint __ovld sub_group_shuffle_up( uint value, uint delta );
16764long __ovld sub_group_shuffle_up( long value, uint delta );
16765ulong __ovld sub_group_shuffle_up( ulong value, uint delta );
16766float __ovld sub_group_shuffle_up( float value, uint delta );
16767
16768char __ovld sub_group_shuffle_down( char value, uint delta );
16769uchar __ovld sub_group_shuffle_down( uchar value, uint delta );
16770short __ovld sub_group_shuffle_down( short value, uint delta );
16771ushort __ovld sub_group_shuffle_down( ushort value, uint delta );
16772int __ovld sub_group_shuffle_down( int value, uint delta );
16773uint __ovld sub_group_shuffle_down( uint value, uint delta );
16774long __ovld sub_group_shuffle_down( long value, uint delta );
16775ulong __ovld sub_group_shuffle_down( ulong value, uint delta );
16776float __ovld sub_group_shuffle_down( float value, uint delta );
16777
16778#if defined(cl_khr_fp16)
16779half __ovld sub_group_shuffle_up( half value, uint delta );
16780half __ovld sub_group_shuffle_down( half value, uint delta );
16781#endif // cl_khr_fp16
16782
16783#if defined(cl_khr_fp64)
16784double __ovld sub_group_shuffle_up( double value, uint delta );
16785double __ovld sub_group_shuffle_down( double value, uint delta );
16786#endif // cl_khr_fp64
16787
16788#endif // cl_khr_subgroup_shuffle_relative
16789
16790#if defined(cl_khr_subgroup_clustered_reduce)
16791char __ovld sub_group_clustered_reduce_add( char value, uint clustersize );
16792uchar __ovld sub_group_clustered_reduce_add( uchar value, uint clustersize );
16793short __ovld sub_group_clustered_reduce_add( short value, uint clustersize );
16794ushort __ovld sub_group_clustered_reduce_add( ushort value, uint clustersize );
16795int __ovld sub_group_clustered_reduce_add( int value, uint clustersize );
16796uint __ovld sub_group_clustered_reduce_add( uint value, uint clustersize );
16797long __ovld sub_group_clustered_reduce_add( long value, uint clustersize );
16798ulong __ovld sub_group_clustered_reduce_add( ulong value, uint clustersize );
16799float __ovld sub_group_clustered_reduce_add( float value, uint clustersize );
16800
16801char __ovld sub_group_clustered_reduce_mul( char value, uint clustersize );
16802uchar __ovld sub_group_clustered_reduce_mul( uchar value, uint clustersize );
16803short __ovld sub_group_clustered_reduce_mul( short value, uint clustersize );
16804ushort __ovld sub_group_clustered_reduce_mul( ushort value, uint clustersize );
16805int __ovld sub_group_clustered_reduce_mul( int value, uint clustersize );
16806uint __ovld sub_group_clustered_reduce_mul( uint value, uint clustersize );
16807long __ovld sub_group_clustered_reduce_mul( long value, uint clustersize );
16808ulong __ovld sub_group_clustered_reduce_mul( ulong value, uint clustersize );
16809float __ovld sub_group_clustered_reduce_mul( float value, uint clustersize );
16810
16811char __ovld sub_group_clustered_reduce_min( char value, uint clustersize );
16812uchar __ovld sub_group_clustered_reduce_min( uchar value, uint clustersize );
16813short __ovld sub_group_clustered_reduce_min( short value, uint clustersize );
16814ushort __ovld sub_group_clustered_reduce_min( ushort value, uint clustersize );
16815int __ovld sub_group_clustered_reduce_min( int value, uint clustersize );
16816uint __ovld sub_group_clustered_reduce_min( uint value, uint clustersize );
16817long __ovld sub_group_clustered_reduce_min( long value, uint clustersize );
16818ulong __ovld sub_group_clustered_reduce_min( ulong value, uint clustersize );
16819float __ovld sub_group_clustered_reduce_min( float value, uint clustersize );
16820
16821char __ovld sub_group_clustered_reduce_max( char value, uint clustersize );
16822uchar __ovld sub_group_clustered_reduce_max( uchar value, uint clustersize );
16823short __ovld sub_group_clustered_reduce_max( short value, uint clustersize );
16824ushort __ovld sub_group_clustered_reduce_max( ushort value, uint clustersize );
16825int __ovld sub_group_clustered_reduce_max( int value, uint clustersize );
16826uint __ovld sub_group_clustered_reduce_max( uint value, uint clustersize );
16827long __ovld sub_group_clustered_reduce_max( long value, uint clustersize );
16828ulong __ovld sub_group_clustered_reduce_max( ulong value, uint clustersize );
16829float __ovld sub_group_clustered_reduce_max( float value, uint clustersize );
16830
16831char __ovld sub_group_clustered_reduce_and( char value, uint clustersize );
16832uchar __ovld sub_group_clustered_reduce_and( uchar value, uint clustersize );
16833short __ovld sub_group_clustered_reduce_and( short value, uint clustersize );
16834ushort __ovld sub_group_clustered_reduce_and( ushort value, uint clustersize );
16835int __ovld sub_group_clustered_reduce_and( int value, uint clustersize );
16836uint __ovld sub_group_clustered_reduce_and( uint value, uint clustersize );
16837long __ovld sub_group_clustered_reduce_and( long value, uint clustersize );
16838ulong __ovld sub_group_clustered_reduce_and( ulong value, uint clustersize );
16839
16840char __ovld sub_group_clustered_reduce_or( char value, uint clustersize );
16841uchar __ovld sub_group_clustered_reduce_or( uchar value, uint clustersize );
16842short __ovld sub_group_clustered_reduce_or( short value, uint clustersize );
16843ushort __ovld sub_group_clustered_reduce_or( ushort value, uint clustersize );
16844int __ovld sub_group_clustered_reduce_or( int value, uint clustersize );
16845uint __ovld sub_group_clustered_reduce_or( uint value, uint clustersize );
16846long __ovld sub_group_clustered_reduce_or( long value, uint clustersize );
16847ulong __ovld sub_group_clustered_reduce_or( ulong value, uint clustersize );
16848
16849char __ovld sub_group_clustered_reduce_xor( char value, uint clustersize );
16850uchar __ovld sub_group_clustered_reduce_xor( uchar value, uint clustersize );
16851short __ovld sub_group_clustered_reduce_xor( short value, uint clustersize );
16852ushort __ovld sub_group_clustered_reduce_xor( ushort value, uint clustersize );
16853int __ovld sub_group_clustered_reduce_xor( int value, uint clustersize );
16854uint __ovld sub_group_clustered_reduce_xor( uint value, uint clustersize );
16855long __ovld sub_group_clustered_reduce_xor( long value, uint clustersize );
16856ulong __ovld sub_group_clustered_reduce_xor( ulong value, uint clustersize );
16857
16858int __ovld sub_group_clustered_reduce_logical_and( int predicate, uint clustersize );
16859int __ovld sub_group_clustered_reduce_logical_or( int predicate, uint clustersize );
16860int __ovld sub_group_clustered_reduce_logical_xor( int predicate, uint clustersize );
16861
16862#if defined(cl_khr_fp16)
16863half __ovld sub_group_clustered_reduce_add( half value, uint clustersize );
16864half __ovld sub_group_clustered_reduce_mul( half value, uint clustersize );
16865half __ovld sub_group_clustered_reduce_min( half value, uint clustersize );
16866half __ovld sub_group_clustered_reduce_max( half value, uint clustersize );
16867#endif // cl_khr_fp16
16868
16869#if defined(cl_khr_fp64)
16870double __ovld sub_group_clustered_reduce_add( double value, uint clustersize );
16871double __ovld sub_group_clustered_reduce_mul( double value, uint clustersize );
16872double __ovld sub_group_clustered_reduce_min( double value, uint clustersize );
16873double __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
16874#endif // cl_khr_fp64
16875
16876#endif // cl_khr_subgroup_clustered_reduce
16877
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016878#if defined(cl_khr_extended_bit_ops)
16879char __ovld __cnfn bitfield_insert(char, char, uint, uint);
16880uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint);
16881short __ovld __cnfn bitfield_insert(short, short, uint, uint);
16882ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint);
16883int __ovld __cnfn bitfield_insert(int, int, uint, uint);
16884uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint);
16885long __ovld __cnfn bitfield_insert(long, long, uint, uint);
16886ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint);
16887char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint);
16888uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint);
16889short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint);
16890ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint);
16891int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint);
16892uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint);
16893long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint);
16894ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint);
16895char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint);
16896uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint);
16897short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint);
16898ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint);
16899int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint);
16900uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint);
16901long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint);
16902ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint);
16903char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint);
16904uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint);
16905short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint);
16906ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint);
16907int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint);
16908uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint);
16909long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint);
16910ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint);
16911char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint);
16912uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint);
16913short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint);
16914ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint);
16915int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint);
16916uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint);
16917long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint);
16918ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint);
16919char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint);
16920uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint);
16921short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint);
16922ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint);
16923int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint);
16924uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint);
16925long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint);
16926ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint);
16927
16928char __ovld __cnfn bitfield_extract_signed(char, uint, uint);
16929short __ovld __cnfn bitfield_extract_signed(short, uint, uint);
16930int __ovld __cnfn bitfield_extract_signed(int, uint, uint);
16931long __ovld __cnfn bitfield_extract_signed(long, uint, uint);
16932char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint);
16933short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint);
16934int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint);
16935long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint);
16936char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint);
16937short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint);
16938int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint);
16939long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint);
16940char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint);
16941short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint);
16942int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint);
16943long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint);
16944char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint);
16945short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint);
16946int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint);
16947long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint);
16948char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint);
16949short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint);
16950int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint);
16951long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint);
16952
16953char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint);
16954short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint);
16955int __ovld __cnfn bitfield_extract_signed(uint, uint, uint);
16956long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint);
16957char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint);
16958short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint);
16959int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint);
16960long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint);
16961char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint);
16962short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint);
16963int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint);
16964long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint);
16965char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint);
16966short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint);
16967int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint);
16968long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint);
16969char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint);
16970short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint);
16971int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint);
16972long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint);
16973char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint);
16974short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint);
16975int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint);
16976long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint);
16977
16978uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint);
16979ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint);
16980uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint);
16981ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint);
16982uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint);
16983ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint);
16984uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint);
16985ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint);
16986uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint);
16987ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint);
16988uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint);
16989ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint);
16990uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint);
16991ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint);
16992uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint);
16993ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint);
16994uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint);
16995ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint);
16996uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint);
16997ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint);
16998uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint);
16999ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint);
17000uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint);
17001ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint);
17002
17003uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint);
17004ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint);
17005uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint);
17006ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint);
17007uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint);
17008ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint);
17009uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint);
17010ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint);
17011uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint);
17012ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint);
17013uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint);
17014ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint);
17015uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint);
17016ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint);
17017uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint);
17018ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint);
17019uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint);
17020ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint);
17021uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint);
17022ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint);
17023uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint);
17024ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint);
17025uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint);
17026ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint);
17027
17028char __ovld __cnfn bit_reverse(char);
17029uchar __ovld __cnfn bit_reverse(uchar);
17030short __ovld __cnfn bit_reverse(short);
17031ushort __ovld __cnfn bit_reverse(ushort);
17032int __ovld __cnfn bit_reverse(int);
17033uint __ovld __cnfn bit_reverse(uint);
17034long __ovld __cnfn bit_reverse(long);
17035ulong __ovld __cnfn bit_reverse(ulong);
17036char2 __ovld __cnfn bit_reverse(char2);
17037uchar2 __ovld __cnfn bit_reverse(uchar2);
17038short2 __ovld __cnfn bit_reverse(short2);
17039ushort2 __ovld __cnfn bit_reverse(ushort2);
17040int2 __ovld __cnfn bit_reverse(int2);
17041uint2 __ovld __cnfn bit_reverse(uint2);
17042long2 __ovld __cnfn bit_reverse(long2);
17043ulong2 __ovld __cnfn bit_reverse(ulong2);
17044char3 __ovld __cnfn bit_reverse(char3);
17045uchar3 __ovld __cnfn bit_reverse(uchar3);
17046short3 __ovld __cnfn bit_reverse(short3);
17047ushort3 __ovld __cnfn bit_reverse(ushort3);
17048int3 __ovld __cnfn bit_reverse(int3);
17049uint3 __ovld __cnfn bit_reverse(uint3);
17050long3 __ovld __cnfn bit_reverse(long3);
17051ulong3 __ovld __cnfn bit_reverse(ulong3);
17052char4 __ovld __cnfn bit_reverse(char4);
17053uchar4 __ovld __cnfn bit_reverse(uchar4);
17054short4 __ovld __cnfn bit_reverse(short4);
17055ushort4 __ovld __cnfn bit_reverse(ushort4);
17056int4 __ovld __cnfn bit_reverse(int4);
17057uint4 __ovld __cnfn bit_reverse(uint4);
17058long4 __ovld __cnfn bit_reverse(long4);
17059ulong4 __ovld __cnfn bit_reverse(ulong4);
17060char8 __ovld __cnfn bit_reverse(char8);
17061uchar8 __ovld __cnfn bit_reverse(uchar8);
17062short8 __ovld __cnfn bit_reverse(short8);
17063ushort8 __ovld __cnfn bit_reverse(ushort8);
17064int8 __ovld __cnfn bit_reverse(int8);
17065uint8 __ovld __cnfn bit_reverse(uint8);
17066long8 __ovld __cnfn bit_reverse(long8);
17067ulong8 __ovld __cnfn bit_reverse(ulong8);
17068char16 __ovld __cnfn bit_reverse(char16);
17069uchar16 __ovld __cnfn bit_reverse(uchar16);
17070short16 __ovld __cnfn bit_reverse(short16);
17071ushort16 __ovld __cnfn bit_reverse(ushort16);
17072int16 __ovld __cnfn bit_reverse(int16);
17073uint16 __ovld __cnfn bit_reverse(uint16);
17074long16 __ovld __cnfn bit_reverse(long16);
17075ulong16 __ovld __cnfn bit_reverse(ulong16);
17076#endif // cl_khr_extended_bit_ops
17077
17078#if defined(__opencl_c_integer_dot_product_input_4x8bit)
17079uint __ovld __cnfn dot(uchar4, uchar4);
17080int __ovld __cnfn dot(char4, char4);
17081int __ovld __cnfn dot(uchar4, char4);
17082int __ovld __cnfn dot(char4, uchar4);
17083
17084uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint);
17085int __ovld __cnfn dot_acc_sat(char4, char4, int);
17086int __ovld __cnfn dot_acc_sat(uchar4, char4, int);
17087int __ovld __cnfn dot_acc_sat(char4, uchar4, int);
17088#endif // __opencl_c_integer_dot_product_input_4x8bit
17089
17090#if defined(__opencl_c_integer_dot_product_input_4x8bit_packed)
17091uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint);
17092int __ovld __cnfn dot_4x8packed_ss_int(uint, uint);
17093int __ovld __cnfn dot_4x8packed_us_int(uint, uint);
17094int __ovld __cnfn dot_4x8packed_su_int(uint, uint);
17095
17096uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint);
17097int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int);
17098int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int);
17099int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int);
17100#endif // __opencl_c_integer_dot_product_input_4x8bit_packed
17101
Logan Chien55afb0a2018-10-15 10:42:14 +080017102#if defined(cl_intel_subgroups)
17103// Intel-Specific Sub Group Functions
17104float __ovld __conv intel_sub_group_shuffle( float x, uint c );
17105float2 __ovld __conv intel_sub_group_shuffle( float2 x, uint c );
17106float3 __ovld __conv intel_sub_group_shuffle( float3 x, uint c );
17107float4 __ovld __conv intel_sub_group_shuffle( float4 x, uint c );
17108float8 __ovld __conv intel_sub_group_shuffle( float8 x, uint c );
17109float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c );
17110
17111int __ovld __conv intel_sub_group_shuffle( int x, uint c );
17112int2 __ovld __conv intel_sub_group_shuffle( int2 x, uint c );
17113int3 __ovld __conv intel_sub_group_shuffle( int3 x, uint c );
17114int4 __ovld __conv intel_sub_group_shuffle( int4 x, uint c );
17115int8 __ovld __conv intel_sub_group_shuffle( int8 x, uint c );
17116int16 __ovld __conv intel_sub_group_shuffle( int16 x, uint c );
17117
17118uint __ovld __conv intel_sub_group_shuffle( uint x, uint c );
17119uint2 __ovld __conv intel_sub_group_shuffle( uint2 x, uint c );
17120uint3 __ovld __conv intel_sub_group_shuffle( uint3 x, uint c );
17121uint4 __ovld __conv intel_sub_group_shuffle( uint4 x, uint c );
17122uint8 __ovld __conv intel_sub_group_shuffle( uint8 x, uint c );
17123uint16 __ovld __conv intel_sub_group_shuffle( uint16 x, uint c );
17124
17125long __ovld __conv intel_sub_group_shuffle( long x, uint c );
17126ulong __ovld __conv intel_sub_group_shuffle( ulong x, uint c );
17127
17128float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint c );
17129float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c );
17130float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c );
17131float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c );
17132float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c );
17133float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c );
17134
17135int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint c );
17136int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c );
17137int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c );
17138int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c );
17139int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c );
17140int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c );
17141
17142uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint c );
17143uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c );
17144uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c );
17145uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c );
17146uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c );
17147uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c );
17148
17149long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c );
17150ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c );
17151
17152float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint c );
17153float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c );
17154float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c );
17155float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c );
17156float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c );
17157float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c );
17158
17159int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint c );
17160int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c );
17161int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c );
17162int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c );
17163int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c );
17164int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c );
17165
17166uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint c );
17167uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c );
17168uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c );
17169uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c );
17170uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c );
17171uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c );
17172
17173long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c );
17174ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c );
17175
17176float __ovld __conv intel_sub_group_shuffle_xor( float x, uint c );
17177float2 __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c );
17178float3 __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c );
17179float4 __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c );
17180float8 __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c );
17181float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c );
17182
17183int __ovld __conv intel_sub_group_shuffle_xor( int x, uint c );
17184int2 __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c );
17185int3 __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c );
17186int4 __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c );
17187int8 __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c );
17188int16 __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c );
17189
17190uint __ovld __conv intel_sub_group_shuffle_xor( uint x, uint c );
17191uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c );
17192uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c );
17193uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c );
17194uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c );
17195uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
17196
17197long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
17198ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
17199
17200uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
17201uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
17202uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
17203uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
17204
Logan Chienbedbf4f2020-01-06 19:35:19 -080017205#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017206uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
17207uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
17208uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
17209uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017210#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017211
17212uint __ovld __conv intel_sub_group_block_read( const __global uint* p );
17213uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p );
17214uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p );
17215uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p );
17216
17217void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
17218void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
17219void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
17220void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
17221
Logan Chienbedbf4f2020-01-06 19:35:19 -080017222#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017223void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
17224void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
17225void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
17226void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017227#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017228
17229void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
17230void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
17231void __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data );
17232void __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data );
17233
17234#ifdef cl_khr_fp16
17235half __ovld __conv intel_sub_group_shuffle( half x, uint c );
17236half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c );
17237half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c );
17238half __ovld __conv intel_sub_group_shuffle_xor( half x, uint c );
17239#endif
17240
17241#if defined(cl_khr_fp64)
17242double __ovld __conv intel_sub_group_shuffle( double x, uint c );
17243double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c );
17244double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c );
17245double __ovld __conv intel_sub_group_shuffle_xor( double x, uint c );
17246#endif
17247
17248#endif //cl_intel_subgroups
17249
17250#if defined(cl_intel_subgroups_short)
17251short __ovld __conv intel_sub_group_broadcast( short x, uint sub_group_local_id );
17252short2 __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id );
17253short3 __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id );
17254short4 __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id );
17255short8 __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id );
17256
17257ushort __ovld __conv intel_sub_group_broadcast( ushort x, uint sub_group_local_id );
17258ushort2 __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id );
17259ushort3 __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id );
17260ushort4 __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id );
17261ushort8 __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id );
17262
17263short __ovld __conv intel_sub_group_shuffle( short x, uint c );
17264short2 __ovld __conv intel_sub_group_shuffle( short2 x, uint c );
17265short3 __ovld __conv intel_sub_group_shuffle( short3 x, uint c );
17266short4 __ovld __conv intel_sub_group_shuffle( short4 x, uint c );
17267short8 __ovld __conv intel_sub_group_shuffle( short8 x, uint c );
17268short16 __ovld __conv intel_sub_group_shuffle( short16 x, uint c);
17269
17270ushort __ovld __conv intel_sub_group_shuffle( ushort x, uint c );
17271ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 x, uint c );
17272ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 x, uint c );
17273ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 x, uint c );
17274ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 x, uint c );
17275ushort16 __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c );
17276
17277short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint c );
17278short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint c );
17279short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint c );
17280short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint c );
17281short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint c );
17282short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c );
17283
17284ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint c );
17285ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint c );
17286ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint c );
17287ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint c );
17288ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint c );
17289ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c );
17290
17291short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint c );
17292short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint c );
17293short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint c );
17294short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint c );
17295short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint c );
17296short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c );
17297
17298ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint c );
17299ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint c );
17300ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint c );
17301ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint c );
17302ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint c );
17303ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c );
17304
17305short __ovld __conv intel_sub_group_shuffle_xor( short x, uint c );
17306short2 __ovld __conv intel_sub_group_shuffle_xor( short2 x, uint c );
17307short3 __ovld __conv intel_sub_group_shuffle_xor( short3 x, uint c );
17308short4 __ovld __conv intel_sub_group_shuffle_xor( short4 x, uint c );
17309short8 __ovld __conv intel_sub_group_shuffle_xor( short8 x, uint c );
17310short16 __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c );
17311
17312ushort __ovld __conv intel_sub_group_shuffle_xor( ushort x, uint c );
17313ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 x, uint c );
17314ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 x, uint c );
17315ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 x, uint c );
17316ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 x, uint c );
17317ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c );
17318
17319short __ovld __conv intel_sub_group_reduce_add( short x );
17320ushort __ovld __conv intel_sub_group_reduce_add( ushort x );
17321short __ovld __conv intel_sub_group_reduce_min( short x );
17322ushort __ovld __conv intel_sub_group_reduce_min( ushort x );
17323short __ovld __conv intel_sub_group_reduce_max( short x );
17324ushort __ovld __conv intel_sub_group_reduce_max( ushort x );
17325
17326short __ovld __conv intel_sub_group_scan_exclusive_add( short x );
17327ushort __ovld __conv intel_sub_group_scan_exclusive_add( ushort x );
17328short __ovld __conv intel_sub_group_scan_exclusive_min( short x );
17329ushort __ovld __conv intel_sub_group_scan_exclusive_min( ushort x );
17330short __ovld __conv intel_sub_group_scan_exclusive_max( short x );
17331ushort __ovld __conv intel_sub_group_scan_exclusive_max( ushort x );
17332
17333short __ovld __conv intel_sub_group_scan_inclusive_add( short x );
17334ushort __ovld __conv intel_sub_group_scan_inclusive_add( ushort x );
17335short __ovld __conv intel_sub_group_scan_inclusive_min( short x );
17336ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x );
17337short __ovld __conv intel_sub_group_scan_inclusive_max( short x );
17338ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x );
17339
17340uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
17341uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
17342uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
17343uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
17344
Logan Chienbedbf4f2020-01-06 19:35:19 -080017345#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017346uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
17347uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
17348uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
17349uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
Logan Chienbedbf4f2020-01-06 19:35:19 -080017350#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017351
17352uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
17353uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
17354uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
17355uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
17356
17357void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
17358void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
17359void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
17360void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data );
17361
Logan Chienbedbf4f2020-01-06 19:35:19 -080017362#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017363void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
17364void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
17365void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
17366void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data );
Logan Chienbedbf4f2020-01-06 19:35:19 -080017367#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017368
17369void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
17370void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
17371void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
17372void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
17373
17374ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
17375ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
17376ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
17377ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
17378
Logan Chienbedbf4f2020-01-06 19:35:19 -080017379#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017380ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
17381ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
17382ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
17383ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017384#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017385
17386ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p );
17387ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
17388ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
17389ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
17390
17391void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data);
17392void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
17393void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
17394void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data);
17395
Logan Chienbedbf4f2020-01-06 19:35:19 -080017396#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017397void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data);
17398void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
17399void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
17400void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017401#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017402
17403void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data );
17404void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
17405void __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data );
17406void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
17407#endif // cl_intel_subgroups_short
17408
Logan Chiendbcf4122019-03-21 10:50:25 +080017409#ifdef cl_intel_device_side_avc_motion_estimation
17410#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
17411
Logan Chiendbcf4122019-03-21 10:50:25 +080017412// MCE built-in functions
17413uchar __ovld
17414intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty(
17415 uchar slice_type, uchar qp);
17416ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty(
17417 uchar slice_type, uchar qp);
17418uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty(
17419 uchar slice_type, uchar qp);
17420uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty(
17421 uchar slice_type, uchar qp);
17422uint2 __ovld
17423intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table(
17424 uchar slice_type, uchar qp);
17425uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty(
17426 uchar slice_type, uchar qp);
17427
17428uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table();
17429uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table();
17430uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table();
17431uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty();
17432uchar __ovld
17433intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty();
17434
17435intel_sub_group_avc_mce_payload_t __ovld
17436intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty(
17437 uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload);
17438intel_sub_group_avc_mce_payload_t __ovld
17439intel_sub_group_avc_mce_set_inter_shape_penalty(
17440 ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload);
17441intel_sub_group_avc_mce_payload_t __ovld
17442intel_sub_group_avc_mce_set_inter_direction_penalty(
17443 uchar direction_cost, intel_sub_group_avc_mce_payload_t payload);
17444intel_sub_group_avc_mce_payload_t __ovld
17445intel_sub_group_avc_mce_set_motion_vector_cost_function(
17446 ulong packed_cost_center_delta, uint2 packed_cost_table,
17447 uchar cost_precision, intel_sub_group_avc_mce_payload_t payload);
17448intel_sub_group_avc_mce_payload_t __ovld
17449intel_sub_group_avc_mce_set_ac_only_haar(
17450 intel_sub_group_avc_mce_payload_t payload);
17451intel_sub_group_avc_mce_payload_t __ovld
17452intel_sub_group_avc_mce_set_source_interlaced_field_polarity(
17453 uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload);
17454intel_sub_group_avc_mce_payload_t __ovld
17455intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity(
17456 uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload);
17457intel_sub_group_avc_mce_payload_t __ovld
17458intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities(
17459 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
17460 intel_sub_group_avc_mce_payload_t payload);
17461
17462ulong __ovld intel_sub_group_avc_mce_get_motion_vectors(
17463 intel_sub_group_avc_mce_result_t result);
17464ushort __ovld intel_sub_group_avc_mce_get_inter_distortions(
17465 intel_sub_group_avc_mce_result_t result);
17466ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion(
17467 intel_sub_group_avc_mce_result_t result);
17468uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape(
17469 intel_sub_group_avc_mce_result_t result);
17470uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes(
17471 intel_sub_group_avc_mce_result_t result);
17472uchar __ovld intel_sub_group_avc_mce_get_inter_directions(
17473 intel_sub_group_avc_mce_result_t result);
17474uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count(
17475 intel_sub_group_avc_mce_result_t result);
17476uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids(
17477 intel_sub_group_avc_mce_result_t result);
17478uchar __ovld
17479intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities(
17480 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
17481 intel_sub_group_avc_mce_result_t result);
17482
17483// IME built-in functions
17484intel_sub_group_avc_ime_payload_t __ovld
17485intel_sub_group_avc_ime_initialize(
17486 ushort2 src_coord, uchar partition_mask, uchar sad_adjustment);
17487intel_sub_group_avc_ime_payload_t __ovld
17488intel_sub_group_avc_ime_set_single_reference(
17489 short2 ref_offset, uchar search_window_config,
17490 intel_sub_group_avc_ime_payload_t payload);
17491intel_sub_group_avc_ime_payload_t __ovld
17492intel_sub_group_avc_ime_set_dual_reference(
17493 short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config,
17494 intel_sub_group_avc_ime_payload_t payload);
17495intel_sub_group_avc_ime_payload_t __ovld
17496intel_sub_group_avc_ime_set_max_motion_vector_count(
17497 uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload);
17498intel_sub_group_avc_ime_payload_t __ovld
17499intel_sub_group_avc_ime_set_unidirectional_mix_disable(
17500 intel_sub_group_avc_ime_payload_t payload);
17501intel_sub_group_avc_ime_payload_t __ovld
17502intel_sub_group_avc_ime_set_early_search_termination_threshold(
17503 uchar threshold, intel_sub_group_avc_ime_payload_t payload);
17504intel_sub_group_avc_ime_payload_t __ovld
17505intel_sub_group_avc_ime_set_weighted_sad(
17506 uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload);
17507
17508__attribute__((deprecated("If you use the latest Intel driver, please use "
17509 "intel_sub_group_avc_ime_ref_window_size instead",
17510 "intel_sub_group_avc_ime_ref_window_size")))
17511ushort2 __ovld
17512intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref);
17513ushort2 __ovld intel_sub_group_avc_ime_ref_window_size(
17514 uchar search_window_config, char dual_ref);
17515short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
17516 short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
17517 ushort2 image_size);
17518
17519intel_sub_group_avc_ime_result_t __ovld
17520intel_sub_group_avc_ime_evaluate_with_single_reference(
17521 read_only image2d_t src_image, read_only image2d_t ref_image,
17522 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
17523intel_sub_group_avc_ime_result_t __ovld
17524intel_sub_group_avc_ime_evaluate_with_dual_reference(
17525 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17526 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17527 intel_sub_group_avc_ime_payload_t payload);
17528intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
17529intel_sub_group_avc_ime_evaluate_with_single_reference_streamout(
17530 read_only image2d_t src_image, read_only image2d_t ref_image,
17531 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
17532intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
17533intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout(
17534 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17535 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17536 intel_sub_group_avc_ime_payload_t payload);
17537intel_sub_group_avc_ime_result_t __ovld
17538intel_sub_group_avc_ime_evaluate_with_single_reference_streamin(
17539 read_only image2d_t src_image, read_only image2d_t ref_image,
17540 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
17541 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
17542intel_sub_group_avc_ime_result_t __ovld
17543intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin(
17544 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17545 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17546 intel_sub_group_avc_ime_payload_t payload,
17547 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
17548intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
17549intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout(
17550 read_only image2d_t src_image, read_only image2d_t ref_image,
17551 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
17552 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
17553intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
17554intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
17555 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17556 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17557 intel_sub_group_avc_ime_payload_t payload,
17558 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
17559
17560intel_sub_group_avc_ime_single_reference_streamin_t __ovld
17561intel_sub_group_avc_ime_get_single_reference_streamin(
17562 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
17563intel_sub_group_avc_ime_dual_reference_streamin_t __ovld
17564intel_sub_group_avc_ime_get_dual_reference_streamin(
17565 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
17566intel_sub_group_avc_ime_result_t __ovld
17567intel_sub_group_avc_ime_strip_single_reference_streamout(
17568 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
17569intel_sub_group_avc_ime_result_t __ovld
17570intel_sub_group_avc_ime_strip_dual_reference_streamout(
17571 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
17572
17573uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
17574 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
17575 uchar major_shape);
17576ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
17577 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
17578 uchar major_shape);
17579uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
17580 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
17581 uchar major_shape);
17582uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
17583 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
17584 uchar major_shape, uchar direction);
17585ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
17586 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
17587 uchar major_shape, uchar direction);
17588uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
17589 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
17590 uchar major_shape, uchar direction);
17591
17592uchar __ovld intel_sub_group_avc_ime_get_border_reached(
17593 uchar image_select, intel_sub_group_avc_ime_result_t result);
17594uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication(
17595 intel_sub_group_avc_ime_result_t result);
17596uchar __ovld
17597intel_sub_group_avc_ime_get_unidirectional_early_search_termination(
17598 intel_sub_group_avc_ime_result_t result);
17599uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector(
17600 intel_sub_group_avc_ime_result_t result);
17601ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion(
17602 intel_sub_group_avc_ime_result_t result);
17603
17604// REF built-in functions
17605intel_sub_group_avc_ref_payload_t __ovld
17606intel_sub_group_avc_fme_initialize(
17607 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
17608 uchar minor_shapes, uchar directions, uchar pixel_resolution,
17609 uchar sad_adjustment);
17610intel_sub_group_avc_ref_payload_t __ovld
17611intel_sub_group_avc_bme_initialize(
17612 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
17613 uchar minor_shapes, uchar directions, uchar pixel_resolution,
17614 uchar bidirectional_weight, uchar sad_adjustment);
17615
17616intel_sub_group_avc_ref_payload_t __ovld
17617intel_sub_group_avc_ref_set_bidirectional_mix_disable(
17618 intel_sub_group_avc_ref_payload_t payload);
17619intel_sub_group_avc_ref_payload_t __ovld
17620intel_sub_group_avc_ref_set_bilinear_filter_enable(
17621 intel_sub_group_avc_ref_payload_t payload);
17622
17623intel_sub_group_avc_ref_result_t __ovld
17624intel_sub_group_avc_ref_evaluate_with_single_reference(
17625 read_only image2d_t src_image, read_only image2d_t ref_image,
17626 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
17627intel_sub_group_avc_ref_result_t __ovld
17628intel_sub_group_avc_ref_evaluate_with_dual_reference(
17629 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17630 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17631 intel_sub_group_avc_ref_payload_t payload);
17632intel_sub_group_avc_ref_result_t __ovld
17633intel_sub_group_avc_ref_evaluate_with_multi_reference(
17634 read_only image2d_t src_image, uint packed_reference_ids,
17635 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
17636intel_sub_group_avc_ref_result_t __ovld
17637intel_sub_group_avc_ref_evaluate_with_multi_reference(
17638 read_only image2d_t src_image, uint packed_reference_ids,
17639 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
17640 intel_sub_group_avc_ref_payload_t payload);
17641
17642// SIC built-in functions
17643intel_sub_group_avc_sic_payload_t __ovld
17644intel_sub_group_avc_sic_initialize(
17645 ushort2 src_coord);
17646intel_sub_group_avc_sic_payload_t __ovld
17647intel_sub_group_avc_sic_configure_skc(
17648 uint skip_block_partition_type, uint skip_motion_vector_mask,
17649 ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment,
17650 intel_sub_group_avc_sic_payload_t payload);
17651intel_sub_group_avc_sic_payload_t __ovld
17652intel_sub_group_avc_sic_configure_ipe(
17653 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
17654 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
17655 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
17656 uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload);
17657intel_sub_group_avc_sic_payload_t __ovld
17658intel_sub_group_avc_sic_configure_ipe(
17659 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
17660 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
17661 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
17662 ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel,
17663 ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment,
17664 intel_sub_group_avc_sic_payload_t payload);
17665uint __ovld
17666intel_sub_group_avc_sic_get_motion_vector_mask(
17667 uint skip_block_partition_type, uchar direction);
17668
17669intel_sub_group_avc_sic_payload_t __ovld
17670intel_sub_group_avc_sic_set_intra_luma_shape_penalty(
17671 uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
17672intel_sub_group_avc_sic_payload_t __ovld
17673intel_sub_group_avc_sic_set_intra_luma_mode_cost_function(
17674 uchar luma_mode_penalty, uint luma_packed_neighbor_modes,
17675 uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload);
17676intel_sub_group_avc_sic_payload_t __ovld
17677intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function(
17678 uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload);
17679
17680intel_sub_group_avc_sic_payload_t __ovld
17681intel_sub_group_avc_sic_set_skc_bilinear_filter_enable(
17682 intel_sub_group_avc_sic_payload_t payload);
17683intel_sub_group_avc_sic_payload_t __ovld
17684intel_sub_group_avc_sic_set_skc_forward_transform_enable(
17685 ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload);
17686intel_sub_group_avc_sic_payload_t __ovld
17687intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
17688 uchar block_based_skip_type,
17689 intel_sub_group_avc_sic_payload_t payload);
17690
17691intel_sub_group_avc_sic_result_t __ovld
17692intel_sub_group_avc_sic_evaluate_ipe(
17693 read_only image2d_t src_image, sampler_t vme_media_sampler,
17694 intel_sub_group_avc_sic_payload_t payload);
17695intel_sub_group_avc_sic_result_t __ovld
17696intel_sub_group_avc_sic_evaluate_with_single_reference(
17697 read_only image2d_t src_image, read_only image2d_t ref_image,
17698 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
17699intel_sub_group_avc_sic_result_t __ovld
17700intel_sub_group_avc_sic_evaluate_with_dual_reference(
17701 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17702 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17703 intel_sub_group_avc_sic_payload_t payload);
17704intel_sub_group_avc_sic_result_t __ovld
17705intel_sub_group_avc_sic_evaluate_with_multi_reference(
17706 read_only image2d_t src_image, uint packed_reference_ids,
17707 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
17708intel_sub_group_avc_sic_result_t __ovld
17709intel_sub_group_avc_sic_evaluate_with_multi_reference(
17710 read_only image2d_t src_image, uint packed_reference_ids,
17711 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
17712 intel_sub_group_avc_sic_payload_t payload);
17713
17714uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
17715 intel_sub_group_avc_sic_result_t result);
17716ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion(
17717 intel_sub_group_avc_sic_result_t result);
17718ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion(
17719 intel_sub_group_avc_sic_result_t result);
17720ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes(
17721 intel_sub_group_avc_sic_result_t result);
17722uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode(
17723 intel_sub_group_avc_sic_result_t result);
17724uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold(
17725 intel_sub_group_avc_sic_result_t result);
17726ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold(
17727 intel_sub_group_avc_sic_result_t result);
17728ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads(
17729 intel_sub_group_avc_sic_result_t result);
17730
17731// Wrappers
17732intel_sub_group_avc_ime_payload_t __ovld
17733intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty(
17734 uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload);
17735intel_sub_group_avc_ref_payload_t __ovld
17736intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty(
17737 uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload);
17738intel_sub_group_avc_sic_payload_t __ovld
17739intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty(
17740 uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload);
17741
17742intel_sub_group_avc_ime_payload_t __ovld
17743intel_sub_group_avc_ime_set_inter_shape_penalty(
17744 ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload);
17745intel_sub_group_avc_ref_payload_t __ovld
17746intel_sub_group_avc_ref_set_inter_shape_penalty(
17747 ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload);
17748intel_sub_group_avc_sic_payload_t __ovld
17749intel_sub_group_avc_sic_set_inter_shape_penalty(
17750 ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
17751
17752intel_sub_group_avc_ime_payload_t __ovld
17753intel_sub_group_avc_ime_set_inter_direction_penalty(
17754 uchar direction_cost, intel_sub_group_avc_ime_payload_t payload);
17755intel_sub_group_avc_ref_payload_t __ovld
17756intel_sub_group_avc_ref_set_inter_direction_penalty(
17757 uchar direction_cost, intel_sub_group_avc_ref_payload_t payload);
17758intel_sub_group_avc_sic_payload_t __ovld
17759intel_sub_group_avc_sic_set_inter_direction_penalty(
17760 uchar direction_cost, intel_sub_group_avc_sic_payload_t payload);
17761
17762intel_sub_group_avc_ime_payload_t __ovld
17763intel_sub_group_avc_ime_set_motion_vector_cost_function(
17764 ulong packed_cost_center_delta, uint2 packed_cost_table,
17765 uchar cost_precision, intel_sub_group_avc_ime_payload_t payload);
17766intel_sub_group_avc_ref_payload_t __ovld
17767intel_sub_group_avc_ref_set_motion_vector_cost_function(
17768 ulong packed_cost_center_delta, uint2 packed_cost_table,
17769 uchar cost_precision, intel_sub_group_avc_ref_payload_t payload);
17770intel_sub_group_avc_sic_payload_t __ovld
17771intel_sub_group_avc_sic_set_motion_vector_cost_function(
17772 ulong packed_cost_center_delta, uint2 packed_cost_table,
17773 uchar cost_precision, intel_sub_group_avc_sic_payload_t payload);
17774
17775intel_sub_group_avc_ime_payload_t __ovld
17776intel_sub_group_avc_ime_set_source_interlaced_field_polarity(
17777 uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload);
17778intel_sub_group_avc_ref_payload_t __ovld
17779intel_sub_group_avc_ref_set_source_interlaced_field_polarity(
17780 uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload);
17781intel_sub_group_avc_sic_payload_t __ovld
17782intel_sub_group_avc_sic_set_source_interlaced_field_polarity(
17783 uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload);
17784
17785intel_sub_group_avc_ime_payload_t __ovld
17786intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity(
17787 uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload);
17788intel_sub_group_avc_ref_payload_t __ovld
17789intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity(
17790 uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload);
17791intel_sub_group_avc_sic_payload_t __ovld
17792intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity(
17793 uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload);
17794intel_sub_group_avc_ime_payload_t __ovld
17795intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities(
17796 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
17797 intel_sub_group_avc_ime_payload_t payload);
17798intel_sub_group_avc_ref_payload_t __ovld
17799intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities(
17800 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
17801 intel_sub_group_avc_ref_payload_t payload);
17802intel_sub_group_avc_sic_payload_t __ovld
17803intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities(
17804 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
17805 intel_sub_group_avc_sic_payload_t payload);
17806
17807intel_sub_group_avc_ime_payload_t __ovld
17808intel_sub_group_avc_ime_set_ac_only_haar(
17809 intel_sub_group_avc_ime_payload_t payload);
17810intel_sub_group_avc_ref_payload_t __ovld
17811intel_sub_group_avc_ref_set_ac_only_haar(
17812 intel_sub_group_avc_ref_payload_t payload);
17813intel_sub_group_avc_sic_payload_t __ovld
17814intel_sub_group_avc_sic_set_ac_only_haar(
17815 intel_sub_group_avc_sic_payload_t payload);
17816
17817ulong __ovld intel_sub_group_avc_ime_get_motion_vectors(
17818 intel_sub_group_avc_ime_result_t result);
17819ulong __ovld intel_sub_group_avc_ref_get_motion_vectors(
17820 intel_sub_group_avc_ref_result_t result);
17821
17822ushort __ovld intel_sub_group_avc_ime_get_inter_distortions(
17823 intel_sub_group_avc_ime_result_t result);
17824ushort __ovld intel_sub_group_avc_ref_get_inter_distortions(
17825 intel_sub_group_avc_ref_result_t result);
17826ushort __ovld intel_sub_group_avc_sic_get_inter_distortions(
17827 intel_sub_group_avc_sic_result_t result);
17828
17829ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion(
17830 intel_sub_group_avc_ime_result_t result);
17831ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion(
17832 intel_sub_group_avc_ref_result_t result);
17833
17834uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape(
17835 intel_sub_group_avc_ime_result_t result);
17836uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape(
17837 intel_sub_group_avc_ref_result_t result);
17838uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes(
17839 intel_sub_group_avc_ime_result_t result);
17840uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes(
17841 intel_sub_group_avc_ref_result_t result);
17842
17843uchar __ovld intel_sub_group_avc_ime_get_inter_directions(
17844 intel_sub_group_avc_ime_result_t result);
17845uchar __ovld intel_sub_group_avc_ref_get_inter_directions(
17846 intel_sub_group_avc_ref_result_t result);
17847
17848uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count(
17849 intel_sub_group_avc_ime_result_t result);
17850uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count(
17851 intel_sub_group_avc_ref_result_t result);
17852
17853uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids(
17854 intel_sub_group_avc_ime_result_t result);
17855uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids(
17856 intel_sub_group_avc_ref_result_t result);
17857
17858uchar __ovld
17859intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities(
17860 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
17861 intel_sub_group_avc_ime_result_t result);
17862uchar __ovld
17863intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities(
17864 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
17865 intel_sub_group_avc_ref_result_t result);
17866
17867// Type conversion functions
17868intel_sub_group_avc_mce_payload_t __ovld
17869intel_sub_group_avc_ime_convert_to_mce_payload(
17870 intel_sub_group_avc_ime_payload_t payload);
17871intel_sub_group_avc_ime_payload_t __ovld
17872intel_sub_group_avc_mce_convert_to_ime_payload(
17873 intel_sub_group_avc_mce_payload_t payload);
17874intel_sub_group_avc_mce_payload_t __ovld
17875intel_sub_group_avc_ref_convert_to_mce_payload(
17876 intel_sub_group_avc_ref_payload_t payload);
17877intel_sub_group_avc_ref_payload_t __ovld
17878intel_sub_group_avc_mce_convert_to_ref_payload(
17879 intel_sub_group_avc_mce_payload_t payload);
17880intel_sub_group_avc_mce_payload_t __ovld
17881intel_sub_group_avc_sic_convert_to_mce_payload(
17882 intel_sub_group_avc_sic_payload_t payload);
17883intel_sub_group_avc_sic_payload_t __ovld
17884intel_sub_group_avc_mce_convert_to_sic_payload(
17885 intel_sub_group_avc_mce_payload_t payload);
17886
17887intel_sub_group_avc_mce_result_t __ovld
17888intel_sub_group_avc_ime_convert_to_mce_result(
17889 intel_sub_group_avc_ime_result_t result);
17890intel_sub_group_avc_ime_result_t __ovld
17891intel_sub_group_avc_mce_convert_to_ime_result(
17892 intel_sub_group_avc_mce_result_t result);
17893intel_sub_group_avc_mce_result_t __ovld
17894intel_sub_group_avc_ref_convert_to_mce_result(
17895 intel_sub_group_avc_ref_result_t result);
17896intel_sub_group_avc_ref_result_t __ovld
17897intel_sub_group_avc_mce_convert_to_ref_result(
17898 intel_sub_group_avc_mce_result_t result);
17899intel_sub_group_avc_mce_result_t __ovld
17900intel_sub_group_avc_sic_convert_to_mce_result(
17901 intel_sub_group_avc_sic_result_t result);
17902intel_sub_group_avc_sic_result_t __ovld
17903intel_sub_group_avc_mce_convert_to_sic_result(
17904 intel_sub_group_avc_mce_result_t result);
17905#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end
17906#endif // cl_intel_device_side_avc_motion_estimation
17907
Logan Chien55afb0a2018-10-15 10:42:14 +080017908#ifdef cl_amd_media_ops
17909uint __ovld amd_bitalign(uint a, uint b, uint c);
17910uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
17911uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
17912uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
17913uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
17914uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
17915
17916uint __ovld amd_bytealign(uint a, uint b, uint c);
17917uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
17918uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
17919uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
17920uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
17921uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
17922
17923uint __ovld amd_lerp(uint a, uint b, uint c);
17924uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
17925uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
17926uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
17927uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
17928uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
17929
17930uint __ovld amd_pack(float4 v);
17931
17932uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
17933
17934uint __ovld amd_sadhi(uint a, uint b, uint c);
17935uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
17936uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
17937uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
17938uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
17939uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
17940
17941uint __ovld amd_sad(uint a, uint b, uint c);
17942uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
17943uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
17944uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
17945uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
17946uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
17947
17948float __ovld amd_unpack0(uint a);
17949float2 __ovld amd_unpack0(uint2 a);
17950float3 __ovld amd_unpack0(uint3 a);
17951float4 __ovld amd_unpack0(uint4 a);
17952float8 __ovld amd_unpack0(uint8 a);
17953float16 __ovld amd_unpack0(uint16 a);
17954
17955float __ovld amd_unpack1(uint a);
17956float2 __ovld amd_unpack1(uint2 a);
17957float3 __ovld amd_unpack1(uint3 a);
17958float4 __ovld amd_unpack1(uint4 a);
17959float8 __ovld amd_unpack1(uint8 a);
17960float16 __ovld amd_unpack1(uint16 a);
17961
17962float __ovld amd_unpack2(uint a);
17963float2 __ovld amd_unpack2(uint2 a);
17964float3 __ovld amd_unpack2(uint3 a);
17965float4 __ovld amd_unpack2(uint4 a);
17966float8 __ovld amd_unpack2(uint8 a);
17967float16 __ovld amd_unpack2(uint16 a);
17968
17969float __ovld amd_unpack3(uint a);
17970float2 __ovld amd_unpack3(uint2 a);
17971float3 __ovld amd_unpack3(uint3 a);
17972float4 __ovld amd_unpack3(uint4 a);
17973float8 __ovld amd_unpack3(uint8 a);
17974float16 __ovld amd_unpack3(uint16 a);
17975#endif // cl_amd_media_ops
17976
17977#ifdef cl_amd_media_ops2
17978int __ovld amd_bfe(int src0, uint src1, uint src2);
17979int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
17980int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
17981int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
17982int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
17983int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
17984
17985uint __ovld amd_bfe(uint src0, uint src1, uint src2);
17986uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
17987uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
17988uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
17989uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
17990uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
17991
17992uint __ovld amd_bfm(uint src0, uint src1);
17993uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
17994uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
17995uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
17996uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
17997uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
17998
17999float __ovld amd_max3(float src0, float src1, float src2);
18000float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
18001float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
18002float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
18003float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
18004float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
18005
18006int __ovld amd_max3(int src0, int src1, int src2);
18007int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
18008int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
18009int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
18010int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
18011int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
18012
18013uint __ovld amd_max3(uint src0, uint src1, uint src2);
18014uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
18015uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
18016uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
18017uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
18018uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
18019
18020float __ovld amd_median3(float src0, float src1, float src2);
18021float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
18022float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
18023float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
18024float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
18025float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
18026
18027int __ovld amd_median3(int src0, int src1, int src2);
18028int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
18029int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
18030int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
18031int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
18032int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
18033
18034uint __ovld amd_median3(uint src0, uint src1, uint src2);
18035uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
18036uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
18037uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
18038uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
18039uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
18040
18041float __ovld amd_min3(float src0, float src1, float src);
18042float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
18043float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
18044float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
18045float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
18046float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
18047
18048int __ovld amd_min3(int src0, int src1, int src2);
18049int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
18050int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
18051int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
18052int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
18053int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
18054
18055uint __ovld amd_min3(uint src0, uint src1, uint src2);
18056uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
18057uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
18058uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
18059uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
18060uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
18061
18062ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
18063ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
18064ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
18065ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
18066ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
18067ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
18068
18069ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
18070ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
18071ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
18072ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
18073ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
18074ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
18075
18076uint __ovld amd_msad(uint src0, uint src1, uint src2);
18077uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
18078uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
18079uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
18080uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
18081uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
18082
18083uint __ovld amd_sadd(uint src0, uint src1, uint src2);
18084uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
18085uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
18086uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
18087uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
18088uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
18089
18090uint __ovld amd_sadw(uint src0, uint src1, uint src2);
18091uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
18092uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
18093uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
18094uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
18095uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
18096#endif // cl_amd_media_ops2
18097
Logan Chiendf4f7662019-09-04 16:45:23 -070018098#if defined(cl_arm_integer_dot_product_int8)
Logan Chiendf4f7662019-09-04 16:45:23 -070018099uint __ovld arm_dot(uchar4 a, uchar4 b);
18100int __ovld arm_dot(char4 a, char4 b);
Logan Chiendf4f7662019-09-04 16:45:23 -070018101#endif // defined(cl_arm_integer_dot_product_int8)
18102
18103#if defined(cl_arm_integer_dot_product_accumulate_int8)
Logan Chiendf4f7662019-09-04 16:45:23 -070018104uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c);
18105int __ovld arm_dot_acc(char4 a, char4 b, int c);
Logan Chiendf4f7662019-09-04 16:45:23 -070018106#endif // defined(cl_arm_integer_dot_product_accumulate_int8)
18107
18108#if defined(cl_arm_integer_dot_product_accumulate_int16)
Logan Chiendf4f7662019-09-04 16:45:23 -070018109uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c);
18110int __ovld arm_dot_acc(short2 a, short2 b, int c);
Logan Chiendf4f7662019-09-04 16:45:23 -070018111#endif // defined(cl_arm_integer_dot_product_accumulate_int16)
18112
18113#if defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
Logan Chiendf4f7662019-09-04 16:45:23 -070018114uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c);
18115int __ovld arm_dot_acc_sat(char4 a, char4 b, int c);
Logan Chiendf4f7662019-09-04 16:45:23 -070018116#endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
18117
Logan Chien2833ffb2018-10-09 10:03:24 +080018118// Disable any extensions we may have enabled previously.
18119#pragma OPENCL EXTENSION all : disable
18120
18121#undef __cnfn
18122#undef __ovld
18123#endif //_OPENCL_H_