blob: 32af848a94c4f882d7f28696c005d0e42f4ed3dc [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 Nainarec8c89d2022-02-23 09:26:16 -080026#if (defined(__OPENCL_CPP_VERSION__) || \
27 (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && \
28 (defined(__SPIR__) || defined(__SPIRV__))
Logan Chien969aea62018-12-05 18:40:57 +080029#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
30#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080031#endif // (defined(__OPENCL_CPP_VERSION__) ||
32 // (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&
33 // (defined(__SPIR__) || defined(__SPIRV__))
Logan Chien969aea62018-12-05 18:40:57 +080034
Logan Chien2833ffb2018-10-09 10:03:24 +080035#define __ovld __attribute__((overloadable))
Logan Chien55afb0a2018-10-15 10:42:14 +080036#define __conv __attribute__((convergent))
Logan Chien2833ffb2018-10-09 10:03:24 +080037
38// Optimizations
39#define __purefn __attribute__((pure))
40#define __cnfn __attribute__((const))
41
Logan Chien2833ffb2018-10-09 10:03:24 +080042
43// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
44
45char __ovld __cnfn convert_char_rte(char);
46char __ovld __cnfn convert_char_sat_rte(char);
47char __ovld __cnfn convert_char_rtz(char);
48char __ovld __cnfn convert_char_sat_rtz(char);
49char __ovld __cnfn convert_char_rtp(char);
50char __ovld __cnfn convert_char_sat_rtp(char);
51char __ovld __cnfn convert_char_rtn(char);
52char __ovld __cnfn convert_char_sat_rtn(char);
53char __ovld __cnfn convert_char(char);
54char __ovld __cnfn convert_char_sat(char);
55char __ovld __cnfn convert_char_rte(uchar);
56char __ovld __cnfn convert_char_sat_rte(uchar);
57char __ovld __cnfn convert_char_rtz(uchar);
58char __ovld __cnfn convert_char_sat_rtz(uchar);
59char __ovld __cnfn convert_char_rtp(uchar);
60char __ovld __cnfn convert_char_sat_rtp(uchar);
61char __ovld __cnfn convert_char_rtn(uchar);
62char __ovld __cnfn convert_char_sat_rtn(uchar);
63char __ovld __cnfn convert_char(uchar);
64char __ovld __cnfn convert_char_sat(uchar);
65char __ovld __cnfn convert_char_rte(short);
66char __ovld __cnfn convert_char_sat_rte(short);
67char __ovld __cnfn convert_char_rtz(short);
68char __ovld __cnfn convert_char_sat_rtz(short);
69char __ovld __cnfn convert_char_rtp(short);
70char __ovld __cnfn convert_char_sat_rtp(short);
71char __ovld __cnfn convert_char_rtn(short);
72char __ovld __cnfn convert_char_sat_rtn(short);
73char __ovld __cnfn convert_char(short);
74char __ovld __cnfn convert_char_sat(short);
75char __ovld __cnfn convert_char_rte(ushort);
76char __ovld __cnfn convert_char_sat_rte(ushort);
77char __ovld __cnfn convert_char_rtz(ushort);
78char __ovld __cnfn convert_char_sat_rtz(ushort);
79char __ovld __cnfn convert_char_rtp(ushort);
80char __ovld __cnfn convert_char_sat_rtp(ushort);
81char __ovld __cnfn convert_char_rtn(ushort);
82char __ovld __cnfn convert_char_sat_rtn(ushort);
83char __ovld __cnfn convert_char(ushort);
84char __ovld __cnfn convert_char_sat(ushort);
85char __ovld __cnfn convert_char_rte(int);
86char __ovld __cnfn convert_char_sat_rte(int);
87char __ovld __cnfn convert_char_rtz(int);
88char __ovld __cnfn convert_char_sat_rtz(int);
89char __ovld __cnfn convert_char_rtp(int);
90char __ovld __cnfn convert_char_sat_rtp(int);
91char __ovld __cnfn convert_char_rtn(int);
92char __ovld __cnfn convert_char_sat_rtn(int);
93char __ovld __cnfn convert_char(int);
94char __ovld __cnfn convert_char_sat(int);
95char __ovld __cnfn convert_char_rte(uint);
96char __ovld __cnfn convert_char_sat_rte(uint);
97char __ovld __cnfn convert_char_rtz(uint);
98char __ovld __cnfn convert_char_sat_rtz(uint);
99char __ovld __cnfn convert_char_rtp(uint);
100char __ovld __cnfn convert_char_sat_rtp(uint);
101char __ovld __cnfn convert_char_rtn(uint);
102char __ovld __cnfn convert_char_sat_rtn(uint);
103char __ovld __cnfn convert_char(uint);
104char __ovld __cnfn convert_char_sat(uint);
105char __ovld __cnfn convert_char_rte(long);
106char __ovld __cnfn convert_char_sat_rte(long);
107char __ovld __cnfn convert_char_rtz(long);
108char __ovld __cnfn convert_char_sat_rtz(long);
109char __ovld __cnfn convert_char_rtp(long);
110char __ovld __cnfn convert_char_sat_rtp(long);
111char __ovld __cnfn convert_char_rtn(long);
112char __ovld __cnfn convert_char_sat_rtn(long);
113char __ovld __cnfn convert_char(long);
114char __ovld __cnfn convert_char_sat(long);
115char __ovld __cnfn convert_char_rte(ulong);
116char __ovld __cnfn convert_char_sat_rte(ulong);
117char __ovld __cnfn convert_char_rtz(ulong);
118char __ovld __cnfn convert_char_sat_rtz(ulong);
119char __ovld __cnfn convert_char_rtp(ulong);
120char __ovld __cnfn convert_char_sat_rtp(ulong);
121char __ovld __cnfn convert_char_rtn(ulong);
122char __ovld __cnfn convert_char_sat_rtn(ulong);
123char __ovld __cnfn convert_char(ulong);
124char __ovld __cnfn convert_char_sat(ulong);
125char __ovld __cnfn convert_char_rte(float);
126char __ovld __cnfn convert_char_sat_rte(float);
127char __ovld __cnfn convert_char_rtz(float);
128char __ovld __cnfn convert_char_sat_rtz(float);
129char __ovld __cnfn convert_char_rtp(float);
130char __ovld __cnfn convert_char_sat_rtp(float);
131char __ovld __cnfn convert_char_rtn(float);
132char __ovld __cnfn convert_char_sat_rtn(float);
133char __ovld __cnfn convert_char(float);
134char __ovld __cnfn convert_char_sat(float);
135uchar __ovld __cnfn convert_uchar_rte(char);
136uchar __ovld __cnfn convert_uchar_sat_rte(char);
137uchar __ovld __cnfn convert_uchar_rtz(char);
138uchar __ovld __cnfn convert_uchar_sat_rtz(char);
139uchar __ovld __cnfn convert_uchar_rtp(char);
140uchar __ovld __cnfn convert_uchar_sat_rtp(char);
141uchar __ovld __cnfn convert_uchar_rtn(char);
142uchar __ovld __cnfn convert_uchar_sat_rtn(char);
143uchar __ovld __cnfn convert_uchar(char);
144uchar __ovld __cnfn convert_uchar_sat(char);
145uchar __ovld __cnfn convert_uchar_rte(uchar);
146uchar __ovld __cnfn convert_uchar_sat_rte(uchar);
147uchar __ovld __cnfn convert_uchar_rtz(uchar);
148uchar __ovld __cnfn convert_uchar_sat_rtz(uchar);
149uchar __ovld __cnfn convert_uchar_rtp(uchar);
150uchar __ovld __cnfn convert_uchar_sat_rtp(uchar);
151uchar __ovld __cnfn convert_uchar_rtn(uchar);
152uchar __ovld __cnfn convert_uchar_sat_rtn(uchar);
153uchar __ovld __cnfn convert_uchar(uchar);
154uchar __ovld __cnfn convert_uchar_sat(uchar);
155uchar __ovld __cnfn convert_uchar_rte(short);
156uchar __ovld __cnfn convert_uchar_sat_rte(short);
157uchar __ovld __cnfn convert_uchar_rtz(short);
158uchar __ovld __cnfn convert_uchar_sat_rtz(short);
159uchar __ovld __cnfn convert_uchar_rtp(short);
160uchar __ovld __cnfn convert_uchar_sat_rtp(short);
161uchar __ovld __cnfn convert_uchar_rtn(short);
162uchar __ovld __cnfn convert_uchar_sat_rtn(short);
163uchar __ovld __cnfn convert_uchar(short);
164uchar __ovld __cnfn convert_uchar_sat(short);
165uchar __ovld __cnfn convert_uchar_rte(ushort);
166uchar __ovld __cnfn convert_uchar_sat_rte(ushort);
167uchar __ovld __cnfn convert_uchar_rtz(ushort);
168uchar __ovld __cnfn convert_uchar_sat_rtz(ushort);
169uchar __ovld __cnfn convert_uchar_rtp(ushort);
170uchar __ovld __cnfn convert_uchar_sat_rtp(ushort);
171uchar __ovld __cnfn convert_uchar_rtn(ushort);
172uchar __ovld __cnfn convert_uchar_sat_rtn(ushort);
173uchar __ovld __cnfn convert_uchar(ushort);
174uchar __ovld __cnfn convert_uchar_sat(ushort);
175uchar __ovld __cnfn convert_uchar_rte(int);
176uchar __ovld __cnfn convert_uchar_sat_rte(int);
177uchar __ovld __cnfn convert_uchar_rtz(int);
178uchar __ovld __cnfn convert_uchar_sat_rtz(int);
179uchar __ovld __cnfn convert_uchar_rtp(int);
180uchar __ovld __cnfn convert_uchar_sat_rtp(int);
181uchar __ovld __cnfn convert_uchar_rtn(int);
182uchar __ovld __cnfn convert_uchar_sat_rtn(int);
183uchar __ovld __cnfn convert_uchar(int);
184uchar __ovld __cnfn convert_uchar_sat(int);
185uchar __ovld __cnfn convert_uchar_rte(uint);
186uchar __ovld __cnfn convert_uchar_sat_rte(uint);
187uchar __ovld __cnfn convert_uchar_rtz(uint);
188uchar __ovld __cnfn convert_uchar_sat_rtz(uint);
189uchar __ovld __cnfn convert_uchar_rtp(uint);
190uchar __ovld __cnfn convert_uchar_sat_rtp(uint);
191uchar __ovld __cnfn convert_uchar_rtn(uint);
192uchar __ovld __cnfn convert_uchar_sat_rtn(uint);
193uchar __ovld __cnfn convert_uchar(uint);
194uchar __ovld __cnfn convert_uchar_sat(uint);
195uchar __ovld __cnfn convert_uchar_rte(long);
196uchar __ovld __cnfn convert_uchar_sat_rte(long);
197uchar __ovld __cnfn convert_uchar_rtz(long);
198uchar __ovld __cnfn convert_uchar_sat_rtz(long);
199uchar __ovld __cnfn convert_uchar_rtp(long);
200uchar __ovld __cnfn convert_uchar_sat_rtp(long);
201uchar __ovld __cnfn convert_uchar_rtn(long);
202uchar __ovld __cnfn convert_uchar_sat_rtn(long);
203uchar __ovld __cnfn convert_uchar(long);
204uchar __ovld __cnfn convert_uchar_sat(long);
205uchar __ovld __cnfn convert_uchar_rte(ulong);
206uchar __ovld __cnfn convert_uchar_sat_rte(ulong);
207uchar __ovld __cnfn convert_uchar_rtz(ulong);
208uchar __ovld __cnfn convert_uchar_sat_rtz(ulong);
209uchar __ovld __cnfn convert_uchar_rtp(ulong);
210uchar __ovld __cnfn convert_uchar_sat_rtp(ulong);
211uchar __ovld __cnfn convert_uchar_rtn(ulong);
212uchar __ovld __cnfn convert_uchar_sat_rtn(ulong);
213uchar __ovld __cnfn convert_uchar(ulong);
214uchar __ovld __cnfn convert_uchar_sat(ulong);
215uchar __ovld __cnfn convert_uchar_rte(float);
216uchar __ovld __cnfn convert_uchar_sat_rte(float);
217uchar __ovld __cnfn convert_uchar_rtz(float);
218uchar __ovld __cnfn convert_uchar_sat_rtz(float);
219uchar __ovld __cnfn convert_uchar_rtp(float);
220uchar __ovld __cnfn convert_uchar_sat_rtp(float);
221uchar __ovld __cnfn convert_uchar_rtn(float);
222uchar __ovld __cnfn convert_uchar_sat_rtn(float);
223uchar __ovld __cnfn convert_uchar(float);
224uchar __ovld __cnfn convert_uchar_sat(float);
225
226short __ovld __cnfn convert_short_rte(char);
227short __ovld __cnfn convert_short_sat_rte(char);
228short __ovld __cnfn convert_short_rtz(char);
229short __ovld __cnfn convert_short_sat_rtz(char);
230short __ovld __cnfn convert_short_rtp(char);
231short __ovld __cnfn convert_short_sat_rtp(char);
232short __ovld __cnfn convert_short_rtn(char);
233short __ovld __cnfn convert_short_sat_rtn(char);
234short __ovld __cnfn convert_short(char);
235short __ovld __cnfn convert_short_sat(char);
236short __ovld __cnfn convert_short_rte(uchar);
237short __ovld __cnfn convert_short_sat_rte(uchar);
238short __ovld __cnfn convert_short_rtz(uchar);
239short __ovld __cnfn convert_short_sat_rtz(uchar);
240short __ovld __cnfn convert_short_rtp(uchar);
241short __ovld __cnfn convert_short_sat_rtp(uchar);
242short __ovld __cnfn convert_short_rtn(uchar);
243short __ovld __cnfn convert_short_sat_rtn(uchar);
244short __ovld __cnfn convert_short(uchar);
245short __ovld __cnfn convert_short_sat(uchar);
246short __ovld __cnfn convert_short_rte(short);
247short __ovld __cnfn convert_short_sat_rte(short);
248short __ovld __cnfn convert_short_rtz(short);
249short __ovld __cnfn convert_short_sat_rtz(short);
250short __ovld __cnfn convert_short_rtp(short);
251short __ovld __cnfn convert_short_sat_rtp(short);
252short __ovld __cnfn convert_short_rtn(short);
253short __ovld __cnfn convert_short_sat_rtn(short);
254short __ovld __cnfn convert_short(short);
255short __ovld __cnfn convert_short_sat(short);
256short __ovld __cnfn convert_short_rte(ushort);
257short __ovld __cnfn convert_short_sat_rte(ushort);
258short __ovld __cnfn convert_short_rtz(ushort);
259short __ovld __cnfn convert_short_sat_rtz(ushort);
260short __ovld __cnfn convert_short_rtp(ushort);
261short __ovld __cnfn convert_short_sat_rtp(ushort);
262short __ovld __cnfn convert_short_rtn(ushort);
263short __ovld __cnfn convert_short_sat_rtn(ushort);
264short __ovld __cnfn convert_short(ushort);
265short __ovld __cnfn convert_short_sat(ushort);
266short __ovld __cnfn convert_short_rte(int);
267short __ovld __cnfn convert_short_sat_rte(int);
268short __ovld __cnfn convert_short_rtz(int);
269short __ovld __cnfn convert_short_sat_rtz(int);
270short __ovld __cnfn convert_short_rtp(int);
271short __ovld __cnfn convert_short_sat_rtp(int);
272short __ovld __cnfn convert_short_rtn(int);
273short __ovld __cnfn convert_short_sat_rtn(int);
274short __ovld __cnfn convert_short(int);
275short __ovld __cnfn convert_short_sat(int);
276short __ovld __cnfn convert_short_rte(uint);
277short __ovld __cnfn convert_short_sat_rte(uint);
278short __ovld __cnfn convert_short_rtz(uint);
279short __ovld __cnfn convert_short_sat_rtz(uint);
280short __ovld __cnfn convert_short_rtp(uint);
281short __ovld __cnfn convert_short_sat_rtp(uint);
282short __ovld __cnfn convert_short_rtn(uint);
283short __ovld __cnfn convert_short_sat_rtn(uint);
284short __ovld __cnfn convert_short(uint);
285short __ovld __cnfn convert_short_sat(uint);
286short __ovld __cnfn convert_short_rte(long);
287short __ovld __cnfn convert_short_sat_rte(long);
288short __ovld __cnfn convert_short_rtz(long);
289short __ovld __cnfn convert_short_sat_rtz(long);
290short __ovld __cnfn convert_short_rtp(long);
291short __ovld __cnfn convert_short_sat_rtp(long);
292short __ovld __cnfn convert_short_rtn(long);
293short __ovld __cnfn convert_short_sat_rtn(long);
294short __ovld __cnfn convert_short(long);
295short __ovld __cnfn convert_short_sat(long);
296short __ovld __cnfn convert_short_rte(ulong);
297short __ovld __cnfn convert_short_sat_rte(ulong);
298short __ovld __cnfn convert_short_rtz(ulong);
299short __ovld __cnfn convert_short_sat_rtz(ulong);
300short __ovld __cnfn convert_short_rtp(ulong);
301short __ovld __cnfn convert_short_sat_rtp(ulong);
302short __ovld __cnfn convert_short_rtn(ulong);
303short __ovld __cnfn convert_short_sat_rtn(ulong);
304short __ovld __cnfn convert_short(ulong);
305short __ovld __cnfn convert_short_sat(ulong);
306short __ovld __cnfn convert_short_rte(float);
307short __ovld __cnfn convert_short_sat_rte(float);
308short __ovld __cnfn convert_short_rtz(float);
309short __ovld __cnfn convert_short_sat_rtz(float);
310short __ovld __cnfn convert_short_rtp(float);
311short __ovld __cnfn convert_short_sat_rtp(float);
312short __ovld __cnfn convert_short_rtn(float);
313short __ovld __cnfn convert_short_sat_rtn(float);
314short __ovld __cnfn convert_short(float);
315short __ovld __cnfn convert_short_sat(float);
316ushort __ovld __cnfn convert_ushort_rte(char);
317ushort __ovld __cnfn convert_ushort_sat_rte(char);
318ushort __ovld __cnfn convert_ushort_rtz(char);
319ushort __ovld __cnfn convert_ushort_sat_rtz(char);
320ushort __ovld __cnfn convert_ushort_rtp(char);
321ushort __ovld __cnfn convert_ushort_sat_rtp(char);
322ushort __ovld __cnfn convert_ushort_rtn(char);
323ushort __ovld __cnfn convert_ushort_sat_rtn(char);
324ushort __ovld __cnfn convert_ushort(char);
325ushort __ovld __cnfn convert_ushort_sat(char);
326ushort __ovld __cnfn convert_ushort_rte(uchar);
327ushort __ovld __cnfn convert_ushort_sat_rte(uchar);
328ushort __ovld __cnfn convert_ushort_rtz(uchar);
329ushort __ovld __cnfn convert_ushort_sat_rtz(uchar);
330ushort __ovld __cnfn convert_ushort_rtp(uchar);
331ushort __ovld __cnfn convert_ushort_sat_rtp(uchar);
332ushort __ovld __cnfn convert_ushort_rtn(uchar);
333ushort __ovld __cnfn convert_ushort_sat_rtn(uchar);
334ushort __ovld __cnfn convert_ushort(uchar);
335ushort __ovld __cnfn convert_ushort_sat(uchar);
336ushort __ovld __cnfn convert_ushort_rte(short);
337ushort __ovld __cnfn convert_ushort_sat_rte(short);
338ushort __ovld __cnfn convert_ushort_rtz(short);
339ushort __ovld __cnfn convert_ushort_sat_rtz(short);
340ushort __ovld __cnfn convert_ushort_rtp(short);
341ushort __ovld __cnfn convert_ushort_sat_rtp(short);
342ushort __ovld __cnfn convert_ushort_rtn(short);
343ushort __ovld __cnfn convert_ushort_sat_rtn(short);
344ushort __ovld __cnfn convert_ushort(short);
345ushort __ovld __cnfn convert_ushort_sat(short);
346ushort __ovld __cnfn convert_ushort_rte(ushort);
347ushort __ovld __cnfn convert_ushort_sat_rte(ushort);
348ushort __ovld __cnfn convert_ushort_rtz(ushort);
349ushort __ovld __cnfn convert_ushort_sat_rtz(ushort);
350ushort __ovld __cnfn convert_ushort_rtp(ushort);
351ushort __ovld __cnfn convert_ushort_sat_rtp(ushort);
352ushort __ovld __cnfn convert_ushort_rtn(ushort);
353ushort __ovld __cnfn convert_ushort_sat_rtn(ushort);
354ushort __ovld __cnfn convert_ushort(ushort);
355ushort __ovld __cnfn convert_ushort_sat(ushort);
356ushort __ovld __cnfn convert_ushort_rte(int);
357ushort __ovld __cnfn convert_ushort_sat_rte(int);
358ushort __ovld __cnfn convert_ushort_rtz(int);
359ushort __ovld __cnfn convert_ushort_sat_rtz(int);
360ushort __ovld __cnfn convert_ushort_rtp(int);
361ushort __ovld __cnfn convert_ushort_sat_rtp(int);
362ushort __ovld __cnfn convert_ushort_rtn(int);
363ushort __ovld __cnfn convert_ushort_sat_rtn(int);
364ushort __ovld __cnfn convert_ushort(int);
365ushort __ovld __cnfn convert_ushort_sat(int);
366ushort __ovld __cnfn convert_ushort_rte(uint);
367ushort __ovld __cnfn convert_ushort_sat_rte(uint);
368ushort __ovld __cnfn convert_ushort_rtz(uint);
369ushort __ovld __cnfn convert_ushort_sat_rtz(uint);
370ushort __ovld __cnfn convert_ushort_rtp(uint);
371ushort __ovld __cnfn convert_ushort_sat_rtp(uint);
372ushort __ovld __cnfn convert_ushort_rtn(uint);
373ushort __ovld __cnfn convert_ushort_sat_rtn(uint);
374ushort __ovld __cnfn convert_ushort(uint);
375ushort __ovld __cnfn convert_ushort_sat(uint);
376ushort __ovld __cnfn convert_ushort_rte(long);
377ushort __ovld __cnfn convert_ushort_sat_rte(long);
378ushort __ovld __cnfn convert_ushort_rtz(long);
379ushort __ovld __cnfn convert_ushort_sat_rtz(long);
380ushort __ovld __cnfn convert_ushort_rtp(long);
381ushort __ovld __cnfn convert_ushort_sat_rtp(long);
382ushort __ovld __cnfn convert_ushort_rtn(long);
383ushort __ovld __cnfn convert_ushort_sat_rtn(long);
384ushort __ovld __cnfn convert_ushort(long);
385ushort __ovld __cnfn convert_ushort_sat(long);
386ushort __ovld __cnfn convert_ushort_rte(ulong);
387ushort __ovld __cnfn convert_ushort_sat_rte(ulong);
388ushort __ovld __cnfn convert_ushort_rtz(ulong);
389ushort __ovld __cnfn convert_ushort_sat_rtz(ulong);
390ushort __ovld __cnfn convert_ushort_rtp(ulong);
391ushort __ovld __cnfn convert_ushort_sat_rtp(ulong);
392ushort __ovld __cnfn convert_ushort_rtn(ulong);
393ushort __ovld __cnfn convert_ushort_sat_rtn(ulong);
394ushort __ovld __cnfn convert_ushort(ulong);
395ushort __ovld __cnfn convert_ushort_sat(ulong);
396ushort __ovld __cnfn convert_ushort_rte(float);
397ushort __ovld __cnfn convert_ushort_sat_rte(float);
398ushort __ovld __cnfn convert_ushort_rtz(float);
399ushort __ovld __cnfn convert_ushort_sat_rtz(float);
400ushort __ovld __cnfn convert_ushort_rtp(float);
401ushort __ovld __cnfn convert_ushort_sat_rtp(float);
402ushort __ovld __cnfn convert_ushort_rtn(float);
403ushort __ovld __cnfn convert_ushort_sat_rtn(float);
404ushort __ovld __cnfn convert_ushort(float);
405ushort __ovld __cnfn convert_ushort_sat(float);
406int __ovld __cnfn convert_int_rte(char);
407int __ovld __cnfn convert_int_sat_rte(char);
408int __ovld __cnfn convert_int_rtz(char);
409int __ovld __cnfn convert_int_sat_rtz(char);
410int __ovld __cnfn convert_int_rtp(char);
411int __ovld __cnfn convert_int_sat_rtp(char);
412int __ovld __cnfn convert_int_rtn(char);
413int __ovld __cnfn convert_int_sat_rtn(char);
414int __ovld __cnfn convert_int(char);
415int __ovld __cnfn convert_int_sat(char);
416int __ovld __cnfn convert_int_rte(uchar);
417int __ovld __cnfn convert_int_sat_rte(uchar);
418int __ovld __cnfn convert_int_rtz(uchar);
419int __ovld __cnfn convert_int_sat_rtz(uchar);
420int __ovld __cnfn convert_int_rtp(uchar);
421int __ovld __cnfn convert_int_sat_rtp(uchar);
422int __ovld __cnfn convert_int_rtn(uchar);
423int __ovld __cnfn convert_int_sat_rtn(uchar);
424int __ovld __cnfn convert_int(uchar);
425int __ovld __cnfn convert_int_sat(uchar);
426int __ovld __cnfn convert_int_rte(short);
427int __ovld __cnfn convert_int_sat_rte(short);
428int __ovld __cnfn convert_int_rtz(short);
429int __ovld __cnfn convert_int_sat_rtz(short);
430int __ovld __cnfn convert_int_rtp(short);
431int __ovld __cnfn convert_int_sat_rtp(short);
432int __ovld __cnfn convert_int_rtn(short);
433int __ovld __cnfn convert_int_sat_rtn(short);
434int __ovld __cnfn convert_int(short);
435int __ovld __cnfn convert_int_sat(short);
436int __ovld __cnfn convert_int_rte(ushort);
437int __ovld __cnfn convert_int_sat_rte(ushort);
438int __ovld __cnfn convert_int_rtz(ushort);
439int __ovld __cnfn convert_int_sat_rtz(ushort);
440int __ovld __cnfn convert_int_rtp(ushort);
441int __ovld __cnfn convert_int_sat_rtp(ushort);
442int __ovld __cnfn convert_int_rtn(ushort);
443int __ovld __cnfn convert_int_sat_rtn(ushort);
444int __ovld __cnfn convert_int(ushort);
445int __ovld __cnfn convert_int_sat(ushort);
446int __ovld __cnfn convert_int_rte(int);
447int __ovld __cnfn convert_int_sat_rte(int);
448int __ovld __cnfn convert_int_rtz(int);
449int __ovld __cnfn convert_int_sat_rtz(int);
450int __ovld __cnfn convert_int_rtp(int);
451int __ovld __cnfn convert_int_sat_rtp(int);
452int __ovld __cnfn convert_int_rtn(int);
453int __ovld __cnfn convert_int_sat_rtn(int);
454int __ovld __cnfn convert_int(int);
455int __ovld __cnfn convert_int_sat(int);
456int __ovld __cnfn convert_int_rte(uint);
457int __ovld __cnfn convert_int_sat_rte(uint);
458int __ovld __cnfn convert_int_rtz(uint);
459int __ovld __cnfn convert_int_sat_rtz(uint);
460int __ovld __cnfn convert_int_rtp(uint);
461int __ovld __cnfn convert_int_sat_rtp(uint);
462int __ovld __cnfn convert_int_rtn(uint);
463int __ovld __cnfn convert_int_sat_rtn(uint);
464int __ovld __cnfn convert_int(uint);
465int __ovld __cnfn convert_int_sat(uint);
466int __ovld __cnfn convert_int_rte(long);
467int __ovld __cnfn convert_int_sat_rte(long);
468int __ovld __cnfn convert_int_rtz(long);
469int __ovld __cnfn convert_int_sat_rtz(long);
470int __ovld __cnfn convert_int_rtp(long);
471int __ovld __cnfn convert_int_sat_rtp(long);
472int __ovld __cnfn convert_int_rtn(long);
473int __ovld __cnfn convert_int_sat_rtn(long);
474int __ovld __cnfn convert_int(long);
475int __ovld __cnfn convert_int_sat(long);
476int __ovld __cnfn convert_int_rte(ulong);
477int __ovld __cnfn convert_int_sat_rte(ulong);
478int __ovld __cnfn convert_int_rtz(ulong);
479int __ovld __cnfn convert_int_sat_rtz(ulong);
480int __ovld __cnfn convert_int_rtp(ulong);
481int __ovld __cnfn convert_int_sat_rtp(ulong);
482int __ovld __cnfn convert_int_rtn(ulong);
483int __ovld __cnfn convert_int_sat_rtn(ulong);
484int __ovld __cnfn convert_int(ulong);
485int __ovld __cnfn convert_int_sat(ulong);
486int __ovld __cnfn convert_int_rte(float);
487int __ovld __cnfn convert_int_sat_rte(float);
488int __ovld __cnfn convert_int_rtz(float);
489int __ovld __cnfn convert_int_sat_rtz(float);
490int __ovld __cnfn convert_int_rtp(float);
491int __ovld __cnfn convert_int_sat_rtp(float);
492int __ovld __cnfn convert_int_rtn(float);
493int __ovld __cnfn convert_int_sat_rtn(float);
494int __ovld __cnfn convert_int(float);
495int __ovld __cnfn convert_int_sat(float);
496uint __ovld __cnfn convert_uint_rte(char);
497uint __ovld __cnfn convert_uint_sat_rte(char);
498uint __ovld __cnfn convert_uint_rtz(char);
499uint __ovld __cnfn convert_uint_sat_rtz(char);
500uint __ovld __cnfn convert_uint_rtp(char);
501uint __ovld __cnfn convert_uint_sat_rtp(char);
502uint __ovld __cnfn convert_uint_rtn(char);
503uint __ovld __cnfn convert_uint_sat_rtn(char);
504uint __ovld __cnfn convert_uint(char);
505uint __ovld __cnfn convert_uint_sat(char);
506uint __ovld __cnfn convert_uint_rte(uchar);
507uint __ovld __cnfn convert_uint_sat_rte(uchar);
508uint __ovld __cnfn convert_uint_rtz(uchar);
509uint __ovld __cnfn convert_uint_sat_rtz(uchar);
510uint __ovld __cnfn convert_uint_rtp(uchar);
511uint __ovld __cnfn convert_uint_sat_rtp(uchar);
512uint __ovld __cnfn convert_uint_rtn(uchar);
513uint __ovld __cnfn convert_uint_sat_rtn(uchar);
514uint __ovld __cnfn convert_uint(uchar);
515uint __ovld __cnfn convert_uint_sat(uchar);
516uint __ovld __cnfn convert_uint_rte(short);
517uint __ovld __cnfn convert_uint_sat_rte(short);
518uint __ovld __cnfn convert_uint_rtz(short);
519uint __ovld __cnfn convert_uint_sat_rtz(short);
520uint __ovld __cnfn convert_uint_rtp(short);
521uint __ovld __cnfn convert_uint_sat_rtp(short);
522uint __ovld __cnfn convert_uint_rtn(short);
523uint __ovld __cnfn convert_uint_sat_rtn(short);
524uint __ovld __cnfn convert_uint(short);
525uint __ovld __cnfn convert_uint_sat(short);
526uint __ovld __cnfn convert_uint_rte(ushort);
527uint __ovld __cnfn convert_uint_sat_rte(ushort);
528uint __ovld __cnfn convert_uint_rtz(ushort);
529uint __ovld __cnfn convert_uint_sat_rtz(ushort);
530uint __ovld __cnfn convert_uint_rtp(ushort);
531uint __ovld __cnfn convert_uint_sat_rtp(ushort);
532uint __ovld __cnfn convert_uint_rtn(ushort);
533uint __ovld __cnfn convert_uint_sat_rtn(ushort);
534uint __ovld __cnfn convert_uint(ushort);
535uint __ovld __cnfn convert_uint_sat(ushort);
536uint __ovld __cnfn convert_uint_rte(int);
537uint __ovld __cnfn convert_uint_sat_rte(int);
538uint __ovld __cnfn convert_uint_rtz(int);
539uint __ovld __cnfn convert_uint_sat_rtz(int);
540uint __ovld __cnfn convert_uint_rtp(int);
541uint __ovld __cnfn convert_uint_sat_rtp(int);
542uint __ovld __cnfn convert_uint_rtn(int);
543uint __ovld __cnfn convert_uint_sat_rtn(int);
544uint __ovld __cnfn convert_uint(int);
545uint __ovld __cnfn convert_uint_sat(int);
546uint __ovld __cnfn convert_uint_rte(uint);
547uint __ovld __cnfn convert_uint_sat_rte(uint);
548uint __ovld __cnfn convert_uint_rtz(uint);
549uint __ovld __cnfn convert_uint_sat_rtz(uint);
550uint __ovld __cnfn convert_uint_rtp(uint);
551uint __ovld __cnfn convert_uint_sat_rtp(uint);
552uint __ovld __cnfn convert_uint_rtn(uint);
553uint __ovld __cnfn convert_uint_sat_rtn(uint);
554uint __ovld __cnfn convert_uint(uint);
555uint __ovld __cnfn convert_uint_sat(uint);
556uint __ovld __cnfn convert_uint_rte(long);
557uint __ovld __cnfn convert_uint_sat_rte(long);
558uint __ovld __cnfn convert_uint_rtz(long);
559uint __ovld __cnfn convert_uint_sat_rtz(long);
560uint __ovld __cnfn convert_uint_rtp(long);
561uint __ovld __cnfn convert_uint_sat_rtp(long);
562uint __ovld __cnfn convert_uint_rtn(long);
563uint __ovld __cnfn convert_uint_sat_rtn(long);
564uint __ovld __cnfn convert_uint(long);
565uint __ovld __cnfn convert_uint_sat(long);
566uint __ovld __cnfn convert_uint_rte(ulong);
567uint __ovld __cnfn convert_uint_sat_rte(ulong);
568uint __ovld __cnfn convert_uint_rtz(ulong);
569uint __ovld __cnfn convert_uint_sat_rtz(ulong);
570uint __ovld __cnfn convert_uint_rtp(ulong);
571uint __ovld __cnfn convert_uint_sat_rtp(ulong);
572uint __ovld __cnfn convert_uint_rtn(ulong);
573uint __ovld __cnfn convert_uint_sat_rtn(ulong);
574uint __ovld __cnfn convert_uint(ulong);
575uint __ovld __cnfn convert_uint_sat(ulong);
576uint __ovld __cnfn convert_uint_rte(float);
577uint __ovld __cnfn convert_uint_sat_rte(float);
578uint __ovld __cnfn convert_uint_rtz(float);
579uint __ovld __cnfn convert_uint_sat_rtz(float);
580uint __ovld __cnfn convert_uint_rtp(float);
581uint __ovld __cnfn convert_uint_sat_rtp(float);
582uint __ovld __cnfn convert_uint_rtn(float);
583uint __ovld __cnfn convert_uint_sat_rtn(float);
584uint __ovld __cnfn convert_uint(float);
585uint __ovld __cnfn convert_uint_sat(float);
586long __ovld __cnfn convert_long_rte(char);
587long __ovld __cnfn convert_long_sat_rte(char);
588long __ovld __cnfn convert_long_rtz(char);
589long __ovld __cnfn convert_long_sat_rtz(char);
590long __ovld __cnfn convert_long_rtp(char);
591long __ovld __cnfn convert_long_sat_rtp(char);
592long __ovld __cnfn convert_long_rtn(char);
593long __ovld __cnfn convert_long_sat_rtn(char);
594long __ovld __cnfn convert_long(char);
595long __ovld __cnfn convert_long_sat(char);
596long __ovld __cnfn convert_long_rte(uchar);
597long __ovld __cnfn convert_long_sat_rte(uchar);
598long __ovld __cnfn convert_long_rtz(uchar);
599long __ovld __cnfn convert_long_sat_rtz(uchar);
600long __ovld __cnfn convert_long_rtp(uchar);
601long __ovld __cnfn convert_long_sat_rtp(uchar);
602long __ovld __cnfn convert_long_rtn(uchar);
603long __ovld __cnfn convert_long_sat_rtn(uchar);
604long __ovld __cnfn convert_long(uchar);
605long __ovld __cnfn convert_long_sat(uchar);
606long __ovld __cnfn convert_long_rte(short);
607long __ovld __cnfn convert_long_sat_rte(short);
608long __ovld __cnfn convert_long_rtz(short);
609long __ovld __cnfn convert_long_sat_rtz(short);
610long __ovld __cnfn convert_long_rtp(short);
611long __ovld __cnfn convert_long_sat_rtp(short);
612long __ovld __cnfn convert_long_rtn(short);
613long __ovld __cnfn convert_long_sat_rtn(short);
614long __ovld __cnfn convert_long(short);
615long __ovld __cnfn convert_long_sat(short);
616long __ovld __cnfn convert_long_rte(ushort);
617long __ovld __cnfn convert_long_sat_rte(ushort);
618long __ovld __cnfn convert_long_rtz(ushort);
619long __ovld __cnfn convert_long_sat_rtz(ushort);
620long __ovld __cnfn convert_long_rtp(ushort);
621long __ovld __cnfn convert_long_sat_rtp(ushort);
622long __ovld __cnfn convert_long_rtn(ushort);
623long __ovld __cnfn convert_long_sat_rtn(ushort);
624long __ovld __cnfn convert_long(ushort);
625long __ovld __cnfn convert_long_sat(ushort);
626long __ovld __cnfn convert_long_rte(int);
627long __ovld __cnfn convert_long_sat_rte(int);
628long __ovld __cnfn convert_long_rtz(int);
629long __ovld __cnfn convert_long_sat_rtz(int);
630long __ovld __cnfn convert_long_rtp(int);
631long __ovld __cnfn convert_long_sat_rtp(int);
632long __ovld __cnfn convert_long_rtn(int);
633long __ovld __cnfn convert_long_sat_rtn(int);
634long __ovld __cnfn convert_long(int);
635long __ovld __cnfn convert_long_sat(int);
636long __ovld __cnfn convert_long_rte(uint);
637long __ovld __cnfn convert_long_sat_rte(uint);
638long __ovld __cnfn convert_long_rtz(uint);
639long __ovld __cnfn convert_long_sat_rtz(uint);
640long __ovld __cnfn convert_long_rtp(uint);
641long __ovld __cnfn convert_long_sat_rtp(uint);
642long __ovld __cnfn convert_long_rtn(uint);
643long __ovld __cnfn convert_long_sat_rtn(uint);
644long __ovld __cnfn convert_long(uint);
645long __ovld __cnfn convert_long_sat(uint);
646long __ovld __cnfn convert_long_rte(long);
647long __ovld __cnfn convert_long_sat_rte(long);
648long __ovld __cnfn convert_long_rtz(long);
649long __ovld __cnfn convert_long_sat_rtz(long);
650long __ovld __cnfn convert_long_rtp(long);
651long __ovld __cnfn convert_long_sat_rtp(long);
652long __ovld __cnfn convert_long_rtn(long);
653long __ovld __cnfn convert_long_sat_rtn(long);
654long __ovld __cnfn convert_long(long);
655long __ovld __cnfn convert_long_sat(long);
656long __ovld __cnfn convert_long_rte(ulong);
657long __ovld __cnfn convert_long_sat_rte(ulong);
658long __ovld __cnfn convert_long_rtz(ulong);
659long __ovld __cnfn convert_long_sat_rtz(ulong);
660long __ovld __cnfn convert_long_rtp(ulong);
661long __ovld __cnfn convert_long_sat_rtp(ulong);
662long __ovld __cnfn convert_long_rtn(ulong);
663long __ovld __cnfn convert_long_sat_rtn(ulong);
664long __ovld __cnfn convert_long(ulong);
665long __ovld __cnfn convert_long_sat(ulong);
666long __ovld __cnfn convert_long_rte(float);
667long __ovld __cnfn convert_long_sat_rte(float);
668long __ovld __cnfn convert_long_rtz(float);
669long __ovld __cnfn convert_long_sat_rtz(float);
670long __ovld __cnfn convert_long_rtp(float);
671long __ovld __cnfn convert_long_sat_rtp(float);
672long __ovld __cnfn convert_long_rtn(float);
673long __ovld __cnfn convert_long_sat_rtn(float);
674long __ovld __cnfn convert_long(float);
675long __ovld __cnfn convert_long_sat(float);
676ulong __ovld __cnfn convert_ulong_rte(char);
677ulong __ovld __cnfn convert_ulong_sat_rte(char);
678ulong __ovld __cnfn convert_ulong_rtz(char);
679ulong __ovld __cnfn convert_ulong_sat_rtz(char);
680ulong __ovld __cnfn convert_ulong_rtp(char);
681ulong __ovld __cnfn convert_ulong_sat_rtp(char);
682ulong __ovld __cnfn convert_ulong_rtn(char);
683ulong __ovld __cnfn convert_ulong_sat_rtn(char);
684ulong __ovld __cnfn convert_ulong(char);
685ulong __ovld __cnfn convert_ulong_sat(char);
686ulong __ovld __cnfn convert_ulong_rte(uchar);
687ulong __ovld __cnfn convert_ulong_sat_rte(uchar);
688ulong __ovld __cnfn convert_ulong_rtz(uchar);
689ulong __ovld __cnfn convert_ulong_sat_rtz(uchar);
690ulong __ovld __cnfn convert_ulong_rtp(uchar);
691ulong __ovld __cnfn convert_ulong_sat_rtp(uchar);
692ulong __ovld __cnfn convert_ulong_rtn(uchar);
693ulong __ovld __cnfn convert_ulong_sat_rtn(uchar);
694ulong __ovld __cnfn convert_ulong(uchar);
695ulong __ovld __cnfn convert_ulong_sat(uchar);
696ulong __ovld __cnfn convert_ulong_rte(short);
697ulong __ovld __cnfn convert_ulong_sat_rte(short);
698ulong __ovld __cnfn convert_ulong_rtz(short);
699ulong __ovld __cnfn convert_ulong_sat_rtz(short);
700ulong __ovld __cnfn convert_ulong_rtp(short);
701ulong __ovld __cnfn convert_ulong_sat_rtp(short);
702ulong __ovld __cnfn convert_ulong_rtn(short);
703ulong __ovld __cnfn convert_ulong_sat_rtn(short);
704ulong __ovld __cnfn convert_ulong(short);
705ulong __ovld __cnfn convert_ulong_sat(short);
706ulong __ovld __cnfn convert_ulong_rte(ushort);
707ulong __ovld __cnfn convert_ulong_sat_rte(ushort);
708ulong __ovld __cnfn convert_ulong_rtz(ushort);
709ulong __ovld __cnfn convert_ulong_sat_rtz(ushort);
710ulong __ovld __cnfn convert_ulong_rtp(ushort);
711ulong __ovld __cnfn convert_ulong_sat_rtp(ushort);
712ulong __ovld __cnfn convert_ulong_rtn(ushort);
713ulong __ovld __cnfn convert_ulong_sat_rtn(ushort);
714ulong __ovld __cnfn convert_ulong(ushort);
715ulong __ovld __cnfn convert_ulong_sat(ushort);
716ulong __ovld __cnfn convert_ulong_rte(int);
717ulong __ovld __cnfn convert_ulong_sat_rte(int);
718ulong __ovld __cnfn convert_ulong_rtz(int);
719ulong __ovld __cnfn convert_ulong_sat_rtz(int);
720ulong __ovld __cnfn convert_ulong_rtp(int);
721ulong __ovld __cnfn convert_ulong_sat_rtp(int);
722ulong __ovld __cnfn convert_ulong_rtn(int);
723ulong __ovld __cnfn convert_ulong_sat_rtn(int);
724ulong __ovld __cnfn convert_ulong(int);
725ulong __ovld __cnfn convert_ulong_sat(int);
726ulong __ovld __cnfn convert_ulong_rte(uint);
727ulong __ovld __cnfn convert_ulong_sat_rte(uint);
728ulong __ovld __cnfn convert_ulong_rtz(uint);
729ulong __ovld __cnfn convert_ulong_sat_rtz(uint);
730ulong __ovld __cnfn convert_ulong_rtp(uint);
731ulong __ovld __cnfn convert_ulong_sat_rtp(uint);
732ulong __ovld __cnfn convert_ulong_rtn(uint);
733ulong __ovld __cnfn convert_ulong_sat_rtn(uint);
734ulong __ovld __cnfn convert_ulong(uint);
735ulong __ovld __cnfn convert_ulong_sat(uint);
736ulong __ovld __cnfn convert_ulong_rte(long);
737ulong __ovld __cnfn convert_ulong_sat_rte(long);
738ulong __ovld __cnfn convert_ulong_rtz(long);
739ulong __ovld __cnfn convert_ulong_sat_rtz(long);
740ulong __ovld __cnfn convert_ulong_rtp(long);
741ulong __ovld __cnfn convert_ulong_sat_rtp(long);
742ulong __ovld __cnfn convert_ulong_rtn(long);
743ulong __ovld __cnfn convert_ulong_sat_rtn(long);
744ulong __ovld __cnfn convert_ulong(long);
745ulong __ovld __cnfn convert_ulong_sat(long);
746ulong __ovld __cnfn convert_ulong_rte(ulong);
747ulong __ovld __cnfn convert_ulong_sat_rte(ulong);
748ulong __ovld __cnfn convert_ulong_rtz(ulong);
749ulong __ovld __cnfn convert_ulong_sat_rtz(ulong);
750ulong __ovld __cnfn convert_ulong_rtp(ulong);
751ulong __ovld __cnfn convert_ulong_sat_rtp(ulong);
752ulong __ovld __cnfn convert_ulong_rtn(ulong);
753ulong __ovld __cnfn convert_ulong_sat_rtn(ulong);
754ulong __ovld __cnfn convert_ulong(ulong);
755ulong __ovld __cnfn convert_ulong_sat(ulong);
756ulong __ovld __cnfn convert_ulong_rte(float);
757ulong __ovld __cnfn convert_ulong_sat_rte(float);
758ulong __ovld __cnfn convert_ulong_rtz(float);
759ulong __ovld __cnfn convert_ulong_sat_rtz(float);
760ulong __ovld __cnfn convert_ulong_rtp(float);
761ulong __ovld __cnfn convert_ulong_sat_rtp(float);
762ulong __ovld __cnfn convert_ulong_rtn(float);
763ulong __ovld __cnfn convert_ulong_sat_rtn(float);
764ulong __ovld __cnfn convert_ulong(float);
765ulong __ovld __cnfn convert_ulong_sat(float);
766float __ovld __cnfn convert_float_rte(char);
767float __ovld __cnfn convert_float_rtz(char);
768float __ovld __cnfn convert_float_rtp(char);
769float __ovld __cnfn convert_float_rtn(char);
770float __ovld __cnfn convert_float(char);
771float __ovld __cnfn convert_float_rte(uchar);
772float __ovld __cnfn convert_float_rtz(uchar);
773float __ovld __cnfn convert_float_rtp(uchar);
774float __ovld __cnfn convert_float_rtn(uchar);
775float __ovld __cnfn convert_float(uchar);
776float __ovld __cnfn convert_float_rte(short);
777float __ovld __cnfn convert_float_rtz(short);
778float __ovld __cnfn convert_float_rtp(short);
779float __ovld __cnfn convert_float_rtn(short);
780float __ovld __cnfn convert_float(short);
781float __ovld __cnfn convert_float_rte(ushort);
782float __ovld __cnfn convert_float_rtz(ushort);
783float __ovld __cnfn convert_float_rtp(ushort);
784float __ovld __cnfn convert_float_rtn(ushort);
785float __ovld __cnfn convert_float(ushort);
786float __ovld __cnfn convert_float_rte(int);
787float __ovld __cnfn convert_float_rtz(int);
788float __ovld __cnfn convert_float_rtp(int);
789float __ovld __cnfn convert_float_rtn(int);
790float __ovld __cnfn convert_float(int);
791float __ovld __cnfn convert_float_rte(uint);
792float __ovld __cnfn convert_float_rtz(uint);
793float __ovld __cnfn convert_float_rtp(uint);
794float __ovld __cnfn convert_float_rtn(uint);
795float __ovld __cnfn convert_float(uint);
796float __ovld __cnfn convert_float_rte(long);
797float __ovld __cnfn convert_float_rtz(long);
798float __ovld __cnfn convert_float_rtp(long);
799float __ovld __cnfn convert_float_rtn(long);
800float __ovld __cnfn convert_float(long);
801float __ovld __cnfn convert_float_rte(ulong);
802float __ovld __cnfn convert_float_rtz(ulong);
803float __ovld __cnfn convert_float_rtp(ulong);
804float __ovld __cnfn convert_float_rtn(ulong);
805float __ovld __cnfn convert_float(ulong);
806float __ovld __cnfn convert_float_rte(float);
807float __ovld __cnfn convert_float_rtz(float);
808float __ovld __cnfn convert_float_rtp(float);
809float __ovld __cnfn convert_float_rtn(float);
810float __ovld __cnfn convert_float(float);
811char2 __ovld __cnfn convert_char2_rte(char2);
812char2 __ovld __cnfn convert_char2_sat_rte(char2);
813char2 __ovld __cnfn convert_char2_rtz(char2);
814char2 __ovld __cnfn convert_char2_sat_rtz(char2);
815char2 __ovld __cnfn convert_char2_rtp(char2);
816char2 __ovld __cnfn convert_char2_sat_rtp(char2);
817char2 __ovld __cnfn convert_char2_rtn(char2);
818char2 __ovld __cnfn convert_char2_sat_rtn(char2);
819char2 __ovld __cnfn convert_char2(char2);
820char2 __ovld __cnfn convert_char2_sat(char2);
821char2 __ovld __cnfn convert_char2_rte(uchar2);
822char2 __ovld __cnfn convert_char2_sat_rte(uchar2);
823char2 __ovld __cnfn convert_char2_rtz(uchar2);
824char2 __ovld __cnfn convert_char2_sat_rtz(uchar2);
825char2 __ovld __cnfn convert_char2_rtp(uchar2);
826char2 __ovld __cnfn convert_char2_sat_rtp(uchar2);
827char2 __ovld __cnfn convert_char2_rtn(uchar2);
828char2 __ovld __cnfn convert_char2_sat_rtn(uchar2);
829char2 __ovld __cnfn convert_char2(uchar2);
830char2 __ovld __cnfn convert_char2_sat(uchar2);
831char2 __ovld __cnfn convert_char2_rte(short2);
832char2 __ovld __cnfn convert_char2_sat_rte(short2);
833char2 __ovld __cnfn convert_char2_rtz(short2);
834char2 __ovld __cnfn convert_char2_sat_rtz(short2);
835char2 __ovld __cnfn convert_char2_rtp(short2);
836char2 __ovld __cnfn convert_char2_sat_rtp(short2);
837char2 __ovld __cnfn convert_char2_rtn(short2);
838char2 __ovld __cnfn convert_char2_sat_rtn(short2);
839char2 __ovld __cnfn convert_char2(short2);
840char2 __ovld __cnfn convert_char2_sat(short2);
841char2 __ovld __cnfn convert_char2_rte(ushort2);
842char2 __ovld __cnfn convert_char2_sat_rte(ushort2);
843char2 __ovld __cnfn convert_char2_rtz(ushort2);
844char2 __ovld __cnfn convert_char2_sat_rtz(ushort2);
845char2 __ovld __cnfn convert_char2_rtp(ushort2);
846char2 __ovld __cnfn convert_char2_sat_rtp(ushort2);
847char2 __ovld __cnfn convert_char2_rtn(ushort2);
848char2 __ovld __cnfn convert_char2_sat_rtn(ushort2);
849char2 __ovld __cnfn convert_char2(ushort2);
850char2 __ovld __cnfn convert_char2_sat(ushort2);
851char2 __ovld __cnfn convert_char2_rte(int2);
852char2 __ovld __cnfn convert_char2_sat_rte(int2);
853char2 __ovld __cnfn convert_char2_rtz(int2);
854char2 __ovld __cnfn convert_char2_sat_rtz(int2);
855char2 __ovld __cnfn convert_char2_rtp(int2);
856char2 __ovld __cnfn convert_char2_sat_rtp(int2);
857char2 __ovld __cnfn convert_char2_rtn(int2);
858char2 __ovld __cnfn convert_char2_sat_rtn(int2);
859char2 __ovld __cnfn convert_char2(int2);
860char2 __ovld __cnfn convert_char2_sat(int2);
861char2 __ovld __cnfn convert_char2_rte(uint2);
862char2 __ovld __cnfn convert_char2_sat_rte(uint2);
863char2 __ovld __cnfn convert_char2_rtz(uint2);
864char2 __ovld __cnfn convert_char2_sat_rtz(uint2);
865char2 __ovld __cnfn convert_char2_rtp(uint2);
866char2 __ovld __cnfn convert_char2_sat_rtp(uint2);
867char2 __ovld __cnfn convert_char2_rtn(uint2);
868char2 __ovld __cnfn convert_char2_sat_rtn(uint2);
869char2 __ovld __cnfn convert_char2(uint2);
870char2 __ovld __cnfn convert_char2_sat(uint2);
871char2 __ovld __cnfn convert_char2_rte(long2);
872char2 __ovld __cnfn convert_char2_sat_rte(long2);
873char2 __ovld __cnfn convert_char2_rtz(long2);
874char2 __ovld __cnfn convert_char2_sat_rtz(long2);
875char2 __ovld __cnfn convert_char2_rtp(long2);
876char2 __ovld __cnfn convert_char2_sat_rtp(long2);
877char2 __ovld __cnfn convert_char2_rtn(long2);
878char2 __ovld __cnfn convert_char2_sat_rtn(long2);
879char2 __ovld __cnfn convert_char2(long2);
880char2 __ovld __cnfn convert_char2_sat(long2);
881char2 __ovld __cnfn convert_char2_rte(ulong2);
882char2 __ovld __cnfn convert_char2_sat_rte(ulong2);
883char2 __ovld __cnfn convert_char2_rtz(ulong2);
884char2 __ovld __cnfn convert_char2_sat_rtz(ulong2);
885char2 __ovld __cnfn convert_char2_rtp(ulong2);
886char2 __ovld __cnfn convert_char2_sat_rtp(ulong2);
887char2 __ovld __cnfn convert_char2_rtn(ulong2);
888char2 __ovld __cnfn convert_char2_sat_rtn(ulong2);
889char2 __ovld __cnfn convert_char2(ulong2);
890char2 __ovld __cnfn convert_char2_sat(ulong2);
891char2 __ovld __cnfn convert_char2_rte(float2);
892char2 __ovld __cnfn convert_char2_sat_rte(float2);
893char2 __ovld __cnfn convert_char2_rtz(float2);
894char2 __ovld __cnfn convert_char2_sat_rtz(float2);
895char2 __ovld __cnfn convert_char2_rtp(float2);
896char2 __ovld __cnfn convert_char2_sat_rtp(float2);
897char2 __ovld __cnfn convert_char2_rtn(float2);
898char2 __ovld __cnfn convert_char2_sat_rtn(float2);
899char2 __ovld __cnfn convert_char2(float2);
900char2 __ovld __cnfn convert_char2_sat(float2);
901uchar2 __ovld __cnfn convert_uchar2_rte(char2);
902uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2);
903uchar2 __ovld __cnfn convert_uchar2_rtz(char2);
904uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2);
905uchar2 __ovld __cnfn convert_uchar2_rtp(char2);
906uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2);
907uchar2 __ovld __cnfn convert_uchar2_rtn(char2);
908uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2);
909uchar2 __ovld __cnfn convert_uchar2(char2);
910uchar2 __ovld __cnfn convert_uchar2_sat(char2);
911uchar2 __ovld __cnfn convert_uchar2_rte(uchar2);
912uchar2 __ovld __cnfn convert_uchar2_sat_rte(uchar2);
913uchar2 __ovld __cnfn convert_uchar2_rtz(uchar2);
914uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uchar2);
915uchar2 __ovld __cnfn convert_uchar2_rtp(uchar2);
916uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uchar2);
917uchar2 __ovld __cnfn convert_uchar2_rtn(uchar2);
918uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uchar2);
919uchar2 __ovld __cnfn convert_uchar2(uchar2);
920uchar2 __ovld __cnfn convert_uchar2_sat(uchar2);
921uchar2 __ovld __cnfn convert_uchar2_rte(short2);
922uchar2 __ovld __cnfn convert_uchar2_sat_rte(short2);
923uchar2 __ovld __cnfn convert_uchar2_rtz(short2);
924uchar2 __ovld __cnfn convert_uchar2_sat_rtz(short2);
925uchar2 __ovld __cnfn convert_uchar2_rtp(short2);
926uchar2 __ovld __cnfn convert_uchar2_sat_rtp(short2);
927uchar2 __ovld __cnfn convert_uchar2_rtn(short2);
928uchar2 __ovld __cnfn convert_uchar2_sat_rtn(short2);
929uchar2 __ovld __cnfn convert_uchar2(short2);
930uchar2 __ovld __cnfn convert_uchar2_sat(short2);
931uchar2 __ovld __cnfn convert_uchar2_rte(ushort2);
932uchar2 __ovld __cnfn convert_uchar2_sat_rte(ushort2);
933uchar2 __ovld __cnfn convert_uchar2_rtz(ushort2);
934uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ushort2);
935uchar2 __ovld __cnfn convert_uchar2_rtp(ushort2);
936uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ushort2);
937uchar2 __ovld __cnfn convert_uchar2_rtn(ushort2);
938uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ushort2);
939uchar2 __ovld __cnfn convert_uchar2(ushort2);
940uchar2 __ovld __cnfn convert_uchar2_sat(ushort2);
941uchar2 __ovld __cnfn convert_uchar2_rte(int2);
942uchar2 __ovld __cnfn convert_uchar2_sat_rte(int2);
943uchar2 __ovld __cnfn convert_uchar2_rtz(int2);
944uchar2 __ovld __cnfn convert_uchar2_sat_rtz(int2);
945uchar2 __ovld __cnfn convert_uchar2_rtp(int2);
946uchar2 __ovld __cnfn convert_uchar2_sat_rtp(int2);
947uchar2 __ovld __cnfn convert_uchar2_rtn(int2);
948uchar2 __ovld __cnfn convert_uchar2_sat_rtn(int2);
949uchar2 __ovld __cnfn convert_uchar2(int2);
950uchar2 __ovld __cnfn convert_uchar2_sat(int2);
951uchar2 __ovld __cnfn convert_uchar2_rte(uint2);
952uchar2 __ovld __cnfn convert_uchar2_sat_rte(uint2);
953uchar2 __ovld __cnfn convert_uchar2_rtz(uint2);
954uchar2 __ovld __cnfn convert_uchar2_sat_rtz(uint2);
955uchar2 __ovld __cnfn convert_uchar2_rtp(uint2);
956uchar2 __ovld __cnfn convert_uchar2_sat_rtp(uint2);
957uchar2 __ovld __cnfn convert_uchar2_rtn(uint2);
958uchar2 __ovld __cnfn convert_uchar2_sat_rtn(uint2);
959uchar2 __ovld __cnfn convert_uchar2(uint2);
960uchar2 __ovld __cnfn convert_uchar2_sat(uint2);
961uchar2 __ovld __cnfn convert_uchar2_rte(long2);
962uchar2 __ovld __cnfn convert_uchar2_sat_rte(long2);
963uchar2 __ovld __cnfn convert_uchar2_rtz(long2);
964uchar2 __ovld __cnfn convert_uchar2_sat_rtz(long2);
965uchar2 __ovld __cnfn convert_uchar2_rtp(long2);
966uchar2 __ovld __cnfn convert_uchar2_sat_rtp(long2);
967uchar2 __ovld __cnfn convert_uchar2_rtn(long2);
968uchar2 __ovld __cnfn convert_uchar2_sat_rtn(long2);
969uchar2 __ovld __cnfn convert_uchar2(long2);
970uchar2 __ovld __cnfn convert_uchar2_sat(long2);
971uchar2 __ovld __cnfn convert_uchar2_rte(ulong2);
972uchar2 __ovld __cnfn convert_uchar2_sat_rte(ulong2);
973uchar2 __ovld __cnfn convert_uchar2_rtz(ulong2);
974uchar2 __ovld __cnfn convert_uchar2_sat_rtz(ulong2);
975uchar2 __ovld __cnfn convert_uchar2_rtp(ulong2);
976uchar2 __ovld __cnfn convert_uchar2_sat_rtp(ulong2);
977uchar2 __ovld __cnfn convert_uchar2_rtn(ulong2);
978uchar2 __ovld __cnfn convert_uchar2_sat_rtn(ulong2);
979uchar2 __ovld __cnfn convert_uchar2(ulong2);
980uchar2 __ovld __cnfn convert_uchar2_sat(ulong2);
981uchar2 __ovld __cnfn convert_uchar2_rte(float2);
982uchar2 __ovld __cnfn convert_uchar2_sat_rte(float2);
983uchar2 __ovld __cnfn convert_uchar2_rtz(float2);
984uchar2 __ovld __cnfn convert_uchar2_sat_rtz(float2);
985uchar2 __ovld __cnfn convert_uchar2_rtp(float2);
986uchar2 __ovld __cnfn convert_uchar2_sat_rtp(float2);
987uchar2 __ovld __cnfn convert_uchar2_rtn(float2);
988uchar2 __ovld __cnfn convert_uchar2_sat_rtn(float2);
989uchar2 __ovld __cnfn convert_uchar2(float2);
990uchar2 __ovld __cnfn convert_uchar2_sat(float2);
991short2 __ovld __cnfn convert_short2_rte(char2);
992short2 __ovld __cnfn convert_short2_sat_rte(char2);
993short2 __ovld __cnfn convert_short2_rtz(char2);
994short2 __ovld __cnfn convert_short2_sat_rtz(char2);
995short2 __ovld __cnfn convert_short2_rtp(char2);
996short2 __ovld __cnfn convert_short2_sat_rtp(char2);
997short2 __ovld __cnfn convert_short2_rtn(char2);
998short2 __ovld __cnfn convert_short2_sat_rtn(char2);
999short2 __ovld __cnfn convert_short2(char2);
1000short2 __ovld __cnfn convert_short2_sat(char2);
1001short2 __ovld __cnfn convert_short2_rte(uchar2);
1002short2 __ovld __cnfn convert_short2_sat_rte(uchar2);
1003short2 __ovld __cnfn convert_short2_rtz(uchar2);
1004short2 __ovld __cnfn convert_short2_sat_rtz(uchar2);
1005short2 __ovld __cnfn convert_short2_rtp(uchar2);
1006short2 __ovld __cnfn convert_short2_sat_rtp(uchar2);
1007short2 __ovld __cnfn convert_short2_rtn(uchar2);
1008short2 __ovld __cnfn convert_short2_sat_rtn(uchar2);
1009short2 __ovld __cnfn convert_short2(uchar2);
1010short2 __ovld __cnfn convert_short2_sat(uchar2);
1011short2 __ovld __cnfn convert_short2_rte(short2);
1012short2 __ovld __cnfn convert_short2_sat_rte(short2);
1013short2 __ovld __cnfn convert_short2_rtz(short2);
1014short2 __ovld __cnfn convert_short2_sat_rtz(short2);
1015short2 __ovld __cnfn convert_short2_rtp(short2);
1016short2 __ovld __cnfn convert_short2_sat_rtp(short2);
1017short2 __ovld __cnfn convert_short2_rtn(short2);
1018short2 __ovld __cnfn convert_short2_sat_rtn(short2);
1019short2 __ovld __cnfn convert_short2(short2);
1020short2 __ovld __cnfn convert_short2_sat(short2);
1021short2 __ovld __cnfn convert_short2_rte(ushort2);
1022short2 __ovld __cnfn convert_short2_sat_rte(ushort2);
1023short2 __ovld __cnfn convert_short2_rtz(ushort2);
1024short2 __ovld __cnfn convert_short2_sat_rtz(ushort2);
1025short2 __ovld __cnfn convert_short2_rtp(ushort2);
1026short2 __ovld __cnfn convert_short2_sat_rtp(ushort2);
1027short2 __ovld __cnfn convert_short2_rtn(ushort2);
1028short2 __ovld __cnfn convert_short2_sat_rtn(ushort2);
1029short2 __ovld __cnfn convert_short2(ushort2);
1030short2 __ovld __cnfn convert_short2_sat(ushort2);
1031short2 __ovld __cnfn convert_short2_rte(int2);
1032short2 __ovld __cnfn convert_short2_sat_rte(int2);
1033short2 __ovld __cnfn convert_short2_rtz(int2);
1034short2 __ovld __cnfn convert_short2_sat_rtz(int2);
1035short2 __ovld __cnfn convert_short2_rtp(int2);
1036short2 __ovld __cnfn convert_short2_sat_rtp(int2);
1037short2 __ovld __cnfn convert_short2_rtn(int2);
1038short2 __ovld __cnfn convert_short2_sat_rtn(int2);
1039short2 __ovld __cnfn convert_short2(int2);
1040short2 __ovld __cnfn convert_short2_sat(int2);
1041short2 __ovld __cnfn convert_short2_rte(uint2);
1042short2 __ovld __cnfn convert_short2_sat_rte(uint2);
1043short2 __ovld __cnfn convert_short2_rtz(uint2);
1044short2 __ovld __cnfn convert_short2_sat_rtz(uint2);
1045short2 __ovld __cnfn convert_short2_rtp(uint2);
1046short2 __ovld __cnfn convert_short2_sat_rtp(uint2);
1047short2 __ovld __cnfn convert_short2_rtn(uint2);
1048short2 __ovld __cnfn convert_short2_sat_rtn(uint2);
1049short2 __ovld __cnfn convert_short2(uint2);
1050short2 __ovld __cnfn convert_short2_sat(uint2);
1051short2 __ovld __cnfn convert_short2_rte(long2);
1052short2 __ovld __cnfn convert_short2_sat_rte(long2);
1053short2 __ovld __cnfn convert_short2_rtz(long2);
1054short2 __ovld __cnfn convert_short2_sat_rtz(long2);
1055short2 __ovld __cnfn convert_short2_rtp(long2);
1056short2 __ovld __cnfn convert_short2_sat_rtp(long2);
1057short2 __ovld __cnfn convert_short2_rtn(long2);
1058short2 __ovld __cnfn convert_short2_sat_rtn(long2);
1059short2 __ovld __cnfn convert_short2(long2);
1060short2 __ovld __cnfn convert_short2_sat(long2);
1061short2 __ovld __cnfn convert_short2_rte(ulong2);
1062short2 __ovld __cnfn convert_short2_sat_rte(ulong2);
1063short2 __ovld __cnfn convert_short2_rtz(ulong2);
1064short2 __ovld __cnfn convert_short2_sat_rtz(ulong2);
1065short2 __ovld __cnfn convert_short2_rtp(ulong2);
1066short2 __ovld __cnfn convert_short2_sat_rtp(ulong2);
1067short2 __ovld __cnfn convert_short2_rtn(ulong2);
1068short2 __ovld __cnfn convert_short2_sat_rtn(ulong2);
1069short2 __ovld __cnfn convert_short2(ulong2);
1070short2 __ovld __cnfn convert_short2_sat(ulong2);
1071short2 __ovld __cnfn convert_short2_rte(float2);
1072short2 __ovld __cnfn convert_short2_sat_rte(float2);
1073short2 __ovld __cnfn convert_short2_rtz(float2);
1074short2 __ovld __cnfn convert_short2_sat_rtz(float2);
1075short2 __ovld __cnfn convert_short2_rtp(float2);
1076short2 __ovld __cnfn convert_short2_sat_rtp(float2);
1077short2 __ovld __cnfn convert_short2_rtn(float2);
1078short2 __ovld __cnfn convert_short2_sat_rtn(float2);
1079short2 __ovld __cnfn convert_short2(float2);
1080short2 __ovld __cnfn convert_short2_sat(float2);
1081ushort2 __ovld __cnfn convert_ushort2_rte(char2);
1082ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2);
1083ushort2 __ovld __cnfn convert_ushort2_rtz(char2);
1084ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2);
1085ushort2 __ovld __cnfn convert_ushort2_rtp(char2);
1086ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2);
1087ushort2 __ovld __cnfn convert_ushort2_rtn(char2);
1088ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2);
1089ushort2 __ovld __cnfn convert_ushort2(char2);
1090ushort2 __ovld __cnfn convert_ushort2_sat(char2);
1091ushort2 __ovld __cnfn convert_ushort2_rte(uchar2);
1092ushort2 __ovld __cnfn convert_ushort2_sat_rte(uchar2);
1093ushort2 __ovld __cnfn convert_ushort2_rtz(uchar2);
1094ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uchar2);
1095ushort2 __ovld __cnfn convert_ushort2_rtp(uchar2);
1096ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uchar2);
1097ushort2 __ovld __cnfn convert_ushort2_rtn(uchar2);
1098ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uchar2);
1099ushort2 __ovld __cnfn convert_ushort2(uchar2);
1100ushort2 __ovld __cnfn convert_ushort2_sat(uchar2);
1101ushort2 __ovld __cnfn convert_ushort2_rte(short2);
1102ushort2 __ovld __cnfn convert_ushort2_sat_rte(short2);
1103ushort2 __ovld __cnfn convert_ushort2_rtz(short2);
1104ushort2 __ovld __cnfn convert_ushort2_sat_rtz(short2);
1105ushort2 __ovld __cnfn convert_ushort2_rtp(short2);
1106ushort2 __ovld __cnfn convert_ushort2_sat_rtp(short2);
1107ushort2 __ovld __cnfn convert_ushort2_rtn(short2);
1108ushort2 __ovld __cnfn convert_ushort2_sat_rtn(short2);
1109ushort2 __ovld __cnfn convert_ushort2(short2);
1110ushort2 __ovld __cnfn convert_ushort2_sat(short2);
1111ushort2 __ovld __cnfn convert_ushort2_rte(ushort2);
1112ushort2 __ovld __cnfn convert_ushort2_sat_rte(ushort2);
1113ushort2 __ovld __cnfn convert_ushort2_rtz(ushort2);
1114ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ushort2);
1115ushort2 __ovld __cnfn convert_ushort2_rtp(ushort2);
1116ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ushort2);
1117ushort2 __ovld __cnfn convert_ushort2_rtn(ushort2);
1118ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ushort2);
1119ushort2 __ovld __cnfn convert_ushort2(ushort2);
1120ushort2 __ovld __cnfn convert_ushort2_sat(ushort2);
1121ushort2 __ovld __cnfn convert_ushort2_rte(int2);
1122ushort2 __ovld __cnfn convert_ushort2_sat_rte(int2);
1123ushort2 __ovld __cnfn convert_ushort2_rtz(int2);
1124ushort2 __ovld __cnfn convert_ushort2_sat_rtz(int2);
1125ushort2 __ovld __cnfn convert_ushort2_rtp(int2);
1126ushort2 __ovld __cnfn convert_ushort2_sat_rtp(int2);
1127ushort2 __ovld __cnfn convert_ushort2_rtn(int2);
1128ushort2 __ovld __cnfn convert_ushort2_sat_rtn(int2);
1129ushort2 __ovld __cnfn convert_ushort2(int2);
1130ushort2 __ovld __cnfn convert_ushort2_sat(int2);
1131ushort2 __ovld __cnfn convert_ushort2_rte(uint2);
1132ushort2 __ovld __cnfn convert_ushort2_sat_rte(uint2);
1133ushort2 __ovld __cnfn convert_ushort2_rtz(uint2);
1134ushort2 __ovld __cnfn convert_ushort2_sat_rtz(uint2);
1135ushort2 __ovld __cnfn convert_ushort2_rtp(uint2);
1136ushort2 __ovld __cnfn convert_ushort2_sat_rtp(uint2);
1137ushort2 __ovld __cnfn convert_ushort2_rtn(uint2);
1138ushort2 __ovld __cnfn convert_ushort2_sat_rtn(uint2);
1139ushort2 __ovld __cnfn convert_ushort2(uint2);
1140ushort2 __ovld __cnfn convert_ushort2_sat(uint2);
1141ushort2 __ovld __cnfn convert_ushort2_rte(long2);
1142ushort2 __ovld __cnfn convert_ushort2_sat_rte(long2);
1143ushort2 __ovld __cnfn convert_ushort2_rtz(long2);
1144ushort2 __ovld __cnfn convert_ushort2_sat_rtz(long2);
1145ushort2 __ovld __cnfn convert_ushort2_rtp(long2);
1146ushort2 __ovld __cnfn convert_ushort2_sat_rtp(long2);
1147ushort2 __ovld __cnfn convert_ushort2_rtn(long2);
1148ushort2 __ovld __cnfn convert_ushort2_sat_rtn(long2);
1149ushort2 __ovld __cnfn convert_ushort2(long2);
1150ushort2 __ovld __cnfn convert_ushort2_sat(long2);
1151ushort2 __ovld __cnfn convert_ushort2_rte(ulong2);
1152ushort2 __ovld __cnfn convert_ushort2_sat_rte(ulong2);
1153ushort2 __ovld __cnfn convert_ushort2_rtz(ulong2);
1154ushort2 __ovld __cnfn convert_ushort2_sat_rtz(ulong2);
1155ushort2 __ovld __cnfn convert_ushort2_rtp(ulong2);
1156ushort2 __ovld __cnfn convert_ushort2_sat_rtp(ulong2);
1157ushort2 __ovld __cnfn convert_ushort2_rtn(ulong2);
1158ushort2 __ovld __cnfn convert_ushort2_sat_rtn(ulong2);
1159ushort2 __ovld __cnfn convert_ushort2(ulong2);
1160ushort2 __ovld __cnfn convert_ushort2_sat(ulong2);
1161ushort2 __ovld __cnfn convert_ushort2_rte(float2);
1162ushort2 __ovld __cnfn convert_ushort2_sat_rte(float2);
1163ushort2 __ovld __cnfn convert_ushort2_rtz(float2);
1164ushort2 __ovld __cnfn convert_ushort2_sat_rtz(float2);
1165ushort2 __ovld __cnfn convert_ushort2_rtp(float2);
1166ushort2 __ovld __cnfn convert_ushort2_sat_rtp(float2);
1167ushort2 __ovld __cnfn convert_ushort2_rtn(float2);
1168ushort2 __ovld __cnfn convert_ushort2_sat_rtn(float2);
1169ushort2 __ovld __cnfn convert_ushort2(float2);
1170ushort2 __ovld __cnfn convert_ushort2_sat(float2);
1171int2 __ovld __cnfn convert_int2_rte(char2);
1172int2 __ovld __cnfn convert_int2_sat_rte(char2);
1173int2 __ovld __cnfn convert_int2_rtz(char2);
1174int2 __ovld __cnfn convert_int2_sat_rtz(char2);
1175int2 __ovld __cnfn convert_int2_rtp(char2);
1176int2 __ovld __cnfn convert_int2_sat_rtp(char2);
1177int2 __ovld __cnfn convert_int2_rtn(char2);
1178int2 __ovld __cnfn convert_int2_sat_rtn(char2);
1179int2 __ovld __cnfn convert_int2(char2);
1180int2 __ovld __cnfn convert_int2_sat(char2);
1181int2 __ovld __cnfn convert_int2_rte(uchar2);
1182int2 __ovld __cnfn convert_int2_sat_rte(uchar2);
1183int2 __ovld __cnfn convert_int2_rtz(uchar2);
1184int2 __ovld __cnfn convert_int2_sat_rtz(uchar2);
1185int2 __ovld __cnfn convert_int2_rtp(uchar2);
1186int2 __ovld __cnfn convert_int2_sat_rtp(uchar2);
1187int2 __ovld __cnfn convert_int2_rtn(uchar2);
1188int2 __ovld __cnfn convert_int2_sat_rtn(uchar2);
1189int2 __ovld __cnfn convert_int2(uchar2);
1190int2 __ovld __cnfn convert_int2_sat(uchar2);
1191int2 __ovld __cnfn convert_int2_rte(short2);
1192int2 __ovld __cnfn convert_int2_sat_rte(short2);
1193int2 __ovld __cnfn convert_int2_rtz(short2);
1194int2 __ovld __cnfn convert_int2_sat_rtz(short2);
1195int2 __ovld __cnfn convert_int2_rtp(short2);
1196int2 __ovld __cnfn convert_int2_sat_rtp(short2);
1197int2 __ovld __cnfn convert_int2_rtn(short2);
1198int2 __ovld __cnfn convert_int2_sat_rtn(short2);
1199int2 __ovld __cnfn convert_int2(short2);
1200int2 __ovld __cnfn convert_int2_sat(short2);
1201int2 __ovld __cnfn convert_int2_rte(ushort2);
1202int2 __ovld __cnfn convert_int2_sat_rte(ushort2);
1203int2 __ovld __cnfn convert_int2_rtz(ushort2);
1204int2 __ovld __cnfn convert_int2_sat_rtz(ushort2);
1205int2 __ovld __cnfn convert_int2_rtp(ushort2);
1206int2 __ovld __cnfn convert_int2_sat_rtp(ushort2);
1207int2 __ovld __cnfn convert_int2_rtn(ushort2);
1208int2 __ovld __cnfn convert_int2_sat_rtn(ushort2);
1209int2 __ovld __cnfn convert_int2(ushort2);
1210int2 __ovld __cnfn convert_int2_sat(ushort2);
1211int2 __ovld __cnfn convert_int2_rte(int2);
1212int2 __ovld __cnfn convert_int2_sat_rte(int2);
1213int2 __ovld __cnfn convert_int2_rtz(int2);
1214int2 __ovld __cnfn convert_int2_sat_rtz(int2);
1215int2 __ovld __cnfn convert_int2_rtp(int2);
1216int2 __ovld __cnfn convert_int2_sat_rtp(int2);
1217int2 __ovld __cnfn convert_int2_rtn(int2);
1218int2 __ovld __cnfn convert_int2_sat_rtn(int2);
1219int2 __ovld __cnfn convert_int2(int2);
1220int2 __ovld __cnfn convert_int2_sat(int2);
1221int2 __ovld __cnfn convert_int2_rte(uint2);
1222int2 __ovld __cnfn convert_int2_sat_rte(uint2);
1223int2 __ovld __cnfn convert_int2_rtz(uint2);
1224int2 __ovld __cnfn convert_int2_sat_rtz(uint2);
1225int2 __ovld __cnfn convert_int2_rtp(uint2);
1226int2 __ovld __cnfn convert_int2_sat_rtp(uint2);
1227int2 __ovld __cnfn convert_int2_rtn(uint2);
1228int2 __ovld __cnfn convert_int2_sat_rtn(uint2);
1229int2 __ovld __cnfn convert_int2(uint2);
1230int2 __ovld __cnfn convert_int2_sat(uint2);
1231int2 __ovld __cnfn convert_int2_rte(long2);
1232int2 __ovld __cnfn convert_int2_sat_rte(long2);
1233int2 __ovld __cnfn convert_int2_rtz(long2);
1234int2 __ovld __cnfn convert_int2_sat_rtz(long2);
1235int2 __ovld __cnfn convert_int2_rtp(long2);
1236int2 __ovld __cnfn convert_int2_sat_rtp(long2);
1237int2 __ovld __cnfn convert_int2_rtn(long2);
1238int2 __ovld __cnfn convert_int2_sat_rtn(long2);
1239int2 __ovld __cnfn convert_int2(long2);
1240int2 __ovld __cnfn convert_int2_sat(long2);
1241int2 __ovld __cnfn convert_int2_rte(ulong2);
1242int2 __ovld __cnfn convert_int2_sat_rte(ulong2);
1243int2 __ovld __cnfn convert_int2_rtz(ulong2);
1244int2 __ovld __cnfn convert_int2_sat_rtz(ulong2);
1245int2 __ovld __cnfn convert_int2_rtp(ulong2);
1246int2 __ovld __cnfn convert_int2_sat_rtp(ulong2);
1247int2 __ovld __cnfn convert_int2_rtn(ulong2);
1248int2 __ovld __cnfn convert_int2_sat_rtn(ulong2);
1249int2 __ovld __cnfn convert_int2(ulong2);
1250int2 __ovld __cnfn convert_int2_sat(ulong2);
1251int2 __ovld __cnfn convert_int2_rte(float2);
1252int2 __ovld __cnfn convert_int2_sat_rte(float2);
1253int2 __ovld __cnfn convert_int2_rtz(float2);
1254int2 __ovld __cnfn convert_int2_sat_rtz(float2);
1255int2 __ovld __cnfn convert_int2_rtp(float2);
1256int2 __ovld __cnfn convert_int2_sat_rtp(float2);
1257int2 __ovld __cnfn convert_int2_rtn(float2);
1258int2 __ovld __cnfn convert_int2_sat_rtn(float2);
1259int2 __ovld __cnfn convert_int2(float2);
1260int2 __ovld __cnfn convert_int2_sat(float2);
1261uint2 __ovld __cnfn convert_uint2_rte(char2);
1262uint2 __ovld __cnfn convert_uint2_sat_rte(char2);
1263uint2 __ovld __cnfn convert_uint2_rtz(char2);
1264uint2 __ovld __cnfn convert_uint2_sat_rtz(char2);
1265uint2 __ovld __cnfn convert_uint2_rtp(char2);
1266uint2 __ovld __cnfn convert_uint2_sat_rtp(char2);
1267uint2 __ovld __cnfn convert_uint2_rtn(char2);
1268uint2 __ovld __cnfn convert_uint2_sat_rtn(char2);
1269uint2 __ovld __cnfn convert_uint2(char2);
1270uint2 __ovld __cnfn convert_uint2_sat(char2);
1271uint2 __ovld __cnfn convert_uint2_rte(uchar2);
1272uint2 __ovld __cnfn convert_uint2_sat_rte(uchar2);
1273uint2 __ovld __cnfn convert_uint2_rtz(uchar2);
1274uint2 __ovld __cnfn convert_uint2_sat_rtz(uchar2);
1275uint2 __ovld __cnfn convert_uint2_rtp(uchar2);
1276uint2 __ovld __cnfn convert_uint2_sat_rtp(uchar2);
1277uint2 __ovld __cnfn convert_uint2_rtn(uchar2);
1278uint2 __ovld __cnfn convert_uint2_sat_rtn(uchar2);
1279uint2 __ovld __cnfn convert_uint2(uchar2);
1280uint2 __ovld __cnfn convert_uint2_sat(uchar2);
1281uint2 __ovld __cnfn convert_uint2_rte(short2);
1282uint2 __ovld __cnfn convert_uint2_sat_rte(short2);
1283uint2 __ovld __cnfn convert_uint2_rtz(short2);
1284uint2 __ovld __cnfn convert_uint2_sat_rtz(short2);
1285uint2 __ovld __cnfn convert_uint2_rtp(short2);
1286uint2 __ovld __cnfn convert_uint2_sat_rtp(short2);
1287uint2 __ovld __cnfn convert_uint2_rtn(short2);
1288uint2 __ovld __cnfn convert_uint2_sat_rtn(short2);
1289uint2 __ovld __cnfn convert_uint2(short2);
1290uint2 __ovld __cnfn convert_uint2_sat(short2);
1291uint2 __ovld __cnfn convert_uint2_rte(ushort2);
1292uint2 __ovld __cnfn convert_uint2_sat_rte(ushort2);
1293uint2 __ovld __cnfn convert_uint2_rtz(ushort2);
1294uint2 __ovld __cnfn convert_uint2_sat_rtz(ushort2);
1295uint2 __ovld __cnfn convert_uint2_rtp(ushort2);
1296uint2 __ovld __cnfn convert_uint2_sat_rtp(ushort2);
1297uint2 __ovld __cnfn convert_uint2_rtn(ushort2);
1298uint2 __ovld __cnfn convert_uint2_sat_rtn(ushort2);
1299uint2 __ovld __cnfn convert_uint2(ushort2);
1300uint2 __ovld __cnfn convert_uint2_sat(ushort2);
1301uint2 __ovld __cnfn convert_uint2_rte(int2);
1302uint2 __ovld __cnfn convert_uint2_sat_rte(int2);
1303uint2 __ovld __cnfn convert_uint2_rtz(int2);
1304uint2 __ovld __cnfn convert_uint2_sat_rtz(int2);
1305uint2 __ovld __cnfn convert_uint2_rtp(int2);
1306uint2 __ovld __cnfn convert_uint2_sat_rtp(int2);
1307uint2 __ovld __cnfn convert_uint2_rtn(int2);
1308uint2 __ovld __cnfn convert_uint2_sat_rtn(int2);
1309uint2 __ovld __cnfn convert_uint2(int2);
1310uint2 __ovld __cnfn convert_uint2_sat(int2);
1311uint2 __ovld __cnfn convert_uint2_rte(uint2);
1312uint2 __ovld __cnfn convert_uint2_sat_rte(uint2);
1313uint2 __ovld __cnfn convert_uint2_rtz(uint2);
1314uint2 __ovld __cnfn convert_uint2_sat_rtz(uint2);
1315uint2 __ovld __cnfn convert_uint2_rtp(uint2);
1316uint2 __ovld __cnfn convert_uint2_sat_rtp(uint2);
1317uint2 __ovld __cnfn convert_uint2_rtn(uint2);
1318uint2 __ovld __cnfn convert_uint2_sat_rtn(uint2);
1319uint2 __ovld __cnfn convert_uint2(uint2);
1320uint2 __ovld __cnfn convert_uint2_sat(uint2);
1321uint2 __ovld __cnfn convert_uint2_rte(long2);
1322uint2 __ovld __cnfn convert_uint2_sat_rte(long2);
1323uint2 __ovld __cnfn convert_uint2_rtz(long2);
1324uint2 __ovld __cnfn convert_uint2_sat_rtz(long2);
1325uint2 __ovld __cnfn convert_uint2_rtp(long2);
1326uint2 __ovld __cnfn convert_uint2_sat_rtp(long2);
1327uint2 __ovld __cnfn convert_uint2_rtn(long2);
1328uint2 __ovld __cnfn convert_uint2_sat_rtn(long2);
1329uint2 __ovld __cnfn convert_uint2(long2);
1330uint2 __ovld __cnfn convert_uint2_sat(long2);
1331uint2 __ovld __cnfn convert_uint2_rte(ulong2);
1332uint2 __ovld __cnfn convert_uint2_sat_rte(ulong2);
1333uint2 __ovld __cnfn convert_uint2_rtz(ulong2);
1334uint2 __ovld __cnfn convert_uint2_sat_rtz(ulong2);
1335uint2 __ovld __cnfn convert_uint2_rtp(ulong2);
1336uint2 __ovld __cnfn convert_uint2_sat_rtp(ulong2);
1337uint2 __ovld __cnfn convert_uint2_rtn(ulong2);
1338uint2 __ovld __cnfn convert_uint2_sat_rtn(ulong2);
1339uint2 __ovld __cnfn convert_uint2(ulong2);
1340uint2 __ovld __cnfn convert_uint2_sat(ulong2);
1341uint2 __ovld __cnfn convert_uint2_rte(float2);
1342uint2 __ovld __cnfn convert_uint2_sat_rte(float2);
1343uint2 __ovld __cnfn convert_uint2_rtz(float2);
1344uint2 __ovld __cnfn convert_uint2_sat_rtz(float2);
1345uint2 __ovld __cnfn convert_uint2_rtp(float2);
1346uint2 __ovld __cnfn convert_uint2_sat_rtp(float2);
1347uint2 __ovld __cnfn convert_uint2_rtn(float2);
1348uint2 __ovld __cnfn convert_uint2_sat_rtn(float2);
1349uint2 __ovld __cnfn convert_uint2(float2);
1350uint2 __ovld __cnfn convert_uint2_sat(float2);
1351long2 __ovld __cnfn convert_long2_rte(char2);
1352long2 __ovld __cnfn convert_long2_sat_rte(char2);
1353long2 __ovld __cnfn convert_long2_rtz(char2);
1354long2 __ovld __cnfn convert_long2_sat_rtz(char2);
1355long2 __ovld __cnfn convert_long2_rtp(char2);
1356long2 __ovld __cnfn convert_long2_sat_rtp(char2);
1357long2 __ovld __cnfn convert_long2_rtn(char2);
1358long2 __ovld __cnfn convert_long2_sat_rtn(char2);
1359long2 __ovld __cnfn convert_long2(char2);
1360long2 __ovld __cnfn convert_long2_sat(char2);
1361long2 __ovld __cnfn convert_long2_rte(uchar2);
1362long2 __ovld __cnfn convert_long2_sat_rte(uchar2);
1363long2 __ovld __cnfn convert_long2_rtz(uchar2);
1364long2 __ovld __cnfn convert_long2_sat_rtz(uchar2);
1365long2 __ovld __cnfn convert_long2_rtp(uchar2);
1366long2 __ovld __cnfn convert_long2_sat_rtp(uchar2);
1367long2 __ovld __cnfn convert_long2_rtn(uchar2);
1368long2 __ovld __cnfn convert_long2_sat_rtn(uchar2);
1369long2 __ovld __cnfn convert_long2(uchar2);
1370long2 __ovld __cnfn convert_long2_sat(uchar2);
1371long2 __ovld __cnfn convert_long2_rte(short2);
1372long2 __ovld __cnfn convert_long2_sat_rte(short2);
1373long2 __ovld __cnfn convert_long2_rtz(short2);
1374long2 __ovld __cnfn convert_long2_sat_rtz(short2);
1375long2 __ovld __cnfn convert_long2_rtp(short2);
1376long2 __ovld __cnfn convert_long2_sat_rtp(short2);
1377long2 __ovld __cnfn convert_long2_rtn(short2);
1378long2 __ovld __cnfn convert_long2_sat_rtn(short2);
1379long2 __ovld __cnfn convert_long2(short2);
1380long2 __ovld __cnfn convert_long2_sat(short2);
1381long2 __ovld __cnfn convert_long2_rte(ushort2);
1382long2 __ovld __cnfn convert_long2_sat_rte(ushort2);
1383long2 __ovld __cnfn convert_long2_rtz(ushort2);
1384long2 __ovld __cnfn convert_long2_sat_rtz(ushort2);
1385long2 __ovld __cnfn convert_long2_rtp(ushort2);
1386long2 __ovld __cnfn convert_long2_sat_rtp(ushort2);
1387long2 __ovld __cnfn convert_long2_rtn(ushort2);
1388long2 __ovld __cnfn convert_long2_sat_rtn(ushort2);
1389long2 __ovld __cnfn convert_long2(ushort2);
1390long2 __ovld __cnfn convert_long2_sat(ushort2);
1391long2 __ovld __cnfn convert_long2_rte(int2);
1392long2 __ovld __cnfn convert_long2_sat_rte(int2);
1393long2 __ovld __cnfn convert_long2_rtz(int2);
1394long2 __ovld __cnfn convert_long2_sat_rtz(int2);
1395long2 __ovld __cnfn convert_long2_rtp(int2);
1396long2 __ovld __cnfn convert_long2_sat_rtp(int2);
1397long2 __ovld __cnfn convert_long2_rtn(int2);
1398long2 __ovld __cnfn convert_long2_sat_rtn(int2);
1399long2 __ovld __cnfn convert_long2(int2);
1400long2 __ovld __cnfn convert_long2_sat(int2);
1401long2 __ovld __cnfn convert_long2_rte(uint2);
1402long2 __ovld __cnfn convert_long2_sat_rte(uint2);
1403long2 __ovld __cnfn convert_long2_rtz(uint2);
1404long2 __ovld __cnfn convert_long2_sat_rtz(uint2);
1405long2 __ovld __cnfn convert_long2_rtp(uint2);
1406long2 __ovld __cnfn convert_long2_sat_rtp(uint2);
1407long2 __ovld __cnfn convert_long2_rtn(uint2);
1408long2 __ovld __cnfn convert_long2_sat_rtn(uint2);
1409long2 __ovld __cnfn convert_long2(uint2);
1410long2 __ovld __cnfn convert_long2_sat(uint2);
1411long2 __ovld __cnfn convert_long2_rte(long2);
1412long2 __ovld __cnfn convert_long2_sat_rte(long2);
1413long2 __ovld __cnfn convert_long2_rtz(long2);
1414long2 __ovld __cnfn convert_long2_sat_rtz(long2);
1415long2 __ovld __cnfn convert_long2_rtp(long2);
1416long2 __ovld __cnfn convert_long2_sat_rtp(long2);
1417long2 __ovld __cnfn convert_long2_rtn(long2);
1418long2 __ovld __cnfn convert_long2_sat_rtn(long2);
1419long2 __ovld __cnfn convert_long2(long2);
1420long2 __ovld __cnfn convert_long2_sat(long2);
1421long2 __ovld __cnfn convert_long2_rte(ulong2);
1422long2 __ovld __cnfn convert_long2_sat_rte(ulong2);
1423long2 __ovld __cnfn convert_long2_rtz(ulong2);
1424long2 __ovld __cnfn convert_long2_sat_rtz(ulong2);
1425long2 __ovld __cnfn convert_long2_rtp(ulong2);
1426long2 __ovld __cnfn convert_long2_sat_rtp(ulong2);
1427long2 __ovld __cnfn convert_long2_rtn(ulong2);
1428long2 __ovld __cnfn convert_long2_sat_rtn(ulong2);
1429long2 __ovld __cnfn convert_long2(ulong2);
1430long2 __ovld __cnfn convert_long2_sat(ulong2);
1431long2 __ovld __cnfn convert_long2_rte(float2);
1432long2 __ovld __cnfn convert_long2_sat_rte(float2);
1433long2 __ovld __cnfn convert_long2_rtz(float2);
1434long2 __ovld __cnfn convert_long2_sat_rtz(float2);
1435long2 __ovld __cnfn convert_long2_rtp(float2);
1436long2 __ovld __cnfn convert_long2_sat_rtp(float2);
1437long2 __ovld __cnfn convert_long2_rtn(float2);
1438long2 __ovld __cnfn convert_long2_sat_rtn(float2);
1439long2 __ovld __cnfn convert_long2(float2);
1440long2 __ovld __cnfn convert_long2_sat(float2);
1441ulong2 __ovld __cnfn convert_ulong2_rte(char2);
1442ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2);
1443ulong2 __ovld __cnfn convert_ulong2_rtz(char2);
1444ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2);
1445ulong2 __ovld __cnfn convert_ulong2_rtp(char2);
1446ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2);
1447ulong2 __ovld __cnfn convert_ulong2_rtn(char2);
1448ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2);
1449ulong2 __ovld __cnfn convert_ulong2(char2);
1450ulong2 __ovld __cnfn convert_ulong2_sat(char2);
1451ulong2 __ovld __cnfn convert_ulong2_rte(uchar2);
1452ulong2 __ovld __cnfn convert_ulong2_sat_rte(uchar2);
1453ulong2 __ovld __cnfn convert_ulong2_rtz(uchar2);
1454ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uchar2);
1455ulong2 __ovld __cnfn convert_ulong2_rtp(uchar2);
1456ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uchar2);
1457ulong2 __ovld __cnfn convert_ulong2_rtn(uchar2);
1458ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uchar2);
1459ulong2 __ovld __cnfn convert_ulong2(uchar2);
1460ulong2 __ovld __cnfn convert_ulong2_sat(uchar2);
1461ulong2 __ovld __cnfn convert_ulong2_rte(short2);
1462ulong2 __ovld __cnfn convert_ulong2_sat_rte(short2);
1463ulong2 __ovld __cnfn convert_ulong2_rtz(short2);
1464ulong2 __ovld __cnfn convert_ulong2_sat_rtz(short2);
1465ulong2 __ovld __cnfn convert_ulong2_rtp(short2);
1466ulong2 __ovld __cnfn convert_ulong2_sat_rtp(short2);
1467ulong2 __ovld __cnfn convert_ulong2_rtn(short2);
1468ulong2 __ovld __cnfn convert_ulong2_sat_rtn(short2);
1469ulong2 __ovld __cnfn convert_ulong2(short2);
1470ulong2 __ovld __cnfn convert_ulong2_sat(short2);
1471ulong2 __ovld __cnfn convert_ulong2_rte(ushort2);
1472ulong2 __ovld __cnfn convert_ulong2_sat_rte(ushort2);
1473ulong2 __ovld __cnfn convert_ulong2_rtz(ushort2);
1474ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ushort2);
1475ulong2 __ovld __cnfn convert_ulong2_rtp(ushort2);
1476ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ushort2);
1477ulong2 __ovld __cnfn convert_ulong2_rtn(ushort2);
1478ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ushort2);
1479ulong2 __ovld __cnfn convert_ulong2(ushort2);
1480ulong2 __ovld __cnfn convert_ulong2_sat(ushort2);
1481ulong2 __ovld __cnfn convert_ulong2_rte(int2);
1482ulong2 __ovld __cnfn convert_ulong2_sat_rte(int2);
1483ulong2 __ovld __cnfn convert_ulong2_rtz(int2);
1484ulong2 __ovld __cnfn convert_ulong2_sat_rtz(int2);
1485ulong2 __ovld __cnfn convert_ulong2_rtp(int2);
1486ulong2 __ovld __cnfn convert_ulong2_sat_rtp(int2);
1487ulong2 __ovld __cnfn convert_ulong2_rtn(int2);
1488ulong2 __ovld __cnfn convert_ulong2_sat_rtn(int2);
1489ulong2 __ovld __cnfn convert_ulong2(int2);
1490ulong2 __ovld __cnfn convert_ulong2_sat(int2);
1491ulong2 __ovld __cnfn convert_ulong2_rte(uint2);
1492ulong2 __ovld __cnfn convert_ulong2_sat_rte(uint2);
1493ulong2 __ovld __cnfn convert_ulong2_rtz(uint2);
1494ulong2 __ovld __cnfn convert_ulong2_sat_rtz(uint2);
1495ulong2 __ovld __cnfn convert_ulong2_rtp(uint2);
1496ulong2 __ovld __cnfn convert_ulong2_sat_rtp(uint2);
1497ulong2 __ovld __cnfn convert_ulong2_rtn(uint2);
1498ulong2 __ovld __cnfn convert_ulong2_sat_rtn(uint2);
1499ulong2 __ovld __cnfn convert_ulong2(uint2);
1500ulong2 __ovld __cnfn convert_ulong2_sat(uint2);
1501ulong2 __ovld __cnfn convert_ulong2_rte(long2);
1502ulong2 __ovld __cnfn convert_ulong2_sat_rte(long2);
1503ulong2 __ovld __cnfn convert_ulong2_rtz(long2);
1504ulong2 __ovld __cnfn convert_ulong2_sat_rtz(long2);
1505ulong2 __ovld __cnfn convert_ulong2_rtp(long2);
1506ulong2 __ovld __cnfn convert_ulong2_sat_rtp(long2);
1507ulong2 __ovld __cnfn convert_ulong2_rtn(long2);
1508ulong2 __ovld __cnfn convert_ulong2_sat_rtn(long2);
1509ulong2 __ovld __cnfn convert_ulong2(long2);
1510ulong2 __ovld __cnfn convert_ulong2_sat(long2);
1511ulong2 __ovld __cnfn convert_ulong2_rte(ulong2);
1512ulong2 __ovld __cnfn convert_ulong2_sat_rte(ulong2);
1513ulong2 __ovld __cnfn convert_ulong2_rtz(ulong2);
1514ulong2 __ovld __cnfn convert_ulong2_sat_rtz(ulong2);
1515ulong2 __ovld __cnfn convert_ulong2_rtp(ulong2);
1516ulong2 __ovld __cnfn convert_ulong2_sat_rtp(ulong2);
1517ulong2 __ovld __cnfn convert_ulong2_rtn(ulong2);
1518ulong2 __ovld __cnfn convert_ulong2_sat_rtn(ulong2);
1519ulong2 __ovld __cnfn convert_ulong2(ulong2);
1520ulong2 __ovld __cnfn convert_ulong2_sat(ulong2);
1521ulong2 __ovld __cnfn convert_ulong2_rte(float2);
1522ulong2 __ovld __cnfn convert_ulong2_sat_rte(float2);
1523ulong2 __ovld __cnfn convert_ulong2_rtz(float2);
1524ulong2 __ovld __cnfn convert_ulong2_sat_rtz(float2);
1525ulong2 __ovld __cnfn convert_ulong2_rtp(float2);
1526ulong2 __ovld __cnfn convert_ulong2_sat_rtp(float2);
1527ulong2 __ovld __cnfn convert_ulong2_rtn(float2);
1528ulong2 __ovld __cnfn convert_ulong2_sat_rtn(float2);
1529ulong2 __ovld __cnfn convert_ulong2(float2);
1530ulong2 __ovld __cnfn convert_ulong2_sat(float2);
1531float2 __ovld __cnfn convert_float2_rte(char2);
1532float2 __ovld __cnfn convert_float2_rtz(char2);
1533float2 __ovld __cnfn convert_float2_rtp(char2);
1534float2 __ovld __cnfn convert_float2_rtn(char2);
1535float2 __ovld __cnfn convert_float2(char2);
1536float2 __ovld __cnfn convert_float2_rte(uchar2);
1537float2 __ovld __cnfn convert_float2_rtz(uchar2);
1538float2 __ovld __cnfn convert_float2_rtp(uchar2);
1539float2 __ovld __cnfn convert_float2_rtn(uchar2);
1540float2 __ovld __cnfn convert_float2(uchar2);
1541float2 __ovld __cnfn convert_float2_rte(short2);
1542float2 __ovld __cnfn convert_float2_rtz(short2);
1543float2 __ovld __cnfn convert_float2_rtp(short2);
1544float2 __ovld __cnfn convert_float2_rtn(short2);
1545float2 __ovld __cnfn convert_float2(short2);
1546float2 __ovld __cnfn convert_float2_rte(ushort2);
1547float2 __ovld __cnfn convert_float2_rtz(ushort2);
1548float2 __ovld __cnfn convert_float2_rtp(ushort2);
1549float2 __ovld __cnfn convert_float2_rtn(ushort2);
1550float2 __ovld __cnfn convert_float2(ushort2);
1551float2 __ovld __cnfn convert_float2_rte(int2);
1552float2 __ovld __cnfn convert_float2_rtz(int2);
1553float2 __ovld __cnfn convert_float2_rtp(int2);
1554float2 __ovld __cnfn convert_float2_rtn(int2);
1555float2 __ovld __cnfn convert_float2(int2);
1556float2 __ovld __cnfn convert_float2_rte(uint2);
1557float2 __ovld __cnfn convert_float2_rtz(uint2);
1558float2 __ovld __cnfn convert_float2_rtp(uint2);
1559float2 __ovld __cnfn convert_float2_rtn(uint2);
1560float2 __ovld __cnfn convert_float2(uint2);
1561float2 __ovld __cnfn convert_float2_rte(long2);
1562float2 __ovld __cnfn convert_float2_rtz(long2);
1563float2 __ovld __cnfn convert_float2_rtp(long2);
1564float2 __ovld __cnfn convert_float2_rtn(long2);
1565float2 __ovld __cnfn convert_float2(long2);
1566float2 __ovld __cnfn convert_float2_rte(ulong2);
1567float2 __ovld __cnfn convert_float2_rtz(ulong2);
1568float2 __ovld __cnfn convert_float2_rtp(ulong2);
1569float2 __ovld __cnfn convert_float2_rtn(ulong2);
1570float2 __ovld __cnfn convert_float2(ulong2);
1571float2 __ovld __cnfn convert_float2_rte(float2);
1572float2 __ovld __cnfn convert_float2_rtz(float2);
1573float2 __ovld __cnfn convert_float2_rtp(float2);
1574float2 __ovld __cnfn convert_float2_rtn(float2);
1575float2 __ovld __cnfn convert_float2(float2);
1576char3 __ovld __cnfn convert_char3_rte(char3);
1577char3 __ovld __cnfn convert_char3_sat_rte(char3);
1578char3 __ovld __cnfn convert_char3_rtz(char3);
1579char3 __ovld __cnfn convert_char3_sat_rtz(char3);
1580char3 __ovld __cnfn convert_char3_rtp(char3);
1581char3 __ovld __cnfn convert_char3_sat_rtp(char3);
1582char3 __ovld __cnfn convert_char3_rtn(char3);
1583char3 __ovld __cnfn convert_char3_sat_rtn(char3);
1584char3 __ovld __cnfn convert_char3(char3);
1585char3 __ovld __cnfn convert_char3_sat(char3);
1586char3 __ovld __cnfn convert_char3_rte(uchar3);
1587char3 __ovld __cnfn convert_char3_sat_rte(uchar3);
1588char3 __ovld __cnfn convert_char3_rtz(uchar3);
1589char3 __ovld __cnfn convert_char3_sat_rtz(uchar3);
1590char3 __ovld __cnfn convert_char3_rtp(uchar3);
1591char3 __ovld __cnfn convert_char3_sat_rtp(uchar3);
1592char3 __ovld __cnfn convert_char3_rtn(uchar3);
1593char3 __ovld __cnfn convert_char3_sat_rtn(uchar3);
1594char3 __ovld __cnfn convert_char3(uchar3);
1595char3 __ovld __cnfn convert_char3_sat(uchar3);
1596char3 __ovld __cnfn convert_char3_rte(short3);
1597char3 __ovld __cnfn convert_char3_sat_rte(short3);
1598char3 __ovld __cnfn convert_char3_rtz(short3);
1599char3 __ovld __cnfn convert_char3_sat_rtz(short3);
1600char3 __ovld __cnfn convert_char3_rtp(short3);
1601char3 __ovld __cnfn convert_char3_sat_rtp(short3);
1602char3 __ovld __cnfn convert_char3_rtn(short3);
1603char3 __ovld __cnfn convert_char3_sat_rtn(short3);
1604char3 __ovld __cnfn convert_char3(short3);
1605char3 __ovld __cnfn convert_char3_sat(short3);
1606char3 __ovld __cnfn convert_char3_rte(ushort3);
1607char3 __ovld __cnfn convert_char3_sat_rte(ushort3);
1608char3 __ovld __cnfn convert_char3_rtz(ushort3);
1609char3 __ovld __cnfn convert_char3_sat_rtz(ushort3);
1610char3 __ovld __cnfn convert_char3_rtp(ushort3);
1611char3 __ovld __cnfn convert_char3_sat_rtp(ushort3);
1612char3 __ovld __cnfn convert_char3_rtn(ushort3);
1613char3 __ovld __cnfn convert_char3_sat_rtn(ushort3);
1614char3 __ovld __cnfn convert_char3(ushort3);
1615char3 __ovld __cnfn convert_char3_sat(ushort3);
1616char3 __ovld __cnfn convert_char3_rte(int3);
1617char3 __ovld __cnfn convert_char3_sat_rte(int3);
1618char3 __ovld __cnfn convert_char3_rtz(int3);
1619char3 __ovld __cnfn convert_char3_sat_rtz(int3);
1620char3 __ovld __cnfn convert_char3_rtp(int3);
1621char3 __ovld __cnfn convert_char3_sat_rtp(int3);
1622char3 __ovld __cnfn convert_char3_rtn(int3);
1623char3 __ovld __cnfn convert_char3_sat_rtn(int3);
1624char3 __ovld __cnfn convert_char3(int3);
1625char3 __ovld __cnfn convert_char3_sat(int3);
1626char3 __ovld __cnfn convert_char3_rte(uint3);
1627char3 __ovld __cnfn convert_char3_sat_rte(uint3);
1628char3 __ovld __cnfn convert_char3_rtz(uint3);
1629char3 __ovld __cnfn convert_char3_sat_rtz(uint3);
1630char3 __ovld __cnfn convert_char3_rtp(uint3);
1631char3 __ovld __cnfn convert_char3_sat_rtp(uint3);
1632char3 __ovld __cnfn convert_char3_rtn(uint3);
1633char3 __ovld __cnfn convert_char3_sat_rtn(uint3);
1634char3 __ovld __cnfn convert_char3(uint3);
1635char3 __ovld __cnfn convert_char3_sat(uint3);
1636char3 __ovld __cnfn convert_char3_rte(long3);
1637char3 __ovld __cnfn convert_char3_sat_rte(long3);
1638char3 __ovld __cnfn convert_char3_rtz(long3);
1639char3 __ovld __cnfn convert_char3_sat_rtz(long3);
1640char3 __ovld __cnfn convert_char3_rtp(long3);
1641char3 __ovld __cnfn convert_char3_sat_rtp(long3);
1642char3 __ovld __cnfn convert_char3_rtn(long3);
1643char3 __ovld __cnfn convert_char3_sat_rtn(long3);
1644char3 __ovld __cnfn convert_char3(long3);
1645char3 __ovld __cnfn convert_char3_sat(long3);
1646char3 __ovld __cnfn convert_char3_rte(ulong3);
1647char3 __ovld __cnfn convert_char3_sat_rte(ulong3);
1648char3 __ovld __cnfn convert_char3_rtz(ulong3);
1649char3 __ovld __cnfn convert_char3_sat_rtz(ulong3);
1650char3 __ovld __cnfn convert_char3_rtp(ulong3);
1651char3 __ovld __cnfn convert_char3_sat_rtp(ulong3);
1652char3 __ovld __cnfn convert_char3_rtn(ulong3);
1653char3 __ovld __cnfn convert_char3_sat_rtn(ulong3);
1654char3 __ovld __cnfn convert_char3(ulong3);
1655char3 __ovld __cnfn convert_char3_sat(ulong3);
1656char3 __ovld __cnfn convert_char3_rte(float3);
1657char3 __ovld __cnfn convert_char3_sat_rte(float3);
1658char3 __ovld __cnfn convert_char3_rtz(float3);
1659char3 __ovld __cnfn convert_char3_sat_rtz(float3);
1660char3 __ovld __cnfn convert_char3_rtp(float3);
1661char3 __ovld __cnfn convert_char3_sat_rtp(float3);
1662char3 __ovld __cnfn convert_char3_rtn(float3);
1663char3 __ovld __cnfn convert_char3_sat_rtn(float3);
1664char3 __ovld __cnfn convert_char3(float3);
1665char3 __ovld __cnfn convert_char3_sat(float3);
1666uchar3 __ovld __cnfn convert_uchar3_rte(char3);
1667uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3);
1668uchar3 __ovld __cnfn convert_uchar3_rtz(char3);
1669uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3);
1670uchar3 __ovld __cnfn convert_uchar3_rtp(char3);
1671uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3);
1672uchar3 __ovld __cnfn convert_uchar3_rtn(char3);
1673uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3);
1674uchar3 __ovld __cnfn convert_uchar3(char3);
1675uchar3 __ovld __cnfn convert_uchar3_sat(char3);
1676uchar3 __ovld __cnfn convert_uchar3_rte(uchar3);
1677uchar3 __ovld __cnfn convert_uchar3_sat_rte(uchar3);
1678uchar3 __ovld __cnfn convert_uchar3_rtz(uchar3);
1679uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uchar3);
1680uchar3 __ovld __cnfn convert_uchar3_rtp(uchar3);
1681uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uchar3);
1682uchar3 __ovld __cnfn convert_uchar3_rtn(uchar3);
1683uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uchar3);
1684uchar3 __ovld __cnfn convert_uchar3(uchar3);
1685uchar3 __ovld __cnfn convert_uchar3_sat(uchar3);
1686uchar3 __ovld __cnfn convert_uchar3_rte(short3);
1687uchar3 __ovld __cnfn convert_uchar3_sat_rte(short3);
1688uchar3 __ovld __cnfn convert_uchar3_rtz(short3);
1689uchar3 __ovld __cnfn convert_uchar3_sat_rtz(short3);
1690uchar3 __ovld __cnfn convert_uchar3_rtp(short3);
1691uchar3 __ovld __cnfn convert_uchar3_sat_rtp(short3);
1692uchar3 __ovld __cnfn convert_uchar3_rtn(short3);
1693uchar3 __ovld __cnfn convert_uchar3_sat_rtn(short3);
1694uchar3 __ovld __cnfn convert_uchar3(short3);
1695uchar3 __ovld __cnfn convert_uchar3_sat(short3);
1696uchar3 __ovld __cnfn convert_uchar3_rte(ushort3);
1697uchar3 __ovld __cnfn convert_uchar3_sat_rte(ushort3);
1698uchar3 __ovld __cnfn convert_uchar3_rtz(ushort3);
1699uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ushort3);
1700uchar3 __ovld __cnfn convert_uchar3_rtp(ushort3);
1701uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ushort3);
1702uchar3 __ovld __cnfn convert_uchar3_rtn(ushort3);
1703uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ushort3);
1704uchar3 __ovld __cnfn convert_uchar3(ushort3);
1705uchar3 __ovld __cnfn convert_uchar3_sat(ushort3);
1706uchar3 __ovld __cnfn convert_uchar3_rte(int3);
1707uchar3 __ovld __cnfn convert_uchar3_sat_rte(int3);
1708uchar3 __ovld __cnfn convert_uchar3_rtz(int3);
1709uchar3 __ovld __cnfn convert_uchar3_sat_rtz(int3);
1710uchar3 __ovld __cnfn convert_uchar3_rtp(int3);
1711uchar3 __ovld __cnfn convert_uchar3_sat_rtp(int3);
1712uchar3 __ovld __cnfn convert_uchar3_rtn(int3);
1713uchar3 __ovld __cnfn convert_uchar3_sat_rtn(int3);
1714uchar3 __ovld __cnfn convert_uchar3(int3);
1715uchar3 __ovld __cnfn convert_uchar3_sat(int3);
1716uchar3 __ovld __cnfn convert_uchar3_rte(uint3);
1717uchar3 __ovld __cnfn convert_uchar3_sat_rte(uint3);
1718uchar3 __ovld __cnfn convert_uchar3_rtz(uint3);
1719uchar3 __ovld __cnfn convert_uchar3_sat_rtz(uint3);
1720uchar3 __ovld __cnfn convert_uchar3_rtp(uint3);
1721uchar3 __ovld __cnfn convert_uchar3_sat_rtp(uint3);
1722uchar3 __ovld __cnfn convert_uchar3_rtn(uint3);
1723uchar3 __ovld __cnfn convert_uchar3_sat_rtn(uint3);
1724uchar3 __ovld __cnfn convert_uchar3(uint3);
1725uchar3 __ovld __cnfn convert_uchar3_sat(uint3);
1726uchar3 __ovld __cnfn convert_uchar3_rte(long3);
1727uchar3 __ovld __cnfn convert_uchar3_sat_rte(long3);
1728uchar3 __ovld __cnfn convert_uchar3_rtz(long3);
1729uchar3 __ovld __cnfn convert_uchar3_sat_rtz(long3);
1730uchar3 __ovld __cnfn convert_uchar3_rtp(long3);
1731uchar3 __ovld __cnfn convert_uchar3_sat_rtp(long3);
1732uchar3 __ovld __cnfn convert_uchar3_rtn(long3);
1733uchar3 __ovld __cnfn convert_uchar3_sat_rtn(long3);
1734uchar3 __ovld __cnfn convert_uchar3(long3);
1735uchar3 __ovld __cnfn convert_uchar3_sat(long3);
1736uchar3 __ovld __cnfn convert_uchar3_rte(ulong3);
1737uchar3 __ovld __cnfn convert_uchar3_sat_rte(ulong3);
1738uchar3 __ovld __cnfn convert_uchar3_rtz(ulong3);
1739uchar3 __ovld __cnfn convert_uchar3_sat_rtz(ulong3);
1740uchar3 __ovld __cnfn convert_uchar3_rtp(ulong3);
1741uchar3 __ovld __cnfn convert_uchar3_sat_rtp(ulong3);
1742uchar3 __ovld __cnfn convert_uchar3_rtn(ulong3);
1743uchar3 __ovld __cnfn convert_uchar3_sat_rtn(ulong3);
1744uchar3 __ovld __cnfn convert_uchar3(ulong3);
1745uchar3 __ovld __cnfn convert_uchar3_sat(ulong3);
1746uchar3 __ovld __cnfn convert_uchar3_rte(float3);
1747uchar3 __ovld __cnfn convert_uchar3_sat_rte(float3);
1748uchar3 __ovld __cnfn convert_uchar3_rtz(float3);
1749uchar3 __ovld __cnfn convert_uchar3_sat_rtz(float3);
1750uchar3 __ovld __cnfn convert_uchar3_rtp(float3);
1751uchar3 __ovld __cnfn convert_uchar3_sat_rtp(float3);
1752uchar3 __ovld __cnfn convert_uchar3_rtn(float3);
1753uchar3 __ovld __cnfn convert_uchar3_sat_rtn(float3);
1754uchar3 __ovld __cnfn convert_uchar3(float3);
1755uchar3 __ovld __cnfn convert_uchar3_sat(float3);
1756short3 __ovld __cnfn convert_short3_rte(char3);
1757short3 __ovld __cnfn convert_short3_sat_rte(char3);
1758short3 __ovld __cnfn convert_short3_rtz(char3);
1759short3 __ovld __cnfn convert_short3_sat_rtz(char3);
1760short3 __ovld __cnfn convert_short3_rtp(char3);
1761short3 __ovld __cnfn convert_short3_sat_rtp(char3);
1762short3 __ovld __cnfn convert_short3_rtn(char3);
1763short3 __ovld __cnfn convert_short3_sat_rtn(char3);
1764short3 __ovld __cnfn convert_short3(char3);
1765short3 __ovld __cnfn convert_short3_sat(char3);
1766short3 __ovld __cnfn convert_short3_rte(uchar3);
1767short3 __ovld __cnfn convert_short3_sat_rte(uchar3);
1768short3 __ovld __cnfn convert_short3_rtz(uchar3);
1769short3 __ovld __cnfn convert_short3_sat_rtz(uchar3);
1770short3 __ovld __cnfn convert_short3_rtp(uchar3);
1771short3 __ovld __cnfn convert_short3_sat_rtp(uchar3);
1772short3 __ovld __cnfn convert_short3_rtn(uchar3);
1773short3 __ovld __cnfn convert_short3_sat_rtn(uchar3);
1774short3 __ovld __cnfn convert_short3(uchar3);
1775short3 __ovld __cnfn convert_short3_sat(uchar3);
1776short3 __ovld __cnfn convert_short3_rte(short3);
1777short3 __ovld __cnfn convert_short3_sat_rte(short3);
1778short3 __ovld __cnfn convert_short3_rtz(short3);
1779short3 __ovld __cnfn convert_short3_sat_rtz(short3);
1780short3 __ovld __cnfn convert_short3_rtp(short3);
1781short3 __ovld __cnfn convert_short3_sat_rtp(short3);
1782short3 __ovld __cnfn convert_short3_rtn(short3);
1783short3 __ovld __cnfn convert_short3_sat_rtn(short3);
1784short3 __ovld __cnfn convert_short3(short3);
1785short3 __ovld __cnfn convert_short3_sat(short3);
1786short3 __ovld __cnfn convert_short3_rte(ushort3);
1787short3 __ovld __cnfn convert_short3_sat_rte(ushort3);
1788short3 __ovld __cnfn convert_short3_rtz(ushort3);
1789short3 __ovld __cnfn convert_short3_sat_rtz(ushort3);
1790short3 __ovld __cnfn convert_short3_rtp(ushort3);
1791short3 __ovld __cnfn convert_short3_sat_rtp(ushort3);
1792short3 __ovld __cnfn convert_short3_rtn(ushort3);
1793short3 __ovld __cnfn convert_short3_sat_rtn(ushort3);
1794short3 __ovld __cnfn convert_short3(ushort3);
1795short3 __ovld __cnfn convert_short3_sat(ushort3);
1796short3 __ovld __cnfn convert_short3_rte(int3);
1797short3 __ovld __cnfn convert_short3_sat_rte(int3);
1798short3 __ovld __cnfn convert_short3_rtz(int3);
1799short3 __ovld __cnfn convert_short3_sat_rtz(int3);
1800short3 __ovld __cnfn convert_short3_rtp(int3);
1801short3 __ovld __cnfn convert_short3_sat_rtp(int3);
1802short3 __ovld __cnfn convert_short3_rtn(int3);
1803short3 __ovld __cnfn convert_short3_sat_rtn(int3);
1804short3 __ovld __cnfn convert_short3(int3);
1805short3 __ovld __cnfn convert_short3_sat(int3);
1806short3 __ovld __cnfn convert_short3_rte(uint3);
1807short3 __ovld __cnfn convert_short3_sat_rte(uint3);
1808short3 __ovld __cnfn convert_short3_rtz(uint3);
1809short3 __ovld __cnfn convert_short3_sat_rtz(uint3);
1810short3 __ovld __cnfn convert_short3_rtp(uint3);
1811short3 __ovld __cnfn convert_short3_sat_rtp(uint3);
1812short3 __ovld __cnfn convert_short3_rtn(uint3);
1813short3 __ovld __cnfn convert_short3_sat_rtn(uint3);
1814short3 __ovld __cnfn convert_short3(uint3);
1815short3 __ovld __cnfn convert_short3_sat(uint3);
1816short3 __ovld __cnfn convert_short3_rte(long3);
1817short3 __ovld __cnfn convert_short3_sat_rte(long3);
1818short3 __ovld __cnfn convert_short3_rtz(long3);
1819short3 __ovld __cnfn convert_short3_sat_rtz(long3);
1820short3 __ovld __cnfn convert_short3_rtp(long3);
1821short3 __ovld __cnfn convert_short3_sat_rtp(long3);
1822short3 __ovld __cnfn convert_short3_rtn(long3);
1823short3 __ovld __cnfn convert_short3_sat_rtn(long3);
1824short3 __ovld __cnfn convert_short3(long3);
1825short3 __ovld __cnfn convert_short3_sat(long3);
1826short3 __ovld __cnfn convert_short3_rte(ulong3);
1827short3 __ovld __cnfn convert_short3_sat_rte(ulong3);
1828short3 __ovld __cnfn convert_short3_rtz(ulong3);
1829short3 __ovld __cnfn convert_short3_sat_rtz(ulong3);
1830short3 __ovld __cnfn convert_short3_rtp(ulong3);
1831short3 __ovld __cnfn convert_short3_sat_rtp(ulong3);
1832short3 __ovld __cnfn convert_short3_rtn(ulong3);
1833short3 __ovld __cnfn convert_short3_sat_rtn(ulong3);
1834short3 __ovld __cnfn convert_short3(ulong3);
1835short3 __ovld __cnfn convert_short3_sat(ulong3);
1836short3 __ovld __cnfn convert_short3_rte(float3);
1837short3 __ovld __cnfn convert_short3_sat_rte(float3);
1838short3 __ovld __cnfn convert_short3_rtz(float3);
1839short3 __ovld __cnfn convert_short3_sat_rtz(float3);
1840short3 __ovld __cnfn convert_short3_rtp(float3);
1841short3 __ovld __cnfn convert_short3_sat_rtp(float3);
1842short3 __ovld __cnfn convert_short3_rtn(float3);
1843short3 __ovld __cnfn convert_short3_sat_rtn(float3);
1844short3 __ovld __cnfn convert_short3(float3);
1845short3 __ovld __cnfn convert_short3_sat(float3);
1846ushort3 __ovld __cnfn convert_ushort3_rte(char3);
1847ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3);
1848ushort3 __ovld __cnfn convert_ushort3_rtz(char3);
1849ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3);
1850ushort3 __ovld __cnfn convert_ushort3_rtp(char3);
1851ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3);
1852ushort3 __ovld __cnfn convert_ushort3_rtn(char3);
1853ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3);
1854ushort3 __ovld __cnfn convert_ushort3(char3);
1855ushort3 __ovld __cnfn convert_ushort3_sat(char3);
1856ushort3 __ovld __cnfn convert_ushort3_rte(uchar3);
1857ushort3 __ovld __cnfn convert_ushort3_sat_rte(uchar3);
1858ushort3 __ovld __cnfn convert_ushort3_rtz(uchar3);
1859ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uchar3);
1860ushort3 __ovld __cnfn convert_ushort3_rtp(uchar3);
1861ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uchar3);
1862ushort3 __ovld __cnfn convert_ushort3_rtn(uchar3);
1863ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uchar3);
1864ushort3 __ovld __cnfn convert_ushort3(uchar3);
1865ushort3 __ovld __cnfn convert_ushort3_sat(uchar3);
1866ushort3 __ovld __cnfn convert_ushort3_rte(short3);
1867ushort3 __ovld __cnfn convert_ushort3_sat_rte(short3);
1868ushort3 __ovld __cnfn convert_ushort3_rtz(short3);
1869ushort3 __ovld __cnfn convert_ushort3_sat_rtz(short3);
1870ushort3 __ovld __cnfn convert_ushort3_rtp(short3);
1871ushort3 __ovld __cnfn convert_ushort3_sat_rtp(short3);
1872ushort3 __ovld __cnfn convert_ushort3_rtn(short3);
1873ushort3 __ovld __cnfn convert_ushort3_sat_rtn(short3);
1874ushort3 __ovld __cnfn convert_ushort3(short3);
1875ushort3 __ovld __cnfn convert_ushort3_sat(short3);
1876ushort3 __ovld __cnfn convert_ushort3_rte(ushort3);
1877ushort3 __ovld __cnfn convert_ushort3_sat_rte(ushort3);
1878ushort3 __ovld __cnfn convert_ushort3_rtz(ushort3);
1879ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ushort3);
1880ushort3 __ovld __cnfn convert_ushort3_rtp(ushort3);
1881ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ushort3);
1882ushort3 __ovld __cnfn convert_ushort3_rtn(ushort3);
1883ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ushort3);
1884ushort3 __ovld __cnfn convert_ushort3(ushort3);
1885ushort3 __ovld __cnfn convert_ushort3_sat(ushort3);
1886ushort3 __ovld __cnfn convert_ushort3_rte(int3);
1887ushort3 __ovld __cnfn convert_ushort3_sat_rte(int3);
1888ushort3 __ovld __cnfn convert_ushort3_rtz(int3);
1889ushort3 __ovld __cnfn convert_ushort3_sat_rtz(int3);
1890ushort3 __ovld __cnfn convert_ushort3_rtp(int3);
1891ushort3 __ovld __cnfn convert_ushort3_sat_rtp(int3);
1892ushort3 __ovld __cnfn convert_ushort3_rtn(int3);
1893ushort3 __ovld __cnfn convert_ushort3_sat_rtn(int3);
1894ushort3 __ovld __cnfn convert_ushort3(int3);
1895ushort3 __ovld __cnfn convert_ushort3_sat(int3);
1896ushort3 __ovld __cnfn convert_ushort3_rte(uint3);
1897ushort3 __ovld __cnfn convert_ushort3_sat_rte(uint3);
1898ushort3 __ovld __cnfn convert_ushort3_rtz(uint3);
1899ushort3 __ovld __cnfn convert_ushort3_sat_rtz(uint3);
1900ushort3 __ovld __cnfn convert_ushort3_rtp(uint3);
1901ushort3 __ovld __cnfn convert_ushort3_sat_rtp(uint3);
1902ushort3 __ovld __cnfn convert_ushort3_rtn(uint3);
1903ushort3 __ovld __cnfn convert_ushort3_sat_rtn(uint3);
1904ushort3 __ovld __cnfn convert_ushort3(uint3);
1905ushort3 __ovld __cnfn convert_ushort3_sat(uint3);
1906ushort3 __ovld __cnfn convert_ushort3_rte(long3);
1907ushort3 __ovld __cnfn convert_ushort3_sat_rte(long3);
1908ushort3 __ovld __cnfn convert_ushort3_rtz(long3);
1909ushort3 __ovld __cnfn convert_ushort3_sat_rtz(long3);
1910ushort3 __ovld __cnfn convert_ushort3_rtp(long3);
1911ushort3 __ovld __cnfn convert_ushort3_sat_rtp(long3);
1912ushort3 __ovld __cnfn convert_ushort3_rtn(long3);
1913ushort3 __ovld __cnfn convert_ushort3_sat_rtn(long3);
1914ushort3 __ovld __cnfn convert_ushort3(long3);
1915ushort3 __ovld __cnfn convert_ushort3_sat(long3);
1916ushort3 __ovld __cnfn convert_ushort3_rte(ulong3);
1917ushort3 __ovld __cnfn convert_ushort3_sat_rte(ulong3);
1918ushort3 __ovld __cnfn convert_ushort3_rtz(ulong3);
1919ushort3 __ovld __cnfn convert_ushort3_sat_rtz(ulong3);
1920ushort3 __ovld __cnfn convert_ushort3_rtp(ulong3);
1921ushort3 __ovld __cnfn convert_ushort3_sat_rtp(ulong3);
1922ushort3 __ovld __cnfn convert_ushort3_rtn(ulong3);
1923ushort3 __ovld __cnfn convert_ushort3_sat_rtn(ulong3);
1924ushort3 __ovld __cnfn convert_ushort3(ulong3);
1925ushort3 __ovld __cnfn convert_ushort3_sat(ulong3);
1926ushort3 __ovld __cnfn convert_ushort3_rte(float3);
1927ushort3 __ovld __cnfn convert_ushort3_sat_rte(float3);
1928ushort3 __ovld __cnfn convert_ushort3_rtz(float3);
1929ushort3 __ovld __cnfn convert_ushort3_sat_rtz(float3);
1930ushort3 __ovld __cnfn convert_ushort3_rtp(float3);
1931ushort3 __ovld __cnfn convert_ushort3_sat_rtp(float3);
1932ushort3 __ovld __cnfn convert_ushort3_rtn(float3);
1933ushort3 __ovld __cnfn convert_ushort3_sat_rtn(float3);
1934ushort3 __ovld __cnfn convert_ushort3(float3);
1935ushort3 __ovld __cnfn convert_ushort3_sat(float3);
1936int3 __ovld __cnfn convert_int3_rte(char3);
1937int3 __ovld __cnfn convert_int3_sat_rte(char3);
1938int3 __ovld __cnfn convert_int3_rtz(char3);
1939int3 __ovld __cnfn convert_int3_sat_rtz(char3);
1940int3 __ovld __cnfn convert_int3_rtp(char3);
1941int3 __ovld __cnfn convert_int3_sat_rtp(char3);
1942int3 __ovld __cnfn convert_int3_rtn(char3);
1943int3 __ovld __cnfn convert_int3_sat_rtn(char3);
1944int3 __ovld __cnfn convert_int3(char3);
1945int3 __ovld __cnfn convert_int3_sat(char3);
1946int3 __ovld __cnfn convert_int3_rte(uchar3);
1947int3 __ovld __cnfn convert_int3_sat_rte(uchar3);
1948int3 __ovld __cnfn convert_int3_rtz(uchar3);
1949int3 __ovld __cnfn convert_int3_sat_rtz(uchar3);
1950int3 __ovld __cnfn convert_int3_rtp(uchar3);
1951int3 __ovld __cnfn convert_int3_sat_rtp(uchar3);
1952int3 __ovld __cnfn convert_int3_rtn(uchar3);
1953int3 __ovld __cnfn convert_int3_sat_rtn(uchar3);
1954int3 __ovld __cnfn convert_int3(uchar3);
1955int3 __ovld __cnfn convert_int3_sat(uchar3);
1956int3 __ovld __cnfn convert_int3_rte(short3);
1957int3 __ovld __cnfn convert_int3_sat_rte(short3);
1958int3 __ovld __cnfn convert_int3_rtz(short3);
1959int3 __ovld __cnfn convert_int3_sat_rtz(short3);
1960int3 __ovld __cnfn convert_int3_rtp(short3);
1961int3 __ovld __cnfn convert_int3_sat_rtp(short3);
1962int3 __ovld __cnfn convert_int3_rtn(short3);
1963int3 __ovld __cnfn convert_int3_sat_rtn(short3);
1964int3 __ovld __cnfn convert_int3(short3);
1965int3 __ovld __cnfn convert_int3_sat(short3);
1966int3 __ovld __cnfn convert_int3_rte(ushort3);
1967int3 __ovld __cnfn convert_int3_sat_rte(ushort3);
1968int3 __ovld __cnfn convert_int3_rtz(ushort3);
1969int3 __ovld __cnfn convert_int3_sat_rtz(ushort3);
1970int3 __ovld __cnfn convert_int3_rtp(ushort3);
1971int3 __ovld __cnfn convert_int3_sat_rtp(ushort3);
1972int3 __ovld __cnfn convert_int3_rtn(ushort3);
1973int3 __ovld __cnfn convert_int3_sat_rtn(ushort3);
1974int3 __ovld __cnfn convert_int3(ushort3);
1975int3 __ovld __cnfn convert_int3_sat(ushort3);
1976int3 __ovld __cnfn convert_int3_rte(int3);
1977int3 __ovld __cnfn convert_int3_sat_rte(int3);
1978int3 __ovld __cnfn convert_int3_rtz(int3);
1979int3 __ovld __cnfn convert_int3_sat_rtz(int3);
1980int3 __ovld __cnfn convert_int3_rtp(int3);
1981int3 __ovld __cnfn convert_int3_sat_rtp(int3);
1982int3 __ovld __cnfn convert_int3_rtn(int3);
1983int3 __ovld __cnfn convert_int3_sat_rtn(int3);
1984int3 __ovld __cnfn convert_int3(int3);
1985int3 __ovld __cnfn convert_int3_sat(int3);
1986int3 __ovld __cnfn convert_int3_rte(uint3);
1987int3 __ovld __cnfn convert_int3_sat_rte(uint3);
1988int3 __ovld __cnfn convert_int3_rtz(uint3);
1989int3 __ovld __cnfn convert_int3_sat_rtz(uint3);
1990int3 __ovld __cnfn convert_int3_rtp(uint3);
1991int3 __ovld __cnfn convert_int3_sat_rtp(uint3);
1992int3 __ovld __cnfn convert_int3_rtn(uint3);
1993int3 __ovld __cnfn convert_int3_sat_rtn(uint3);
1994int3 __ovld __cnfn convert_int3(uint3);
1995int3 __ovld __cnfn convert_int3_sat(uint3);
1996int3 __ovld __cnfn convert_int3_rte(long3);
1997int3 __ovld __cnfn convert_int3_sat_rte(long3);
1998int3 __ovld __cnfn convert_int3_rtz(long3);
1999int3 __ovld __cnfn convert_int3_sat_rtz(long3);
2000int3 __ovld __cnfn convert_int3_rtp(long3);
2001int3 __ovld __cnfn convert_int3_sat_rtp(long3);
2002int3 __ovld __cnfn convert_int3_rtn(long3);
2003int3 __ovld __cnfn convert_int3_sat_rtn(long3);
2004int3 __ovld __cnfn convert_int3(long3);
2005int3 __ovld __cnfn convert_int3_sat(long3);
2006int3 __ovld __cnfn convert_int3_rte(ulong3);
2007int3 __ovld __cnfn convert_int3_sat_rte(ulong3);
2008int3 __ovld __cnfn convert_int3_rtz(ulong3);
2009int3 __ovld __cnfn convert_int3_sat_rtz(ulong3);
2010int3 __ovld __cnfn convert_int3_rtp(ulong3);
2011int3 __ovld __cnfn convert_int3_sat_rtp(ulong3);
2012int3 __ovld __cnfn convert_int3_rtn(ulong3);
2013int3 __ovld __cnfn convert_int3_sat_rtn(ulong3);
2014int3 __ovld __cnfn convert_int3(ulong3);
2015int3 __ovld __cnfn convert_int3_sat(ulong3);
2016int3 __ovld __cnfn convert_int3_rte(float3);
2017int3 __ovld __cnfn convert_int3_sat_rte(float3);
2018int3 __ovld __cnfn convert_int3_rtz(float3);
2019int3 __ovld __cnfn convert_int3_sat_rtz(float3);
2020int3 __ovld __cnfn convert_int3_rtp(float3);
2021int3 __ovld __cnfn convert_int3_sat_rtp(float3);
2022int3 __ovld __cnfn convert_int3_rtn(float3);
2023int3 __ovld __cnfn convert_int3_sat_rtn(float3);
2024int3 __ovld __cnfn convert_int3(float3);
2025int3 __ovld __cnfn convert_int3_sat(float3);
2026uint3 __ovld __cnfn convert_uint3_rte(char3);
2027uint3 __ovld __cnfn convert_uint3_sat_rte(char3);
2028uint3 __ovld __cnfn convert_uint3_rtz(char3);
2029uint3 __ovld __cnfn convert_uint3_sat_rtz(char3);
2030uint3 __ovld __cnfn convert_uint3_rtp(char3);
2031uint3 __ovld __cnfn convert_uint3_sat_rtp(char3);
2032uint3 __ovld __cnfn convert_uint3_rtn(char3);
2033uint3 __ovld __cnfn convert_uint3_sat_rtn(char3);
2034uint3 __ovld __cnfn convert_uint3(char3);
2035uint3 __ovld __cnfn convert_uint3_sat(char3);
2036uint3 __ovld __cnfn convert_uint3_rte(uchar3);
2037uint3 __ovld __cnfn convert_uint3_sat_rte(uchar3);
2038uint3 __ovld __cnfn convert_uint3_rtz(uchar3);
2039uint3 __ovld __cnfn convert_uint3_sat_rtz(uchar3);
2040uint3 __ovld __cnfn convert_uint3_rtp(uchar3);
2041uint3 __ovld __cnfn convert_uint3_sat_rtp(uchar3);
2042uint3 __ovld __cnfn convert_uint3_rtn(uchar3);
2043uint3 __ovld __cnfn convert_uint3_sat_rtn(uchar3);
2044uint3 __ovld __cnfn convert_uint3(uchar3);
2045uint3 __ovld __cnfn convert_uint3_sat(uchar3);
2046uint3 __ovld __cnfn convert_uint3_rte(short3);
2047uint3 __ovld __cnfn convert_uint3_sat_rte(short3);
2048uint3 __ovld __cnfn convert_uint3_rtz(short3);
2049uint3 __ovld __cnfn convert_uint3_sat_rtz(short3);
2050uint3 __ovld __cnfn convert_uint3_rtp(short3);
2051uint3 __ovld __cnfn convert_uint3_sat_rtp(short3);
2052uint3 __ovld __cnfn convert_uint3_rtn(short3);
2053uint3 __ovld __cnfn convert_uint3_sat_rtn(short3);
2054uint3 __ovld __cnfn convert_uint3(short3);
2055uint3 __ovld __cnfn convert_uint3_sat(short3);
2056uint3 __ovld __cnfn convert_uint3_rte(ushort3);
2057uint3 __ovld __cnfn convert_uint3_sat_rte(ushort3);
2058uint3 __ovld __cnfn convert_uint3_rtz(ushort3);
2059uint3 __ovld __cnfn convert_uint3_sat_rtz(ushort3);
2060uint3 __ovld __cnfn convert_uint3_rtp(ushort3);
2061uint3 __ovld __cnfn convert_uint3_sat_rtp(ushort3);
2062uint3 __ovld __cnfn convert_uint3_rtn(ushort3);
2063uint3 __ovld __cnfn convert_uint3_sat_rtn(ushort3);
2064uint3 __ovld __cnfn convert_uint3(ushort3);
2065uint3 __ovld __cnfn convert_uint3_sat(ushort3);
2066uint3 __ovld __cnfn convert_uint3_rte(int3);
2067uint3 __ovld __cnfn convert_uint3_sat_rte(int3);
2068uint3 __ovld __cnfn convert_uint3_rtz(int3);
2069uint3 __ovld __cnfn convert_uint3_sat_rtz(int3);
2070uint3 __ovld __cnfn convert_uint3_rtp(int3);
2071uint3 __ovld __cnfn convert_uint3_sat_rtp(int3);
2072uint3 __ovld __cnfn convert_uint3_rtn(int3);
2073uint3 __ovld __cnfn convert_uint3_sat_rtn(int3);
2074uint3 __ovld __cnfn convert_uint3(int3);
2075uint3 __ovld __cnfn convert_uint3_sat(int3);
2076uint3 __ovld __cnfn convert_uint3_rte(uint3);
2077uint3 __ovld __cnfn convert_uint3_sat_rte(uint3);
2078uint3 __ovld __cnfn convert_uint3_rtz(uint3);
2079uint3 __ovld __cnfn convert_uint3_sat_rtz(uint3);
2080uint3 __ovld __cnfn convert_uint3_rtp(uint3);
2081uint3 __ovld __cnfn convert_uint3_sat_rtp(uint3);
2082uint3 __ovld __cnfn convert_uint3_rtn(uint3);
2083uint3 __ovld __cnfn convert_uint3_sat_rtn(uint3);
2084uint3 __ovld __cnfn convert_uint3(uint3);
2085uint3 __ovld __cnfn convert_uint3_sat(uint3);
2086uint3 __ovld __cnfn convert_uint3_rte(long3);
2087uint3 __ovld __cnfn convert_uint3_sat_rte(long3);
2088uint3 __ovld __cnfn convert_uint3_rtz(long3);
2089uint3 __ovld __cnfn convert_uint3_sat_rtz(long3);
2090uint3 __ovld __cnfn convert_uint3_rtp(long3);
2091uint3 __ovld __cnfn convert_uint3_sat_rtp(long3);
2092uint3 __ovld __cnfn convert_uint3_rtn(long3);
2093uint3 __ovld __cnfn convert_uint3_sat_rtn(long3);
2094uint3 __ovld __cnfn convert_uint3(long3);
2095uint3 __ovld __cnfn convert_uint3_sat(long3);
2096uint3 __ovld __cnfn convert_uint3_rte(ulong3);
2097uint3 __ovld __cnfn convert_uint3_sat_rte(ulong3);
2098uint3 __ovld __cnfn convert_uint3_rtz(ulong3);
2099uint3 __ovld __cnfn convert_uint3_sat_rtz(ulong3);
2100uint3 __ovld __cnfn convert_uint3_rtp(ulong3);
2101uint3 __ovld __cnfn convert_uint3_sat_rtp(ulong3);
2102uint3 __ovld __cnfn convert_uint3_rtn(ulong3);
2103uint3 __ovld __cnfn convert_uint3_sat_rtn(ulong3);
2104uint3 __ovld __cnfn convert_uint3(ulong3);
2105uint3 __ovld __cnfn convert_uint3_sat(ulong3);
2106uint3 __ovld __cnfn convert_uint3_rte(float3);
2107uint3 __ovld __cnfn convert_uint3_sat_rte(float3);
2108uint3 __ovld __cnfn convert_uint3_rtz(float3);
2109uint3 __ovld __cnfn convert_uint3_sat_rtz(float3);
2110uint3 __ovld __cnfn convert_uint3_rtp(float3);
2111uint3 __ovld __cnfn convert_uint3_sat_rtp(float3);
2112uint3 __ovld __cnfn convert_uint3_rtn(float3);
2113uint3 __ovld __cnfn convert_uint3_sat_rtn(float3);
2114uint3 __ovld __cnfn convert_uint3(float3);
2115uint3 __ovld __cnfn convert_uint3_sat(float3);
2116long3 __ovld __cnfn convert_long3_rte(char3);
2117long3 __ovld __cnfn convert_long3_sat_rte(char3);
2118long3 __ovld __cnfn convert_long3_rtz(char3);
2119long3 __ovld __cnfn convert_long3_sat_rtz(char3);
2120long3 __ovld __cnfn convert_long3_rtp(char3);
2121long3 __ovld __cnfn convert_long3_sat_rtp(char3);
2122long3 __ovld __cnfn convert_long3_rtn(char3);
2123long3 __ovld __cnfn convert_long3_sat_rtn(char3);
2124long3 __ovld __cnfn convert_long3(char3);
2125long3 __ovld __cnfn convert_long3_sat(char3);
2126long3 __ovld __cnfn convert_long3_rte(uchar3);
2127long3 __ovld __cnfn convert_long3_sat_rte(uchar3);
2128long3 __ovld __cnfn convert_long3_rtz(uchar3);
2129long3 __ovld __cnfn convert_long3_sat_rtz(uchar3);
2130long3 __ovld __cnfn convert_long3_rtp(uchar3);
2131long3 __ovld __cnfn convert_long3_sat_rtp(uchar3);
2132long3 __ovld __cnfn convert_long3_rtn(uchar3);
2133long3 __ovld __cnfn convert_long3_sat_rtn(uchar3);
2134long3 __ovld __cnfn convert_long3(uchar3);
2135long3 __ovld __cnfn convert_long3_sat(uchar3);
2136long3 __ovld __cnfn convert_long3_rte(short3);
2137long3 __ovld __cnfn convert_long3_sat_rte(short3);
2138long3 __ovld __cnfn convert_long3_rtz(short3);
2139long3 __ovld __cnfn convert_long3_sat_rtz(short3);
2140long3 __ovld __cnfn convert_long3_rtp(short3);
2141long3 __ovld __cnfn convert_long3_sat_rtp(short3);
2142long3 __ovld __cnfn convert_long3_rtn(short3);
2143long3 __ovld __cnfn convert_long3_sat_rtn(short3);
2144long3 __ovld __cnfn convert_long3(short3);
2145long3 __ovld __cnfn convert_long3_sat(short3);
2146long3 __ovld __cnfn convert_long3_rte(ushort3);
2147long3 __ovld __cnfn convert_long3_sat_rte(ushort3);
2148long3 __ovld __cnfn convert_long3_rtz(ushort3);
2149long3 __ovld __cnfn convert_long3_sat_rtz(ushort3);
2150long3 __ovld __cnfn convert_long3_rtp(ushort3);
2151long3 __ovld __cnfn convert_long3_sat_rtp(ushort3);
2152long3 __ovld __cnfn convert_long3_rtn(ushort3);
2153long3 __ovld __cnfn convert_long3_sat_rtn(ushort3);
2154long3 __ovld __cnfn convert_long3(ushort3);
2155long3 __ovld __cnfn convert_long3_sat(ushort3);
2156long3 __ovld __cnfn convert_long3_rte(int3);
2157long3 __ovld __cnfn convert_long3_sat_rte(int3);
2158long3 __ovld __cnfn convert_long3_rtz(int3);
2159long3 __ovld __cnfn convert_long3_sat_rtz(int3);
2160long3 __ovld __cnfn convert_long3_rtp(int3);
2161long3 __ovld __cnfn convert_long3_sat_rtp(int3);
2162long3 __ovld __cnfn convert_long3_rtn(int3);
2163long3 __ovld __cnfn convert_long3_sat_rtn(int3);
2164long3 __ovld __cnfn convert_long3(int3);
2165long3 __ovld __cnfn convert_long3_sat(int3);
2166long3 __ovld __cnfn convert_long3_rte(uint3);
2167long3 __ovld __cnfn convert_long3_sat_rte(uint3);
2168long3 __ovld __cnfn convert_long3_rtz(uint3);
2169long3 __ovld __cnfn convert_long3_sat_rtz(uint3);
2170long3 __ovld __cnfn convert_long3_rtp(uint3);
2171long3 __ovld __cnfn convert_long3_sat_rtp(uint3);
2172long3 __ovld __cnfn convert_long3_rtn(uint3);
2173long3 __ovld __cnfn convert_long3_sat_rtn(uint3);
2174long3 __ovld __cnfn convert_long3(uint3);
2175long3 __ovld __cnfn convert_long3_sat(uint3);
2176long3 __ovld __cnfn convert_long3_rte(long3);
2177long3 __ovld __cnfn convert_long3_sat_rte(long3);
2178long3 __ovld __cnfn convert_long3_rtz(long3);
2179long3 __ovld __cnfn convert_long3_sat_rtz(long3);
2180long3 __ovld __cnfn convert_long3_rtp(long3);
2181long3 __ovld __cnfn convert_long3_sat_rtp(long3);
2182long3 __ovld __cnfn convert_long3_rtn(long3);
2183long3 __ovld __cnfn convert_long3_sat_rtn(long3);
2184long3 __ovld __cnfn convert_long3(long3);
2185long3 __ovld __cnfn convert_long3_sat(long3);
2186long3 __ovld __cnfn convert_long3_rte(ulong3);
2187long3 __ovld __cnfn convert_long3_sat_rte(ulong3);
2188long3 __ovld __cnfn convert_long3_rtz(ulong3);
2189long3 __ovld __cnfn convert_long3_sat_rtz(ulong3);
2190long3 __ovld __cnfn convert_long3_rtp(ulong3);
2191long3 __ovld __cnfn convert_long3_sat_rtp(ulong3);
2192long3 __ovld __cnfn convert_long3_rtn(ulong3);
2193long3 __ovld __cnfn convert_long3_sat_rtn(ulong3);
2194long3 __ovld __cnfn convert_long3(ulong3);
2195long3 __ovld __cnfn convert_long3_sat(ulong3);
2196long3 __ovld __cnfn convert_long3_rte(float3);
2197long3 __ovld __cnfn convert_long3_sat_rte(float3);
2198long3 __ovld __cnfn convert_long3_rtz(float3);
2199long3 __ovld __cnfn convert_long3_sat_rtz(float3);
2200long3 __ovld __cnfn convert_long3_rtp(float3);
2201long3 __ovld __cnfn convert_long3_sat_rtp(float3);
2202long3 __ovld __cnfn convert_long3_rtn(float3);
2203long3 __ovld __cnfn convert_long3_sat_rtn(float3);
2204long3 __ovld __cnfn convert_long3(float3);
2205long3 __ovld __cnfn convert_long3_sat(float3);
2206ulong3 __ovld __cnfn convert_ulong3_rte(char3);
2207ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3);
2208ulong3 __ovld __cnfn convert_ulong3_rtz(char3);
2209ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3);
2210ulong3 __ovld __cnfn convert_ulong3_rtp(char3);
2211ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3);
2212ulong3 __ovld __cnfn convert_ulong3_rtn(char3);
2213ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3);
2214ulong3 __ovld __cnfn convert_ulong3(char3);
2215ulong3 __ovld __cnfn convert_ulong3_sat(char3);
2216ulong3 __ovld __cnfn convert_ulong3_rte(uchar3);
2217ulong3 __ovld __cnfn convert_ulong3_sat_rte(uchar3);
2218ulong3 __ovld __cnfn convert_ulong3_rtz(uchar3);
2219ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uchar3);
2220ulong3 __ovld __cnfn convert_ulong3_rtp(uchar3);
2221ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uchar3);
2222ulong3 __ovld __cnfn convert_ulong3_rtn(uchar3);
2223ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uchar3);
2224ulong3 __ovld __cnfn convert_ulong3(uchar3);
2225ulong3 __ovld __cnfn convert_ulong3_sat(uchar3);
2226ulong3 __ovld __cnfn convert_ulong3_rte(short3);
2227ulong3 __ovld __cnfn convert_ulong3_sat_rte(short3);
2228ulong3 __ovld __cnfn convert_ulong3_rtz(short3);
2229ulong3 __ovld __cnfn convert_ulong3_sat_rtz(short3);
2230ulong3 __ovld __cnfn convert_ulong3_rtp(short3);
2231ulong3 __ovld __cnfn convert_ulong3_sat_rtp(short3);
2232ulong3 __ovld __cnfn convert_ulong3_rtn(short3);
2233ulong3 __ovld __cnfn convert_ulong3_sat_rtn(short3);
2234ulong3 __ovld __cnfn convert_ulong3(short3);
2235ulong3 __ovld __cnfn convert_ulong3_sat(short3);
2236ulong3 __ovld __cnfn convert_ulong3_rte(ushort3);
2237ulong3 __ovld __cnfn convert_ulong3_sat_rte(ushort3);
2238ulong3 __ovld __cnfn convert_ulong3_rtz(ushort3);
2239ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ushort3);
2240ulong3 __ovld __cnfn convert_ulong3_rtp(ushort3);
2241ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ushort3);
2242ulong3 __ovld __cnfn convert_ulong3_rtn(ushort3);
2243ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ushort3);
2244ulong3 __ovld __cnfn convert_ulong3(ushort3);
2245ulong3 __ovld __cnfn convert_ulong3_sat(ushort3);
2246ulong3 __ovld __cnfn convert_ulong3_rte(int3);
2247ulong3 __ovld __cnfn convert_ulong3_sat_rte(int3);
2248ulong3 __ovld __cnfn convert_ulong3_rtz(int3);
2249ulong3 __ovld __cnfn convert_ulong3_sat_rtz(int3);
2250ulong3 __ovld __cnfn convert_ulong3_rtp(int3);
2251ulong3 __ovld __cnfn convert_ulong3_sat_rtp(int3);
2252ulong3 __ovld __cnfn convert_ulong3_rtn(int3);
2253ulong3 __ovld __cnfn convert_ulong3_sat_rtn(int3);
2254ulong3 __ovld __cnfn convert_ulong3(int3);
2255ulong3 __ovld __cnfn convert_ulong3_sat(int3);
2256ulong3 __ovld __cnfn convert_ulong3_rte(uint3);
2257ulong3 __ovld __cnfn convert_ulong3_sat_rte(uint3);
2258ulong3 __ovld __cnfn convert_ulong3_rtz(uint3);
2259ulong3 __ovld __cnfn convert_ulong3_sat_rtz(uint3);
2260ulong3 __ovld __cnfn convert_ulong3_rtp(uint3);
2261ulong3 __ovld __cnfn convert_ulong3_sat_rtp(uint3);
2262ulong3 __ovld __cnfn convert_ulong3_rtn(uint3);
2263ulong3 __ovld __cnfn convert_ulong3_sat_rtn(uint3);
2264ulong3 __ovld __cnfn convert_ulong3(uint3);
2265ulong3 __ovld __cnfn convert_ulong3_sat(uint3);
2266ulong3 __ovld __cnfn convert_ulong3_rte(long3);
2267ulong3 __ovld __cnfn convert_ulong3_sat_rte(long3);
2268ulong3 __ovld __cnfn convert_ulong3_rtz(long3);
2269ulong3 __ovld __cnfn convert_ulong3_sat_rtz(long3);
2270ulong3 __ovld __cnfn convert_ulong3_rtp(long3);
2271ulong3 __ovld __cnfn convert_ulong3_sat_rtp(long3);
2272ulong3 __ovld __cnfn convert_ulong3_rtn(long3);
2273ulong3 __ovld __cnfn convert_ulong3_sat_rtn(long3);
2274ulong3 __ovld __cnfn convert_ulong3(long3);
2275ulong3 __ovld __cnfn convert_ulong3_sat(long3);
2276ulong3 __ovld __cnfn convert_ulong3_rte(ulong3);
2277ulong3 __ovld __cnfn convert_ulong3_sat_rte(ulong3);
2278ulong3 __ovld __cnfn convert_ulong3_rtz(ulong3);
2279ulong3 __ovld __cnfn convert_ulong3_sat_rtz(ulong3);
2280ulong3 __ovld __cnfn convert_ulong3_rtp(ulong3);
2281ulong3 __ovld __cnfn convert_ulong3_sat_rtp(ulong3);
2282ulong3 __ovld __cnfn convert_ulong3_rtn(ulong3);
2283ulong3 __ovld __cnfn convert_ulong3_sat_rtn(ulong3);
2284ulong3 __ovld __cnfn convert_ulong3(ulong3);
2285ulong3 __ovld __cnfn convert_ulong3_sat(ulong3);
2286ulong3 __ovld __cnfn convert_ulong3_rte(float3);
2287ulong3 __ovld __cnfn convert_ulong3_sat_rte(float3);
2288ulong3 __ovld __cnfn convert_ulong3_rtz(float3);
2289ulong3 __ovld __cnfn convert_ulong3_sat_rtz(float3);
2290ulong3 __ovld __cnfn convert_ulong3_rtp(float3);
2291ulong3 __ovld __cnfn convert_ulong3_sat_rtp(float3);
2292ulong3 __ovld __cnfn convert_ulong3_rtn(float3);
2293ulong3 __ovld __cnfn convert_ulong3_sat_rtn(float3);
2294ulong3 __ovld __cnfn convert_ulong3(float3);
2295ulong3 __ovld __cnfn convert_ulong3_sat(float3);
2296float3 __ovld __cnfn convert_float3_rte(char3);
2297float3 __ovld __cnfn convert_float3_rtz(char3);
2298float3 __ovld __cnfn convert_float3_rtp(char3);
2299float3 __ovld __cnfn convert_float3_rtn(char3);
2300float3 __ovld __cnfn convert_float3(char3);
2301float3 __ovld __cnfn convert_float3_rte(uchar3);
2302float3 __ovld __cnfn convert_float3_rtz(uchar3);
2303float3 __ovld __cnfn convert_float3_rtp(uchar3);
2304float3 __ovld __cnfn convert_float3_rtn(uchar3);
2305float3 __ovld __cnfn convert_float3(uchar3);
2306float3 __ovld __cnfn convert_float3_rte(short3);
2307float3 __ovld __cnfn convert_float3_rtz(short3);
2308float3 __ovld __cnfn convert_float3_rtp(short3);
2309float3 __ovld __cnfn convert_float3_rtn(short3);
2310float3 __ovld __cnfn convert_float3(short3);
2311float3 __ovld __cnfn convert_float3_rte(ushort3);
2312float3 __ovld __cnfn convert_float3_rtz(ushort3);
2313float3 __ovld __cnfn convert_float3_rtp(ushort3);
2314float3 __ovld __cnfn convert_float3_rtn(ushort3);
2315float3 __ovld __cnfn convert_float3(ushort3);
2316float3 __ovld __cnfn convert_float3_rte(int3);
2317float3 __ovld __cnfn convert_float3_rtz(int3);
2318float3 __ovld __cnfn convert_float3_rtp(int3);
2319float3 __ovld __cnfn convert_float3_rtn(int3);
2320float3 __ovld __cnfn convert_float3(int3);
2321float3 __ovld __cnfn convert_float3_rte(uint3);
2322float3 __ovld __cnfn convert_float3_rtz(uint3);
2323float3 __ovld __cnfn convert_float3_rtp(uint3);
2324float3 __ovld __cnfn convert_float3_rtn(uint3);
2325float3 __ovld __cnfn convert_float3(uint3);
2326float3 __ovld __cnfn convert_float3_rte(long3);
2327float3 __ovld __cnfn convert_float3_rtz(long3);
2328float3 __ovld __cnfn convert_float3_rtp(long3);
2329float3 __ovld __cnfn convert_float3_rtn(long3);
2330float3 __ovld __cnfn convert_float3(long3);
2331float3 __ovld __cnfn convert_float3_rte(ulong3);
2332float3 __ovld __cnfn convert_float3_rtz(ulong3);
2333float3 __ovld __cnfn convert_float3_rtp(ulong3);
2334float3 __ovld __cnfn convert_float3_rtn(ulong3);
2335float3 __ovld __cnfn convert_float3(ulong3);
2336float3 __ovld __cnfn convert_float3_rte(float3);
2337float3 __ovld __cnfn convert_float3_rtz(float3);
2338float3 __ovld __cnfn convert_float3_rtp(float3);
2339float3 __ovld __cnfn convert_float3_rtn(float3);
2340float3 __ovld __cnfn convert_float3(float3);
2341char4 __ovld __cnfn convert_char4_rte(char4);
2342char4 __ovld __cnfn convert_char4_sat_rte(char4);
2343char4 __ovld __cnfn convert_char4_rtz(char4);
2344char4 __ovld __cnfn convert_char4_sat_rtz(char4);
2345char4 __ovld __cnfn convert_char4_rtp(char4);
2346char4 __ovld __cnfn convert_char4_sat_rtp(char4);
2347char4 __ovld __cnfn convert_char4_rtn(char4);
2348char4 __ovld __cnfn convert_char4_sat_rtn(char4);
2349char4 __ovld __cnfn convert_char4(char4);
2350char4 __ovld __cnfn convert_char4_sat(char4);
2351char4 __ovld __cnfn convert_char4_rte(uchar4);
2352char4 __ovld __cnfn convert_char4_sat_rte(uchar4);
2353char4 __ovld __cnfn convert_char4_rtz(uchar4);
2354char4 __ovld __cnfn convert_char4_sat_rtz(uchar4);
2355char4 __ovld __cnfn convert_char4_rtp(uchar4);
2356char4 __ovld __cnfn convert_char4_sat_rtp(uchar4);
2357char4 __ovld __cnfn convert_char4_rtn(uchar4);
2358char4 __ovld __cnfn convert_char4_sat_rtn(uchar4);
2359char4 __ovld __cnfn convert_char4(uchar4);
2360char4 __ovld __cnfn convert_char4_sat(uchar4);
2361char4 __ovld __cnfn convert_char4_rte(short4);
2362char4 __ovld __cnfn convert_char4_sat_rte(short4);
2363char4 __ovld __cnfn convert_char4_rtz(short4);
2364char4 __ovld __cnfn convert_char4_sat_rtz(short4);
2365char4 __ovld __cnfn convert_char4_rtp(short4);
2366char4 __ovld __cnfn convert_char4_sat_rtp(short4);
2367char4 __ovld __cnfn convert_char4_rtn(short4);
2368char4 __ovld __cnfn convert_char4_sat_rtn(short4);
2369char4 __ovld __cnfn convert_char4(short4);
2370char4 __ovld __cnfn convert_char4_sat(short4);
2371char4 __ovld __cnfn convert_char4_rte(ushort4);
2372char4 __ovld __cnfn convert_char4_sat_rte(ushort4);
2373char4 __ovld __cnfn convert_char4_rtz(ushort4);
2374char4 __ovld __cnfn convert_char4_sat_rtz(ushort4);
2375char4 __ovld __cnfn convert_char4_rtp(ushort4);
2376char4 __ovld __cnfn convert_char4_sat_rtp(ushort4);
2377char4 __ovld __cnfn convert_char4_rtn(ushort4);
2378char4 __ovld __cnfn convert_char4_sat_rtn(ushort4);
2379char4 __ovld __cnfn convert_char4(ushort4);
2380char4 __ovld __cnfn convert_char4_sat(ushort4);
2381char4 __ovld __cnfn convert_char4_rte(int4);
2382char4 __ovld __cnfn convert_char4_sat_rte(int4);
2383char4 __ovld __cnfn convert_char4_rtz(int4);
2384char4 __ovld __cnfn convert_char4_sat_rtz(int4);
2385char4 __ovld __cnfn convert_char4_rtp(int4);
2386char4 __ovld __cnfn convert_char4_sat_rtp(int4);
2387char4 __ovld __cnfn convert_char4_rtn(int4);
2388char4 __ovld __cnfn convert_char4_sat_rtn(int4);
2389char4 __ovld __cnfn convert_char4(int4);
2390char4 __ovld __cnfn convert_char4_sat(int4);
2391char4 __ovld __cnfn convert_char4_rte(uint4);
2392char4 __ovld __cnfn convert_char4_sat_rte(uint4);
2393char4 __ovld __cnfn convert_char4_rtz(uint4);
2394char4 __ovld __cnfn convert_char4_sat_rtz(uint4);
2395char4 __ovld __cnfn convert_char4_rtp(uint4);
2396char4 __ovld __cnfn convert_char4_sat_rtp(uint4);
2397char4 __ovld __cnfn convert_char4_rtn(uint4);
2398char4 __ovld __cnfn convert_char4_sat_rtn(uint4);
2399char4 __ovld __cnfn convert_char4(uint4);
2400char4 __ovld __cnfn convert_char4_sat(uint4);
2401char4 __ovld __cnfn convert_char4_rte(long4);
2402char4 __ovld __cnfn convert_char4_sat_rte(long4);
2403char4 __ovld __cnfn convert_char4_rtz(long4);
2404char4 __ovld __cnfn convert_char4_sat_rtz(long4);
2405char4 __ovld __cnfn convert_char4_rtp(long4);
2406char4 __ovld __cnfn convert_char4_sat_rtp(long4);
2407char4 __ovld __cnfn convert_char4_rtn(long4);
2408char4 __ovld __cnfn convert_char4_sat_rtn(long4);
2409char4 __ovld __cnfn convert_char4(long4);
2410char4 __ovld __cnfn convert_char4_sat(long4);
2411char4 __ovld __cnfn convert_char4_rte(ulong4);
2412char4 __ovld __cnfn convert_char4_sat_rte(ulong4);
2413char4 __ovld __cnfn convert_char4_rtz(ulong4);
2414char4 __ovld __cnfn convert_char4_sat_rtz(ulong4);
2415char4 __ovld __cnfn convert_char4_rtp(ulong4);
2416char4 __ovld __cnfn convert_char4_sat_rtp(ulong4);
2417char4 __ovld __cnfn convert_char4_rtn(ulong4);
2418char4 __ovld __cnfn convert_char4_sat_rtn(ulong4);
2419char4 __ovld __cnfn convert_char4(ulong4);
2420char4 __ovld __cnfn convert_char4_sat(ulong4);
2421char4 __ovld __cnfn convert_char4_rte(float4);
2422char4 __ovld __cnfn convert_char4_sat_rte(float4);
2423char4 __ovld __cnfn convert_char4_rtz(float4);
2424char4 __ovld __cnfn convert_char4_sat_rtz(float4);
2425char4 __ovld __cnfn convert_char4_rtp(float4);
2426char4 __ovld __cnfn convert_char4_sat_rtp(float4);
2427char4 __ovld __cnfn convert_char4_rtn(float4);
2428char4 __ovld __cnfn convert_char4_sat_rtn(float4);
2429char4 __ovld __cnfn convert_char4(float4);
2430char4 __ovld __cnfn convert_char4_sat(float4);
2431uchar4 __ovld __cnfn convert_uchar4_rte(char4);
2432uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4);
2433uchar4 __ovld __cnfn convert_uchar4_rtz(char4);
2434uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4);
2435uchar4 __ovld __cnfn convert_uchar4_rtp(char4);
2436uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4);
2437uchar4 __ovld __cnfn convert_uchar4_rtn(char4);
2438uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4);
2439uchar4 __ovld __cnfn convert_uchar4(char4);
2440uchar4 __ovld __cnfn convert_uchar4_sat(char4);
2441uchar4 __ovld __cnfn convert_uchar4_rte(uchar4);
2442uchar4 __ovld __cnfn convert_uchar4_sat_rte(uchar4);
2443uchar4 __ovld __cnfn convert_uchar4_rtz(uchar4);
2444uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uchar4);
2445uchar4 __ovld __cnfn convert_uchar4_rtp(uchar4);
2446uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uchar4);
2447uchar4 __ovld __cnfn convert_uchar4_rtn(uchar4);
2448uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uchar4);
2449uchar4 __ovld __cnfn convert_uchar4(uchar4);
2450uchar4 __ovld __cnfn convert_uchar4_sat(uchar4);
2451uchar4 __ovld __cnfn convert_uchar4_rte(short4);
2452uchar4 __ovld __cnfn convert_uchar4_sat_rte(short4);
2453uchar4 __ovld __cnfn convert_uchar4_rtz(short4);
2454uchar4 __ovld __cnfn convert_uchar4_sat_rtz(short4);
2455uchar4 __ovld __cnfn convert_uchar4_rtp(short4);
2456uchar4 __ovld __cnfn convert_uchar4_sat_rtp(short4);
2457uchar4 __ovld __cnfn convert_uchar4_rtn(short4);
2458uchar4 __ovld __cnfn convert_uchar4_sat_rtn(short4);
2459uchar4 __ovld __cnfn convert_uchar4(short4);
2460uchar4 __ovld __cnfn convert_uchar4_sat(short4);
2461uchar4 __ovld __cnfn convert_uchar4_rte(ushort4);
2462uchar4 __ovld __cnfn convert_uchar4_sat_rte(ushort4);
2463uchar4 __ovld __cnfn convert_uchar4_rtz(ushort4);
2464uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ushort4);
2465uchar4 __ovld __cnfn convert_uchar4_rtp(ushort4);
2466uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ushort4);
2467uchar4 __ovld __cnfn convert_uchar4_rtn(ushort4);
2468uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ushort4);
2469uchar4 __ovld __cnfn convert_uchar4(ushort4);
2470uchar4 __ovld __cnfn convert_uchar4_sat(ushort4);
2471uchar4 __ovld __cnfn convert_uchar4_rte(int4);
2472uchar4 __ovld __cnfn convert_uchar4_sat_rte(int4);
2473uchar4 __ovld __cnfn convert_uchar4_rtz(int4);
2474uchar4 __ovld __cnfn convert_uchar4_sat_rtz(int4);
2475uchar4 __ovld __cnfn convert_uchar4_rtp(int4);
2476uchar4 __ovld __cnfn convert_uchar4_sat_rtp(int4);
2477uchar4 __ovld __cnfn convert_uchar4_rtn(int4);
2478uchar4 __ovld __cnfn convert_uchar4_sat_rtn(int4);
2479uchar4 __ovld __cnfn convert_uchar4(int4);
2480uchar4 __ovld __cnfn convert_uchar4_sat(int4);
2481uchar4 __ovld __cnfn convert_uchar4_rte(uint4);
2482uchar4 __ovld __cnfn convert_uchar4_sat_rte(uint4);
2483uchar4 __ovld __cnfn convert_uchar4_rtz(uint4);
2484uchar4 __ovld __cnfn convert_uchar4_sat_rtz(uint4);
2485uchar4 __ovld __cnfn convert_uchar4_rtp(uint4);
2486uchar4 __ovld __cnfn convert_uchar4_sat_rtp(uint4);
2487uchar4 __ovld __cnfn convert_uchar4_rtn(uint4);
2488uchar4 __ovld __cnfn convert_uchar4_sat_rtn(uint4);
2489uchar4 __ovld __cnfn convert_uchar4(uint4);
2490uchar4 __ovld __cnfn convert_uchar4_sat(uint4);
2491uchar4 __ovld __cnfn convert_uchar4_rte(long4);
2492uchar4 __ovld __cnfn convert_uchar4_sat_rte(long4);
2493uchar4 __ovld __cnfn convert_uchar4_rtz(long4);
2494uchar4 __ovld __cnfn convert_uchar4_sat_rtz(long4);
2495uchar4 __ovld __cnfn convert_uchar4_rtp(long4);
2496uchar4 __ovld __cnfn convert_uchar4_sat_rtp(long4);
2497uchar4 __ovld __cnfn convert_uchar4_rtn(long4);
2498uchar4 __ovld __cnfn convert_uchar4_sat_rtn(long4);
2499uchar4 __ovld __cnfn convert_uchar4(long4);
2500uchar4 __ovld __cnfn convert_uchar4_sat(long4);
2501uchar4 __ovld __cnfn convert_uchar4_rte(ulong4);
2502uchar4 __ovld __cnfn convert_uchar4_sat_rte(ulong4);
2503uchar4 __ovld __cnfn convert_uchar4_rtz(ulong4);
2504uchar4 __ovld __cnfn convert_uchar4_sat_rtz(ulong4);
2505uchar4 __ovld __cnfn convert_uchar4_rtp(ulong4);
2506uchar4 __ovld __cnfn convert_uchar4_sat_rtp(ulong4);
2507uchar4 __ovld __cnfn convert_uchar4_rtn(ulong4);
2508uchar4 __ovld __cnfn convert_uchar4_sat_rtn(ulong4);
2509uchar4 __ovld __cnfn convert_uchar4(ulong4);
2510uchar4 __ovld __cnfn convert_uchar4_sat(ulong4);
2511uchar4 __ovld __cnfn convert_uchar4_rte(float4);
2512uchar4 __ovld __cnfn convert_uchar4_sat_rte(float4);
2513uchar4 __ovld __cnfn convert_uchar4_rtz(float4);
2514uchar4 __ovld __cnfn convert_uchar4_sat_rtz(float4);
2515uchar4 __ovld __cnfn convert_uchar4_rtp(float4);
2516uchar4 __ovld __cnfn convert_uchar4_sat_rtp(float4);
2517uchar4 __ovld __cnfn convert_uchar4_rtn(float4);
2518uchar4 __ovld __cnfn convert_uchar4_sat_rtn(float4);
2519uchar4 __ovld __cnfn convert_uchar4(float4);
2520uchar4 __ovld __cnfn convert_uchar4_sat(float4);
2521short4 __ovld __cnfn convert_short4_rte(char4);
2522short4 __ovld __cnfn convert_short4_sat_rte(char4);
2523short4 __ovld __cnfn convert_short4_rtz(char4);
2524short4 __ovld __cnfn convert_short4_sat_rtz(char4);
2525short4 __ovld __cnfn convert_short4_rtp(char4);
2526short4 __ovld __cnfn convert_short4_sat_rtp(char4);
2527short4 __ovld __cnfn convert_short4_rtn(char4);
2528short4 __ovld __cnfn convert_short4_sat_rtn(char4);
2529short4 __ovld __cnfn convert_short4(char4);
2530short4 __ovld __cnfn convert_short4_sat(char4);
2531short4 __ovld __cnfn convert_short4_rte(uchar4);
2532short4 __ovld __cnfn convert_short4_sat_rte(uchar4);
2533short4 __ovld __cnfn convert_short4_rtz(uchar4);
2534short4 __ovld __cnfn convert_short4_sat_rtz(uchar4);
2535short4 __ovld __cnfn convert_short4_rtp(uchar4);
2536short4 __ovld __cnfn convert_short4_sat_rtp(uchar4);
2537short4 __ovld __cnfn convert_short4_rtn(uchar4);
2538short4 __ovld __cnfn convert_short4_sat_rtn(uchar4);
2539short4 __ovld __cnfn convert_short4(uchar4);
2540short4 __ovld __cnfn convert_short4_sat(uchar4);
2541short4 __ovld __cnfn convert_short4_rte(short4);
2542short4 __ovld __cnfn convert_short4_sat_rte(short4);
2543short4 __ovld __cnfn convert_short4_rtz(short4);
2544short4 __ovld __cnfn convert_short4_sat_rtz(short4);
2545short4 __ovld __cnfn convert_short4_rtp(short4);
2546short4 __ovld __cnfn convert_short4_sat_rtp(short4);
2547short4 __ovld __cnfn convert_short4_rtn(short4);
2548short4 __ovld __cnfn convert_short4_sat_rtn(short4);
2549short4 __ovld __cnfn convert_short4(short4);
2550short4 __ovld __cnfn convert_short4_sat(short4);
2551short4 __ovld __cnfn convert_short4_rte(ushort4);
2552short4 __ovld __cnfn convert_short4_sat_rte(ushort4);
2553short4 __ovld __cnfn convert_short4_rtz(ushort4);
2554short4 __ovld __cnfn convert_short4_sat_rtz(ushort4);
2555short4 __ovld __cnfn convert_short4_rtp(ushort4);
2556short4 __ovld __cnfn convert_short4_sat_rtp(ushort4);
2557short4 __ovld __cnfn convert_short4_rtn(ushort4);
2558short4 __ovld __cnfn convert_short4_sat_rtn(ushort4);
2559short4 __ovld __cnfn convert_short4(ushort4);
2560short4 __ovld __cnfn convert_short4_sat(ushort4);
2561short4 __ovld __cnfn convert_short4_rte(int4);
2562short4 __ovld __cnfn convert_short4_sat_rte(int4);
2563short4 __ovld __cnfn convert_short4_rtz(int4);
2564short4 __ovld __cnfn convert_short4_sat_rtz(int4);
2565short4 __ovld __cnfn convert_short4_rtp(int4);
2566short4 __ovld __cnfn convert_short4_sat_rtp(int4);
2567short4 __ovld __cnfn convert_short4_rtn(int4);
2568short4 __ovld __cnfn convert_short4_sat_rtn(int4);
2569short4 __ovld __cnfn convert_short4(int4);
2570short4 __ovld __cnfn convert_short4_sat(int4);
2571short4 __ovld __cnfn convert_short4_rte(uint4);
2572short4 __ovld __cnfn convert_short4_sat_rte(uint4);
2573short4 __ovld __cnfn convert_short4_rtz(uint4);
2574short4 __ovld __cnfn convert_short4_sat_rtz(uint4);
2575short4 __ovld __cnfn convert_short4_rtp(uint4);
2576short4 __ovld __cnfn convert_short4_sat_rtp(uint4);
2577short4 __ovld __cnfn convert_short4_rtn(uint4);
2578short4 __ovld __cnfn convert_short4_sat_rtn(uint4);
2579short4 __ovld __cnfn convert_short4(uint4);
2580short4 __ovld __cnfn convert_short4_sat(uint4);
2581short4 __ovld __cnfn convert_short4_rte(long4);
2582short4 __ovld __cnfn convert_short4_sat_rte(long4);
2583short4 __ovld __cnfn convert_short4_rtz(long4);
2584short4 __ovld __cnfn convert_short4_sat_rtz(long4);
2585short4 __ovld __cnfn convert_short4_rtp(long4);
2586short4 __ovld __cnfn convert_short4_sat_rtp(long4);
2587short4 __ovld __cnfn convert_short4_rtn(long4);
2588short4 __ovld __cnfn convert_short4_sat_rtn(long4);
2589short4 __ovld __cnfn convert_short4(long4);
2590short4 __ovld __cnfn convert_short4_sat(long4);
2591short4 __ovld __cnfn convert_short4_rte(ulong4);
2592short4 __ovld __cnfn convert_short4_sat_rte(ulong4);
2593short4 __ovld __cnfn convert_short4_rtz(ulong4);
2594short4 __ovld __cnfn convert_short4_sat_rtz(ulong4);
2595short4 __ovld __cnfn convert_short4_rtp(ulong4);
2596short4 __ovld __cnfn convert_short4_sat_rtp(ulong4);
2597short4 __ovld __cnfn convert_short4_rtn(ulong4);
2598short4 __ovld __cnfn convert_short4_sat_rtn(ulong4);
2599short4 __ovld __cnfn convert_short4(ulong4);
2600short4 __ovld __cnfn convert_short4_sat(ulong4);
2601short4 __ovld __cnfn convert_short4_rte(float4);
2602short4 __ovld __cnfn convert_short4_sat_rte(float4);
2603short4 __ovld __cnfn convert_short4_rtz(float4);
2604short4 __ovld __cnfn convert_short4_sat_rtz(float4);
2605short4 __ovld __cnfn convert_short4_rtp(float4);
2606short4 __ovld __cnfn convert_short4_sat_rtp(float4);
2607short4 __ovld __cnfn convert_short4_rtn(float4);
2608short4 __ovld __cnfn convert_short4_sat_rtn(float4);
2609short4 __ovld __cnfn convert_short4(float4);
2610short4 __ovld __cnfn convert_short4_sat(float4);
2611ushort4 __ovld __cnfn convert_ushort4_rte(char4);
2612ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4);
2613ushort4 __ovld __cnfn convert_ushort4_rtz(char4);
2614ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4);
2615ushort4 __ovld __cnfn convert_ushort4_rtp(char4);
2616ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4);
2617ushort4 __ovld __cnfn convert_ushort4_rtn(char4);
2618ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4);
2619ushort4 __ovld __cnfn convert_ushort4(char4);
2620ushort4 __ovld __cnfn convert_ushort4_sat(char4);
2621ushort4 __ovld __cnfn convert_ushort4_rte(uchar4);
2622ushort4 __ovld __cnfn convert_ushort4_sat_rte(uchar4);
2623ushort4 __ovld __cnfn convert_ushort4_rtz(uchar4);
2624ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uchar4);
2625ushort4 __ovld __cnfn convert_ushort4_rtp(uchar4);
2626ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uchar4);
2627ushort4 __ovld __cnfn convert_ushort4_rtn(uchar4);
2628ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uchar4);
2629ushort4 __ovld __cnfn convert_ushort4(uchar4);
2630ushort4 __ovld __cnfn convert_ushort4_sat(uchar4);
2631ushort4 __ovld __cnfn convert_ushort4_rte(short4);
2632ushort4 __ovld __cnfn convert_ushort4_sat_rte(short4);
2633ushort4 __ovld __cnfn convert_ushort4_rtz(short4);
2634ushort4 __ovld __cnfn convert_ushort4_sat_rtz(short4);
2635ushort4 __ovld __cnfn convert_ushort4_rtp(short4);
2636ushort4 __ovld __cnfn convert_ushort4_sat_rtp(short4);
2637ushort4 __ovld __cnfn convert_ushort4_rtn(short4);
2638ushort4 __ovld __cnfn convert_ushort4_sat_rtn(short4);
2639ushort4 __ovld __cnfn convert_ushort4(short4);
2640ushort4 __ovld __cnfn convert_ushort4_sat(short4);
2641ushort4 __ovld __cnfn convert_ushort4_rte(ushort4);
2642ushort4 __ovld __cnfn convert_ushort4_sat_rte(ushort4);
2643ushort4 __ovld __cnfn convert_ushort4_rtz(ushort4);
2644ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ushort4);
2645ushort4 __ovld __cnfn convert_ushort4_rtp(ushort4);
2646ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ushort4);
2647ushort4 __ovld __cnfn convert_ushort4_rtn(ushort4);
2648ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ushort4);
2649ushort4 __ovld __cnfn convert_ushort4(ushort4);
2650ushort4 __ovld __cnfn convert_ushort4_sat(ushort4);
2651ushort4 __ovld __cnfn convert_ushort4_rte(int4);
2652ushort4 __ovld __cnfn convert_ushort4_sat_rte(int4);
2653ushort4 __ovld __cnfn convert_ushort4_rtz(int4);
2654ushort4 __ovld __cnfn convert_ushort4_sat_rtz(int4);
2655ushort4 __ovld __cnfn convert_ushort4_rtp(int4);
2656ushort4 __ovld __cnfn convert_ushort4_sat_rtp(int4);
2657ushort4 __ovld __cnfn convert_ushort4_rtn(int4);
2658ushort4 __ovld __cnfn convert_ushort4_sat_rtn(int4);
2659ushort4 __ovld __cnfn convert_ushort4(int4);
2660ushort4 __ovld __cnfn convert_ushort4_sat(int4);
2661ushort4 __ovld __cnfn convert_ushort4_rte(uint4);
2662ushort4 __ovld __cnfn convert_ushort4_sat_rte(uint4);
2663ushort4 __ovld __cnfn convert_ushort4_rtz(uint4);
2664ushort4 __ovld __cnfn convert_ushort4_sat_rtz(uint4);
2665ushort4 __ovld __cnfn convert_ushort4_rtp(uint4);
2666ushort4 __ovld __cnfn convert_ushort4_sat_rtp(uint4);
2667ushort4 __ovld __cnfn convert_ushort4_rtn(uint4);
2668ushort4 __ovld __cnfn convert_ushort4_sat_rtn(uint4);
2669ushort4 __ovld __cnfn convert_ushort4(uint4);
2670ushort4 __ovld __cnfn convert_ushort4_sat(uint4);
2671ushort4 __ovld __cnfn convert_ushort4_rte(long4);
2672ushort4 __ovld __cnfn convert_ushort4_sat_rte(long4);
2673ushort4 __ovld __cnfn convert_ushort4_rtz(long4);
2674ushort4 __ovld __cnfn convert_ushort4_sat_rtz(long4);
2675ushort4 __ovld __cnfn convert_ushort4_rtp(long4);
2676ushort4 __ovld __cnfn convert_ushort4_sat_rtp(long4);
2677ushort4 __ovld __cnfn convert_ushort4_rtn(long4);
2678ushort4 __ovld __cnfn convert_ushort4_sat_rtn(long4);
2679ushort4 __ovld __cnfn convert_ushort4(long4);
2680ushort4 __ovld __cnfn convert_ushort4_sat(long4);
2681ushort4 __ovld __cnfn convert_ushort4_rte(ulong4);
2682ushort4 __ovld __cnfn convert_ushort4_sat_rte(ulong4);
2683ushort4 __ovld __cnfn convert_ushort4_rtz(ulong4);
2684ushort4 __ovld __cnfn convert_ushort4_sat_rtz(ulong4);
2685ushort4 __ovld __cnfn convert_ushort4_rtp(ulong4);
2686ushort4 __ovld __cnfn convert_ushort4_sat_rtp(ulong4);
2687ushort4 __ovld __cnfn convert_ushort4_rtn(ulong4);
2688ushort4 __ovld __cnfn convert_ushort4_sat_rtn(ulong4);
2689ushort4 __ovld __cnfn convert_ushort4(ulong4);
2690ushort4 __ovld __cnfn convert_ushort4_sat(ulong4);
2691ushort4 __ovld __cnfn convert_ushort4_rte(float4);
2692ushort4 __ovld __cnfn convert_ushort4_sat_rte(float4);
2693ushort4 __ovld __cnfn convert_ushort4_rtz(float4);
2694ushort4 __ovld __cnfn convert_ushort4_sat_rtz(float4);
2695ushort4 __ovld __cnfn convert_ushort4_rtp(float4);
2696ushort4 __ovld __cnfn convert_ushort4_sat_rtp(float4);
2697ushort4 __ovld __cnfn convert_ushort4_rtn(float4);
2698ushort4 __ovld __cnfn convert_ushort4_sat_rtn(float4);
2699ushort4 __ovld __cnfn convert_ushort4(float4);
2700ushort4 __ovld __cnfn convert_ushort4_sat(float4);
2701int4 __ovld __cnfn convert_int4_rte(char4);
2702int4 __ovld __cnfn convert_int4_sat_rte(char4);
2703int4 __ovld __cnfn convert_int4_rtz(char4);
2704int4 __ovld __cnfn convert_int4_sat_rtz(char4);
2705int4 __ovld __cnfn convert_int4_rtp(char4);
2706int4 __ovld __cnfn convert_int4_sat_rtp(char4);
2707int4 __ovld __cnfn convert_int4_rtn(char4);
2708int4 __ovld __cnfn convert_int4_sat_rtn(char4);
2709int4 __ovld __cnfn convert_int4(char4);
2710int4 __ovld __cnfn convert_int4_sat(char4);
2711int4 __ovld __cnfn convert_int4_rte(uchar4);
2712int4 __ovld __cnfn convert_int4_sat_rte(uchar4);
2713int4 __ovld __cnfn convert_int4_rtz(uchar4);
2714int4 __ovld __cnfn convert_int4_sat_rtz(uchar4);
2715int4 __ovld __cnfn convert_int4_rtp(uchar4);
2716int4 __ovld __cnfn convert_int4_sat_rtp(uchar4);
2717int4 __ovld __cnfn convert_int4_rtn(uchar4);
2718int4 __ovld __cnfn convert_int4_sat_rtn(uchar4);
2719int4 __ovld __cnfn convert_int4(uchar4);
2720int4 __ovld __cnfn convert_int4_sat(uchar4);
2721int4 __ovld __cnfn convert_int4_rte(short4);
2722int4 __ovld __cnfn convert_int4_sat_rte(short4);
2723int4 __ovld __cnfn convert_int4_rtz(short4);
2724int4 __ovld __cnfn convert_int4_sat_rtz(short4);
2725int4 __ovld __cnfn convert_int4_rtp(short4);
2726int4 __ovld __cnfn convert_int4_sat_rtp(short4);
2727int4 __ovld __cnfn convert_int4_rtn(short4);
2728int4 __ovld __cnfn convert_int4_sat_rtn(short4);
2729int4 __ovld __cnfn convert_int4(short4);
2730int4 __ovld __cnfn convert_int4_sat(short4);
2731int4 __ovld __cnfn convert_int4_rte(ushort4);
2732int4 __ovld __cnfn convert_int4_sat_rte(ushort4);
2733int4 __ovld __cnfn convert_int4_rtz(ushort4);
2734int4 __ovld __cnfn convert_int4_sat_rtz(ushort4);
2735int4 __ovld __cnfn convert_int4_rtp(ushort4);
2736int4 __ovld __cnfn convert_int4_sat_rtp(ushort4);
2737int4 __ovld __cnfn convert_int4_rtn(ushort4);
2738int4 __ovld __cnfn convert_int4_sat_rtn(ushort4);
2739int4 __ovld __cnfn convert_int4(ushort4);
2740int4 __ovld __cnfn convert_int4_sat(ushort4);
2741int4 __ovld __cnfn convert_int4_rte(int4);
2742int4 __ovld __cnfn convert_int4_sat_rte(int4);
2743int4 __ovld __cnfn convert_int4_rtz(int4);
2744int4 __ovld __cnfn convert_int4_sat_rtz(int4);
2745int4 __ovld __cnfn convert_int4_rtp(int4);
2746int4 __ovld __cnfn convert_int4_sat_rtp(int4);
2747int4 __ovld __cnfn convert_int4_rtn(int4);
2748int4 __ovld __cnfn convert_int4_sat_rtn(int4);
2749int4 __ovld __cnfn convert_int4(int4);
2750int4 __ovld __cnfn convert_int4_sat(int4);
2751int4 __ovld __cnfn convert_int4_rte(uint4);
2752int4 __ovld __cnfn convert_int4_sat_rte(uint4);
2753int4 __ovld __cnfn convert_int4_rtz(uint4);
2754int4 __ovld __cnfn convert_int4_sat_rtz(uint4);
2755int4 __ovld __cnfn convert_int4_rtp(uint4);
2756int4 __ovld __cnfn convert_int4_sat_rtp(uint4);
2757int4 __ovld __cnfn convert_int4_rtn(uint4);
2758int4 __ovld __cnfn convert_int4_sat_rtn(uint4);
2759int4 __ovld __cnfn convert_int4(uint4);
2760int4 __ovld __cnfn convert_int4_sat(uint4);
2761int4 __ovld __cnfn convert_int4_rte(long4);
2762int4 __ovld __cnfn convert_int4_sat_rte(long4);
2763int4 __ovld __cnfn convert_int4_rtz(long4);
2764int4 __ovld __cnfn convert_int4_sat_rtz(long4);
2765int4 __ovld __cnfn convert_int4_rtp(long4);
2766int4 __ovld __cnfn convert_int4_sat_rtp(long4);
2767int4 __ovld __cnfn convert_int4_rtn(long4);
2768int4 __ovld __cnfn convert_int4_sat_rtn(long4);
2769int4 __ovld __cnfn convert_int4(long4);
2770int4 __ovld __cnfn convert_int4_sat(long4);
2771int4 __ovld __cnfn convert_int4_rte(ulong4);
2772int4 __ovld __cnfn convert_int4_sat_rte(ulong4);
2773int4 __ovld __cnfn convert_int4_rtz(ulong4);
2774int4 __ovld __cnfn convert_int4_sat_rtz(ulong4);
2775int4 __ovld __cnfn convert_int4_rtp(ulong4);
2776int4 __ovld __cnfn convert_int4_sat_rtp(ulong4);
2777int4 __ovld __cnfn convert_int4_rtn(ulong4);
2778int4 __ovld __cnfn convert_int4_sat_rtn(ulong4);
2779int4 __ovld __cnfn convert_int4(ulong4);
2780int4 __ovld __cnfn convert_int4_sat(ulong4);
2781int4 __ovld __cnfn convert_int4_rte(float4);
2782int4 __ovld __cnfn convert_int4_sat_rte(float4);
2783int4 __ovld __cnfn convert_int4_rtz(float4);
2784int4 __ovld __cnfn convert_int4_sat_rtz(float4);
2785int4 __ovld __cnfn convert_int4_rtp(float4);
2786int4 __ovld __cnfn convert_int4_sat_rtp(float4);
2787int4 __ovld __cnfn convert_int4_rtn(float4);
2788int4 __ovld __cnfn convert_int4_sat_rtn(float4);
2789int4 __ovld __cnfn convert_int4(float4);
2790int4 __ovld __cnfn convert_int4_sat(float4);
2791uint4 __ovld __cnfn convert_uint4_rte(char4);
2792uint4 __ovld __cnfn convert_uint4_sat_rte(char4);
2793uint4 __ovld __cnfn convert_uint4_rtz(char4);
2794uint4 __ovld __cnfn convert_uint4_sat_rtz(char4);
2795uint4 __ovld __cnfn convert_uint4_rtp(char4);
2796uint4 __ovld __cnfn convert_uint4_sat_rtp(char4);
2797uint4 __ovld __cnfn convert_uint4_rtn(char4);
2798uint4 __ovld __cnfn convert_uint4_sat_rtn(char4);
2799uint4 __ovld __cnfn convert_uint4(char4);
2800uint4 __ovld __cnfn convert_uint4_sat(char4);
2801uint4 __ovld __cnfn convert_uint4_rte(uchar4);
2802uint4 __ovld __cnfn convert_uint4_sat_rte(uchar4);
2803uint4 __ovld __cnfn convert_uint4_rtz(uchar4);
2804uint4 __ovld __cnfn convert_uint4_sat_rtz(uchar4);
2805uint4 __ovld __cnfn convert_uint4_rtp(uchar4);
2806uint4 __ovld __cnfn convert_uint4_sat_rtp(uchar4);
2807uint4 __ovld __cnfn convert_uint4_rtn(uchar4);
2808uint4 __ovld __cnfn convert_uint4_sat_rtn(uchar4);
2809uint4 __ovld __cnfn convert_uint4(uchar4);
2810uint4 __ovld __cnfn convert_uint4_sat(uchar4);
2811uint4 __ovld __cnfn convert_uint4_rte(short4);
2812uint4 __ovld __cnfn convert_uint4_sat_rte(short4);
2813uint4 __ovld __cnfn convert_uint4_rtz(short4);
2814uint4 __ovld __cnfn convert_uint4_sat_rtz(short4);
2815uint4 __ovld __cnfn convert_uint4_rtp(short4);
2816uint4 __ovld __cnfn convert_uint4_sat_rtp(short4);
2817uint4 __ovld __cnfn convert_uint4_rtn(short4);
2818uint4 __ovld __cnfn convert_uint4_sat_rtn(short4);
2819uint4 __ovld __cnfn convert_uint4(short4);
2820uint4 __ovld __cnfn convert_uint4_sat(short4);
2821uint4 __ovld __cnfn convert_uint4_rte(ushort4);
2822uint4 __ovld __cnfn convert_uint4_sat_rte(ushort4);
2823uint4 __ovld __cnfn convert_uint4_rtz(ushort4);
2824uint4 __ovld __cnfn convert_uint4_sat_rtz(ushort4);
2825uint4 __ovld __cnfn convert_uint4_rtp(ushort4);
2826uint4 __ovld __cnfn convert_uint4_sat_rtp(ushort4);
2827uint4 __ovld __cnfn convert_uint4_rtn(ushort4);
2828uint4 __ovld __cnfn convert_uint4_sat_rtn(ushort4);
2829uint4 __ovld __cnfn convert_uint4(ushort4);
2830uint4 __ovld __cnfn convert_uint4_sat(ushort4);
2831uint4 __ovld __cnfn convert_uint4_rte(int4);
2832uint4 __ovld __cnfn convert_uint4_sat_rte(int4);
2833uint4 __ovld __cnfn convert_uint4_rtz(int4);
2834uint4 __ovld __cnfn convert_uint4_sat_rtz(int4);
2835uint4 __ovld __cnfn convert_uint4_rtp(int4);
2836uint4 __ovld __cnfn convert_uint4_sat_rtp(int4);
2837uint4 __ovld __cnfn convert_uint4_rtn(int4);
2838uint4 __ovld __cnfn convert_uint4_sat_rtn(int4);
2839uint4 __ovld __cnfn convert_uint4(int4);
2840uint4 __ovld __cnfn convert_uint4_sat(int4);
2841uint4 __ovld __cnfn convert_uint4_rte(uint4);
2842uint4 __ovld __cnfn convert_uint4_sat_rte(uint4);
2843uint4 __ovld __cnfn convert_uint4_rtz(uint4);
2844uint4 __ovld __cnfn convert_uint4_sat_rtz(uint4);
2845uint4 __ovld __cnfn convert_uint4_rtp(uint4);
2846uint4 __ovld __cnfn convert_uint4_sat_rtp(uint4);
2847uint4 __ovld __cnfn convert_uint4_rtn(uint4);
2848uint4 __ovld __cnfn convert_uint4_sat_rtn(uint4);
2849uint4 __ovld __cnfn convert_uint4(uint4);
2850uint4 __ovld __cnfn convert_uint4_sat(uint4);
2851uint4 __ovld __cnfn convert_uint4_rte(long4);
2852uint4 __ovld __cnfn convert_uint4_sat_rte(long4);
2853uint4 __ovld __cnfn convert_uint4_rtz(long4);
2854uint4 __ovld __cnfn convert_uint4_sat_rtz(long4);
2855uint4 __ovld __cnfn convert_uint4_rtp(long4);
2856uint4 __ovld __cnfn convert_uint4_sat_rtp(long4);
2857uint4 __ovld __cnfn convert_uint4_rtn(long4);
2858uint4 __ovld __cnfn convert_uint4_sat_rtn(long4);
2859uint4 __ovld __cnfn convert_uint4(long4);
2860uint4 __ovld __cnfn convert_uint4_sat(long4);
2861uint4 __ovld __cnfn convert_uint4_rte(ulong4);
2862uint4 __ovld __cnfn convert_uint4_sat_rte(ulong4);
2863uint4 __ovld __cnfn convert_uint4_rtz(ulong4);
2864uint4 __ovld __cnfn convert_uint4_sat_rtz(ulong4);
2865uint4 __ovld __cnfn convert_uint4_rtp(ulong4);
2866uint4 __ovld __cnfn convert_uint4_sat_rtp(ulong4);
2867uint4 __ovld __cnfn convert_uint4_rtn(ulong4);
2868uint4 __ovld __cnfn convert_uint4_sat_rtn(ulong4);
2869uint4 __ovld __cnfn convert_uint4(ulong4);
2870uint4 __ovld __cnfn convert_uint4_sat(ulong4);
2871uint4 __ovld __cnfn convert_uint4_rte(float4);
2872uint4 __ovld __cnfn convert_uint4_sat_rte(float4);
2873uint4 __ovld __cnfn convert_uint4_rtz(float4);
2874uint4 __ovld __cnfn convert_uint4_sat_rtz(float4);
2875uint4 __ovld __cnfn convert_uint4_rtp(float4);
2876uint4 __ovld __cnfn convert_uint4_sat_rtp(float4);
2877uint4 __ovld __cnfn convert_uint4_rtn(float4);
2878uint4 __ovld __cnfn convert_uint4_sat_rtn(float4);
2879uint4 __ovld __cnfn convert_uint4(float4);
2880uint4 __ovld __cnfn convert_uint4_sat(float4);
2881long4 __ovld __cnfn convert_long4_rte(char4);
2882long4 __ovld __cnfn convert_long4_sat_rte(char4);
2883long4 __ovld __cnfn convert_long4_rtz(char4);
2884long4 __ovld __cnfn convert_long4_sat_rtz(char4);
2885long4 __ovld __cnfn convert_long4_rtp(char4);
2886long4 __ovld __cnfn convert_long4_sat_rtp(char4);
2887long4 __ovld __cnfn convert_long4_rtn(char4);
2888long4 __ovld __cnfn convert_long4_sat_rtn(char4);
2889long4 __ovld __cnfn convert_long4(char4);
2890long4 __ovld __cnfn convert_long4_sat(char4);
2891long4 __ovld __cnfn convert_long4_rte(uchar4);
2892long4 __ovld __cnfn convert_long4_sat_rte(uchar4);
2893long4 __ovld __cnfn convert_long4_rtz(uchar4);
2894long4 __ovld __cnfn convert_long4_sat_rtz(uchar4);
2895long4 __ovld __cnfn convert_long4_rtp(uchar4);
2896long4 __ovld __cnfn convert_long4_sat_rtp(uchar4);
2897long4 __ovld __cnfn convert_long4_rtn(uchar4);
2898long4 __ovld __cnfn convert_long4_sat_rtn(uchar4);
2899long4 __ovld __cnfn convert_long4(uchar4);
2900long4 __ovld __cnfn convert_long4_sat(uchar4);
2901long4 __ovld __cnfn convert_long4_rte(short4);
2902long4 __ovld __cnfn convert_long4_sat_rte(short4);
2903long4 __ovld __cnfn convert_long4_rtz(short4);
2904long4 __ovld __cnfn convert_long4_sat_rtz(short4);
2905long4 __ovld __cnfn convert_long4_rtp(short4);
2906long4 __ovld __cnfn convert_long4_sat_rtp(short4);
2907long4 __ovld __cnfn convert_long4_rtn(short4);
2908long4 __ovld __cnfn convert_long4_sat_rtn(short4);
2909long4 __ovld __cnfn convert_long4(short4);
2910long4 __ovld __cnfn convert_long4_sat(short4);
2911long4 __ovld __cnfn convert_long4_rte(ushort4);
2912long4 __ovld __cnfn convert_long4_sat_rte(ushort4);
2913long4 __ovld __cnfn convert_long4_rtz(ushort4);
2914long4 __ovld __cnfn convert_long4_sat_rtz(ushort4);
2915long4 __ovld __cnfn convert_long4_rtp(ushort4);
2916long4 __ovld __cnfn convert_long4_sat_rtp(ushort4);
2917long4 __ovld __cnfn convert_long4_rtn(ushort4);
2918long4 __ovld __cnfn convert_long4_sat_rtn(ushort4);
2919long4 __ovld __cnfn convert_long4(ushort4);
2920long4 __ovld __cnfn convert_long4_sat(ushort4);
2921long4 __ovld __cnfn convert_long4_rte(int4);
2922long4 __ovld __cnfn convert_long4_sat_rte(int4);
2923long4 __ovld __cnfn convert_long4_rtz(int4);
2924long4 __ovld __cnfn convert_long4_sat_rtz(int4);
2925long4 __ovld __cnfn convert_long4_rtp(int4);
2926long4 __ovld __cnfn convert_long4_sat_rtp(int4);
2927long4 __ovld __cnfn convert_long4_rtn(int4);
2928long4 __ovld __cnfn convert_long4_sat_rtn(int4);
2929long4 __ovld __cnfn convert_long4(int4);
2930long4 __ovld __cnfn convert_long4_sat(int4);
2931long4 __ovld __cnfn convert_long4_rte(uint4);
2932long4 __ovld __cnfn convert_long4_sat_rte(uint4);
2933long4 __ovld __cnfn convert_long4_rtz(uint4);
2934long4 __ovld __cnfn convert_long4_sat_rtz(uint4);
2935long4 __ovld __cnfn convert_long4_rtp(uint4);
2936long4 __ovld __cnfn convert_long4_sat_rtp(uint4);
2937long4 __ovld __cnfn convert_long4_rtn(uint4);
2938long4 __ovld __cnfn convert_long4_sat_rtn(uint4);
2939long4 __ovld __cnfn convert_long4(uint4);
2940long4 __ovld __cnfn convert_long4_sat(uint4);
2941long4 __ovld __cnfn convert_long4_rte(long4);
2942long4 __ovld __cnfn convert_long4_sat_rte(long4);
2943long4 __ovld __cnfn convert_long4_rtz(long4);
2944long4 __ovld __cnfn convert_long4_sat_rtz(long4);
2945long4 __ovld __cnfn convert_long4_rtp(long4);
2946long4 __ovld __cnfn convert_long4_sat_rtp(long4);
2947long4 __ovld __cnfn convert_long4_rtn(long4);
2948long4 __ovld __cnfn convert_long4_sat_rtn(long4);
2949long4 __ovld __cnfn convert_long4(long4);
2950long4 __ovld __cnfn convert_long4_sat(long4);
2951long4 __ovld __cnfn convert_long4_rte(ulong4);
2952long4 __ovld __cnfn convert_long4_sat_rte(ulong4);
2953long4 __ovld __cnfn convert_long4_rtz(ulong4);
2954long4 __ovld __cnfn convert_long4_sat_rtz(ulong4);
2955long4 __ovld __cnfn convert_long4_rtp(ulong4);
2956long4 __ovld __cnfn convert_long4_sat_rtp(ulong4);
2957long4 __ovld __cnfn convert_long4_rtn(ulong4);
2958long4 __ovld __cnfn convert_long4_sat_rtn(ulong4);
2959long4 __ovld __cnfn convert_long4(ulong4);
2960long4 __ovld __cnfn convert_long4_sat(ulong4);
2961long4 __ovld __cnfn convert_long4_rte(float4);
2962long4 __ovld __cnfn convert_long4_sat_rte(float4);
2963long4 __ovld __cnfn convert_long4_rtz(float4);
2964long4 __ovld __cnfn convert_long4_sat_rtz(float4);
2965long4 __ovld __cnfn convert_long4_rtp(float4);
2966long4 __ovld __cnfn convert_long4_sat_rtp(float4);
2967long4 __ovld __cnfn convert_long4_rtn(float4);
2968long4 __ovld __cnfn convert_long4_sat_rtn(float4);
2969long4 __ovld __cnfn convert_long4(float4);
2970long4 __ovld __cnfn convert_long4_sat(float4);
2971ulong4 __ovld __cnfn convert_ulong4_rte(char4);
2972ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4);
2973ulong4 __ovld __cnfn convert_ulong4_rtz(char4);
2974ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4);
2975ulong4 __ovld __cnfn convert_ulong4_rtp(char4);
2976ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4);
2977ulong4 __ovld __cnfn convert_ulong4_rtn(char4);
2978ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4);
2979ulong4 __ovld __cnfn convert_ulong4(char4);
2980ulong4 __ovld __cnfn convert_ulong4_sat(char4);
2981ulong4 __ovld __cnfn convert_ulong4_rte(uchar4);
2982ulong4 __ovld __cnfn convert_ulong4_sat_rte(uchar4);
2983ulong4 __ovld __cnfn convert_ulong4_rtz(uchar4);
2984ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uchar4);
2985ulong4 __ovld __cnfn convert_ulong4_rtp(uchar4);
2986ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uchar4);
2987ulong4 __ovld __cnfn convert_ulong4_rtn(uchar4);
2988ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uchar4);
2989ulong4 __ovld __cnfn convert_ulong4(uchar4);
2990ulong4 __ovld __cnfn convert_ulong4_sat(uchar4);
2991ulong4 __ovld __cnfn convert_ulong4_rte(short4);
2992ulong4 __ovld __cnfn convert_ulong4_sat_rte(short4);
2993ulong4 __ovld __cnfn convert_ulong4_rtz(short4);
2994ulong4 __ovld __cnfn convert_ulong4_sat_rtz(short4);
2995ulong4 __ovld __cnfn convert_ulong4_rtp(short4);
2996ulong4 __ovld __cnfn convert_ulong4_sat_rtp(short4);
2997ulong4 __ovld __cnfn convert_ulong4_rtn(short4);
2998ulong4 __ovld __cnfn convert_ulong4_sat_rtn(short4);
2999ulong4 __ovld __cnfn convert_ulong4(short4);
3000ulong4 __ovld __cnfn convert_ulong4_sat(short4);
3001ulong4 __ovld __cnfn convert_ulong4_rte(ushort4);
3002ulong4 __ovld __cnfn convert_ulong4_sat_rte(ushort4);
3003ulong4 __ovld __cnfn convert_ulong4_rtz(ushort4);
3004ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ushort4);
3005ulong4 __ovld __cnfn convert_ulong4_rtp(ushort4);
3006ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ushort4);
3007ulong4 __ovld __cnfn convert_ulong4_rtn(ushort4);
3008ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ushort4);
3009ulong4 __ovld __cnfn convert_ulong4(ushort4);
3010ulong4 __ovld __cnfn convert_ulong4_sat(ushort4);
3011ulong4 __ovld __cnfn convert_ulong4_rte(int4);
3012ulong4 __ovld __cnfn convert_ulong4_sat_rte(int4);
3013ulong4 __ovld __cnfn convert_ulong4_rtz(int4);
3014ulong4 __ovld __cnfn convert_ulong4_sat_rtz(int4);
3015ulong4 __ovld __cnfn convert_ulong4_rtp(int4);
3016ulong4 __ovld __cnfn convert_ulong4_sat_rtp(int4);
3017ulong4 __ovld __cnfn convert_ulong4_rtn(int4);
3018ulong4 __ovld __cnfn convert_ulong4_sat_rtn(int4);
3019ulong4 __ovld __cnfn convert_ulong4(int4);
3020ulong4 __ovld __cnfn convert_ulong4_sat(int4);
3021ulong4 __ovld __cnfn convert_ulong4_rte(uint4);
3022ulong4 __ovld __cnfn convert_ulong4_sat_rte(uint4);
3023ulong4 __ovld __cnfn convert_ulong4_rtz(uint4);
3024ulong4 __ovld __cnfn convert_ulong4_sat_rtz(uint4);
3025ulong4 __ovld __cnfn convert_ulong4_rtp(uint4);
3026ulong4 __ovld __cnfn convert_ulong4_sat_rtp(uint4);
3027ulong4 __ovld __cnfn convert_ulong4_rtn(uint4);
3028ulong4 __ovld __cnfn convert_ulong4_sat_rtn(uint4);
3029ulong4 __ovld __cnfn convert_ulong4(uint4);
3030ulong4 __ovld __cnfn convert_ulong4_sat(uint4);
3031ulong4 __ovld __cnfn convert_ulong4_rte(long4);
3032ulong4 __ovld __cnfn convert_ulong4_sat_rte(long4);
3033ulong4 __ovld __cnfn convert_ulong4_rtz(long4);
3034ulong4 __ovld __cnfn convert_ulong4_sat_rtz(long4);
3035ulong4 __ovld __cnfn convert_ulong4_rtp(long4);
3036ulong4 __ovld __cnfn convert_ulong4_sat_rtp(long4);
3037ulong4 __ovld __cnfn convert_ulong4_rtn(long4);
3038ulong4 __ovld __cnfn convert_ulong4_sat_rtn(long4);
3039ulong4 __ovld __cnfn convert_ulong4(long4);
3040ulong4 __ovld __cnfn convert_ulong4_sat(long4);
3041ulong4 __ovld __cnfn convert_ulong4_rte(ulong4);
3042ulong4 __ovld __cnfn convert_ulong4_sat_rte(ulong4);
3043ulong4 __ovld __cnfn convert_ulong4_rtz(ulong4);
3044ulong4 __ovld __cnfn convert_ulong4_sat_rtz(ulong4);
3045ulong4 __ovld __cnfn convert_ulong4_rtp(ulong4);
3046ulong4 __ovld __cnfn convert_ulong4_sat_rtp(ulong4);
3047ulong4 __ovld __cnfn convert_ulong4_rtn(ulong4);
3048ulong4 __ovld __cnfn convert_ulong4_sat_rtn(ulong4);
3049ulong4 __ovld __cnfn convert_ulong4(ulong4);
3050ulong4 __ovld __cnfn convert_ulong4_sat(ulong4);
3051ulong4 __ovld __cnfn convert_ulong4_rte(float4);
3052ulong4 __ovld __cnfn convert_ulong4_sat_rte(float4);
3053ulong4 __ovld __cnfn convert_ulong4_rtz(float4);
3054ulong4 __ovld __cnfn convert_ulong4_sat_rtz(float4);
3055ulong4 __ovld __cnfn convert_ulong4_rtp(float4);
3056ulong4 __ovld __cnfn convert_ulong4_sat_rtp(float4);
3057ulong4 __ovld __cnfn convert_ulong4_rtn(float4);
3058ulong4 __ovld __cnfn convert_ulong4_sat_rtn(float4);
3059ulong4 __ovld __cnfn convert_ulong4(float4);
3060ulong4 __ovld __cnfn convert_ulong4_sat(float4);
3061float4 __ovld __cnfn convert_float4_rte(char4);
3062float4 __ovld __cnfn convert_float4_rtz(char4);
3063float4 __ovld __cnfn convert_float4_rtp(char4);
3064float4 __ovld __cnfn convert_float4_rtn(char4);
3065float4 __ovld __cnfn convert_float4(char4);
3066float4 __ovld __cnfn convert_float4_rte(uchar4);
3067float4 __ovld __cnfn convert_float4_rtz(uchar4);
3068float4 __ovld __cnfn convert_float4_rtp(uchar4);
3069float4 __ovld __cnfn convert_float4_rtn(uchar4);
3070float4 __ovld __cnfn convert_float4(uchar4);
3071float4 __ovld __cnfn convert_float4_rte(short4);
3072float4 __ovld __cnfn convert_float4_rtz(short4);
3073float4 __ovld __cnfn convert_float4_rtp(short4);
3074float4 __ovld __cnfn convert_float4_rtn(short4);
3075float4 __ovld __cnfn convert_float4(short4);
3076float4 __ovld __cnfn convert_float4_rte(ushort4);
3077float4 __ovld __cnfn convert_float4_rtz(ushort4);
3078float4 __ovld __cnfn convert_float4_rtp(ushort4);
3079float4 __ovld __cnfn convert_float4_rtn(ushort4);
3080float4 __ovld __cnfn convert_float4(ushort4);
3081float4 __ovld __cnfn convert_float4_rte(int4);
3082float4 __ovld __cnfn convert_float4_rtz(int4);
3083float4 __ovld __cnfn convert_float4_rtp(int4);
3084float4 __ovld __cnfn convert_float4_rtn(int4);
3085float4 __ovld __cnfn convert_float4(int4);
3086float4 __ovld __cnfn convert_float4_rte(uint4);
3087float4 __ovld __cnfn convert_float4_rtz(uint4);
3088float4 __ovld __cnfn convert_float4_rtp(uint4);
3089float4 __ovld __cnfn convert_float4_rtn(uint4);
3090float4 __ovld __cnfn convert_float4(uint4);
3091float4 __ovld __cnfn convert_float4_rte(long4);
3092float4 __ovld __cnfn convert_float4_rtz(long4);
3093float4 __ovld __cnfn convert_float4_rtp(long4);
3094float4 __ovld __cnfn convert_float4_rtn(long4);
3095float4 __ovld __cnfn convert_float4(long4);
3096float4 __ovld __cnfn convert_float4_rte(ulong4);
3097float4 __ovld __cnfn convert_float4_rtz(ulong4);
3098float4 __ovld __cnfn convert_float4_rtp(ulong4);
3099float4 __ovld __cnfn convert_float4_rtn(ulong4);
3100float4 __ovld __cnfn convert_float4(ulong4);
3101float4 __ovld __cnfn convert_float4_rte(float4);
3102float4 __ovld __cnfn convert_float4_rtz(float4);
3103float4 __ovld __cnfn convert_float4_rtp(float4);
3104float4 __ovld __cnfn convert_float4_rtn(float4);
3105float4 __ovld __cnfn convert_float4(float4);
3106char8 __ovld __cnfn convert_char8_rte(char8);
3107char8 __ovld __cnfn convert_char8_sat_rte(char8);
3108char8 __ovld __cnfn convert_char8_rtz(char8);
3109char8 __ovld __cnfn convert_char8_sat_rtz(char8);
3110char8 __ovld __cnfn convert_char8_rtp(char8);
3111char8 __ovld __cnfn convert_char8_sat_rtp(char8);
3112char8 __ovld __cnfn convert_char8_rtn(char8);
3113char8 __ovld __cnfn convert_char8_sat_rtn(char8);
3114char8 __ovld __cnfn convert_char8(char8);
3115char8 __ovld __cnfn convert_char8_sat(char8);
3116char8 __ovld __cnfn convert_char8_rte(uchar8);
3117char8 __ovld __cnfn convert_char8_sat_rte(uchar8);
3118char8 __ovld __cnfn convert_char8_rtz(uchar8);
3119char8 __ovld __cnfn convert_char8_sat_rtz(uchar8);
3120char8 __ovld __cnfn convert_char8_rtp(uchar8);
3121char8 __ovld __cnfn convert_char8_sat_rtp(uchar8);
3122char8 __ovld __cnfn convert_char8_rtn(uchar8);
3123char8 __ovld __cnfn convert_char8_sat_rtn(uchar8);
3124char8 __ovld __cnfn convert_char8(uchar8);
3125char8 __ovld __cnfn convert_char8_sat(uchar8);
3126char8 __ovld __cnfn convert_char8_rte(short8);
3127char8 __ovld __cnfn convert_char8_sat_rte(short8);
3128char8 __ovld __cnfn convert_char8_rtz(short8);
3129char8 __ovld __cnfn convert_char8_sat_rtz(short8);
3130char8 __ovld __cnfn convert_char8_rtp(short8);
3131char8 __ovld __cnfn convert_char8_sat_rtp(short8);
3132char8 __ovld __cnfn convert_char8_rtn(short8);
3133char8 __ovld __cnfn convert_char8_sat_rtn(short8);
3134char8 __ovld __cnfn convert_char8(short8);
3135char8 __ovld __cnfn convert_char8_sat(short8);
3136char8 __ovld __cnfn convert_char8_rte(ushort8);
3137char8 __ovld __cnfn convert_char8_sat_rte(ushort8);
3138char8 __ovld __cnfn convert_char8_rtz(ushort8);
3139char8 __ovld __cnfn convert_char8_sat_rtz(ushort8);
3140char8 __ovld __cnfn convert_char8_rtp(ushort8);
3141char8 __ovld __cnfn convert_char8_sat_rtp(ushort8);
3142char8 __ovld __cnfn convert_char8_rtn(ushort8);
3143char8 __ovld __cnfn convert_char8_sat_rtn(ushort8);
3144char8 __ovld __cnfn convert_char8(ushort8);
3145char8 __ovld __cnfn convert_char8_sat(ushort8);
3146char8 __ovld __cnfn convert_char8_rte(int8);
3147char8 __ovld __cnfn convert_char8_sat_rte(int8);
3148char8 __ovld __cnfn convert_char8_rtz(int8);
3149char8 __ovld __cnfn convert_char8_sat_rtz(int8);
3150char8 __ovld __cnfn convert_char8_rtp(int8);
3151char8 __ovld __cnfn convert_char8_sat_rtp(int8);
3152char8 __ovld __cnfn convert_char8_rtn(int8);
3153char8 __ovld __cnfn convert_char8_sat_rtn(int8);
3154char8 __ovld __cnfn convert_char8(int8);
3155char8 __ovld __cnfn convert_char8_sat(int8);
3156char8 __ovld __cnfn convert_char8_rte(uint8);
3157char8 __ovld __cnfn convert_char8_sat_rte(uint8);
3158char8 __ovld __cnfn convert_char8_rtz(uint8);
3159char8 __ovld __cnfn convert_char8_sat_rtz(uint8);
3160char8 __ovld __cnfn convert_char8_rtp(uint8);
3161char8 __ovld __cnfn convert_char8_sat_rtp(uint8);
3162char8 __ovld __cnfn convert_char8_rtn(uint8);
3163char8 __ovld __cnfn convert_char8_sat_rtn(uint8);
3164char8 __ovld __cnfn convert_char8(uint8);
3165char8 __ovld __cnfn convert_char8_sat(uint8);
3166char8 __ovld __cnfn convert_char8_rte(long8);
3167char8 __ovld __cnfn convert_char8_sat_rte(long8);
3168char8 __ovld __cnfn convert_char8_rtz(long8);
3169char8 __ovld __cnfn convert_char8_sat_rtz(long8);
3170char8 __ovld __cnfn convert_char8_rtp(long8);
3171char8 __ovld __cnfn convert_char8_sat_rtp(long8);
3172char8 __ovld __cnfn convert_char8_rtn(long8);
3173char8 __ovld __cnfn convert_char8_sat_rtn(long8);
3174char8 __ovld __cnfn convert_char8(long8);
3175char8 __ovld __cnfn convert_char8_sat(long8);
3176char8 __ovld __cnfn convert_char8_rte(ulong8);
3177char8 __ovld __cnfn convert_char8_sat_rte(ulong8);
3178char8 __ovld __cnfn convert_char8_rtz(ulong8);
3179char8 __ovld __cnfn convert_char8_sat_rtz(ulong8);
3180char8 __ovld __cnfn convert_char8_rtp(ulong8);
3181char8 __ovld __cnfn convert_char8_sat_rtp(ulong8);
3182char8 __ovld __cnfn convert_char8_rtn(ulong8);
3183char8 __ovld __cnfn convert_char8_sat_rtn(ulong8);
3184char8 __ovld __cnfn convert_char8(ulong8);
3185char8 __ovld __cnfn convert_char8_sat(ulong8);
3186char8 __ovld __cnfn convert_char8_rte(float8);
3187char8 __ovld __cnfn convert_char8_sat_rte(float8);
3188char8 __ovld __cnfn convert_char8_rtz(float8);
3189char8 __ovld __cnfn convert_char8_sat_rtz(float8);
3190char8 __ovld __cnfn convert_char8_rtp(float8);
3191char8 __ovld __cnfn convert_char8_sat_rtp(float8);
3192char8 __ovld __cnfn convert_char8_rtn(float8);
3193char8 __ovld __cnfn convert_char8_sat_rtn(float8);
3194char8 __ovld __cnfn convert_char8(float8);
3195char8 __ovld __cnfn convert_char8_sat(float8);
3196uchar8 __ovld __cnfn convert_uchar8_rte(char8);
3197uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8);
3198uchar8 __ovld __cnfn convert_uchar8_rtz(char8);
3199uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8);
3200uchar8 __ovld __cnfn convert_uchar8_rtp(char8);
3201uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8);
3202uchar8 __ovld __cnfn convert_uchar8_rtn(char8);
3203uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8);
3204uchar8 __ovld __cnfn convert_uchar8(char8);
3205uchar8 __ovld __cnfn convert_uchar8_sat(char8);
3206uchar8 __ovld __cnfn convert_uchar8_rte(uchar8);
3207uchar8 __ovld __cnfn convert_uchar8_sat_rte(uchar8);
3208uchar8 __ovld __cnfn convert_uchar8_rtz(uchar8);
3209uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uchar8);
3210uchar8 __ovld __cnfn convert_uchar8_rtp(uchar8);
3211uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uchar8);
3212uchar8 __ovld __cnfn convert_uchar8_rtn(uchar8);
3213uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uchar8);
3214uchar8 __ovld __cnfn convert_uchar8(uchar8);
3215uchar8 __ovld __cnfn convert_uchar8_sat(uchar8);
3216uchar8 __ovld __cnfn convert_uchar8_rte(short8);
3217uchar8 __ovld __cnfn convert_uchar8_sat_rte(short8);
3218uchar8 __ovld __cnfn convert_uchar8_rtz(short8);
3219uchar8 __ovld __cnfn convert_uchar8_sat_rtz(short8);
3220uchar8 __ovld __cnfn convert_uchar8_rtp(short8);
3221uchar8 __ovld __cnfn convert_uchar8_sat_rtp(short8);
3222uchar8 __ovld __cnfn convert_uchar8_rtn(short8);
3223uchar8 __ovld __cnfn convert_uchar8_sat_rtn(short8);
3224uchar8 __ovld __cnfn convert_uchar8(short8);
3225uchar8 __ovld __cnfn convert_uchar8_sat(short8);
3226uchar8 __ovld __cnfn convert_uchar8_rte(ushort8);
3227uchar8 __ovld __cnfn convert_uchar8_sat_rte(ushort8);
3228uchar8 __ovld __cnfn convert_uchar8_rtz(ushort8);
3229uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ushort8);
3230uchar8 __ovld __cnfn convert_uchar8_rtp(ushort8);
3231uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ushort8);
3232uchar8 __ovld __cnfn convert_uchar8_rtn(ushort8);
3233uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ushort8);
3234uchar8 __ovld __cnfn convert_uchar8(ushort8);
3235uchar8 __ovld __cnfn convert_uchar8_sat(ushort8);
3236uchar8 __ovld __cnfn convert_uchar8_rte(int8);
3237uchar8 __ovld __cnfn convert_uchar8_sat_rte(int8);
3238uchar8 __ovld __cnfn convert_uchar8_rtz(int8);
3239uchar8 __ovld __cnfn convert_uchar8_sat_rtz(int8);
3240uchar8 __ovld __cnfn convert_uchar8_rtp(int8);
3241uchar8 __ovld __cnfn convert_uchar8_sat_rtp(int8);
3242uchar8 __ovld __cnfn convert_uchar8_rtn(int8);
3243uchar8 __ovld __cnfn convert_uchar8_sat_rtn(int8);
3244uchar8 __ovld __cnfn convert_uchar8(int8);
3245uchar8 __ovld __cnfn convert_uchar8_sat(int8);
3246uchar8 __ovld __cnfn convert_uchar8_rte(uint8);
3247uchar8 __ovld __cnfn convert_uchar8_sat_rte(uint8);
3248uchar8 __ovld __cnfn convert_uchar8_rtz(uint8);
3249uchar8 __ovld __cnfn convert_uchar8_sat_rtz(uint8);
3250uchar8 __ovld __cnfn convert_uchar8_rtp(uint8);
3251uchar8 __ovld __cnfn convert_uchar8_sat_rtp(uint8);
3252uchar8 __ovld __cnfn convert_uchar8_rtn(uint8);
3253uchar8 __ovld __cnfn convert_uchar8_sat_rtn(uint8);
3254uchar8 __ovld __cnfn convert_uchar8(uint8);
3255uchar8 __ovld __cnfn convert_uchar8_sat(uint8);
3256uchar8 __ovld __cnfn convert_uchar8_rte(long8);
3257uchar8 __ovld __cnfn convert_uchar8_sat_rte(long8);
3258uchar8 __ovld __cnfn convert_uchar8_rtz(long8);
3259uchar8 __ovld __cnfn convert_uchar8_sat_rtz(long8);
3260uchar8 __ovld __cnfn convert_uchar8_rtp(long8);
3261uchar8 __ovld __cnfn convert_uchar8_sat_rtp(long8);
3262uchar8 __ovld __cnfn convert_uchar8_rtn(long8);
3263uchar8 __ovld __cnfn convert_uchar8_sat_rtn(long8);
3264uchar8 __ovld __cnfn convert_uchar8(long8);
3265uchar8 __ovld __cnfn convert_uchar8_sat(long8);
3266uchar8 __ovld __cnfn convert_uchar8_rte(ulong8);
3267uchar8 __ovld __cnfn convert_uchar8_sat_rte(ulong8);
3268uchar8 __ovld __cnfn convert_uchar8_rtz(ulong8);
3269uchar8 __ovld __cnfn convert_uchar8_sat_rtz(ulong8);
3270uchar8 __ovld __cnfn convert_uchar8_rtp(ulong8);
3271uchar8 __ovld __cnfn convert_uchar8_sat_rtp(ulong8);
3272uchar8 __ovld __cnfn convert_uchar8_rtn(ulong8);
3273uchar8 __ovld __cnfn convert_uchar8_sat_rtn(ulong8);
3274uchar8 __ovld __cnfn convert_uchar8(ulong8);
3275uchar8 __ovld __cnfn convert_uchar8_sat(ulong8);
3276uchar8 __ovld __cnfn convert_uchar8_rte(float8);
3277uchar8 __ovld __cnfn convert_uchar8_sat_rte(float8);
3278uchar8 __ovld __cnfn convert_uchar8_rtz(float8);
3279uchar8 __ovld __cnfn convert_uchar8_sat_rtz(float8);
3280uchar8 __ovld __cnfn convert_uchar8_rtp(float8);
3281uchar8 __ovld __cnfn convert_uchar8_sat_rtp(float8);
3282uchar8 __ovld __cnfn convert_uchar8_rtn(float8);
3283uchar8 __ovld __cnfn convert_uchar8_sat_rtn(float8);
3284uchar8 __ovld __cnfn convert_uchar8(float8);
3285uchar8 __ovld __cnfn convert_uchar8_sat(float8);
3286short8 __ovld __cnfn convert_short8_rte(char8);
3287short8 __ovld __cnfn convert_short8_sat_rte(char8);
3288short8 __ovld __cnfn convert_short8_rtz(char8);
3289short8 __ovld __cnfn convert_short8_sat_rtz(char8);
3290short8 __ovld __cnfn convert_short8_rtp(char8);
3291short8 __ovld __cnfn convert_short8_sat_rtp(char8);
3292short8 __ovld __cnfn convert_short8_rtn(char8);
3293short8 __ovld __cnfn convert_short8_sat_rtn(char8);
3294short8 __ovld __cnfn convert_short8(char8);
3295short8 __ovld __cnfn convert_short8_sat(char8);
3296short8 __ovld __cnfn convert_short8_rte(uchar8);
3297short8 __ovld __cnfn convert_short8_sat_rte(uchar8);
3298short8 __ovld __cnfn convert_short8_rtz(uchar8);
3299short8 __ovld __cnfn convert_short8_sat_rtz(uchar8);
3300short8 __ovld __cnfn convert_short8_rtp(uchar8);
3301short8 __ovld __cnfn convert_short8_sat_rtp(uchar8);
3302short8 __ovld __cnfn convert_short8_rtn(uchar8);
3303short8 __ovld __cnfn convert_short8_sat_rtn(uchar8);
3304short8 __ovld __cnfn convert_short8(uchar8);
3305short8 __ovld __cnfn convert_short8_sat(uchar8);
3306short8 __ovld __cnfn convert_short8_rte(short8);
3307short8 __ovld __cnfn convert_short8_sat_rte(short8);
3308short8 __ovld __cnfn convert_short8_rtz(short8);
3309short8 __ovld __cnfn convert_short8_sat_rtz(short8);
3310short8 __ovld __cnfn convert_short8_rtp(short8);
3311short8 __ovld __cnfn convert_short8_sat_rtp(short8);
3312short8 __ovld __cnfn convert_short8_rtn(short8);
3313short8 __ovld __cnfn convert_short8_sat_rtn(short8);
3314short8 __ovld __cnfn convert_short8(short8);
3315short8 __ovld __cnfn convert_short8_sat(short8);
3316short8 __ovld __cnfn convert_short8_rte(ushort8);
3317short8 __ovld __cnfn convert_short8_sat_rte(ushort8);
3318short8 __ovld __cnfn convert_short8_rtz(ushort8);
3319short8 __ovld __cnfn convert_short8_sat_rtz(ushort8);
3320short8 __ovld __cnfn convert_short8_rtp(ushort8);
3321short8 __ovld __cnfn convert_short8_sat_rtp(ushort8);
3322short8 __ovld __cnfn convert_short8_rtn(ushort8);
3323short8 __ovld __cnfn convert_short8_sat_rtn(ushort8);
3324short8 __ovld __cnfn convert_short8(ushort8);
3325short8 __ovld __cnfn convert_short8_sat(ushort8);
3326short8 __ovld __cnfn convert_short8_rte(int8);
3327short8 __ovld __cnfn convert_short8_sat_rte(int8);
3328short8 __ovld __cnfn convert_short8_rtz(int8);
3329short8 __ovld __cnfn convert_short8_sat_rtz(int8);
3330short8 __ovld __cnfn convert_short8_rtp(int8);
3331short8 __ovld __cnfn convert_short8_sat_rtp(int8);
3332short8 __ovld __cnfn convert_short8_rtn(int8);
3333short8 __ovld __cnfn convert_short8_sat_rtn(int8);
3334short8 __ovld __cnfn convert_short8(int8);
3335short8 __ovld __cnfn convert_short8_sat(int8);
3336short8 __ovld __cnfn convert_short8_rte(uint8);
3337short8 __ovld __cnfn convert_short8_sat_rte(uint8);
3338short8 __ovld __cnfn convert_short8_rtz(uint8);
3339short8 __ovld __cnfn convert_short8_sat_rtz(uint8);
3340short8 __ovld __cnfn convert_short8_rtp(uint8);
3341short8 __ovld __cnfn convert_short8_sat_rtp(uint8);
3342short8 __ovld __cnfn convert_short8_rtn(uint8);
3343short8 __ovld __cnfn convert_short8_sat_rtn(uint8);
3344short8 __ovld __cnfn convert_short8(uint8);
3345short8 __ovld __cnfn convert_short8_sat(uint8);
3346short8 __ovld __cnfn convert_short8_rte(long8);
3347short8 __ovld __cnfn convert_short8_sat_rte(long8);
3348short8 __ovld __cnfn convert_short8_rtz(long8);
3349short8 __ovld __cnfn convert_short8_sat_rtz(long8);
3350short8 __ovld __cnfn convert_short8_rtp(long8);
3351short8 __ovld __cnfn convert_short8_sat_rtp(long8);
3352short8 __ovld __cnfn convert_short8_rtn(long8);
3353short8 __ovld __cnfn convert_short8_sat_rtn(long8);
3354short8 __ovld __cnfn convert_short8(long8);
3355short8 __ovld __cnfn convert_short8_sat(long8);
3356short8 __ovld __cnfn convert_short8_rte(ulong8);
3357short8 __ovld __cnfn convert_short8_sat_rte(ulong8);
3358short8 __ovld __cnfn convert_short8_rtz(ulong8);
3359short8 __ovld __cnfn convert_short8_sat_rtz(ulong8);
3360short8 __ovld __cnfn convert_short8_rtp(ulong8);
3361short8 __ovld __cnfn convert_short8_sat_rtp(ulong8);
3362short8 __ovld __cnfn convert_short8_rtn(ulong8);
3363short8 __ovld __cnfn convert_short8_sat_rtn(ulong8);
3364short8 __ovld __cnfn convert_short8(ulong8);
3365short8 __ovld __cnfn convert_short8_sat(ulong8);
3366short8 __ovld __cnfn convert_short8_rte(float8);
3367short8 __ovld __cnfn convert_short8_sat_rte(float8);
3368short8 __ovld __cnfn convert_short8_rtz(float8);
3369short8 __ovld __cnfn convert_short8_sat_rtz(float8);
3370short8 __ovld __cnfn convert_short8_rtp(float8);
3371short8 __ovld __cnfn convert_short8_sat_rtp(float8);
3372short8 __ovld __cnfn convert_short8_rtn(float8);
3373short8 __ovld __cnfn convert_short8_sat_rtn(float8);
3374short8 __ovld __cnfn convert_short8(float8);
3375short8 __ovld __cnfn convert_short8_sat(float8);
3376ushort8 __ovld __cnfn convert_ushort8_rte(char8);
3377ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8);
3378ushort8 __ovld __cnfn convert_ushort8_rtz(char8);
3379ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8);
3380ushort8 __ovld __cnfn convert_ushort8_rtp(char8);
3381ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8);
3382ushort8 __ovld __cnfn convert_ushort8_rtn(char8);
3383ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8);
3384ushort8 __ovld __cnfn convert_ushort8(char8);
3385ushort8 __ovld __cnfn convert_ushort8_sat(char8);
3386ushort8 __ovld __cnfn convert_ushort8_rte(uchar8);
3387ushort8 __ovld __cnfn convert_ushort8_sat_rte(uchar8);
3388ushort8 __ovld __cnfn convert_ushort8_rtz(uchar8);
3389ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uchar8);
3390ushort8 __ovld __cnfn convert_ushort8_rtp(uchar8);
3391ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uchar8);
3392ushort8 __ovld __cnfn convert_ushort8_rtn(uchar8);
3393ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uchar8);
3394ushort8 __ovld __cnfn convert_ushort8(uchar8);
3395ushort8 __ovld __cnfn convert_ushort8_sat(uchar8);
3396ushort8 __ovld __cnfn convert_ushort8_rte(short8);
3397ushort8 __ovld __cnfn convert_ushort8_sat_rte(short8);
3398ushort8 __ovld __cnfn convert_ushort8_rtz(short8);
3399ushort8 __ovld __cnfn convert_ushort8_sat_rtz(short8);
3400ushort8 __ovld __cnfn convert_ushort8_rtp(short8);
3401ushort8 __ovld __cnfn convert_ushort8_sat_rtp(short8);
3402ushort8 __ovld __cnfn convert_ushort8_rtn(short8);
3403ushort8 __ovld __cnfn convert_ushort8_sat_rtn(short8);
3404ushort8 __ovld __cnfn convert_ushort8(short8);
3405ushort8 __ovld __cnfn convert_ushort8_sat(short8);
3406ushort8 __ovld __cnfn convert_ushort8_rte(ushort8);
3407ushort8 __ovld __cnfn convert_ushort8_sat_rte(ushort8);
3408ushort8 __ovld __cnfn convert_ushort8_rtz(ushort8);
3409ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ushort8);
3410ushort8 __ovld __cnfn convert_ushort8_rtp(ushort8);
3411ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ushort8);
3412ushort8 __ovld __cnfn convert_ushort8_rtn(ushort8);
3413ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ushort8);
3414ushort8 __ovld __cnfn convert_ushort8(ushort8);
3415ushort8 __ovld __cnfn convert_ushort8_sat(ushort8);
3416ushort8 __ovld __cnfn convert_ushort8_rte(int8);
3417ushort8 __ovld __cnfn convert_ushort8_sat_rte(int8);
3418ushort8 __ovld __cnfn convert_ushort8_rtz(int8);
3419ushort8 __ovld __cnfn convert_ushort8_sat_rtz(int8);
3420ushort8 __ovld __cnfn convert_ushort8_rtp(int8);
3421ushort8 __ovld __cnfn convert_ushort8_sat_rtp(int8);
3422ushort8 __ovld __cnfn convert_ushort8_rtn(int8);
3423ushort8 __ovld __cnfn convert_ushort8_sat_rtn(int8);
3424ushort8 __ovld __cnfn convert_ushort8(int8);
3425ushort8 __ovld __cnfn convert_ushort8_sat(int8);
3426ushort8 __ovld __cnfn convert_ushort8_rte(uint8);
3427ushort8 __ovld __cnfn convert_ushort8_sat_rte(uint8);
3428ushort8 __ovld __cnfn convert_ushort8_rtz(uint8);
3429ushort8 __ovld __cnfn convert_ushort8_sat_rtz(uint8);
3430ushort8 __ovld __cnfn convert_ushort8_rtp(uint8);
3431ushort8 __ovld __cnfn convert_ushort8_sat_rtp(uint8);
3432ushort8 __ovld __cnfn convert_ushort8_rtn(uint8);
3433ushort8 __ovld __cnfn convert_ushort8_sat_rtn(uint8);
3434ushort8 __ovld __cnfn convert_ushort8(uint8);
3435ushort8 __ovld __cnfn convert_ushort8_sat(uint8);
3436ushort8 __ovld __cnfn convert_ushort8_rte(long8);
3437ushort8 __ovld __cnfn convert_ushort8_sat_rte(long8);
3438ushort8 __ovld __cnfn convert_ushort8_rtz(long8);
3439ushort8 __ovld __cnfn convert_ushort8_sat_rtz(long8);
3440ushort8 __ovld __cnfn convert_ushort8_rtp(long8);
3441ushort8 __ovld __cnfn convert_ushort8_sat_rtp(long8);
3442ushort8 __ovld __cnfn convert_ushort8_rtn(long8);
3443ushort8 __ovld __cnfn convert_ushort8_sat_rtn(long8);
3444ushort8 __ovld __cnfn convert_ushort8(long8);
3445ushort8 __ovld __cnfn convert_ushort8_sat(long8);
3446ushort8 __ovld __cnfn convert_ushort8_rte(ulong8);
3447ushort8 __ovld __cnfn convert_ushort8_sat_rte(ulong8);
3448ushort8 __ovld __cnfn convert_ushort8_rtz(ulong8);
3449ushort8 __ovld __cnfn convert_ushort8_sat_rtz(ulong8);
3450ushort8 __ovld __cnfn convert_ushort8_rtp(ulong8);
3451ushort8 __ovld __cnfn convert_ushort8_sat_rtp(ulong8);
3452ushort8 __ovld __cnfn convert_ushort8_rtn(ulong8);
3453ushort8 __ovld __cnfn convert_ushort8_sat_rtn(ulong8);
3454ushort8 __ovld __cnfn convert_ushort8(ulong8);
3455ushort8 __ovld __cnfn convert_ushort8_sat(ulong8);
3456ushort8 __ovld __cnfn convert_ushort8_rte(float8);
3457ushort8 __ovld __cnfn convert_ushort8_sat_rte(float8);
3458ushort8 __ovld __cnfn convert_ushort8_rtz(float8);
3459ushort8 __ovld __cnfn convert_ushort8_sat_rtz(float8);
3460ushort8 __ovld __cnfn convert_ushort8_rtp(float8);
3461ushort8 __ovld __cnfn convert_ushort8_sat_rtp(float8);
3462ushort8 __ovld __cnfn convert_ushort8_rtn(float8);
3463ushort8 __ovld __cnfn convert_ushort8_sat_rtn(float8);
3464ushort8 __ovld __cnfn convert_ushort8(float8);
3465ushort8 __ovld __cnfn convert_ushort8_sat(float8);
3466int8 __ovld __cnfn convert_int8_rte(char8);
3467int8 __ovld __cnfn convert_int8_sat_rte(char8);
3468int8 __ovld __cnfn convert_int8_rtz(char8);
3469int8 __ovld __cnfn convert_int8_sat_rtz(char8);
3470int8 __ovld __cnfn convert_int8_rtp(char8);
3471int8 __ovld __cnfn convert_int8_sat_rtp(char8);
3472int8 __ovld __cnfn convert_int8_rtn(char8);
3473int8 __ovld __cnfn convert_int8_sat_rtn(char8);
3474int8 __ovld __cnfn convert_int8(char8);
3475int8 __ovld __cnfn convert_int8_sat(char8);
3476int8 __ovld __cnfn convert_int8_rte(uchar8);
3477int8 __ovld __cnfn convert_int8_sat_rte(uchar8);
3478int8 __ovld __cnfn convert_int8_rtz(uchar8);
3479int8 __ovld __cnfn convert_int8_sat_rtz(uchar8);
3480int8 __ovld __cnfn convert_int8_rtp(uchar8);
3481int8 __ovld __cnfn convert_int8_sat_rtp(uchar8);
3482int8 __ovld __cnfn convert_int8_rtn(uchar8);
3483int8 __ovld __cnfn convert_int8_sat_rtn(uchar8);
3484int8 __ovld __cnfn convert_int8(uchar8);
3485int8 __ovld __cnfn convert_int8_sat(uchar8);
3486int8 __ovld __cnfn convert_int8_rte(short8);
3487int8 __ovld __cnfn convert_int8_sat_rte(short8);
3488int8 __ovld __cnfn convert_int8_rtz(short8);
3489int8 __ovld __cnfn convert_int8_sat_rtz(short8);
3490int8 __ovld __cnfn convert_int8_rtp(short8);
3491int8 __ovld __cnfn convert_int8_sat_rtp(short8);
3492int8 __ovld __cnfn convert_int8_rtn(short8);
3493int8 __ovld __cnfn convert_int8_sat_rtn(short8);
3494int8 __ovld __cnfn convert_int8(short8);
3495int8 __ovld __cnfn convert_int8_sat(short8);
3496int8 __ovld __cnfn convert_int8_rte(ushort8);
3497int8 __ovld __cnfn convert_int8_sat_rte(ushort8);
3498int8 __ovld __cnfn convert_int8_rtz(ushort8);
3499int8 __ovld __cnfn convert_int8_sat_rtz(ushort8);
3500int8 __ovld __cnfn convert_int8_rtp(ushort8);
3501int8 __ovld __cnfn convert_int8_sat_rtp(ushort8);
3502int8 __ovld __cnfn convert_int8_rtn(ushort8);
3503int8 __ovld __cnfn convert_int8_sat_rtn(ushort8);
3504int8 __ovld __cnfn convert_int8(ushort8);
3505int8 __ovld __cnfn convert_int8_sat(ushort8);
3506int8 __ovld __cnfn convert_int8_rte(int8);
3507int8 __ovld __cnfn convert_int8_sat_rte(int8);
3508int8 __ovld __cnfn convert_int8_rtz(int8);
3509int8 __ovld __cnfn convert_int8_sat_rtz(int8);
3510int8 __ovld __cnfn convert_int8_rtp(int8);
3511int8 __ovld __cnfn convert_int8_sat_rtp(int8);
3512int8 __ovld __cnfn convert_int8_rtn(int8);
3513int8 __ovld __cnfn convert_int8_sat_rtn(int8);
3514int8 __ovld __cnfn convert_int8(int8);
3515int8 __ovld __cnfn convert_int8_sat(int8);
3516int8 __ovld __cnfn convert_int8_rte(uint8);
3517int8 __ovld __cnfn convert_int8_sat_rte(uint8);
3518int8 __ovld __cnfn convert_int8_rtz(uint8);
3519int8 __ovld __cnfn convert_int8_sat_rtz(uint8);
3520int8 __ovld __cnfn convert_int8_rtp(uint8);
3521int8 __ovld __cnfn convert_int8_sat_rtp(uint8);
3522int8 __ovld __cnfn convert_int8_rtn(uint8);
3523int8 __ovld __cnfn convert_int8_sat_rtn(uint8);
3524int8 __ovld __cnfn convert_int8(uint8);
3525int8 __ovld __cnfn convert_int8_sat(uint8);
3526int8 __ovld __cnfn convert_int8_rte(long8);
3527int8 __ovld __cnfn convert_int8_sat_rte(long8);
3528int8 __ovld __cnfn convert_int8_rtz(long8);
3529int8 __ovld __cnfn convert_int8_sat_rtz(long8);
3530int8 __ovld __cnfn convert_int8_rtp(long8);
3531int8 __ovld __cnfn convert_int8_sat_rtp(long8);
3532int8 __ovld __cnfn convert_int8_rtn(long8);
3533int8 __ovld __cnfn convert_int8_sat_rtn(long8);
3534int8 __ovld __cnfn convert_int8(long8);
3535int8 __ovld __cnfn convert_int8_sat(long8);
3536int8 __ovld __cnfn convert_int8_rte(ulong8);
3537int8 __ovld __cnfn convert_int8_sat_rte(ulong8);
3538int8 __ovld __cnfn convert_int8_rtz(ulong8);
3539int8 __ovld __cnfn convert_int8_sat_rtz(ulong8);
3540int8 __ovld __cnfn convert_int8_rtp(ulong8);
3541int8 __ovld __cnfn convert_int8_sat_rtp(ulong8);
3542int8 __ovld __cnfn convert_int8_rtn(ulong8);
3543int8 __ovld __cnfn convert_int8_sat_rtn(ulong8);
3544int8 __ovld __cnfn convert_int8(ulong8);
3545int8 __ovld __cnfn convert_int8_sat(ulong8);
3546int8 __ovld __cnfn convert_int8_rte(float8);
3547int8 __ovld __cnfn convert_int8_sat_rte(float8);
3548int8 __ovld __cnfn convert_int8_rtz(float8);
3549int8 __ovld __cnfn convert_int8_sat_rtz(float8);
3550int8 __ovld __cnfn convert_int8_rtp(float8);
3551int8 __ovld __cnfn convert_int8_sat_rtp(float8);
3552int8 __ovld __cnfn convert_int8_rtn(float8);
3553int8 __ovld __cnfn convert_int8_sat_rtn(float8);
3554int8 __ovld __cnfn convert_int8(float8);
3555int8 __ovld __cnfn convert_int8_sat(float8);
3556uint8 __ovld __cnfn convert_uint8_rte(char8);
3557uint8 __ovld __cnfn convert_uint8_sat_rte(char8);
3558uint8 __ovld __cnfn convert_uint8_rtz(char8);
3559uint8 __ovld __cnfn convert_uint8_sat_rtz(char8);
3560uint8 __ovld __cnfn convert_uint8_rtp(char8);
3561uint8 __ovld __cnfn convert_uint8_sat_rtp(char8);
3562uint8 __ovld __cnfn convert_uint8_rtn(char8);
3563uint8 __ovld __cnfn convert_uint8_sat_rtn(char8);
3564uint8 __ovld __cnfn convert_uint8(char8);
3565uint8 __ovld __cnfn convert_uint8_sat(char8);
3566uint8 __ovld __cnfn convert_uint8_rte(uchar8);
3567uint8 __ovld __cnfn convert_uint8_sat_rte(uchar8);
3568uint8 __ovld __cnfn convert_uint8_rtz(uchar8);
3569uint8 __ovld __cnfn convert_uint8_sat_rtz(uchar8);
3570uint8 __ovld __cnfn convert_uint8_rtp(uchar8);
3571uint8 __ovld __cnfn convert_uint8_sat_rtp(uchar8);
3572uint8 __ovld __cnfn convert_uint8_rtn(uchar8);
3573uint8 __ovld __cnfn convert_uint8_sat_rtn(uchar8);
3574uint8 __ovld __cnfn convert_uint8(uchar8);
3575uint8 __ovld __cnfn convert_uint8_sat(uchar8);
3576uint8 __ovld __cnfn convert_uint8_rte(short8);
3577uint8 __ovld __cnfn convert_uint8_sat_rte(short8);
3578uint8 __ovld __cnfn convert_uint8_rtz(short8);
3579uint8 __ovld __cnfn convert_uint8_sat_rtz(short8);
3580uint8 __ovld __cnfn convert_uint8_rtp(short8);
3581uint8 __ovld __cnfn convert_uint8_sat_rtp(short8);
3582uint8 __ovld __cnfn convert_uint8_rtn(short8);
3583uint8 __ovld __cnfn convert_uint8_sat_rtn(short8);
3584uint8 __ovld __cnfn convert_uint8(short8);
3585uint8 __ovld __cnfn convert_uint8_sat(short8);
3586uint8 __ovld __cnfn convert_uint8_rte(ushort8);
3587uint8 __ovld __cnfn convert_uint8_sat_rte(ushort8);
3588uint8 __ovld __cnfn convert_uint8_rtz(ushort8);
3589uint8 __ovld __cnfn convert_uint8_sat_rtz(ushort8);
3590uint8 __ovld __cnfn convert_uint8_rtp(ushort8);
3591uint8 __ovld __cnfn convert_uint8_sat_rtp(ushort8);
3592uint8 __ovld __cnfn convert_uint8_rtn(ushort8);
3593uint8 __ovld __cnfn convert_uint8_sat_rtn(ushort8);
3594uint8 __ovld __cnfn convert_uint8(ushort8);
3595uint8 __ovld __cnfn convert_uint8_sat(ushort8);
3596uint8 __ovld __cnfn convert_uint8_rte(int8);
3597uint8 __ovld __cnfn convert_uint8_sat_rte(int8);
3598uint8 __ovld __cnfn convert_uint8_rtz(int8);
3599uint8 __ovld __cnfn convert_uint8_sat_rtz(int8);
3600uint8 __ovld __cnfn convert_uint8_rtp(int8);
3601uint8 __ovld __cnfn convert_uint8_sat_rtp(int8);
3602uint8 __ovld __cnfn convert_uint8_rtn(int8);
3603uint8 __ovld __cnfn convert_uint8_sat_rtn(int8);
3604uint8 __ovld __cnfn convert_uint8(int8);
3605uint8 __ovld __cnfn convert_uint8_sat(int8);
3606uint8 __ovld __cnfn convert_uint8_rte(uint8);
3607uint8 __ovld __cnfn convert_uint8_sat_rte(uint8);
3608uint8 __ovld __cnfn convert_uint8_rtz(uint8);
3609uint8 __ovld __cnfn convert_uint8_sat_rtz(uint8);
3610uint8 __ovld __cnfn convert_uint8_rtp(uint8);
3611uint8 __ovld __cnfn convert_uint8_sat_rtp(uint8);
3612uint8 __ovld __cnfn convert_uint8_rtn(uint8);
3613uint8 __ovld __cnfn convert_uint8_sat_rtn(uint8);
3614uint8 __ovld __cnfn convert_uint8(uint8);
3615uint8 __ovld __cnfn convert_uint8_sat(uint8);
3616uint8 __ovld __cnfn convert_uint8_rte(long8);
3617uint8 __ovld __cnfn convert_uint8_sat_rte(long8);
3618uint8 __ovld __cnfn convert_uint8_rtz(long8);
3619uint8 __ovld __cnfn convert_uint8_sat_rtz(long8);
3620uint8 __ovld __cnfn convert_uint8_rtp(long8);
3621uint8 __ovld __cnfn convert_uint8_sat_rtp(long8);
3622uint8 __ovld __cnfn convert_uint8_rtn(long8);
3623uint8 __ovld __cnfn convert_uint8_sat_rtn(long8);
3624uint8 __ovld __cnfn convert_uint8(long8);
3625uint8 __ovld __cnfn convert_uint8_sat(long8);
3626uint8 __ovld __cnfn convert_uint8_rte(ulong8);
3627uint8 __ovld __cnfn convert_uint8_sat_rte(ulong8);
3628uint8 __ovld __cnfn convert_uint8_rtz(ulong8);
3629uint8 __ovld __cnfn convert_uint8_sat_rtz(ulong8);
3630uint8 __ovld __cnfn convert_uint8_rtp(ulong8);
3631uint8 __ovld __cnfn convert_uint8_sat_rtp(ulong8);
3632uint8 __ovld __cnfn convert_uint8_rtn(ulong8);
3633uint8 __ovld __cnfn convert_uint8_sat_rtn(ulong8);
3634uint8 __ovld __cnfn convert_uint8(ulong8);
3635uint8 __ovld __cnfn convert_uint8_sat(ulong8);
3636uint8 __ovld __cnfn convert_uint8_rte(float8);
3637uint8 __ovld __cnfn convert_uint8_sat_rte(float8);
3638uint8 __ovld __cnfn convert_uint8_rtz(float8);
3639uint8 __ovld __cnfn convert_uint8_sat_rtz(float8);
3640uint8 __ovld __cnfn convert_uint8_rtp(float8);
3641uint8 __ovld __cnfn convert_uint8_sat_rtp(float8);
3642uint8 __ovld __cnfn convert_uint8_rtn(float8);
3643uint8 __ovld __cnfn convert_uint8_sat_rtn(float8);
3644uint8 __ovld __cnfn convert_uint8(float8);
3645uint8 __ovld __cnfn convert_uint8_sat(float8);
3646long8 __ovld __cnfn convert_long8_rte(char8);
3647long8 __ovld __cnfn convert_long8_sat_rte(char8);
3648long8 __ovld __cnfn convert_long8_rtz(char8);
3649long8 __ovld __cnfn convert_long8_sat_rtz(char8);
3650long8 __ovld __cnfn convert_long8_rtp(char8);
3651long8 __ovld __cnfn convert_long8_sat_rtp(char8);
3652long8 __ovld __cnfn convert_long8_rtn(char8);
3653long8 __ovld __cnfn convert_long8_sat_rtn(char8);
3654long8 __ovld __cnfn convert_long8(char8);
3655long8 __ovld __cnfn convert_long8_sat(char8);
3656long8 __ovld __cnfn convert_long8_rte(uchar8);
3657long8 __ovld __cnfn convert_long8_sat_rte(uchar8);
3658long8 __ovld __cnfn convert_long8_rtz(uchar8);
3659long8 __ovld __cnfn convert_long8_sat_rtz(uchar8);
3660long8 __ovld __cnfn convert_long8_rtp(uchar8);
3661long8 __ovld __cnfn convert_long8_sat_rtp(uchar8);
3662long8 __ovld __cnfn convert_long8_rtn(uchar8);
3663long8 __ovld __cnfn convert_long8_sat_rtn(uchar8);
3664long8 __ovld __cnfn convert_long8(uchar8);
3665long8 __ovld __cnfn convert_long8_sat(uchar8);
3666long8 __ovld __cnfn convert_long8_rte(short8);
3667long8 __ovld __cnfn convert_long8_sat_rte(short8);
3668long8 __ovld __cnfn convert_long8_rtz(short8);
3669long8 __ovld __cnfn convert_long8_sat_rtz(short8);
3670long8 __ovld __cnfn convert_long8_rtp(short8);
3671long8 __ovld __cnfn convert_long8_sat_rtp(short8);
3672long8 __ovld __cnfn convert_long8_rtn(short8);
3673long8 __ovld __cnfn convert_long8_sat_rtn(short8);
3674long8 __ovld __cnfn convert_long8(short8);
3675long8 __ovld __cnfn convert_long8_sat(short8);
3676long8 __ovld __cnfn convert_long8_rte(ushort8);
3677long8 __ovld __cnfn convert_long8_sat_rte(ushort8);
3678long8 __ovld __cnfn convert_long8_rtz(ushort8);
3679long8 __ovld __cnfn convert_long8_sat_rtz(ushort8);
3680long8 __ovld __cnfn convert_long8_rtp(ushort8);
3681long8 __ovld __cnfn convert_long8_sat_rtp(ushort8);
3682long8 __ovld __cnfn convert_long8_rtn(ushort8);
3683long8 __ovld __cnfn convert_long8_sat_rtn(ushort8);
3684long8 __ovld __cnfn convert_long8(ushort8);
3685long8 __ovld __cnfn convert_long8_sat(ushort8);
3686long8 __ovld __cnfn convert_long8_rte(int8);
3687long8 __ovld __cnfn convert_long8_sat_rte(int8);
3688long8 __ovld __cnfn convert_long8_rtz(int8);
3689long8 __ovld __cnfn convert_long8_sat_rtz(int8);
3690long8 __ovld __cnfn convert_long8_rtp(int8);
3691long8 __ovld __cnfn convert_long8_sat_rtp(int8);
3692long8 __ovld __cnfn convert_long8_rtn(int8);
3693long8 __ovld __cnfn convert_long8_sat_rtn(int8);
3694long8 __ovld __cnfn convert_long8(int8);
3695long8 __ovld __cnfn convert_long8_sat(int8);
3696long8 __ovld __cnfn convert_long8_rte(uint8);
3697long8 __ovld __cnfn convert_long8_sat_rte(uint8);
3698long8 __ovld __cnfn convert_long8_rtz(uint8);
3699long8 __ovld __cnfn convert_long8_sat_rtz(uint8);
3700long8 __ovld __cnfn convert_long8_rtp(uint8);
3701long8 __ovld __cnfn convert_long8_sat_rtp(uint8);
3702long8 __ovld __cnfn convert_long8_rtn(uint8);
3703long8 __ovld __cnfn convert_long8_sat_rtn(uint8);
3704long8 __ovld __cnfn convert_long8(uint8);
3705long8 __ovld __cnfn convert_long8_sat(uint8);
3706long8 __ovld __cnfn convert_long8_rte(long8);
3707long8 __ovld __cnfn convert_long8_sat_rte(long8);
3708long8 __ovld __cnfn convert_long8_rtz(long8);
3709long8 __ovld __cnfn convert_long8_sat_rtz(long8);
3710long8 __ovld __cnfn convert_long8_rtp(long8);
3711long8 __ovld __cnfn convert_long8_sat_rtp(long8);
3712long8 __ovld __cnfn convert_long8_rtn(long8);
3713long8 __ovld __cnfn convert_long8_sat_rtn(long8);
3714long8 __ovld __cnfn convert_long8(long8);
3715long8 __ovld __cnfn convert_long8_sat(long8);
3716long8 __ovld __cnfn convert_long8_rte(ulong8);
3717long8 __ovld __cnfn convert_long8_sat_rte(ulong8);
3718long8 __ovld __cnfn convert_long8_rtz(ulong8);
3719long8 __ovld __cnfn convert_long8_sat_rtz(ulong8);
3720long8 __ovld __cnfn convert_long8_rtp(ulong8);
3721long8 __ovld __cnfn convert_long8_sat_rtp(ulong8);
3722long8 __ovld __cnfn convert_long8_rtn(ulong8);
3723long8 __ovld __cnfn convert_long8_sat_rtn(ulong8);
3724long8 __ovld __cnfn convert_long8(ulong8);
3725long8 __ovld __cnfn convert_long8_sat(ulong8);
3726long8 __ovld __cnfn convert_long8_rte(float8);
3727long8 __ovld __cnfn convert_long8_sat_rte(float8);
3728long8 __ovld __cnfn convert_long8_rtz(float8);
3729long8 __ovld __cnfn convert_long8_sat_rtz(float8);
3730long8 __ovld __cnfn convert_long8_rtp(float8);
3731long8 __ovld __cnfn convert_long8_sat_rtp(float8);
3732long8 __ovld __cnfn convert_long8_rtn(float8);
3733long8 __ovld __cnfn convert_long8_sat_rtn(float8);
3734long8 __ovld __cnfn convert_long8(float8);
3735long8 __ovld __cnfn convert_long8_sat(float8);
3736ulong8 __ovld __cnfn convert_ulong8_rte(char8);
3737ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8);
3738ulong8 __ovld __cnfn convert_ulong8_rtz(char8);
3739ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8);
3740ulong8 __ovld __cnfn convert_ulong8_rtp(char8);
3741ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8);
3742ulong8 __ovld __cnfn convert_ulong8_rtn(char8);
3743ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8);
3744ulong8 __ovld __cnfn convert_ulong8(char8);
3745ulong8 __ovld __cnfn convert_ulong8_sat(char8);
3746ulong8 __ovld __cnfn convert_ulong8_rte(uchar8);
3747ulong8 __ovld __cnfn convert_ulong8_sat_rte(uchar8);
3748ulong8 __ovld __cnfn convert_ulong8_rtz(uchar8);
3749ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uchar8);
3750ulong8 __ovld __cnfn convert_ulong8_rtp(uchar8);
3751ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uchar8);
3752ulong8 __ovld __cnfn convert_ulong8_rtn(uchar8);
3753ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uchar8);
3754ulong8 __ovld __cnfn convert_ulong8(uchar8);
3755ulong8 __ovld __cnfn convert_ulong8_sat(uchar8);
3756ulong8 __ovld __cnfn convert_ulong8_rte(short8);
3757ulong8 __ovld __cnfn convert_ulong8_sat_rte(short8);
3758ulong8 __ovld __cnfn convert_ulong8_rtz(short8);
3759ulong8 __ovld __cnfn convert_ulong8_sat_rtz(short8);
3760ulong8 __ovld __cnfn convert_ulong8_rtp(short8);
3761ulong8 __ovld __cnfn convert_ulong8_sat_rtp(short8);
3762ulong8 __ovld __cnfn convert_ulong8_rtn(short8);
3763ulong8 __ovld __cnfn convert_ulong8_sat_rtn(short8);
3764ulong8 __ovld __cnfn convert_ulong8(short8);
3765ulong8 __ovld __cnfn convert_ulong8_sat(short8);
3766ulong8 __ovld __cnfn convert_ulong8_rte(ushort8);
3767ulong8 __ovld __cnfn convert_ulong8_sat_rte(ushort8);
3768ulong8 __ovld __cnfn convert_ulong8_rtz(ushort8);
3769ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ushort8);
3770ulong8 __ovld __cnfn convert_ulong8_rtp(ushort8);
3771ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ushort8);
3772ulong8 __ovld __cnfn convert_ulong8_rtn(ushort8);
3773ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ushort8);
3774ulong8 __ovld __cnfn convert_ulong8(ushort8);
3775ulong8 __ovld __cnfn convert_ulong8_sat(ushort8);
3776ulong8 __ovld __cnfn convert_ulong8_rte(int8);
3777ulong8 __ovld __cnfn convert_ulong8_sat_rte(int8);
3778ulong8 __ovld __cnfn convert_ulong8_rtz(int8);
3779ulong8 __ovld __cnfn convert_ulong8_sat_rtz(int8);
3780ulong8 __ovld __cnfn convert_ulong8_rtp(int8);
3781ulong8 __ovld __cnfn convert_ulong8_sat_rtp(int8);
3782ulong8 __ovld __cnfn convert_ulong8_rtn(int8);
3783ulong8 __ovld __cnfn convert_ulong8_sat_rtn(int8);
3784ulong8 __ovld __cnfn convert_ulong8(int8);
3785ulong8 __ovld __cnfn convert_ulong8_sat(int8);
3786ulong8 __ovld __cnfn convert_ulong8_rte(uint8);
3787ulong8 __ovld __cnfn convert_ulong8_sat_rte(uint8);
3788ulong8 __ovld __cnfn convert_ulong8_rtz(uint8);
3789ulong8 __ovld __cnfn convert_ulong8_sat_rtz(uint8);
3790ulong8 __ovld __cnfn convert_ulong8_rtp(uint8);
3791ulong8 __ovld __cnfn convert_ulong8_sat_rtp(uint8);
3792ulong8 __ovld __cnfn convert_ulong8_rtn(uint8);
3793ulong8 __ovld __cnfn convert_ulong8_sat_rtn(uint8);
3794ulong8 __ovld __cnfn convert_ulong8(uint8);
3795ulong8 __ovld __cnfn convert_ulong8_sat(uint8);
3796ulong8 __ovld __cnfn convert_ulong8_rte(long8);
3797ulong8 __ovld __cnfn convert_ulong8_sat_rte(long8);
3798ulong8 __ovld __cnfn convert_ulong8_rtz(long8);
3799ulong8 __ovld __cnfn convert_ulong8_sat_rtz(long8);
3800ulong8 __ovld __cnfn convert_ulong8_rtp(long8);
3801ulong8 __ovld __cnfn convert_ulong8_sat_rtp(long8);
3802ulong8 __ovld __cnfn convert_ulong8_rtn(long8);
3803ulong8 __ovld __cnfn convert_ulong8_sat_rtn(long8);
3804ulong8 __ovld __cnfn convert_ulong8(long8);
3805ulong8 __ovld __cnfn convert_ulong8_sat(long8);
3806ulong8 __ovld __cnfn convert_ulong8_rte(ulong8);
3807ulong8 __ovld __cnfn convert_ulong8_sat_rte(ulong8);
3808ulong8 __ovld __cnfn convert_ulong8_rtz(ulong8);
3809ulong8 __ovld __cnfn convert_ulong8_sat_rtz(ulong8);
3810ulong8 __ovld __cnfn convert_ulong8_rtp(ulong8);
3811ulong8 __ovld __cnfn convert_ulong8_sat_rtp(ulong8);
3812ulong8 __ovld __cnfn convert_ulong8_rtn(ulong8);
3813ulong8 __ovld __cnfn convert_ulong8_sat_rtn(ulong8);
3814ulong8 __ovld __cnfn convert_ulong8(ulong8);
3815ulong8 __ovld __cnfn convert_ulong8_sat(ulong8);
3816ulong8 __ovld __cnfn convert_ulong8_rte(float8);
3817ulong8 __ovld __cnfn convert_ulong8_sat_rte(float8);
3818ulong8 __ovld __cnfn convert_ulong8_rtz(float8);
3819ulong8 __ovld __cnfn convert_ulong8_sat_rtz(float8);
3820ulong8 __ovld __cnfn convert_ulong8_rtp(float8);
3821ulong8 __ovld __cnfn convert_ulong8_sat_rtp(float8);
3822ulong8 __ovld __cnfn convert_ulong8_rtn(float8);
3823ulong8 __ovld __cnfn convert_ulong8_sat_rtn(float8);
3824ulong8 __ovld __cnfn convert_ulong8(float8);
3825ulong8 __ovld __cnfn convert_ulong8_sat(float8);
3826float8 __ovld __cnfn convert_float8_rte(char8);
3827float8 __ovld __cnfn convert_float8_rtz(char8);
3828float8 __ovld __cnfn convert_float8_rtp(char8);
3829float8 __ovld __cnfn convert_float8_rtn(char8);
3830float8 __ovld __cnfn convert_float8(char8);
3831float8 __ovld __cnfn convert_float8_rte(uchar8);
3832float8 __ovld __cnfn convert_float8_rtz(uchar8);
3833float8 __ovld __cnfn convert_float8_rtp(uchar8);
3834float8 __ovld __cnfn convert_float8_rtn(uchar8);
3835float8 __ovld __cnfn convert_float8(uchar8);
3836float8 __ovld __cnfn convert_float8_rte(short8);
3837float8 __ovld __cnfn convert_float8_rtz(short8);
3838float8 __ovld __cnfn convert_float8_rtp(short8);
3839float8 __ovld __cnfn convert_float8_rtn(short8);
3840float8 __ovld __cnfn convert_float8(short8);
3841float8 __ovld __cnfn convert_float8_rte(ushort8);
3842float8 __ovld __cnfn convert_float8_rtz(ushort8);
3843float8 __ovld __cnfn convert_float8_rtp(ushort8);
3844float8 __ovld __cnfn convert_float8_rtn(ushort8);
3845float8 __ovld __cnfn convert_float8(ushort8);
3846float8 __ovld __cnfn convert_float8_rte(int8);
3847float8 __ovld __cnfn convert_float8_rtz(int8);
3848float8 __ovld __cnfn convert_float8_rtp(int8);
3849float8 __ovld __cnfn convert_float8_rtn(int8);
3850float8 __ovld __cnfn convert_float8(int8);
3851float8 __ovld __cnfn convert_float8_rte(uint8);
3852float8 __ovld __cnfn convert_float8_rtz(uint8);
3853float8 __ovld __cnfn convert_float8_rtp(uint8);
3854float8 __ovld __cnfn convert_float8_rtn(uint8);
3855float8 __ovld __cnfn convert_float8(uint8);
3856float8 __ovld __cnfn convert_float8_rte(long8);
3857float8 __ovld __cnfn convert_float8_rtz(long8);
3858float8 __ovld __cnfn convert_float8_rtp(long8);
3859float8 __ovld __cnfn convert_float8_rtn(long8);
3860float8 __ovld __cnfn convert_float8(long8);
3861float8 __ovld __cnfn convert_float8_rte(ulong8);
3862float8 __ovld __cnfn convert_float8_rtz(ulong8);
3863float8 __ovld __cnfn convert_float8_rtp(ulong8);
3864float8 __ovld __cnfn convert_float8_rtn(ulong8);
3865float8 __ovld __cnfn convert_float8(ulong8);
3866float8 __ovld __cnfn convert_float8_rte(float8);
3867float8 __ovld __cnfn convert_float8_rtz(float8);
3868float8 __ovld __cnfn convert_float8_rtp(float8);
3869float8 __ovld __cnfn convert_float8_rtn(float8);
3870float8 __ovld __cnfn convert_float8(float8);
3871char16 __ovld __cnfn convert_char16_rte(char16);
3872char16 __ovld __cnfn convert_char16_sat_rte(char16);
3873char16 __ovld __cnfn convert_char16_rtz(char16);
3874char16 __ovld __cnfn convert_char16_sat_rtz(char16);
3875char16 __ovld __cnfn convert_char16_rtp(char16);
3876char16 __ovld __cnfn convert_char16_sat_rtp(char16);
3877char16 __ovld __cnfn convert_char16_rtn(char16);
3878char16 __ovld __cnfn convert_char16_sat_rtn(char16);
3879char16 __ovld __cnfn convert_char16(char16);
3880char16 __ovld __cnfn convert_char16_sat(char16);
3881char16 __ovld __cnfn convert_char16_rte(uchar16);
3882char16 __ovld __cnfn convert_char16_sat_rte(uchar16);
3883char16 __ovld __cnfn convert_char16_rtz(uchar16);
3884char16 __ovld __cnfn convert_char16_sat_rtz(uchar16);
3885char16 __ovld __cnfn convert_char16_rtp(uchar16);
3886char16 __ovld __cnfn convert_char16_sat_rtp(uchar16);
3887char16 __ovld __cnfn convert_char16_rtn(uchar16);
3888char16 __ovld __cnfn convert_char16_sat_rtn(uchar16);
3889char16 __ovld __cnfn convert_char16(uchar16);
3890char16 __ovld __cnfn convert_char16_sat(uchar16);
3891char16 __ovld __cnfn convert_char16_rte(short16);
3892char16 __ovld __cnfn convert_char16_sat_rte(short16);
3893char16 __ovld __cnfn convert_char16_rtz(short16);
3894char16 __ovld __cnfn convert_char16_sat_rtz(short16);
3895char16 __ovld __cnfn convert_char16_rtp(short16);
3896char16 __ovld __cnfn convert_char16_sat_rtp(short16);
3897char16 __ovld __cnfn convert_char16_rtn(short16);
3898char16 __ovld __cnfn convert_char16_sat_rtn(short16);
3899char16 __ovld __cnfn convert_char16(short16);
3900char16 __ovld __cnfn convert_char16_sat(short16);
3901char16 __ovld __cnfn convert_char16_rte(ushort16);
3902char16 __ovld __cnfn convert_char16_sat_rte(ushort16);
3903char16 __ovld __cnfn convert_char16_rtz(ushort16);
3904char16 __ovld __cnfn convert_char16_sat_rtz(ushort16);
3905char16 __ovld __cnfn convert_char16_rtp(ushort16);
3906char16 __ovld __cnfn convert_char16_sat_rtp(ushort16);
3907char16 __ovld __cnfn convert_char16_rtn(ushort16);
3908char16 __ovld __cnfn convert_char16_sat_rtn(ushort16);
3909char16 __ovld __cnfn convert_char16(ushort16);
3910char16 __ovld __cnfn convert_char16_sat(ushort16);
3911char16 __ovld __cnfn convert_char16_rte(int16);
3912char16 __ovld __cnfn convert_char16_sat_rte(int16);
3913char16 __ovld __cnfn convert_char16_rtz(int16);
3914char16 __ovld __cnfn convert_char16_sat_rtz(int16);
3915char16 __ovld __cnfn convert_char16_rtp(int16);
3916char16 __ovld __cnfn convert_char16_sat_rtp(int16);
3917char16 __ovld __cnfn convert_char16_rtn(int16);
3918char16 __ovld __cnfn convert_char16_sat_rtn(int16);
3919char16 __ovld __cnfn convert_char16(int16);
3920char16 __ovld __cnfn convert_char16_sat(int16);
3921char16 __ovld __cnfn convert_char16_rte(uint16);
3922char16 __ovld __cnfn convert_char16_sat_rte(uint16);
3923char16 __ovld __cnfn convert_char16_rtz(uint16);
3924char16 __ovld __cnfn convert_char16_sat_rtz(uint16);
3925char16 __ovld __cnfn convert_char16_rtp(uint16);
3926char16 __ovld __cnfn convert_char16_sat_rtp(uint16);
3927char16 __ovld __cnfn convert_char16_rtn(uint16);
3928char16 __ovld __cnfn convert_char16_sat_rtn(uint16);
3929char16 __ovld __cnfn convert_char16(uint16);
3930char16 __ovld __cnfn convert_char16_sat(uint16);
3931char16 __ovld __cnfn convert_char16_rte(long16);
3932char16 __ovld __cnfn convert_char16_sat_rte(long16);
3933char16 __ovld __cnfn convert_char16_rtz(long16);
3934char16 __ovld __cnfn convert_char16_sat_rtz(long16);
3935char16 __ovld __cnfn convert_char16_rtp(long16);
3936char16 __ovld __cnfn convert_char16_sat_rtp(long16);
3937char16 __ovld __cnfn convert_char16_rtn(long16);
3938char16 __ovld __cnfn convert_char16_sat_rtn(long16);
3939char16 __ovld __cnfn convert_char16(long16);
3940char16 __ovld __cnfn convert_char16_sat(long16);
3941char16 __ovld __cnfn convert_char16_rte(ulong16);
3942char16 __ovld __cnfn convert_char16_sat_rte(ulong16);
3943char16 __ovld __cnfn convert_char16_rtz(ulong16);
3944char16 __ovld __cnfn convert_char16_sat_rtz(ulong16);
3945char16 __ovld __cnfn convert_char16_rtp(ulong16);
3946char16 __ovld __cnfn convert_char16_sat_rtp(ulong16);
3947char16 __ovld __cnfn convert_char16_rtn(ulong16);
3948char16 __ovld __cnfn convert_char16_sat_rtn(ulong16);
3949char16 __ovld __cnfn convert_char16(ulong16);
3950char16 __ovld __cnfn convert_char16_sat(ulong16);
3951char16 __ovld __cnfn convert_char16_rte(float16);
3952char16 __ovld __cnfn convert_char16_sat_rte(float16);
3953char16 __ovld __cnfn convert_char16_rtz(float16);
3954char16 __ovld __cnfn convert_char16_sat_rtz(float16);
3955char16 __ovld __cnfn convert_char16_rtp(float16);
3956char16 __ovld __cnfn convert_char16_sat_rtp(float16);
3957char16 __ovld __cnfn convert_char16_rtn(float16);
3958char16 __ovld __cnfn convert_char16_sat_rtn(float16);
3959char16 __ovld __cnfn convert_char16(float16);
3960char16 __ovld __cnfn convert_char16_sat(float16);
3961uchar16 __ovld __cnfn convert_uchar16_rte(char16);
3962uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16);
3963uchar16 __ovld __cnfn convert_uchar16_rtz(char16);
3964uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16);
3965uchar16 __ovld __cnfn convert_uchar16_rtp(char16);
3966uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16);
3967uchar16 __ovld __cnfn convert_uchar16_rtn(char16);
3968uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16);
3969uchar16 __ovld __cnfn convert_uchar16(char16);
3970uchar16 __ovld __cnfn convert_uchar16_sat(char16);
3971uchar16 __ovld __cnfn convert_uchar16_rte(uchar16);
3972uchar16 __ovld __cnfn convert_uchar16_sat_rte(uchar16);
3973uchar16 __ovld __cnfn convert_uchar16_rtz(uchar16);
3974uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uchar16);
3975uchar16 __ovld __cnfn convert_uchar16_rtp(uchar16);
3976uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uchar16);
3977uchar16 __ovld __cnfn convert_uchar16_rtn(uchar16);
3978uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uchar16);
3979uchar16 __ovld __cnfn convert_uchar16(uchar16);
3980uchar16 __ovld __cnfn convert_uchar16_sat(uchar16);
3981uchar16 __ovld __cnfn convert_uchar16_rte(short16);
3982uchar16 __ovld __cnfn convert_uchar16_sat_rte(short16);
3983uchar16 __ovld __cnfn convert_uchar16_rtz(short16);
3984uchar16 __ovld __cnfn convert_uchar16_sat_rtz(short16);
3985uchar16 __ovld __cnfn convert_uchar16_rtp(short16);
3986uchar16 __ovld __cnfn convert_uchar16_sat_rtp(short16);
3987uchar16 __ovld __cnfn convert_uchar16_rtn(short16);
3988uchar16 __ovld __cnfn convert_uchar16_sat_rtn(short16);
3989uchar16 __ovld __cnfn convert_uchar16(short16);
3990uchar16 __ovld __cnfn convert_uchar16_sat(short16);
3991uchar16 __ovld __cnfn convert_uchar16_rte(ushort16);
3992uchar16 __ovld __cnfn convert_uchar16_sat_rte(ushort16);
3993uchar16 __ovld __cnfn convert_uchar16_rtz(ushort16);
3994uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ushort16);
3995uchar16 __ovld __cnfn convert_uchar16_rtp(ushort16);
3996uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ushort16);
3997uchar16 __ovld __cnfn convert_uchar16_rtn(ushort16);
3998uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ushort16);
3999uchar16 __ovld __cnfn convert_uchar16(ushort16);
4000uchar16 __ovld __cnfn convert_uchar16_sat(ushort16);
4001uchar16 __ovld __cnfn convert_uchar16_rte(int16);
4002uchar16 __ovld __cnfn convert_uchar16_sat_rte(int16);
4003uchar16 __ovld __cnfn convert_uchar16_rtz(int16);
4004uchar16 __ovld __cnfn convert_uchar16_sat_rtz(int16);
4005uchar16 __ovld __cnfn convert_uchar16_rtp(int16);
4006uchar16 __ovld __cnfn convert_uchar16_sat_rtp(int16);
4007uchar16 __ovld __cnfn convert_uchar16_rtn(int16);
4008uchar16 __ovld __cnfn convert_uchar16_sat_rtn(int16);
4009uchar16 __ovld __cnfn convert_uchar16(int16);
4010uchar16 __ovld __cnfn convert_uchar16_sat(int16);
4011uchar16 __ovld __cnfn convert_uchar16_rte(uint16);
4012uchar16 __ovld __cnfn convert_uchar16_sat_rte(uint16);
4013uchar16 __ovld __cnfn convert_uchar16_rtz(uint16);
4014uchar16 __ovld __cnfn convert_uchar16_sat_rtz(uint16);
4015uchar16 __ovld __cnfn convert_uchar16_rtp(uint16);
4016uchar16 __ovld __cnfn convert_uchar16_sat_rtp(uint16);
4017uchar16 __ovld __cnfn convert_uchar16_rtn(uint16);
4018uchar16 __ovld __cnfn convert_uchar16_sat_rtn(uint16);
4019uchar16 __ovld __cnfn convert_uchar16(uint16);
4020uchar16 __ovld __cnfn convert_uchar16_sat(uint16);
4021uchar16 __ovld __cnfn convert_uchar16_rte(long16);
4022uchar16 __ovld __cnfn convert_uchar16_sat_rte(long16);
4023uchar16 __ovld __cnfn convert_uchar16_rtz(long16);
4024uchar16 __ovld __cnfn convert_uchar16_sat_rtz(long16);
4025uchar16 __ovld __cnfn convert_uchar16_rtp(long16);
4026uchar16 __ovld __cnfn convert_uchar16_sat_rtp(long16);
4027uchar16 __ovld __cnfn convert_uchar16_rtn(long16);
4028uchar16 __ovld __cnfn convert_uchar16_sat_rtn(long16);
4029uchar16 __ovld __cnfn convert_uchar16(long16);
4030uchar16 __ovld __cnfn convert_uchar16_sat(long16);
4031uchar16 __ovld __cnfn convert_uchar16_rte(ulong16);
4032uchar16 __ovld __cnfn convert_uchar16_sat_rte(ulong16);
4033uchar16 __ovld __cnfn convert_uchar16_rtz(ulong16);
4034uchar16 __ovld __cnfn convert_uchar16_sat_rtz(ulong16);
4035uchar16 __ovld __cnfn convert_uchar16_rtp(ulong16);
4036uchar16 __ovld __cnfn convert_uchar16_sat_rtp(ulong16);
4037uchar16 __ovld __cnfn convert_uchar16_rtn(ulong16);
4038uchar16 __ovld __cnfn convert_uchar16_sat_rtn(ulong16);
4039uchar16 __ovld __cnfn convert_uchar16(ulong16);
4040uchar16 __ovld __cnfn convert_uchar16_sat(ulong16);
4041uchar16 __ovld __cnfn convert_uchar16_rte(float16);
4042uchar16 __ovld __cnfn convert_uchar16_sat_rte(float16);
4043uchar16 __ovld __cnfn convert_uchar16_rtz(float16);
4044uchar16 __ovld __cnfn convert_uchar16_sat_rtz(float16);
4045uchar16 __ovld __cnfn convert_uchar16_rtp(float16);
4046uchar16 __ovld __cnfn convert_uchar16_sat_rtp(float16);
4047uchar16 __ovld __cnfn convert_uchar16_rtn(float16);
4048uchar16 __ovld __cnfn convert_uchar16_sat_rtn(float16);
4049uchar16 __ovld __cnfn convert_uchar16(float16);
4050uchar16 __ovld __cnfn convert_uchar16_sat(float16);
4051short16 __ovld __cnfn convert_short16_rte(char16);
4052short16 __ovld __cnfn convert_short16_sat_rte(char16);
4053short16 __ovld __cnfn convert_short16_rtz(char16);
4054short16 __ovld __cnfn convert_short16_sat_rtz(char16);
4055short16 __ovld __cnfn convert_short16_rtp(char16);
4056short16 __ovld __cnfn convert_short16_sat_rtp(char16);
4057short16 __ovld __cnfn convert_short16_rtn(char16);
4058short16 __ovld __cnfn convert_short16_sat_rtn(char16);
4059short16 __ovld __cnfn convert_short16(char16);
4060short16 __ovld __cnfn convert_short16_sat(char16);
4061short16 __ovld __cnfn convert_short16_rte(uchar16);
4062short16 __ovld __cnfn convert_short16_sat_rte(uchar16);
4063short16 __ovld __cnfn convert_short16_rtz(uchar16);
4064short16 __ovld __cnfn convert_short16_sat_rtz(uchar16);
4065short16 __ovld __cnfn convert_short16_rtp(uchar16);
4066short16 __ovld __cnfn convert_short16_sat_rtp(uchar16);
4067short16 __ovld __cnfn convert_short16_rtn(uchar16);
4068short16 __ovld __cnfn convert_short16_sat_rtn(uchar16);
4069short16 __ovld __cnfn convert_short16(uchar16);
4070short16 __ovld __cnfn convert_short16_sat(uchar16);
4071short16 __ovld __cnfn convert_short16_rte(short16);
4072short16 __ovld __cnfn convert_short16_sat_rte(short16);
4073short16 __ovld __cnfn convert_short16_rtz(short16);
4074short16 __ovld __cnfn convert_short16_sat_rtz(short16);
4075short16 __ovld __cnfn convert_short16_rtp(short16);
4076short16 __ovld __cnfn convert_short16_sat_rtp(short16);
4077short16 __ovld __cnfn convert_short16_rtn(short16);
4078short16 __ovld __cnfn convert_short16_sat_rtn(short16);
4079short16 __ovld __cnfn convert_short16(short16);
4080short16 __ovld __cnfn convert_short16_sat(short16);
4081short16 __ovld __cnfn convert_short16_rte(ushort16);
4082short16 __ovld __cnfn convert_short16_sat_rte(ushort16);
4083short16 __ovld __cnfn convert_short16_rtz(ushort16);
4084short16 __ovld __cnfn convert_short16_sat_rtz(ushort16);
4085short16 __ovld __cnfn convert_short16_rtp(ushort16);
4086short16 __ovld __cnfn convert_short16_sat_rtp(ushort16);
4087short16 __ovld __cnfn convert_short16_rtn(ushort16);
4088short16 __ovld __cnfn convert_short16_sat_rtn(ushort16);
4089short16 __ovld __cnfn convert_short16(ushort16);
4090short16 __ovld __cnfn convert_short16_sat(ushort16);
4091short16 __ovld __cnfn convert_short16_rte(int16);
4092short16 __ovld __cnfn convert_short16_sat_rte(int16);
4093short16 __ovld __cnfn convert_short16_rtz(int16);
4094short16 __ovld __cnfn convert_short16_sat_rtz(int16);
4095short16 __ovld __cnfn convert_short16_rtp(int16);
4096short16 __ovld __cnfn convert_short16_sat_rtp(int16);
4097short16 __ovld __cnfn convert_short16_rtn(int16);
4098short16 __ovld __cnfn convert_short16_sat_rtn(int16);
4099short16 __ovld __cnfn convert_short16(int16);
4100short16 __ovld __cnfn convert_short16_sat(int16);
4101short16 __ovld __cnfn convert_short16_rte(uint16);
4102short16 __ovld __cnfn convert_short16_sat_rte(uint16);
4103short16 __ovld __cnfn convert_short16_rtz(uint16);
4104short16 __ovld __cnfn convert_short16_sat_rtz(uint16);
4105short16 __ovld __cnfn convert_short16_rtp(uint16);
4106short16 __ovld __cnfn convert_short16_sat_rtp(uint16);
4107short16 __ovld __cnfn convert_short16_rtn(uint16);
4108short16 __ovld __cnfn convert_short16_sat_rtn(uint16);
4109short16 __ovld __cnfn convert_short16(uint16);
4110short16 __ovld __cnfn convert_short16_sat(uint16);
4111short16 __ovld __cnfn convert_short16_rte(long16);
4112short16 __ovld __cnfn convert_short16_sat_rte(long16);
4113short16 __ovld __cnfn convert_short16_rtz(long16);
4114short16 __ovld __cnfn convert_short16_sat_rtz(long16);
4115short16 __ovld __cnfn convert_short16_rtp(long16);
4116short16 __ovld __cnfn convert_short16_sat_rtp(long16);
4117short16 __ovld __cnfn convert_short16_rtn(long16);
4118short16 __ovld __cnfn convert_short16_sat_rtn(long16);
4119short16 __ovld __cnfn convert_short16(long16);
4120short16 __ovld __cnfn convert_short16_sat(long16);
4121short16 __ovld __cnfn convert_short16_rte(ulong16);
4122short16 __ovld __cnfn convert_short16_sat_rte(ulong16);
4123short16 __ovld __cnfn convert_short16_rtz(ulong16);
4124short16 __ovld __cnfn convert_short16_sat_rtz(ulong16);
4125short16 __ovld __cnfn convert_short16_rtp(ulong16);
4126short16 __ovld __cnfn convert_short16_sat_rtp(ulong16);
4127short16 __ovld __cnfn convert_short16_rtn(ulong16);
4128short16 __ovld __cnfn convert_short16_sat_rtn(ulong16);
4129short16 __ovld __cnfn convert_short16(ulong16);
4130short16 __ovld __cnfn convert_short16_sat(ulong16);
4131short16 __ovld __cnfn convert_short16_rte(float16);
4132short16 __ovld __cnfn convert_short16_sat_rte(float16);
4133short16 __ovld __cnfn convert_short16_rtz(float16);
4134short16 __ovld __cnfn convert_short16_sat_rtz(float16);
4135short16 __ovld __cnfn convert_short16_rtp(float16);
4136short16 __ovld __cnfn convert_short16_sat_rtp(float16);
4137short16 __ovld __cnfn convert_short16_rtn(float16);
4138short16 __ovld __cnfn convert_short16_sat_rtn(float16);
4139short16 __ovld __cnfn convert_short16(float16);
4140short16 __ovld __cnfn convert_short16_sat(float16);
4141ushort16 __ovld __cnfn convert_ushort16_rte(char16);
4142ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16);
4143ushort16 __ovld __cnfn convert_ushort16_rtz(char16);
4144ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16);
4145ushort16 __ovld __cnfn convert_ushort16_rtp(char16);
4146ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16);
4147ushort16 __ovld __cnfn convert_ushort16_rtn(char16);
4148ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16);
4149ushort16 __ovld __cnfn convert_ushort16(char16);
4150ushort16 __ovld __cnfn convert_ushort16_sat(char16);
4151ushort16 __ovld __cnfn convert_ushort16_rte(uchar16);
4152ushort16 __ovld __cnfn convert_ushort16_sat_rte(uchar16);
4153ushort16 __ovld __cnfn convert_ushort16_rtz(uchar16);
4154ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uchar16);
4155ushort16 __ovld __cnfn convert_ushort16_rtp(uchar16);
4156ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uchar16);
4157ushort16 __ovld __cnfn convert_ushort16_rtn(uchar16);
4158ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uchar16);
4159ushort16 __ovld __cnfn convert_ushort16(uchar16);
4160ushort16 __ovld __cnfn convert_ushort16_sat(uchar16);
4161ushort16 __ovld __cnfn convert_ushort16_rte(short16);
4162ushort16 __ovld __cnfn convert_ushort16_sat_rte(short16);
4163ushort16 __ovld __cnfn convert_ushort16_rtz(short16);
4164ushort16 __ovld __cnfn convert_ushort16_sat_rtz(short16);
4165ushort16 __ovld __cnfn convert_ushort16_rtp(short16);
4166ushort16 __ovld __cnfn convert_ushort16_sat_rtp(short16);
4167ushort16 __ovld __cnfn convert_ushort16_rtn(short16);
4168ushort16 __ovld __cnfn convert_ushort16_sat_rtn(short16);
4169ushort16 __ovld __cnfn convert_ushort16(short16);
4170ushort16 __ovld __cnfn convert_ushort16_sat(short16);
4171ushort16 __ovld __cnfn convert_ushort16_rte(ushort16);
4172ushort16 __ovld __cnfn convert_ushort16_sat_rte(ushort16);
4173ushort16 __ovld __cnfn convert_ushort16_rtz(ushort16);
4174ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ushort16);
4175ushort16 __ovld __cnfn convert_ushort16_rtp(ushort16);
4176ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ushort16);
4177ushort16 __ovld __cnfn convert_ushort16_rtn(ushort16);
4178ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ushort16);
4179ushort16 __ovld __cnfn convert_ushort16(ushort16);
4180ushort16 __ovld __cnfn convert_ushort16_sat(ushort16);
4181ushort16 __ovld __cnfn convert_ushort16_rte(int16);
4182ushort16 __ovld __cnfn convert_ushort16_sat_rte(int16);
4183ushort16 __ovld __cnfn convert_ushort16_rtz(int16);
4184ushort16 __ovld __cnfn convert_ushort16_sat_rtz(int16);
4185ushort16 __ovld __cnfn convert_ushort16_rtp(int16);
4186ushort16 __ovld __cnfn convert_ushort16_sat_rtp(int16);
4187ushort16 __ovld __cnfn convert_ushort16_rtn(int16);
4188ushort16 __ovld __cnfn convert_ushort16_sat_rtn(int16);
4189ushort16 __ovld __cnfn convert_ushort16(int16);
4190ushort16 __ovld __cnfn convert_ushort16_sat(int16);
4191ushort16 __ovld __cnfn convert_ushort16_rte(uint16);
4192ushort16 __ovld __cnfn convert_ushort16_sat_rte(uint16);
4193ushort16 __ovld __cnfn convert_ushort16_rtz(uint16);
4194ushort16 __ovld __cnfn convert_ushort16_sat_rtz(uint16);
4195ushort16 __ovld __cnfn convert_ushort16_rtp(uint16);
4196ushort16 __ovld __cnfn convert_ushort16_sat_rtp(uint16);
4197ushort16 __ovld __cnfn convert_ushort16_rtn(uint16);
4198ushort16 __ovld __cnfn convert_ushort16_sat_rtn(uint16);
4199ushort16 __ovld __cnfn convert_ushort16(uint16);
4200ushort16 __ovld __cnfn convert_ushort16_sat(uint16);
4201ushort16 __ovld __cnfn convert_ushort16_rte(long16);
4202ushort16 __ovld __cnfn convert_ushort16_sat_rte(long16);
4203ushort16 __ovld __cnfn convert_ushort16_rtz(long16);
4204ushort16 __ovld __cnfn convert_ushort16_sat_rtz(long16);
4205ushort16 __ovld __cnfn convert_ushort16_rtp(long16);
4206ushort16 __ovld __cnfn convert_ushort16_sat_rtp(long16);
4207ushort16 __ovld __cnfn convert_ushort16_rtn(long16);
4208ushort16 __ovld __cnfn convert_ushort16_sat_rtn(long16);
4209ushort16 __ovld __cnfn convert_ushort16(long16);
4210ushort16 __ovld __cnfn convert_ushort16_sat(long16);
4211ushort16 __ovld __cnfn convert_ushort16_rte(ulong16);
4212ushort16 __ovld __cnfn convert_ushort16_sat_rte(ulong16);
4213ushort16 __ovld __cnfn convert_ushort16_rtz(ulong16);
4214ushort16 __ovld __cnfn convert_ushort16_sat_rtz(ulong16);
4215ushort16 __ovld __cnfn convert_ushort16_rtp(ulong16);
4216ushort16 __ovld __cnfn convert_ushort16_sat_rtp(ulong16);
4217ushort16 __ovld __cnfn convert_ushort16_rtn(ulong16);
4218ushort16 __ovld __cnfn convert_ushort16_sat_rtn(ulong16);
4219ushort16 __ovld __cnfn convert_ushort16(ulong16);
4220ushort16 __ovld __cnfn convert_ushort16_sat(ulong16);
4221ushort16 __ovld __cnfn convert_ushort16_rte(float16);
4222ushort16 __ovld __cnfn convert_ushort16_sat_rte(float16);
4223ushort16 __ovld __cnfn convert_ushort16_rtz(float16);
4224ushort16 __ovld __cnfn convert_ushort16_sat_rtz(float16);
4225ushort16 __ovld __cnfn convert_ushort16_rtp(float16);
4226ushort16 __ovld __cnfn convert_ushort16_sat_rtp(float16);
4227ushort16 __ovld __cnfn convert_ushort16_rtn(float16);
4228ushort16 __ovld __cnfn convert_ushort16_sat_rtn(float16);
4229ushort16 __ovld __cnfn convert_ushort16(float16);
4230ushort16 __ovld __cnfn convert_ushort16_sat(float16);
4231int16 __ovld __cnfn convert_int16_rte(char16);
4232int16 __ovld __cnfn convert_int16_sat_rte(char16);
4233int16 __ovld __cnfn convert_int16_rtz(char16);
4234int16 __ovld __cnfn convert_int16_sat_rtz(char16);
4235int16 __ovld __cnfn convert_int16_rtp(char16);
4236int16 __ovld __cnfn convert_int16_sat_rtp(char16);
4237int16 __ovld __cnfn convert_int16_rtn(char16);
4238int16 __ovld __cnfn convert_int16_sat_rtn(char16);
4239int16 __ovld __cnfn convert_int16(char16);
4240int16 __ovld __cnfn convert_int16_sat(char16);
4241int16 __ovld __cnfn convert_int16_rte(uchar16);
4242int16 __ovld __cnfn convert_int16_sat_rte(uchar16);
4243int16 __ovld __cnfn convert_int16_rtz(uchar16);
4244int16 __ovld __cnfn convert_int16_sat_rtz(uchar16);
4245int16 __ovld __cnfn convert_int16_rtp(uchar16);
4246int16 __ovld __cnfn convert_int16_sat_rtp(uchar16);
4247int16 __ovld __cnfn convert_int16_rtn(uchar16);
4248int16 __ovld __cnfn convert_int16_sat_rtn(uchar16);
4249int16 __ovld __cnfn convert_int16(uchar16);
4250int16 __ovld __cnfn convert_int16_sat(uchar16);
4251int16 __ovld __cnfn convert_int16_rte(short16);
4252int16 __ovld __cnfn convert_int16_sat_rte(short16);
4253int16 __ovld __cnfn convert_int16_rtz(short16);
4254int16 __ovld __cnfn convert_int16_sat_rtz(short16);
4255int16 __ovld __cnfn convert_int16_rtp(short16);
4256int16 __ovld __cnfn convert_int16_sat_rtp(short16);
4257int16 __ovld __cnfn convert_int16_rtn(short16);
4258int16 __ovld __cnfn convert_int16_sat_rtn(short16);
4259int16 __ovld __cnfn convert_int16(short16);
4260int16 __ovld __cnfn convert_int16_sat(short16);
4261int16 __ovld __cnfn convert_int16_rte(ushort16);
4262int16 __ovld __cnfn convert_int16_sat_rte(ushort16);
4263int16 __ovld __cnfn convert_int16_rtz(ushort16);
4264int16 __ovld __cnfn convert_int16_sat_rtz(ushort16);
4265int16 __ovld __cnfn convert_int16_rtp(ushort16);
4266int16 __ovld __cnfn convert_int16_sat_rtp(ushort16);
4267int16 __ovld __cnfn convert_int16_rtn(ushort16);
4268int16 __ovld __cnfn convert_int16_sat_rtn(ushort16);
4269int16 __ovld __cnfn convert_int16(ushort16);
4270int16 __ovld __cnfn convert_int16_sat(ushort16);
4271int16 __ovld __cnfn convert_int16_rte(int16);
4272int16 __ovld __cnfn convert_int16_sat_rte(int16);
4273int16 __ovld __cnfn convert_int16_rtz(int16);
4274int16 __ovld __cnfn convert_int16_sat_rtz(int16);
4275int16 __ovld __cnfn convert_int16_rtp(int16);
4276int16 __ovld __cnfn convert_int16_sat_rtp(int16);
4277int16 __ovld __cnfn convert_int16_rtn(int16);
4278int16 __ovld __cnfn convert_int16_sat_rtn(int16);
4279int16 __ovld __cnfn convert_int16(int16);
4280int16 __ovld __cnfn convert_int16_sat(int16);
4281int16 __ovld __cnfn convert_int16_rte(uint16);
4282int16 __ovld __cnfn convert_int16_sat_rte(uint16);
4283int16 __ovld __cnfn convert_int16_rtz(uint16);
4284int16 __ovld __cnfn convert_int16_sat_rtz(uint16);
4285int16 __ovld __cnfn convert_int16_rtp(uint16);
4286int16 __ovld __cnfn convert_int16_sat_rtp(uint16);
4287int16 __ovld __cnfn convert_int16_rtn(uint16);
4288int16 __ovld __cnfn convert_int16_sat_rtn(uint16);
4289int16 __ovld __cnfn convert_int16(uint16);
4290int16 __ovld __cnfn convert_int16_sat(uint16);
4291int16 __ovld __cnfn convert_int16_rte(long16);
4292int16 __ovld __cnfn convert_int16_sat_rte(long16);
4293int16 __ovld __cnfn convert_int16_rtz(long16);
4294int16 __ovld __cnfn convert_int16_sat_rtz(long16);
4295int16 __ovld __cnfn convert_int16_rtp(long16);
4296int16 __ovld __cnfn convert_int16_sat_rtp(long16);
4297int16 __ovld __cnfn convert_int16_rtn(long16);
4298int16 __ovld __cnfn convert_int16_sat_rtn(long16);
4299int16 __ovld __cnfn convert_int16(long16);
4300int16 __ovld __cnfn convert_int16_sat(long16);
4301int16 __ovld __cnfn convert_int16_rte(ulong16);
4302int16 __ovld __cnfn convert_int16_sat_rte(ulong16);
4303int16 __ovld __cnfn convert_int16_rtz(ulong16);
4304int16 __ovld __cnfn convert_int16_sat_rtz(ulong16);
4305int16 __ovld __cnfn convert_int16_rtp(ulong16);
4306int16 __ovld __cnfn convert_int16_sat_rtp(ulong16);
4307int16 __ovld __cnfn convert_int16_rtn(ulong16);
4308int16 __ovld __cnfn convert_int16_sat_rtn(ulong16);
4309int16 __ovld __cnfn convert_int16(ulong16);
4310int16 __ovld __cnfn convert_int16_sat(ulong16);
4311int16 __ovld __cnfn convert_int16_rte(float16);
4312int16 __ovld __cnfn convert_int16_sat_rte(float16);
4313int16 __ovld __cnfn convert_int16_rtz(float16);
4314int16 __ovld __cnfn convert_int16_sat_rtz(float16);
4315int16 __ovld __cnfn convert_int16_rtp(float16);
4316int16 __ovld __cnfn convert_int16_sat_rtp(float16);
4317int16 __ovld __cnfn convert_int16_rtn(float16);
4318int16 __ovld __cnfn convert_int16_sat_rtn(float16);
4319int16 __ovld __cnfn convert_int16(float16);
4320int16 __ovld __cnfn convert_int16_sat(float16);
4321uint16 __ovld __cnfn convert_uint16_rte(char16);
4322uint16 __ovld __cnfn convert_uint16_sat_rte(char16);
4323uint16 __ovld __cnfn convert_uint16_rtz(char16);
4324uint16 __ovld __cnfn convert_uint16_sat_rtz(char16);
4325uint16 __ovld __cnfn convert_uint16_rtp(char16);
4326uint16 __ovld __cnfn convert_uint16_sat_rtp(char16);
4327uint16 __ovld __cnfn convert_uint16_rtn(char16);
4328uint16 __ovld __cnfn convert_uint16_sat_rtn(char16);
4329uint16 __ovld __cnfn convert_uint16(char16);
4330uint16 __ovld __cnfn convert_uint16_sat(char16);
4331uint16 __ovld __cnfn convert_uint16_rte(uchar16);
4332uint16 __ovld __cnfn convert_uint16_sat_rte(uchar16);
4333uint16 __ovld __cnfn convert_uint16_rtz(uchar16);
4334uint16 __ovld __cnfn convert_uint16_sat_rtz(uchar16);
4335uint16 __ovld __cnfn convert_uint16_rtp(uchar16);
4336uint16 __ovld __cnfn convert_uint16_sat_rtp(uchar16);
4337uint16 __ovld __cnfn convert_uint16_rtn(uchar16);
4338uint16 __ovld __cnfn convert_uint16_sat_rtn(uchar16);
4339uint16 __ovld __cnfn convert_uint16(uchar16);
4340uint16 __ovld __cnfn convert_uint16_sat(uchar16);
4341uint16 __ovld __cnfn convert_uint16_rte(short16);
4342uint16 __ovld __cnfn convert_uint16_sat_rte(short16);
4343uint16 __ovld __cnfn convert_uint16_rtz(short16);
4344uint16 __ovld __cnfn convert_uint16_sat_rtz(short16);
4345uint16 __ovld __cnfn convert_uint16_rtp(short16);
4346uint16 __ovld __cnfn convert_uint16_sat_rtp(short16);
4347uint16 __ovld __cnfn convert_uint16_rtn(short16);
4348uint16 __ovld __cnfn convert_uint16_sat_rtn(short16);
4349uint16 __ovld __cnfn convert_uint16(short16);
4350uint16 __ovld __cnfn convert_uint16_sat(short16);
4351uint16 __ovld __cnfn convert_uint16_rte(ushort16);
4352uint16 __ovld __cnfn convert_uint16_sat_rte(ushort16);
4353uint16 __ovld __cnfn convert_uint16_rtz(ushort16);
4354uint16 __ovld __cnfn convert_uint16_sat_rtz(ushort16);
4355uint16 __ovld __cnfn convert_uint16_rtp(ushort16);
4356uint16 __ovld __cnfn convert_uint16_sat_rtp(ushort16);
4357uint16 __ovld __cnfn convert_uint16_rtn(ushort16);
4358uint16 __ovld __cnfn convert_uint16_sat_rtn(ushort16);
4359uint16 __ovld __cnfn convert_uint16(ushort16);
4360uint16 __ovld __cnfn convert_uint16_sat(ushort16);
4361uint16 __ovld __cnfn convert_uint16_rte(int16);
4362uint16 __ovld __cnfn convert_uint16_sat_rte(int16);
4363uint16 __ovld __cnfn convert_uint16_rtz(int16);
4364uint16 __ovld __cnfn convert_uint16_sat_rtz(int16);
4365uint16 __ovld __cnfn convert_uint16_rtp(int16);
4366uint16 __ovld __cnfn convert_uint16_sat_rtp(int16);
4367uint16 __ovld __cnfn convert_uint16_rtn(int16);
4368uint16 __ovld __cnfn convert_uint16_sat_rtn(int16);
4369uint16 __ovld __cnfn convert_uint16(int16);
4370uint16 __ovld __cnfn convert_uint16_sat(int16);
4371uint16 __ovld __cnfn convert_uint16_rte(uint16);
4372uint16 __ovld __cnfn convert_uint16_sat_rte(uint16);
4373uint16 __ovld __cnfn convert_uint16_rtz(uint16);
4374uint16 __ovld __cnfn convert_uint16_sat_rtz(uint16);
4375uint16 __ovld __cnfn convert_uint16_rtp(uint16);
4376uint16 __ovld __cnfn convert_uint16_sat_rtp(uint16);
4377uint16 __ovld __cnfn convert_uint16_rtn(uint16);
4378uint16 __ovld __cnfn convert_uint16_sat_rtn(uint16);
4379uint16 __ovld __cnfn convert_uint16(uint16);
4380uint16 __ovld __cnfn convert_uint16_sat(uint16);
4381uint16 __ovld __cnfn convert_uint16_rte(long16);
4382uint16 __ovld __cnfn convert_uint16_sat_rte(long16);
4383uint16 __ovld __cnfn convert_uint16_rtz(long16);
4384uint16 __ovld __cnfn convert_uint16_sat_rtz(long16);
4385uint16 __ovld __cnfn convert_uint16_rtp(long16);
4386uint16 __ovld __cnfn convert_uint16_sat_rtp(long16);
4387uint16 __ovld __cnfn convert_uint16_rtn(long16);
4388uint16 __ovld __cnfn convert_uint16_sat_rtn(long16);
4389uint16 __ovld __cnfn convert_uint16(long16);
4390uint16 __ovld __cnfn convert_uint16_sat(long16);
4391uint16 __ovld __cnfn convert_uint16_rte(ulong16);
4392uint16 __ovld __cnfn convert_uint16_sat_rte(ulong16);
4393uint16 __ovld __cnfn convert_uint16_rtz(ulong16);
4394uint16 __ovld __cnfn convert_uint16_sat_rtz(ulong16);
4395uint16 __ovld __cnfn convert_uint16_rtp(ulong16);
4396uint16 __ovld __cnfn convert_uint16_sat_rtp(ulong16);
4397uint16 __ovld __cnfn convert_uint16_rtn(ulong16);
4398uint16 __ovld __cnfn convert_uint16_sat_rtn(ulong16);
4399uint16 __ovld __cnfn convert_uint16(ulong16);
4400uint16 __ovld __cnfn convert_uint16_sat(ulong16);
4401uint16 __ovld __cnfn convert_uint16_rte(float16);
4402uint16 __ovld __cnfn convert_uint16_sat_rte(float16);
4403uint16 __ovld __cnfn convert_uint16_rtz(float16);
4404uint16 __ovld __cnfn convert_uint16_sat_rtz(float16);
4405uint16 __ovld __cnfn convert_uint16_rtp(float16);
4406uint16 __ovld __cnfn convert_uint16_sat_rtp(float16);
4407uint16 __ovld __cnfn convert_uint16_rtn(float16);
4408uint16 __ovld __cnfn convert_uint16_sat_rtn(float16);
4409uint16 __ovld __cnfn convert_uint16(float16);
4410uint16 __ovld __cnfn convert_uint16_sat(float16);
4411long16 __ovld __cnfn convert_long16_rte(char16);
4412long16 __ovld __cnfn convert_long16_sat_rte(char16);
4413long16 __ovld __cnfn convert_long16_rtz(char16);
4414long16 __ovld __cnfn convert_long16_sat_rtz(char16);
4415long16 __ovld __cnfn convert_long16_rtp(char16);
4416long16 __ovld __cnfn convert_long16_sat_rtp(char16);
4417long16 __ovld __cnfn convert_long16_rtn(char16);
4418long16 __ovld __cnfn convert_long16_sat_rtn(char16);
4419long16 __ovld __cnfn convert_long16(char16);
4420long16 __ovld __cnfn convert_long16_sat(char16);
4421long16 __ovld __cnfn convert_long16_rte(uchar16);
4422long16 __ovld __cnfn convert_long16_sat_rte(uchar16);
4423long16 __ovld __cnfn convert_long16_rtz(uchar16);
4424long16 __ovld __cnfn convert_long16_sat_rtz(uchar16);
4425long16 __ovld __cnfn convert_long16_rtp(uchar16);
4426long16 __ovld __cnfn convert_long16_sat_rtp(uchar16);
4427long16 __ovld __cnfn convert_long16_rtn(uchar16);
4428long16 __ovld __cnfn convert_long16_sat_rtn(uchar16);
4429long16 __ovld __cnfn convert_long16(uchar16);
4430long16 __ovld __cnfn convert_long16_sat(uchar16);
4431long16 __ovld __cnfn convert_long16_rte(short16);
4432long16 __ovld __cnfn convert_long16_sat_rte(short16);
4433long16 __ovld __cnfn convert_long16_rtz(short16);
4434long16 __ovld __cnfn convert_long16_sat_rtz(short16);
4435long16 __ovld __cnfn convert_long16_rtp(short16);
4436long16 __ovld __cnfn convert_long16_sat_rtp(short16);
4437long16 __ovld __cnfn convert_long16_rtn(short16);
4438long16 __ovld __cnfn convert_long16_sat_rtn(short16);
4439long16 __ovld __cnfn convert_long16(short16);
4440long16 __ovld __cnfn convert_long16_sat(short16);
4441long16 __ovld __cnfn convert_long16_rte(ushort16);
4442long16 __ovld __cnfn convert_long16_sat_rte(ushort16);
4443long16 __ovld __cnfn convert_long16_rtz(ushort16);
4444long16 __ovld __cnfn convert_long16_sat_rtz(ushort16);
4445long16 __ovld __cnfn convert_long16_rtp(ushort16);
4446long16 __ovld __cnfn convert_long16_sat_rtp(ushort16);
4447long16 __ovld __cnfn convert_long16_rtn(ushort16);
4448long16 __ovld __cnfn convert_long16_sat_rtn(ushort16);
4449long16 __ovld __cnfn convert_long16(ushort16);
4450long16 __ovld __cnfn convert_long16_sat(ushort16);
4451long16 __ovld __cnfn convert_long16_rte(int16);
4452long16 __ovld __cnfn convert_long16_sat_rte(int16);
4453long16 __ovld __cnfn convert_long16_rtz(int16);
4454long16 __ovld __cnfn convert_long16_sat_rtz(int16);
4455long16 __ovld __cnfn convert_long16_rtp(int16);
4456long16 __ovld __cnfn convert_long16_sat_rtp(int16);
4457long16 __ovld __cnfn convert_long16_rtn(int16);
4458long16 __ovld __cnfn convert_long16_sat_rtn(int16);
4459long16 __ovld __cnfn convert_long16(int16);
4460long16 __ovld __cnfn convert_long16_sat(int16);
4461long16 __ovld __cnfn convert_long16_rte(uint16);
4462long16 __ovld __cnfn convert_long16_sat_rte(uint16);
4463long16 __ovld __cnfn convert_long16_rtz(uint16);
4464long16 __ovld __cnfn convert_long16_sat_rtz(uint16);
4465long16 __ovld __cnfn convert_long16_rtp(uint16);
4466long16 __ovld __cnfn convert_long16_sat_rtp(uint16);
4467long16 __ovld __cnfn convert_long16_rtn(uint16);
4468long16 __ovld __cnfn convert_long16_sat_rtn(uint16);
4469long16 __ovld __cnfn convert_long16(uint16);
4470long16 __ovld __cnfn convert_long16_sat(uint16);
4471long16 __ovld __cnfn convert_long16_rte(long16);
4472long16 __ovld __cnfn convert_long16_sat_rte(long16);
4473long16 __ovld __cnfn convert_long16_rtz(long16);
4474long16 __ovld __cnfn convert_long16_sat_rtz(long16);
4475long16 __ovld __cnfn convert_long16_rtp(long16);
4476long16 __ovld __cnfn convert_long16_sat_rtp(long16);
4477long16 __ovld __cnfn convert_long16_rtn(long16);
4478long16 __ovld __cnfn convert_long16_sat_rtn(long16);
4479long16 __ovld __cnfn convert_long16(long16);
4480long16 __ovld __cnfn convert_long16_sat(long16);
4481long16 __ovld __cnfn convert_long16_rte(ulong16);
4482long16 __ovld __cnfn convert_long16_sat_rte(ulong16);
4483long16 __ovld __cnfn convert_long16_rtz(ulong16);
4484long16 __ovld __cnfn convert_long16_sat_rtz(ulong16);
4485long16 __ovld __cnfn convert_long16_rtp(ulong16);
4486long16 __ovld __cnfn convert_long16_sat_rtp(ulong16);
4487long16 __ovld __cnfn convert_long16_rtn(ulong16);
4488long16 __ovld __cnfn convert_long16_sat_rtn(ulong16);
4489long16 __ovld __cnfn convert_long16(ulong16);
4490long16 __ovld __cnfn convert_long16_sat(ulong16);
4491long16 __ovld __cnfn convert_long16_rte(float16);
4492long16 __ovld __cnfn convert_long16_sat_rte(float16);
4493long16 __ovld __cnfn convert_long16_rtz(float16);
4494long16 __ovld __cnfn convert_long16_sat_rtz(float16);
4495long16 __ovld __cnfn convert_long16_rtp(float16);
4496long16 __ovld __cnfn convert_long16_sat_rtp(float16);
4497long16 __ovld __cnfn convert_long16_rtn(float16);
4498long16 __ovld __cnfn convert_long16_sat_rtn(float16);
4499long16 __ovld __cnfn convert_long16(float16);
4500long16 __ovld __cnfn convert_long16_sat(float16);
4501ulong16 __ovld __cnfn convert_ulong16_rte(char16);
4502ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16);
4503ulong16 __ovld __cnfn convert_ulong16_rtz(char16);
4504ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16);
4505ulong16 __ovld __cnfn convert_ulong16_rtp(char16);
4506ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16);
4507ulong16 __ovld __cnfn convert_ulong16_rtn(char16);
4508ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16);
4509ulong16 __ovld __cnfn convert_ulong16(char16);
4510ulong16 __ovld __cnfn convert_ulong16_sat(char16);
4511ulong16 __ovld __cnfn convert_ulong16_rte(uchar16);
4512ulong16 __ovld __cnfn convert_ulong16_sat_rte(uchar16);
4513ulong16 __ovld __cnfn convert_ulong16_rtz(uchar16);
4514ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uchar16);
4515ulong16 __ovld __cnfn convert_ulong16_rtp(uchar16);
4516ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uchar16);
4517ulong16 __ovld __cnfn convert_ulong16_rtn(uchar16);
4518ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uchar16);
4519ulong16 __ovld __cnfn convert_ulong16(uchar16);
4520ulong16 __ovld __cnfn convert_ulong16_sat(uchar16);
4521ulong16 __ovld __cnfn convert_ulong16_rte(short16);
4522ulong16 __ovld __cnfn convert_ulong16_sat_rte(short16);
4523ulong16 __ovld __cnfn convert_ulong16_rtz(short16);
4524ulong16 __ovld __cnfn convert_ulong16_sat_rtz(short16);
4525ulong16 __ovld __cnfn convert_ulong16_rtp(short16);
4526ulong16 __ovld __cnfn convert_ulong16_sat_rtp(short16);
4527ulong16 __ovld __cnfn convert_ulong16_rtn(short16);
4528ulong16 __ovld __cnfn convert_ulong16_sat_rtn(short16);
4529ulong16 __ovld __cnfn convert_ulong16(short16);
4530ulong16 __ovld __cnfn convert_ulong16_sat(short16);
4531ulong16 __ovld __cnfn convert_ulong16_rte(ushort16);
4532ulong16 __ovld __cnfn convert_ulong16_sat_rte(ushort16);
4533ulong16 __ovld __cnfn convert_ulong16_rtz(ushort16);
4534ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ushort16);
4535ulong16 __ovld __cnfn convert_ulong16_rtp(ushort16);
4536ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ushort16);
4537ulong16 __ovld __cnfn convert_ulong16_rtn(ushort16);
4538ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ushort16);
4539ulong16 __ovld __cnfn convert_ulong16(ushort16);
4540ulong16 __ovld __cnfn convert_ulong16_sat(ushort16);
4541ulong16 __ovld __cnfn convert_ulong16_rte(int16);
4542ulong16 __ovld __cnfn convert_ulong16_sat_rte(int16);
4543ulong16 __ovld __cnfn convert_ulong16_rtz(int16);
4544ulong16 __ovld __cnfn convert_ulong16_sat_rtz(int16);
4545ulong16 __ovld __cnfn convert_ulong16_rtp(int16);
4546ulong16 __ovld __cnfn convert_ulong16_sat_rtp(int16);
4547ulong16 __ovld __cnfn convert_ulong16_rtn(int16);
4548ulong16 __ovld __cnfn convert_ulong16_sat_rtn(int16);
4549ulong16 __ovld __cnfn convert_ulong16(int16);
4550ulong16 __ovld __cnfn convert_ulong16_sat(int16);
4551ulong16 __ovld __cnfn convert_ulong16_rte(uint16);
4552ulong16 __ovld __cnfn convert_ulong16_sat_rte(uint16);
4553ulong16 __ovld __cnfn convert_ulong16_rtz(uint16);
4554ulong16 __ovld __cnfn convert_ulong16_sat_rtz(uint16);
4555ulong16 __ovld __cnfn convert_ulong16_rtp(uint16);
4556ulong16 __ovld __cnfn convert_ulong16_sat_rtp(uint16);
4557ulong16 __ovld __cnfn convert_ulong16_rtn(uint16);
4558ulong16 __ovld __cnfn convert_ulong16_sat_rtn(uint16);
4559ulong16 __ovld __cnfn convert_ulong16(uint16);
4560ulong16 __ovld __cnfn convert_ulong16_sat(uint16);
4561ulong16 __ovld __cnfn convert_ulong16_rte(long16);
4562ulong16 __ovld __cnfn convert_ulong16_sat_rte(long16);
4563ulong16 __ovld __cnfn convert_ulong16_rtz(long16);
4564ulong16 __ovld __cnfn convert_ulong16_sat_rtz(long16);
4565ulong16 __ovld __cnfn convert_ulong16_rtp(long16);
4566ulong16 __ovld __cnfn convert_ulong16_sat_rtp(long16);
4567ulong16 __ovld __cnfn convert_ulong16_rtn(long16);
4568ulong16 __ovld __cnfn convert_ulong16_sat_rtn(long16);
4569ulong16 __ovld __cnfn convert_ulong16(long16);
4570ulong16 __ovld __cnfn convert_ulong16_sat(long16);
4571ulong16 __ovld __cnfn convert_ulong16_rte(ulong16);
4572ulong16 __ovld __cnfn convert_ulong16_sat_rte(ulong16);
4573ulong16 __ovld __cnfn convert_ulong16_rtz(ulong16);
4574ulong16 __ovld __cnfn convert_ulong16_sat_rtz(ulong16);
4575ulong16 __ovld __cnfn convert_ulong16_rtp(ulong16);
4576ulong16 __ovld __cnfn convert_ulong16_sat_rtp(ulong16);
4577ulong16 __ovld __cnfn convert_ulong16_rtn(ulong16);
4578ulong16 __ovld __cnfn convert_ulong16_sat_rtn(ulong16);
4579ulong16 __ovld __cnfn convert_ulong16(ulong16);
4580ulong16 __ovld __cnfn convert_ulong16_sat(ulong16);
4581ulong16 __ovld __cnfn convert_ulong16_rte(float16);
4582ulong16 __ovld __cnfn convert_ulong16_sat_rte(float16);
4583ulong16 __ovld __cnfn convert_ulong16_rtz(float16);
4584ulong16 __ovld __cnfn convert_ulong16_sat_rtz(float16);
4585ulong16 __ovld __cnfn convert_ulong16_rtp(float16);
4586ulong16 __ovld __cnfn convert_ulong16_sat_rtp(float16);
4587ulong16 __ovld __cnfn convert_ulong16_rtn(float16);
4588ulong16 __ovld __cnfn convert_ulong16_sat_rtn(float16);
4589ulong16 __ovld __cnfn convert_ulong16(float16);
4590ulong16 __ovld __cnfn convert_ulong16_sat(float16);
4591float16 __ovld __cnfn convert_float16_rte(char16);
4592float16 __ovld __cnfn convert_float16_rtz(char16);
4593float16 __ovld __cnfn convert_float16_rtp(char16);
4594float16 __ovld __cnfn convert_float16_rtn(char16);
4595float16 __ovld __cnfn convert_float16(char16);
4596float16 __ovld __cnfn convert_float16_rte(uchar16);
4597float16 __ovld __cnfn convert_float16_rtz(uchar16);
4598float16 __ovld __cnfn convert_float16_rtp(uchar16);
4599float16 __ovld __cnfn convert_float16_rtn(uchar16);
4600float16 __ovld __cnfn convert_float16(uchar16);
4601float16 __ovld __cnfn convert_float16_rte(short16);
4602float16 __ovld __cnfn convert_float16_rtz(short16);
4603float16 __ovld __cnfn convert_float16_rtp(short16);
4604float16 __ovld __cnfn convert_float16_rtn(short16);
4605float16 __ovld __cnfn convert_float16(short16);
4606float16 __ovld __cnfn convert_float16_rte(ushort16);
4607float16 __ovld __cnfn convert_float16_rtz(ushort16);
4608float16 __ovld __cnfn convert_float16_rtp(ushort16);
4609float16 __ovld __cnfn convert_float16_rtn(ushort16);
4610float16 __ovld __cnfn convert_float16(ushort16);
4611float16 __ovld __cnfn convert_float16_rte(int16);
4612float16 __ovld __cnfn convert_float16_rtz(int16);
4613float16 __ovld __cnfn convert_float16_rtp(int16);
4614float16 __ovld __cnfn convert_float16_rtn(int16);
4615float16 __ovld __cnfn convert_float16(int16);
4616float16 __ovld __cnfn convert_float16_rte(uint16);
4617float16 __ovld __cnfn convert_float16_rtz(uint16);
4618float16 __ovld __cnfn convert_float16_rtp(uint16);
4619float16 __ovld __cnfn convert_float16_rtn(uint16);
4620float16 __ovld __cnfn convert_float16(uint16);
4621float16 __ovld __cnfn convert_float16_rte(long16);
4622float16 __ovld __cnfn convert_float16_rtz(long16);
4623float16 __ovld __cnfn convert_float16_rtp(long16);
4624float16 __ovld __cnfn convert_float16_rtn(long16);
4625float16 __ovld __cnfn convert_float16(long16);
4626float16 __ovld __cnfn convert_float16_rte(ulong16);
4627float16 __ovld __cnfn convert_float16_rtz(ulong16);
4628float16 __ovld __cnfn convert_float16_rtp(ulong16);
4629float16 __ovld __cnfn convert_float16_rtn(ulong16);
4630float16 __ovld __cnfn convert_float16(ulong16);
4631float16 __ovld __cnfn convert_float16_rte(float16);
4632float16 __ovld __cnfn convert_float16_rtz(float16);
4633float16 __ovld __cnfn convert_float16_rtp(float16);
4634float16 __ovld __cnfn convert_float16_rtn(float16);
4635float16 __ovld __cnfn convert_float16(float16);
4636
4637// Conversions with double data type parameters or return value.
4638
4639#ifdef cl_khr_fp64
Pirama Arumuga Nainar986b8802021-06-03 16:00:34 -07004640#pragma OPENCL EXTENSION cl_khr_fp64 : enable
Logan Chien2833ffb2018-10-09 10:03:24 +08004641char __ovld __cnfn convert_char(double);
4642char __ovld __cnfn convert_char_rte(double);
4643char __ovld __cnfn convert_char_rtn(double);
4644char __ovld __cnfn convert_char_rtp(double);
4645char __ovld __cnfn convert_char_rtz(double);
4646char __ovld __cnfn convert_char_sat(double);
4647char __ovld __cnfn convert_char_sat_rte(double);
4648char __ovld __cnfn convert_char_sat_rtn(double);
4649char __ovld __cnfn convert_char_sat_rtp(double);
4650char __ovld __cnfn convert_char_sat_rtz(double);
4651char2 __ovld __cnfn convert_char2(double2);
4652char2 __ovld __cnfn convert_char2_rte(double2);
4653char2 __ovld __cnfn convert_char2_rtn(double2);
4654char2 __ovld __cnfn convert_char2_rtp(double2);
4655char2 __ovld __cnfn convert_char2_rtz(double2);
4656char2 __ovld __cnfn convert_char2_sat(double2);
4657char2 __ovld __cnfn convert_char2_sat_rte(double2);
4658char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4659char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4660char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4661char3 __ovld __cnfn convert_char3(double3);
4662char3 __ovld __cnfn convert_char3_rte(double3);
4663char3 __ovld __cnfn convert_char3_rtn(double3);
4664char3 __ovld __cnfn convert_char3_rtp(double3);
4665char3 __ovld __cnfn convert_char3_rtz(double3);
4666char3 __ovld __cnfn convert_char3_sat(double3);
4667char3 __ovld __cnfn convert_char3_sat_rte(double3);
4668char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4669char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4670char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4671char4 __ovld __cnfn convert_char4(double4);
4672char4 __ovld __cnfn convert_char4_rte(double4);
4673char4 __ovld __cnfn convert_char4_rtn(double4);
4674char4 __ovld __cnfn convert_char4_rtp(double4);
4675char4 __ovld __cnfn convert_char4_rtz(double4);
4676char4 __ovld __cnfn convert_char4_sat(double4);
4677char4 __ovld __cnfn convert_char4_sat_rte(double4);
4678char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4679char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4680char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4681char8 __ovld __cnfn convert_char8(double8);
4682char8 __ovld __cnfn convert_char8_rte(double8);
4683char8 __ovld __cnfn convert_char8_rtn(double8);
4684char8 __ovld __cnfn convert_char8_rtp(double8);
4685char8 __ovld __cnfn convert_char8_rtz(double8);
4686char8 __ovld __cnfn convert_char8_sat(double8);
4687char8 __ovld __cnfn convert_char8_sat_rte(double8);
4688char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4689char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4690char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4691char16 __ovld __cnfn convert_char16(double16);
4692char16 __ovld __cnfn convert_char16_rte(double16);
4693char16 __ovld __cnfn convert_char16_rtn(double16);
4694char16 __ovld __cnfn convert_char16_rtp(double16);
4695char16 __ovld __cnfn convert_char16_rtz(double16);
4696char16 __ovld __cnfn convert_char16_sat(double16);
4697char16 __ovld __cnfn convert_char16_sat_rte(double16);
4698char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4699char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4700char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4701
4702uchar __ovld __cnfn convert_uchar(double);
4703uchar __ovld __cnfn convert_uchar_rte(double);
4704uchar __ovld __cnfn convert_uchar_rtn(double);
4705uchar __ovld __cnfn convert_uchar_rtp(double);
4706uchar __ovld __cnfn convert_uchar_rtz(double);
4707uchar __ovld __cnfn convert_uchar_sat(double);
4708uchar __ovld __cnfn convert_uchar_sat_rte(double);
4709uchar __ovld __cnfn convert_uchar_sat_rtn(double);
4710uchar __ovld __cnfn convert_uchar_sat_rtp(double);
4711uchar __ovld __cnfn convert_uchar_sat_rtz(double);
4712uchar2 __ovld __cnfn convert_uchar2(double2);
4713uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4714uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4715uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4716uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4717uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4718uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4719uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4720uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4721uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4722uchar3 __ovld __cnfn convert_uchar3(double3);
4723uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4724uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4725uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4726uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4727uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4728uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4729uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4730uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4731uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4732uchar4 __ovld __cnfn convert_uchar4(double4);
4733uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4734uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4735uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4736uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4737uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4738uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4739uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4740uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4741uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4742uchar8 __ovld __cnfn convert_uchar8(double8);
4743uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4744uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4745uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4746uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4747uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4748uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4749uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4750uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4751uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4752uchar16 __ovld __cnfn convert_uchar16(double16);
4753uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4754uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4755uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4756uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4757uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4758uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4759uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4760uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4761uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
4762
4763short __ovld __cnfn convert_short(double);
4764short __ovld __cnfn convert_short_rte(double);
4765short __ovld __cnfn convert_short_rtn(double);
4766short __ovld __cnfn convert_short_rtp(double);
4767short __ovld __cnfn convert_short_rtz(double);
4768short __ovld __cnfn convert_short_sat(double);
4769short __ovld __cnfn convert_short_sat_rte(double);
4770short __ovld __cnfn convert_short_sat_rtn(double);
4771short __ovld __cnfn convert_short_sat_rtp(double);
4772short __ovld __cnfn convert_short_sat_rtz(double);
4773short2 __ovld __cnfn convert_short2(double2);
4774short2 __ovld __cnfn convert_short2_rte(double2);
4775short2 __ovld __cnfn convert_short2_rtn(double2);
4776short2 __ovld __cnfn convert_short2_rtp(double2);
4777short2 __ovld __cnfn convert_short2_rtz(double2);
4778short2 __ovld __cnfn convert_short2_sat(double2);
4779short2 __ovld __cnfn convert_short2_sat_rte(double2);
4780short2 __ovld __cnfn convert_short2_sat_rtn(double2);
4781short2 __ovld __cnfn convert_short2_sat_rtp(double2);
4782short2 __ovld __cnfn convert_short2_sat_rtz(double2);
4783short3 __ovld __cnfn convert_short3(double3);
4784short3 __ovld __cnfn convert_short3_rte(double3);
4785short3 __ovld __cnfn convert_short3_rtn(double3);
4786short3 __ovld __cnfn convert_short3_rtp(double3);
4787short3 __ovld __cnfn convert_short3_rtz(double3);
4788short3 __ovld __cnfn convert_short3_sat(double3);
4789short3 __ovld __cnfn convert_short3_sat_rte(double3);
4790short3 __ovld __cnfn convert_short3_sat_rtn(double3);
4791short3 __ovld __cnfn convert_short3_sat_rtp(double3);
4792short3 __ovld __cnfn convert_short3_sat_rtz(double3);
4793short4 __ovld __cnfn convert_short4(double4);
4794short4 __ovld __cnfn convert_short4_rte(double4);
4795short4 __ovld __cnfn convert_short4_rtn(double4);
4796short4 __ovld __cnfn convert_short4_rtp(double4);
4797short4 __ovld __cnfn convert_short4_rtz(double4);
4798short4 __ovld __cnfn convert_short4_sat(double4);
4799short4 __ovld __cnfn convert_short4_sat_rte(double4);
4800short4 __ovld __cnfn convert_short4_sat_rtn(double4);
4801short4 __ovld __cnfn convert_short4_sat_rtp(double4);
4802short4 __ovld __cnfn convert_short4_sat_rtz(double4);
4803short8 __ovld __cnfn convert_short8(double8);
4804short8 __ovld __cnfn convert_short8_rte(double8);
4805short8 __ovld __cnfn convert_short8_rtn(double8);
4806short8 __ovld __cnfn convert_short8_rtp(double8);
4807short8 __ovld __cnfn convert_short8_rtz(double8);
4808short8 __ovld __cnfn convert_short8_sat(double8);
4809short8 __ovld __cnfn convert_short8_sat_rte(double8);
4810short8 __ovld __cnfn convert_short8_sat_rtn(double8);
4811short8 __ovld __cnfn convert_short8_sat_rtp(double8);
4812short8 __ovld __cnfn convert_short8_sat_rtz(double8);
4813short16 __ovld __cnfn convert_short16(double16);
4814short16 __ovld __cnfn convert_short16_rte(double16);
4815short16 __ovld __cnfn convert_short16_rtn(double16);
4816short16 __ovld __cnfn convert_short16_rtp(double16);
4817short16 __ovld __cnfn convert_short16_rtz(double16);
4818short16 __ovld __cnfn convert_short16_sat(double16);
4819short16 __ovld __cnfn convert_short16_sat_rte(double16);
4820short16 __ovld __cnfn convert_short16_sat_rtn(double16);
4821short16 __ovld __cnfn convert_short16_sat_rtp(double16);
4822short16 __ovld __cnfn convert_short16_sat_rtz(double16);
4823
4824ushort __ovld __cnfn convert_ushort(double);
4825ushort __ovld __cnfn convert_ushort_rte(double);
4826ushort __ovld __cnfn convert_ushort_rtn(double);
4827ushort __ovld __cnfn convert_ushort_rtp(double);
4828ushort __ovld __cnfn convert_ushort_rtz(double);
4829ushort __ovld __cnfn convert_ushort_sat(double);
4830ushort __ovld __cnfn convert_ushort_sat_rte(double);
4831ushort __ovld __cnfn convert_ushort_sat_rtn(double);
4832ushort __ovld __cnfn convert_ushort_sat_rtp(double);
4833ushort __ovld __cnfn convert_ushort_sat_rtz(double);
4834ushort2 __ovld __cnfn convert_ushort2(double2);
4835ushort2 __ovld __cnfn convert_ushort2_rte(double2);
4836ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
4837ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
4838ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
4839ushort2 __ovld __cnfn convert_ushort2_sat(double2);
4840ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
4841ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
4842ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
4843ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
4844ushort3 __ovld __cnfn convert_ushort3(double3);
4845ushort3 __ovld __cnfn convert_ushort3_rte(double3);
4846ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
4847ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
4848ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
4849ushort3 __ovld __cnfn convert_ushort3_sat(double3);
4850ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
4851ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
4852ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
4853ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
4854ushort4 __ovld __cnfn convert_ushort4(double4);
4855ushort4 __ovld __cnfn convert_ushort4_rte(double4);
4856ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
4857ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
4858ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
4859ushort4 __ovld __cnfn convert_ushort4_sat(double4);
4860ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
4861ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
4862ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
4863ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
4864ushort8 __ovld __cnfn convert_ushort8(double8);
4865ushort8 __ovld __cnfn convert_ushort8_rte(double8);
4866ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
4867ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
4868ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
4869ushort8 __ovld __cnfn convert_ushort8_sat(double8);
4870ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
4871ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
4872ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
4873ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
4874ushort16 __ovld __cnfn convert_ushort16(double16);
4875ushort16 __ovld __cnfn convert_ushort16_rte(double16);
4876ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
4877ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
4878ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
4879ushort16 __ovld __cnfn convert_ushort16_sat(double16);
4880ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
4881ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
4882ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
4883ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
4884
4885int __ovld __cnfn convert_int(double);
4886int __ovld __cnfn convert_int_rte(double);
4887int __ovld __cnfn convert_int_rtn(double);
4888int __ovld __cnfn convert_int_rtp(double);
4889int __ovld __cnfn convert_int_rtz(double);
4890int __ovld __cnfn convert_int_sat(double);
4891int __ovld __cnfn convert_int_sat_rte(double);
4892int __ovld __cnfn convert_int_sat_rtn(double);
4893int __ovld __cnfn convert_int_sat_rtp(double);
4894int __ovld __cnfn convert_int_sat_rtz(double);
4895int2 __ovld __cnfn convert_int2(double2);
4896int2 __ovld __cnfn convert_int2_rte(double2);
4897int2 __ovld __cnfn convert_int2_rtn(double2);
4898int2 __ovld __cnfn convert_int2_rtp(double2);
4899int2 __ovld __cnfn convert_int2_rtz(double2);
4900int2 __ovld __cnfn convert_int2_sat(double2);
4901int2 __ovld __cnfn convert_int2_sat_rte(double2);
4902int2 __ovld __cnfn convert_int2_sat_rtn(double2);
4903int2 __ovld __cnfn convert_int2_sat_rtp(double2);
4904int2 __ovld __cnfn convert_int2_sat_rtz(double2);
4905int3 __ovld __cnfn convert_int3(double3);
4906int3 __ovld __cnfn convert_int3_rte(double3);
4907int3 __ovld __cnfn convert_int3_rtn(double3);
4908int3 __ovld __cnfn convert_int3_rtp(double3);
4909int3 __ovld __cnfn convert_int3_rtz(double3);
4910int3 __ovld __cnfn convert_int3_sat(double3);
4911int3 __ovld __cnfn convert_int3_sat_rte(double3);
4912int3 __ovld __cnfn convert_int3_sat_rtn(double3);
4913int3 __ovld __cnfn convert_int3_sat_rtp(double3);
4914int3 __ovld __cnfn convert_int3_sat_rtz(double3);
4915int4 __ovld __cnfn convert_int4(double4);
4916int4 __ovld __cnfn convert_int4_rte(double4);
4917int4 __ovld __cnfn convert_int4_rtn(double4);
4918int4 __ovld __cnfn convert_int4_rtp(double4);
4919int4 __ovld __cnfn convert_int4_rtz(double4);
4920int4 __ovld __cnfn convert_int4_sat(double4);
4921int4 __ovld __cnfn convert_int4_sat_rte(double4);
4922int4 __ovld __cnfn convert_int4_sat_rtn(double4);
4923int4 __ovld __cnfn convert_int4_sat_rtp(double4);
4924int4 __ovld __cnfn convert_int4_sat_rtz(double4);
4925int8 __ovld __cnfn convert_int8(double8);
4926int8 __ovld __cnfn convert_int8_rte(double8);
4927int8 __ovld __cnfn convert_int8_rtn(double8);
4928int8 __ovld __cnfn convert_int8_rtp(double8);
4929int8 __ovld __cnfn convert_int8_rtz(double8);
4930int8 __ovld __cnfn convert_int8_sat(double8);
4931int8 __ovld __cnfn convert_int8_sat_rte(double8);
4932int8 __ovld __cnfn convert_int8_sat_rtn(double8);
4933int8 __ovld __cnfn convert_int8_sat_rtp(double8);
4934int8 __ovld __cnfn convert_int8_sat_rtz(double8);
4935int16 __ovld __cnfn convert_int16(double16);
4936int16 __ovld __cnfn convert_int16_rte(double16);
4937int16 __ovld __cnfn convert_int16_rtn(double16);
4938int16 __ovld __cnfn convert_int16_rtp(double16);
4939int16 __ovld __cnfn convert_int16_rtz(double16);
4940int16 __ovld __cnfn convert_int16_sat(double16);
4941int16 __ovld __cnfn convert_int16_sat_rte(double16);
4942int16 __ovld __cnfn convert_int16_sat_rtn(double16);
4943int16 __ovld __cnfn convert_int16_sat_rtp(double16);
4944int16 __ovld __cnfn convert_int16_sat_rtz(double16);
4945
4946uint __ovld __cnfn convert_uint(double);
4947uint __ovld __cnfn convert_uint_rte(double);
4948uint __ovld __cnfn convert_uint_rtn(double);
4949uint __ovld __cnfn convert_uint_rtp(double);
4950uint __ovld __cnfn convert_uint_rtz(double);
4951uint __ovld __cnfn convert_uint_sat(double);
4952uint __ovld __cnfn convert_uint_sat_rte(double);
4953uint __ovld __cnfn convert_uint_sat_rtn(double);
4954uint __ovld __cnfn convert_uint_sat_rtp(double);
4955uint __ovld __cnfn convert_uint_sat_rtz(double);
4956uint2 __ovld __cnfn convert_uint2(double2);
4957uint2 __ovld __cnfn convert_uint2_rte(double2);
4958uint2 __ovld __cnfn convert_uint2_rtn(double2);
4959uint2 __ovld __cnfn convert_uint2_rtp(double2);
4960uint2 __ovld __cnfn convert_uint2_rtz(double2);
4961uint2 __ovld __cnfn convert_uint2_sat(double2);
4962uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
4963uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
4964uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
4965uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
4966uint3 __ovld __cnfn convert_uint3(double3);
4967uint3 __ovld __cnfn convert_uint3_rte(double3);
4968uint3 __ovld __cnfn convert_uint3_rtn(double3);
4969uint3 __ovld __cnfn convert_uint3_rtp(double3);
4970uint3 __ovld __cnfn convert_uint3_rtz(double3);
4971uint3 __ovld __cnfn convert_uint3_sat(double3);
4972uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
4973uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
4974uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
4975uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
4976uint4 __ovld __cnfn convert_uint4(double4);
4977uint4 __ovld __cnfn convert_uint4_rte(double4);
4978uint4 __ovld __cnfn convert_uint4_rtn(double4);
4979uint4 __ovld __cnfn convert_uint4_rtp(double4);
4980uint4 __ovld __cnfn convert_uint4_rtz(double4);
4981uint4 __ovld __cnfn convert_uint4_sat(double4);
4982uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
4983uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
4984uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
4985uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
4986uint8 __ovld __cnfn convert_uint8(double8);
4987uint8 __ovld __cnfn convert_uint8_rte(double8);
4988uint8 __ovld __cnfn convert_uint8_rtn(double8);
4989uint8 __ovld __cnfn convert_uint8_rtp(double8);
4990uint8 __ovld __cnfn convert_uint8_rtz(double8);
4991uint8 __ovld __cnfn convert_uint8_sat(double8);
4992uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
4993uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
4994uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
4995uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
4996uint16 __ovld __cnfn convert_uint16(double16);
4997uint16 __ovld __cnfn convert_uint16_rte(double16);
4998uint16 __ovld __cnfn convert_uint16_rtn(double16);
4999uint16 __ovld __cnfn convert_uint16_rtp(double16);
5000uint16 __ovld __cnfn convert_uint16_rtz(double16);
5001uint16 __ovld __cnfn convert_uint16_sat(double16);
5002uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5003uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5004uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5005uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5006
5007long __ovld __cnfn convert_long(double);
5008long __ovld __cnfn convert_long_rte(double);
5009long __ovld __cnfn convert_long_rtn(double);
5010long __ovld __cnfn convert_long_rtp(double);
5011long __ovld __cnfn convert_long_rtz(double);
5012long __ovld __cnfn convert_long_sat(double);
5013long __ovld __cnfn convert_long_sat_rte(double);
5014long __ovld __cnfn convert_long_sat_rtn(double);
5015long __ovld __cnfn convert_long_sat_rtp(double);
5016long __ovld __cnfn convert_long_sat_rtz(double);
5017long2 __ovld __cnfn convert_long2(double2);
5018long2 __ovld __cnfn convert_long2_rte(double2);
5019long2 __ovld __cnfn convert_long2_rtn(double2);
5020long2 __ovld __cnfn convert_long2_rtp(double2);
5021long2 __ovld __cnfn convert_long2_rtz(double2);
5022long2 __ovld __cnfn convert_long2_sat(double2);
5023long2 __ovld __cnfn convert_long2_sat_rte(double2);
5024long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5025long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5026long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5027long3 __ovld __cnfn convert_long3(double3);
5028long3 __ovld __cnfn convert_long3_rte(double3);
5029long3 __ovld __cnfn convert_long3_rtn(double3);
5030long3 __ovld __cnfn convert_long3_rtp(double3);
5031long3 __ovld __cnfn convert_long3_rtz(double3);
5032long3 __ovld __cnfn convert_long3_sat(double3);
5033long3 __ovld __cnfn convert_long3_sat_rte(double3);
5034long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5035long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5036long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5037long4 __ovld __cnfn convert_long4(double4);
5038long4 __ovld __cnfn convert_long4_rte(double4);
5039long4 __ovld __cnfn convert_long4_rtn(double4);
5040long4 __ovld __cnfn convert_long4_rtp(double4);
5041long4 __ovld __cnfn convert_long4_rtz(double4);
5042long4 __ovld __cnfn convert_long4_sat(double4);
5043long4 __ovld __cnfn convert_long4_sat_rte(double4);
5044long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5045long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5046long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5047long8 __ovld __cnfn convert_long8(double8);
5048long8 __ovld __cnfn convert_long8_rte(double8);
5049long8 __ovld __cnfn convert_long8_rtn(double8);
5050long8 __ovld __cnfn convert_long8_rtp(double8);
5051long8 __ovld __cnfn convert_long8_rtz(double8);
5052long8 __ovld __cnfn convert_long8_sat(double8);
5053long8 __ovld __cnfn convert_long8_sat_rte(double8);
5054long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5055long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5056long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5057long16 __ovld __cnfn convert_long16(double16);
5058long16 __ovld __cnfn convert_long16_rte(double16);
5059long16 __ovld __cnfn convert_long16_rtn(double16);
5060long16 __ovld __cnfn convert_long16_rtp(double16);
5061long16 __ovld __cnfn convert_long16_rtz(double16);
5062long16 __ovld __cnfn convert_long16_sat(double16);
5063long16 __ovld __cnfn convert_long16_sat_rte(double16);
5064long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5065long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5066long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5067
5068ulong __ovld __cnfn convert_ulong(double);
5069ulong __ovld __cnfn convert_ulong_rte(double);
5070ulong __ovld __cnfn convert_ulong_rtn(double);
5071ulong __ovld __cnfn convert_ulong_rtp(double);
5072ulong __ovld __cnfn convert_ulong_rtz(double);
5073ulong __ovld __cnfn convert_ulong_sat(double);
5074ulong __ovld __cnfn convert_ulong_sat_rte(double);
5075ulong __ovld __cnfn convert_ulong_sat_rtn(double);
5076ulong __ovld __cnfn convert_ulong_sat_rtp(double);
5077ulong __ovld __cnfn convert_ulong_sat_rtz(double);
5078ulong2 __ovld __cnfn convert_ulong2(double2);
5079ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5080ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5081ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5082ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5083ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5084ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5085ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5086ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5087ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5088ulong3 __ovld __cnfn convert_ulong3(double3);
5089ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5090ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5091ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5092ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5093ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5094ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5095ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5096ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5097ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5098ulong4 __ovld __cnfn convert_ulong4(double4);
5099ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5100ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5101ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5102ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5103ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5104ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5105ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5106ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5107ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5108ulong8 __ovld __cnfn convert_ulong8(double8);
5109ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5110ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5111ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5112ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5113ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5114ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5115ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5116ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5117ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5118ulong16 __ovld __cnfn convert_ulong16(double16);
5119ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5120ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5121ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5122ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5123ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5124ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5125ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5126ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5127ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5128
5129float __ovld __cnfn convert_float(double);
5130float __ovld __cnfn convert_float_rte(double);
5131float __ovld __cnfn convert_float_rtn(double);
5132float __ovld __cnfn convert_float_rtp(double);
5133float __ovld __cnfn convert_float_rtz(double);
5134float2 __ovld __cnfn convert_float2(double2);
5135float2 __ovld __cnfn convert_float2_rte(double2);
5136float2 __ovld __cnfn convert_float2_rtn(double2);
5137float2 __ovld __cnfn convert_float2_rtp(double2);
5138float2 __ovld __cnfn convert_float2_rtz(double2);
5139float3 __ovld __cnfn convert_float3(double3);
5140float3 __ovld __cnfn convert_float3_rte(double3);
5141float3 __ovld __cnfn convert_float3_rtn(double3);
5142float3 __ovld __cnfn convert_float3_rtp(double3);
5143float3 __ovld __cnfn convert_float3_rtz(double3);
5144float4 __ovld __cnfn convert_float4(double4);
5145float4 __ovld __cnfn convert_float4_rte(double4);
5146float4 __ovld __cnfn convert_float4_rtn(double4);
5147float4 __ovld __cnfn convert_float4_rtp(double4);
5148float4 __ovld __cnfn convert_float4_rtz(double4);
5149float8 __ovld __cnfn convert_float8(double8);
5150float8 __ovld __cnfn convert_float8_rte(double8);
5151float8 __ovld __cnfn convert_float8_rtn(double8);
5152float8 __ovld __cnfn convert_float8_rtp(double8);
5153float8 __ovld __cnfn convert_float8_rtz(double8);
5154float16 __ovld __cnfn convert_float16(double16);
5155float16 __ovld __cnfn convert_float16_rte(double16);
5156float16 __ovld __cnfn convert_float16_rtn(double16);
5157float16 __ovld __cnfn convert_float16_rtp(double16);
5158float16 __ovld __cnfn convert_float16_rtz(double16);
5159
5160double __ovld __cnfn convert_double(char);
5161double __ovld __cnfn convert_double(double);
5162double __ovld __cnfn convert_double(float);
5163double __ovld __cnfn convert_double(int);
5164double __ovld __cnfn convert_double(long);
5165double __ovld __cnfn convert_double(short);
5166double __ovld __cnfn convert_double(uchar);
5167double __ovld __cnfn convert_double(uint);
5168double __ovld __cnfn convert_double(ulong);
5169double __ovld __cnfn convert_double(ushort);
5170double __ovld __cnfn convert_double_rte(char);
5171double __ovld __cnfn convert_double_rte(double);
5172double __ovld __cnfn convert_double_rte(float);
5173double __ovld __cnfn convert_double_rte(int);
5174double __ovld __cnfn convert_double_rte(long);
5175double __ovld __cnfn convert_double_rte(short);
5176double __ovld __cnfn convert_double_rte(uchar);
5177double __ovld __cnfn convert_double_rte(uint);
5178double __ovld __cnfn convert_double_rte(ulong);
5179double __ovld __cnfn convert_double_rte(ushort);
5180double __ovld __cnfn convert_double_rtn(char);
5181double __ovld __cnfn convert_double_rtn(double);
5182double __ovld __cnfn convert_double_rtn(float);
5183double __ovld __cnfn convert_double_rtn(int);
5184double __ovld __cnfn convert_double_rtn(long);
5185double __ovld __cnfn convert_double_rtn(short);
5186double __ovld __cnfn convert_double_rtn(uchar);
5187double __ovld __cnfn convert_double_rtn(uint);
5188double __ovld __cnfn convert_double_rtn(ulong);
5189double __ovld __cnfn convert_double_rtn(ushort);
5190double __ovld __cnfn convert_double_rtp(char);
5191double __ovld __cnfn convert_double_rtp(double);
5192double __ovld __cnfn convert_double_rtp(float);
5193double __ovld __cnfn convert_double_rtp(int);
5194double __ovld __cnfn convert_double_rtp(long);
5195double __ovld __cnfn convert_double_rtp(short);
5196double __ovld __cnfn convert_double_rtp(uchar);
5197double __ovld __cnfn convert_double_rtp(uint);
5198double __ovld __cnfn convert_double_rtp(ulong);
5199double __ovld __cnfn convert_double_rtp(ushort);
5200double __ovld __cnfn convert_double_rtz(char);
5201double __ovld __cnfn convert_double_rtz(double);
5202double __ovld __cnfn convert_double_rtz(float);
5203double __ovld __cnfn convert_double_rtz(int);
5204double __ovld __cnfn convert_double_rtz(long);
5205double __ovld __cnfn convert_double_rtz(short);
5206double __ovld __cnfn convert_double_rtz(uchar);
5207double __ovld __cnfn convert_double_rtz(uint);
5208double __ovld __cnfn convert_double_rtz(ulong);
5209double __ovld __cnfn convert_double_rtz(ushort);
5210double2 __ovld __cnfn convert_double2(char2);
5211double2 __ovld __cnfn convert_double2(double2);
5212double2 __ovld __cnfn convert_double2(float2);
5213double2 __ovld __cnfn convert_double2(int2);
5214double2 __ovld __cnfn convert_double2(long2);
5215double2 __ovld __cnfn convert_double2(short2);
5216double2 __ovld __cnfn convert_double2(uchar2);
5217double2 __ovld __cnfn convert_double2(uint2);
5218double2 __ovld __cnfn convert_double2(ulong2);
5219double2 __ovld __cnfn convert_double2(ushort2);
5220double2 __ovld __cnfn convert_double2_rte(char2);
5221double2 __ovld __cnfn convert_double2_rte(double2);
5222double2 __ovld __cnfn convert_double2_rte(float2);
5223double2 __ovld __cnfn convert_double2_rte(int2);
5224double2 __ovld __cnfn convert_double2_rte(long2);
5225double2 __ovld __cnfn convert_double2_rte(short2);
5226double2 __ovld __cnfn convert_double2_rte(uchar2);
5227double2 __ovld __cnfn convert_double2_rte(uint2);
5228double2 __ovld __cnfn convert_double2_rte(ulong2);
5229double2 __ovld __cnfn convert_double2_rte(ushort2);
5230double2 __ovld __cnfn convert_double2_rtn(char2);
5231double2 __ovld __cnfn convert_double2_rtn(double2);
5232double2 __ovld __cnfn convert_double2_rtn(float2);
5233double2 __ovld __cnfn convert_double2_rtn(int2);
5234double2 __ovld __cnfn convert_double2_rtn(long2);
5235double2 __ovld __cnfn convert_double2_rtn(short2);
5236double2 __ovld __cnfn convert_double2_rtn(uchar2);
5237double2 __ovld __cnfn convert_double2_rtn(uint2);
5238double2 __ovld __cnfn convert_double2_rtn(ulong2);
5239double2 __ovld __cnfn convert_double2_rtn(ushort2);
5240double2 __ovld __cnfn convert_double2_rtp(char2);
5241double2 __ovld __cnfn convert_double2_rtp(double2);
5242double2 __ovld __cnfn convert_double2_rtp(float2);
5243double2 __ovld __cnfn convert_double2_rtp(int2);
5244double2 __ovld __cnfn convert_double2_rtp(long2);
5245double2 __ovld __cnfn convert_double2_rtp(short2);
5246double2 __ovld __cnfn convert_double2_rtp(uchar2);
5247double2 __ovld __cnfn convert_double2_rtp(uint2);
5248double2 __ovld __cnfn convert_double2_rtp(ulong2);
5249double2 __ovld __cnfn convert_double2_rtp(ushort2);
5250double2 __ovld __cnfn convert_double2_rtz(char2);
5251double2 __ovld __cnfn convert_double2_rtz(double2);
5252double2 __ovld __cnfn convert_double2_rtz(float2);
5253double2 __ovld __cnfn convert_double2_rtz(int2);
5254double2 __ovld __cnfn convert_double2_rtz(long2);
5255double2 __ovld __cnfn convert_double2_rtz(short2);
5256double2 __ovld __cnfn convert_double2_rtz(uchar2);
5257double2 __ovld __cnfn convert_double2_rtz(uint2);
5258double2 __ovld __cnfn convert_double2_rtz(ulong2);
5259double2 __ovld __cnfn convert_double2_rtz(ushort2);
5260double3 __ovld __cnfn convert_double3(char3);
5261double3 __ovld __cnfn convert_double3(double3);
5262double3 __ovld __cnfn convert_double3(float3);
5263double3 __ovld __cnfn convert_double3(int3);
5264double3 __ovld __cnfn convert_double3(long3);
5265double3 __ovld __cnfn convert_double3(short3);
5266double3 __ovld __cnfn convert_double3(uchar3);
5267double3 __ovld __cnfn convert_double3(uint3);
5268double3 __ovld __cnfn convert_double3(ulong3);
5269double3 __ovld __cnfn convert_double3(ushort3);
5270double3 __ovld __cnfn convert_double3_rte(char3);
5271double3 __ovld __cnfn convert_double3_rte(double3);
5272double3 __ovld __cnfn convert_double3_rte(float3);
5273double3 __ovld __cnfn convert_double3_rte(int3);
5274double3 __ovld __cnfn convert_double3_rte(long3);
5275double3 __ovld __cnfn convert_double3_rte(short3);
5276double3 __ovld __cnfn convert_double3_rte(uchar3);
5277double3 __ovld __cnfn convert_double3_rte(uint3);
5278double3 __ovld __cnfn convert_double3_rte(ulong3);
5279double3 __ovld __cnfn convert_double3_rte(ushort3);
5280double3 __ovld __cnfn convert_double3_rtn(char3);
5281double3 __ovld __cnfn convert_double3_rtn(double3);
5282double3 __ovld __cnfn convert_double3_rtn(float3);
5283double3 __ovld __cnfn convert_double3_rtn(int3);
5284double3 __ovld __cnfn convert_double3_rtn(long3);
5285double3 __ovld __cnfn convert_double3_rtn(short3);
5286double3 __ovld __cnfn convert_double3_rtn(uchar3);
5287double3 __ovld __cnfn convert_double3_rtn(uint3);
5288double3 __ovld __cnfn convert_double3_rtn(ulong3);
5289double3 __ovld __cnfn convert_double3_rtn(ushort3);
5290double3 __ovld __cnfn convert_double3_rtp(char3);
5291double3 __ovld __cnfn convert_double3_rtp(double3);
5292double3 __ovld __cnfn convert_double3_rtp(float3);
5293double3 __ovld __cnfn convert_double3_rtp(int3);
5294double3 __ovld __cnfn convert_double3_rtp(long3);
5295double3 __ovld __cnfn convert_double3_rtp(short3);
5296double3 __ovld __cnfn convert_double3_rtp(uchar3);
5297double3 __ovld __cnfn convert_double3_rtp(uint3);
5298double3 __ovld __cnfn convert_double3_rtp(ulong3);
5299double3 __ovld __cnfn convert_double3_rtp(ushort3);
5300double3 __ovld __cnfn convert_double3_rtz(char3);
5301double3 __ovld __cnfn convert_double3_rtz(double3);
5302double3 __ovld __cnfn convert_double3_rtz(float3);
5303double3 __ovld __cnfn convert_double3_rtz(int3);
5304double3 __ovld __cnfn convert_double3_rtz(long3);
5305double3 __ovld __cnfn convert_double3_rtz(short3);
5306double3 __ovld __cnfn convert_double3_rtz(uchar3);
5307double3 __ovld __cnfn convert_double3_rtz(uint3);
5308double3 __ovld __cnfn convert_double3_rtz(ulong3);
5309double3 __ovld __cnfn convert_double3_rtz(ushort3);
5310double4 __ovld __cnfn convert_double4(char4);
5311double4 __ovld __cnfn convert_double4(double4);
5312double4 __ovld __cnfn convert_double4(float4);
5313double4 __ovld __cnfn convert_double4(int4);
5314double4 __ovld __cnfn convert_double4(long4);
5315double4 __ovld __cnfn convert_double4(short4);
5316double4 __ovld __cnfn convert_double4(uchar4);
5317double4 __ovld __cnfn convert_double4(uint4);
5318double4 __ovld __cnfn convert_double4(ulong4);
5319double4 __ovld __cnfn convert_double4(ushort4);
5320double4 __ovld __cnfn convert_double4_rte(char4);
5321double4 __ovld __cnfn convert_double4_rte(double4);
5322double4 __ovld __cnfn convert_double4_rte(float4);
5323double4 __ovld __cnfn convert_double4_rte(int4);
5324double4 __ovld __cnfn convert_double4_rte(long4);
5325double4 __ovld __cnfn convert_double4_rte(short4);
5326double4 __ovld __cnfn convert_double4_rte(uchar4);
5327double4 __ovld __cnfn convert_double4_rte(uint4);
5328double4 __ovld __cnfn convert_double4_rte(ulong4);
5329double4 __ovld __cnfn convert_double4_rte(ushort4);
5330double4 __ovld __cnfn convert_double4_rtn(char4);
5331double4 __ovld __cnfn convert_double4_rtn(double4);
5332double4 __ovld __cnfn convert_double4_rtn(float4);
5333double4 __ovld __cnfn convert_double4_rtn(int4);
5334double4 __ovld __cnfn convert_double4_rtn(long4);
5335double4 __ovld __cnfn convert_double4_rtn(short4);
5336double4 __ovld __cnfn convert_double4_rtn(uchar4);
5337double4 __ovld __cnfn convert_double4_rtn(uint4);
5338double4 __ovld __cnfn convert_double4_rtn(ulong4);
5339double4 __ovld __cnfn convert_double4_rtn(ushort4);
5340double4 __ovld __cnfn convert_double4_rtp(char4);
5341double4 __ovld __cnfn convert_double4_rtp(double4);
5342double4 __ovld __cnfn convert_double4_rtp(float4);
5343double4 __ovld __cnfn convert_double4_rtp(int4);
5344double4 __ovld __cnfn convert_double4_rtp(long4);
5345double4 __ovld __cnfn convert_double4_rtp(short4);
5346double4 __ovld __cnfn convert_double4_rtp(uchar4);
5347double4 __ovld __cnfn convert_double4_rtp(uint4);
5348double4 __ovld __cnfn convert_double4_rtp(ulong4);
5349double4 __ovld __cnfn convert_double4_rtp(ushort4);
5350double4 __ovld __cnfn convert_double4_rtz(char4);
5351double4 __ovld __cnfn convert_double4_rtz(double4);
5352double4 __ovld __cnfn convert_double4_rtz(float4);
5353double4 __ovld __cnfn convert_double4_rtz(int4);
5354double4 __ovld __cnfn convert_double4_rtz(long4);
5355double4 __ovld __cnfn convert_double4_rtz(short4);
5356double4 __ovld __cnfn convert_double4_rtz(uchar4);
5357double4 __ovld __cnfn convert_double4_rtz(uint4);
5358double4 __ovld __cnfn convert_double4_rtz(ulong4);
5359double4 __ovld __cnfn convert_double4_rtz(ushort4);
5360double8 __ovld __cnfn convert_double8(char8);
5361double8 __ovld __cnfn convert_double8(double8);
5362double8 __ovld __cnfn convert_double8(float8);
5363double8 __ovld __cnfn convert_double8(int8);
5364double8 __ovld __cnfn convert_double8(long8);
5365double8 __ovld __cnfn convert_double8(short8);
5366double8 __ovld __cnfn convert_double8(uchar8);
5367double8 __ovld __cnfn convert_double8(uint8);
5368double8 __ovld __cnfn convert_double8(ulong8);
5369double8 __ovld __cnfn convert_double8(ushort8);
5370double8 __ovld __cnfn convert_double8_rte(char8);
5371double8 __ovld __cnfn convert_double8_rte(double8);
5372double8 __ovld __cnfn convert_double8_rte(float8);
5373double8 __ovld __cnfn convert_double8_rte(int8);
5374double8 __ovld __cnfn convert_double8_rte(long8);
5375double8 __ovld __cnfn convert_double8_rte(short8);
5376double8 __ovld __cnfn convert_double8_rte(uchar8);
5377double8 __ovld __cnfn convert_double8_rte(uint8);
5378double8 __ovld __cnfn convert_double8_rte(ulong8);
5379double8 __ovld __cnfn convert_double8_rte(ushort8);
5380double8 __ovld __cnfn convert_double8_rtn(char8);
5381double8 __ovld __cnfn convert_double8_rtn(double8);
5382double8 __ovld __cnfn convert_double8_rtn(float8);
5383double8 __ovld __cnfn convert_double8_rtn(int8);
5384double8 __ovld __cnfn convert_double8_rtn(long8);
5385double8 __ovld __cnfn convert_double8_rtn(short8);
5386double8 __ovld __cnfn convert_double8_rtn(uchar8);
5387double8 __ovld __cnfn convert_double8_rtn(uint8);
5388double8 __ovld __cnfn convert_double8_rtn(ulong8);
5389double8 __ovld __cnfn convert_double8_rtn(ushort8);
5390double8 __ovld __cnfn convert_double8_rtp(char8);
5391double8 __ovld __cnfn convert_double8_rtp(double8);
5392double8 __ovld __cnfn convert_double8_rtp(float8);
5393double8 __ovld __cnfn convert_double8_rtp(int8);
5394double8 __ovld __cnfn convert_double8_rtp(long8);
5395double8 __ovld __cnfn convert_double8_rtp(short8);
5396double8 __ovld __cnfn convert_double8_rtp(uchar8);
5397double8 __ovld __cnfn convert_double8_rtp(uint8);
5398double8 __ovld __cnfn convert_double8_rtp(ulong8);
5399double8 __ovld __cnfn convert_double8_rtp(ushort8);
5400double8 __ovld __cnfn convert_double8_rtz(char8);
5401double8 __ovld __cnfn convert_double8_rtz(double8);
5402double8 __ovld __cnfn convert_double8_rtz(float8);
5403double8 __ovld __cnfn convert_double8_rtz(int8);
5404double8 __ovld __cnfn convert_double8_rtz(long8);
5405double8 __ovld __cnfn convert_double8_rtz(short8);
5406double8 __ovld __cnfn convert_double8_rtz(uchar8);
5407double8 __ovld __cnfn convert_double8_rtz(uint8);
5408double8 __ovld __cnfn convert_double8_rtz(ulong8);
5409double8 __ovld __cnfn convert_double8_rtz(ushort8);
5410double16 __ovld __cnfn convert_double16(char16);
5411double16 __ovld __cnfn convert_double16(double16);
5412double16 __ovld __cnfn convert_double16(float16);
5413double16 __ovld __cnfn convert_double16(int16);
5414double16 __ovld __cnfn convert_double16(long16);
5415double16 __ovld __cnfn convert_double16(short16);
5416double16 __ovld __cnfn convert_double16(uchar16);
5417double16 __ovld __cnfn convert_double16(uint16);
5418double16 __ovld __cnfn convert_double16(ulong16);
5419double16 __ovld __cnfn convert_double16(ushort16);
5420double16 __ovld __cnfn convert_double16_rte(char16);
5421double16 __ovld __cnfn convert_double16_rte(double16);
5422double16 __ovld __cnfn convert_double16_rte(float16);
5423double16 __ovld __cnfn convert_double16_rte(int16);
5424double16 __ovld __cnfn convert_double16_rte(long16);
5425double16 __ovld __cnfn convert_double16_rte(short16);
5426double16 __ovld __cnfn convert_double16_rte(uchar16);
5427double16 __ovld __cnfn convert_double16_rte(uint16);
5428double16 __ovld __cnfn convert_double16_rte(ulong16);
5429double16 __ovld __cnfn convert_double16_rte(ushort16);
5430double16 __ovld __cnfn convert_double16_rtn(char16);
5431double16 __ovld __cnfn convert_double16_rtn(double16);
5432double16 __ovld __cnfn convert_double16_rtn(float16);
5433double16 __ovld __cnfn convert_double16_rtn(int16);
5434double16 __ovld __cnfn convert_double16_rtn(long16);
5435double16 __ovld __cnfn convert_double16_rtn(short16);
5436double16 __ovld __cnfn convert_double16_rtn(uchar16);
5437double16 __ovld __cnfn convert_double16_rtn(uint16);
5438double16 __ovld __cnfn convert_double16_rtn(ulong16);
5439double16 __ovld __cnfn convert_double16_rtn(ushort16);
5440double16 __ovld __cnfn convert_double16_rtp(char16);
5441double16 __ovld __cnfn convert_double16_rtp(double16);
5442double16 __ovld __cnfn convert_double16_rtp(float16);
5443double16 __ovld __cnfn convert_double16_rtp(int16);
5444double16 __ovld __cnfn convert_double16_rtp(long16);
5445double16 __ovld __cnfn convert_double16_rtp(short16);
5446double16 __ovld __cnfn convert_double16_rtp(uchar16);
5447double16 __ovld __cnfn convert_double16_rtp(uint16);
5448double16 __ovld __cnfn convert_double16_rtp(ulong16);
5449double16 __ovld __cnfn convert_double16_rtp(ushort16);
5450double16 __ovld __cnfn convert_double16_rtz(char16);
5451double16 __ovld __cnfn convert_double16_rtz(double16);
5452double16 __ovld __cnfn convert_double16_rtz(float16);
5453double16 __ovld __cnfn convert_double16_rtz(int16);
5454double16 __ovld __cnfn convert_double16_rtz(long16);
5455double16 __ovld __cnfn convert_double16_rtz(short16);
5456double16 __ovld __cnfn convert_double16_rtz(uchar16);
5457double16 __ovld __cnfn convert_double16_rtz(uint16);
5458double16 __ovld __cnfn convert_double16_rtz(ulong16);
5459double16 __ovld __cnfn convert_double16_rtz(ushort16);
5460#endif //cl_khr_fp64
5461
5462#ifdef cl_khr_fp16
Pirama Arumuga Nainar986b8802021-06-03 16:00:34 -07005463#pragma OPENCL EXTENSION cl_khr_fp16 : enable
Logan Chien2833ffb2018-10-09 10:03:24 +08005464// Convert half types to non-double types.
5465uchar __ovld __cnfn convert_uchar(half);
5466uchar __ovld __cnfn convert_uchar_rte(half);
5467uchar __ovld __cnfn convert_uchar_rtp(half);
5468uchar __ovld __cnfn convert_uchar_rtn(half);
5469uchar __ovld __cnfn convert_uchar_rtz(half);
5470uchar __ovld __cnfn convert_uchar_sat(half);
5471uchar __ovld __cnfn convert_uchar_sat_rte(half);
5472uchar __ovld __cnfn convert_uchar_sat_rtp(half);
5473uchar __ovld __cnfn convert_uchar_sat_rtn(half);
5474uchar __ovld __cnfn convert_uchar_sat_rtz(half);
5475uchar2 __ovld __cnfn convert_uchar2(half2);
5476uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5477uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5478uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5479uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5480uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5481uchar2 __ovld __cnfn convert_uchar2_sat_rte(half2);
5482uchar2 __ovld __cnfn convert_uchar2_sat_rtp(half2);
5483uchar2 __ovld __cnfn convert_uchar2_sat_rtn(half2);
5484uchar2 __ovld __cnfn convert_uchar2_sat_rtz(half2);
5485uchar3 __ovld __cnfn convert_uchar3(half3);
5486uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5487uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5488uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5489uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5490uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5491uchar3 __ovld __cnfn convert_uchar3_sat_rte(half3);
5492uchar3 __ovld __cnfn convert_uchar3_sat_rtp(half3);
5493uchar3 __ovld __cnfn convert_uchar3_sat_rtn(half3);
5494uchar3 __ovld __cnfn convert_uchar3_sat_rtz(half3);
5495uchar4 __ovld __cnfn convert_uchar4(half4);
5496uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5497uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5498uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5499uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5500uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5501uchar4 __ovld __cnfn convert_uchar4_sat_rte(half4);
5502uchar4 __ovld __cnfn convert_uchar4_sat_rtp(half4);
5503uchar4 __ovld __cnfn convert_uchar4_sat_rtn(half4);
5504uchar4 __ovld __cnfn convert_uchar4_sat_rtz(half4);
5505uchar8 __ovld __cnfn convert_uchar8(half8);
5506uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5507uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5508uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5509uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5510uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5511uchar8 __ovld __cnfn convert_uchar8_sat_rte(half8);
5512uchar8 __ovld __cnfn convert_uchar8_sat_rtp(half8);
5513uchar8 __ovld __cnfn convert_uchar8_sat_rtn(half8);
5514uchar8 __ovld __cnfn convert_uchar8_sat_rtz(half8);
5515uchar16 __ovld __cnfn convert_uchar16(half16);
5516uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5517uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5518uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5519uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5520uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5521uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5522uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5523uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5524uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5525ushort __ovld __cnfn convert_ushort(half);
5526ushort __ovld __cnfn convert_ushort_rte(half);
5527ushort __ovld __cnfn convert_ushort_rtp(half);
5528ushort __ovld __cnfn convert_ushort_rtn(half);
5529ushort __ovld __cnfn convert_ushort_rtz(half);
5530ushort __ovld __cnfn convert_ushort_sat(half);
5531ushort __ovld __cnfn convert_ushort_sat_rte(half);
5532ushort __ovld __cnfn convert_ushort_sat_rtp(half);
5533ushort __ovld __cnfn convert_ushort_sat_rtn(half);
5534ushort __ovld __cnfn convert_ushort_sat_rtz(half);
5535ushort2 __ovld __cnfn convert_ushort2(half2);
5536ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5537ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5538ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5539ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5540ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5541ushort2 __ovld __cnfn convert_ushort2_sat_rte(half2);
5542ushort2 __ovld __cnfn convert_ushort2_sat_rtp(half2);
5543ushort2 __ovld __cnfn convert_ushort2_sat_rtn(half2);
5544ushort2 __ovld __cnfn convert_ushort2_sat_rtz(half2);
5545ushort3 __ovld __cnfn convert_ushort3(half3);
5546ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5547ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5548ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5549ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5550ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5551ushort3 __ovld __cnfn convert_ushort3_sat_rte(half3);
5552ushort3 __ovld __cnfn convert_ushort3_sat_rtp(half3);
5553ushort3 __ovld __cnfn convert_ushort3_sat_rtn(half3);
5554ushort3 __ovld __cnfn convert_ushort3_sat_rtz(half3);
5555ushort4 __ovld __cnfn convert_ushort4(half4);
5556ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5557ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5558ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5559ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5560ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5561ushort4 __ovld __cnfn convert_ushort4_sat_rte(half4);
5562ushort4 __ovld __cnfn convert_ushort4_sat_rtp(half4);
5563ushort4 __ovld __cnfn convert_ushort4_sat_rtn(half4);
5564ushort4 __ovld __cnfn convert_ushort4_sat_rtz(half4);
5565ushort8 __ovld __cnfn convert_ushort8(half8);
5566ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5567ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5568ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5569ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5570ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5571ushort8 __ovld __cnfn convert_ushort8_sat_rte(half8);
5572ushort8 __ovld __cnfn convert_ushort8_sat_rtp(half8);
5573ushort8 __ovld __cnfn convert_ushort8_sat_rtn(half8);
5574ushort8 __ovld __cnfn convert_ushort8_sat_rtz(half8);
5575ushort16 __ovld __cnfn convert_ushort16(half16);
5576ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5577ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5578ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5579ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5580ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5581ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5582ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5583ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5584ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5585uint __ovld __cnfn convert_uint(half);
5586uint __ovld __cnfn convert_uint_rte(half);
5587uint __ovld __cnfn convert_uint_rtp(half);
5588uint __ovld __cnfn convert_uint_rtn(half);
5589uint __ovld __cnfn convert_uint_rtz(half);
5590uint __ovld __cnfn convert_uint_sat(half);
5591uint __ovld __cnfn convert_uint_sat_rte(half);
5592uint __ovld __cnfn convert_uint_sat_rtp(half);
5593uint __ovld __cnfn convert_uint_sat_rtn(half);
5594uint __ovld __cnfn convert_uint_sat_rtz(half);
5595uint2 __ovld __cnfn convert_uint2(half2);
5596uint2 __ovld __cnfn convert_uint2_rte(half2);
5597uint2 __ovld __cnfn convert_uint2_rtp(half2);
5598uint2 __ovld __cnfn convert_uint2_rtn(half2);
5599uint2 __ovld __cnfn convert_uint2_rtz(half2);
5600uint2 __ovld __cnfn convert_uint2_sat(half2);
5601uint2 __ovld __cnfn convert_uint2_sat_rte(half2);
5602uint2 __ovld __cnfn convert_uint2_sat_rtp(half2);
5603uint2 __ovld __cnfn convert_uint2_sat_rtn(half2);
5604uint2 __ovld __cnfn convert_uint2_sat_rtz(half2);
5605uint3 __ovld __cnfn convert_uint3(half3);
5606uint3 __ovld __cnfn convert_uint3_rte(half3);
5607uint3 __ovld __cnfn convert_uint3_rtp(half3);
5608uint3 __ovld __cnfn convert_uint3_rtn(half3);
5609uint3 __ovld __cnfn convert_uint3_rtz(half3);
5610uint3 __ovld __cnfn convert_uint3_sat(half3);
5611uint3 __ovld __cnfn convert_uint3_sat_rte(half3);
5612uint3 __ovld __cnfn convert_uint3_sat_rtp(half3);
5613uint3 __ovld __cnfn convert_uint3_sat_rtn(half3);
5614uint3 __ovld __cnfn convert_uint3_sat_rtz(half3);
5615uint4 __ovld __cnfn convert_uint4(half4);
5616uint4 __ovld __cnfn convert_uint4_rte(half4);
5617uint4 __ovld __cnfn convert_uint4_rtp(half4);
5618uint4 __ovld __cnfn convert_uint4_rtn(half4);
5619uint4 __ovld __cnfn convert_uint4_rtz(half4);
5620uint4 __ovld __cnfn convert_uint4_sat(half4);
5621uint4 __ovld __cnfn convert_uint4_sat_rte(half4);
5622uint4 __ovld __cnfn convert_uint4_sat_rtp(half4);
5623uint4 __ovld __cnfn convert_uint4_sat_rtn(half4);
5624uint4 __ovld __cnfn convert_uint4_sat_rtz(half4);
5625uint8 __ovld __cnfn convert_uint8(half8);
5626uint8 __ovld __cnfn convert_uint8_rte(half8);
5627uint8 __ovld __cnfn convert_uint8_rtp(half8);
5628uint8 __ovld __cnfn convert_uint8_rtn(half8);
5629uint8 __ovld __cnfn convert_uint8_rtz(half8);
5630uint8 __ovld __cnfn convert_uint8_sat(half8);
5631uint8 __ovld __cnfn convert_uint8_sat_rte(half8);
5632uint8 __ovld __cnfn convert_uint8_sat_rtp(half8);
5633uint8 __ovld __cnfn convert_uint8_sat_rtn(half8);
5634uint8 __ovld __cnfn convert_uint8_sat_rtz(half8);
5635uint16 __ovld __cnfn convert_uint16(half16);
5636uint16 __ovld __cnfn convert_uint16_rte(half16);
5637uint16 __ovld __cnfn convert_uint16_rtp(half16);
5638uint16 __ovld __cnfn convert_uint16_rtn(half16);
5639uint16 __ovld __cnfn convert_uint16_rtz(half16);
5640uint16 __ovld __cnfn convert_uint16_sat(half16);
5641uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5642uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5643uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5644uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5645ulong __ovld __cnfn convert_ulong(half);
5646ulong __ovld __cnfn convert_ulong_rte(half);
5647ulong __ovld __cnfn convert_ulong_rtp(half);
5648ulong __ovld __cnfn convert_ulong_rtn(half);
5649ulong __ovld __cnfn convert_ulong_rtz(half);
5650ulong __ovld __cnfn convert_ulong_sat(half);
5651ulong __ovld __cnfn convert_ulong_sat_rte(half);
5652ulong __ovld __cnfn convert_ulong_sat_rtp(half);
5653ulong __ovld __cnfn convert_ulong_sat_rtn(half);
5654ulong __ovld __cnfn convert_ulong_sat_rtz(half);
5655ulong2 __ovld __cnfn convert_ulong2(half2);
5656ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5657ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5658ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5659ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5660ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5661ulong2 __ovld __cnfn convert_ulong2_sat_rte(half2);
5662ulong2 __ovld __cnfn convert_ulong2_sat_rtp(half2);
5663ulong2 __ovld __cnfn convert_ulong2_sat_rtn(half2);
5664ulong2 __ovld __cnfn convert_ulong2_sat_rtz(half2);
5665ulong3 __ovld __cnfn convert_ulong3(half3);
5666ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5667ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5668ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5669ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5670ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5671ulong3 __ovld __cnfn convert_ulong3_sat_rte(half3);
5672ulong3 __ovld __cnfn convert_ulong3_sat_rtp(half3);
5673ulong3 __ovld __cnfn convert_ulong3_sat_rtn(half3);
5674ulong3 __ovld __cnfn convert_ulong3_sat_rtz(half3);
5675ulong4 __ovld __cnfn convert_ulong4(half4);
5676ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5677ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5678ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5679ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5680ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5681ulong4 __ovld __cnfn convert_ulong4_sat_rte(half4);
5682ulong4 __ovld __cnfn convert_ulong4_sat_rtp(half4);
5683ulong4 __ovld __cnfn convert_ulong4_sat_rtn(half4);
5684ulong4 __ovld __cnfn convert_ulong4_sat_rtz(half4);
5685ulong8 __ovld __cnfn convert_ulong8(half8);
5686ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5687ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5688ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5689ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5690ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5691ulong8 __ovld __cnfn convert_ulong8_sat_rte(half8);
5692ulong8 __ovld __cnfn convert_ulong8_sat_rtp(half8);
5693ulong8 __ovld __cnfn convert_ulong8_sat_rtn(half8);
5694ulong8 __ovld __cnfn convert_ulong8_sat_rtz(half8);
5695ulong16 __ovld __cnfn convert_ulong16(half16);
5696ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5697ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5698ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5699ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5700ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5701ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5702ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5703ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5704ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5705char __ovld __cnfn convert_char(half);
5706char __ovld __cnfn convert_char_rte(half);
5707char __ovld __cnfn convert_char_rtp(half);
5708char __ovld __cnfn convert_char_rtn(half);
5709char __ovld __cnfn convert_char_rtz(half);
5710char __ovld __cnfn convert_char_sat(half);
5711char __ovld __cnfn convert_char_sat_rte(half);
5712char __ovld __cnfn convert_char_sat_rtp(half);
5713char __ovld __cnfn convert_char_sat_rtn(half);
5714char __ovld __cnfn convert_char_sat_rtz(half);
5715char2 __ovld __cnfn convert_char2(half2);
5716char2 __ovld __cnfn convert_char2_rte(half2);
5717char2 __ovld __cnfn convert_char2_rtp(half2);
5718char2 __ovld __cnfn convert_char2_rtn(half2);
5719char2 __ovld __cnfn convert_char2_rtz(half2);
5720char2 __ovld __cnfn convert_char2_sat(half2);
5721char2 __ovld __cnfn convert_char2_sat_rte(half2);
5722char2 __ovld __cnfn convert_char2_sat_rtp(half2);
5723char2 __ovld __cnfn convert_char2_sat_rtn(half2);
5724char2 __ovld __cnfn convert_char2_sat_rtz(half2);
5725char3 __ovld __cnfn convert_char3(half3);
5726char3 __ovld __cnfn convert_char3_rte(half3);
5727char3 __ovld __cnfn convert_char3_rtp(half3);
5728char3 __ovld __cnfn convert_char3_rtn(half3);
5729char3 __ovld __cnfn convert_char3_rtz(half3);
5730char3 __ovld __cnfn convert_char3_sat(half3);
5731char3 __ovld __cnfn convert_char3_sat_rte(half3);
5732char3 __ovld __cnfn convert_char3_sat_rtp(half3);
5733char3 __ovld __cnfn convert_char3_sat_rtn(half3);
5734char3 __ovld __cnfn convert_char3_sat_rtz(half3);
5735char4 __ovld __cnfn convert_char4(half4);
5736char4 __ovld __cnfn convert_char4_rte(half4);
5737char4 __ovld __cnfn convert_char4_rtp(half4);
5738char4 __ovld __cnfn convert_char4_rtn(half4);
5739char4 __ovld __cnfn convert_char4_rtz(half4);
5740char4 __ovld __cnfn convert_char4_sat(half4);
5741char4 __ovld __cnfn convert_char4_sat_rte(half4);
5742char4 __ovld __cnfn convert_char4_sat_rtp(half4);
5743char4 __ovld __cnfn convert_char4_sat_rtn(half4);
5744char4 __ovld __cnfn convert_char4_sat_rtz(half4);
5745char8 __ovld __cnfn convert_char8(half8);
5746char8 __ovld __cnfn convert_char8_rte(half8);
5747char8 __ovld __cnfn convert_char8_rtp(half8);
5748char8 __ovld __cnfn convert_char8_rtn(half8);
5749char8 __ovld __cnfn convert_char8_rtz(half8);
5750char8 __ovld __cnfn convert_char8_sat(half8);
5751char8 __ovld __cnfn convert_char8_sat_rte(half8);
5752char8 __ovld __cnfn convert_char8_sat_rtp(half8);
5753char8 __ovld __cnfn convert_char8_sat_rtn(half8);
5754char8 __ovld __cnfn convert_char8_sat_rtz(half8);
5755char16 __ovld __cnfn convert_char16(half16);
5756char16 __ovld __cnfn convert_char16_rte(half16);
5757char16 __ovld __cnfn convert_char16_rtp(half16);
5758char16 __ovld __cnfn convert_char16_rtn(half16);
5759char16 __ovld __cnfn convert_char16_rtz(half16);
5760char16 __ovld __cnfn convert_char16_sat(half16);
5761char16 __ovld __cnfn convert_char16_sat_rte(half16);
5762char16 __ovld __cnfn convert_char16_sat_rtp(half16);
5763char16 __ovld __cnfn convert_char16_sat_rtn(half16);
5764char16 __ovld __cnfn convert_char16_sat_rtz(half16);
5765short __ovld __cnfn convert_short(half);
5766short __ovld __cnfn convert_short_rte(half);
5767short __ovld __cnfn convert_short_rtp(half);
5768short __ovld __cnfn convert_short_rtn(half);
5769short __ovld __cnfn convert_short_rtz(half);
5770short __ovld __cnfn convert_short_sat(half);
5771short __ovld __cnfn convert_short_sat_rte(half);
5772short __ovld __cnfn convert_short_sat_rtp(half);
5773short __ovld __cnfn convert_short_sat_rtn(half);
5774short __ovld __cnfn convert_short_sat_rtz(half);
5775short2 __ovld __cnfn convert_short2(half2);
5776short2 __ovld __cnfn convert_short2_rte(half2);
5777short2 __ovld __cnfn convert_short2_rtp(half2);
5778short2 __ovld __cnfn convert_short2_rtn(half2);
5779short2 __ovld __cnfn convert_short2_rtz(half2);
5780short2 __ovld __cnfn convert_short2_sat(half2);
5781short2 __ovld __cnfn convert_short2_sat_rte(half2);
5782short2 __ovld __cnfn convert_short2_sat_rtp(half2);
5783short2 __ovld __cnfn convert_short2_sat_rtn(half2);
5784short2 __ovld __cnfn convert_short2_sat_rtz(half2);
5785short3 __ovld __cnfn convert_short3(half3);
5786short3 __ovld __cnfn convert_short3_rte(half3);
5787short3 __ovld __cnfn convert_short3_rtp(half3);
5788short3 __ovld __cnfn convert_short3_rtn(half3);
5789short3 __ovld __cnfn convert_short3_rtz(half3);
5790short3 __ovld __cnfn convert_short3_sat(half3);
5791short3 __ovld __cnfn convert_short3_sat_rte(half3);
5792short3 __ovld __cnfn convert_short3_sat_rtp(half3);
5793short3 __ovld __cnfn convert_short3_sat_rtn(half3);
5794short3 __ovld __cnfn convert_short3_sat_rtz(half3);
5795short4 __ovld __cnfn convert_short4(half4);
5796short4 __ovld __cnfn convert_short4_rte(half4);
5797short4 __ovld __cnfn convert_short4_rtp(half4);
5798short4 __ovld __cnfn convert_short4_rtn(half4);
5799short4 __ovld __cnfn convert_short4_rtz(half4);
5800short4 __ovld __cnfn convert_short4_sat(half4);
5801short4 __ovld __cnfn convert_short4_sat_rte(half4);
5802short4 __ovld __cnfn convert_short4_sat_rtp(half4);
5803short4 __ovld __cnfn convert_short4_sat_rtn(half4);
5804short4 __ovld __cnfn convert_short4_sat_rtz(half4);
5805short8 __ovld __cnfn convert_short8(half8);
5806short8 __ovld __cnfn convert_short8_rte(half8);
5807short8 __ovld __cnfn convert_short8_rtp(half8);
5808short8 __ovld __cnfn convert_short8_rtn(half8);
5809short8 __ovld __cnfn convert_short8_rtz(half8);
5810short8 __ovld __cnfn convert_short8_sat(half8);
5811short8 __ovld __cnfn convert_short8_sat_rte(half8);
5812short8 __ovld __cnfn convert_short8_sat_rtp(half8);
5813short8 __ovld __cnfn convert_short8_sat_rtn(half8);
5814short8 __ovld __cnfn convert_short8_sat_rtz(half8);
5815short16 __ovld __cnfn convert_short16(half16);
5816short16 __ovld __cnfn convert_short16_rte(half16);
5817short16 __ovld __cnfn convert_short16_rtp(half16);
5818short16 __ovld __cnfn convert_short16_rtn(half16);
5819short16 __ovld __cnfn convert_short16_rtz(half16);
5820short16 __ovld __cnfn convert_short16_sat(half16);
5821short16 __ovld __cnfn convert_short16_sat_rte(half16);
5822short16 __ovld __cnfn convert_short16_sat_rtp(half16);
5823short16 __ovld __cnfn convert_short16_sat_rtn(half16);
5824short16 __ovld __cnfn convert_short16_sat_rtz(half16);
5825int __ovld __cnfn convert_int(half);
5826int __ovld __cnfn convert_int_rte(half);
5827int __ovld __cnfn convert_int_rtp(half);
5828int __ovld __cnfn convert_int_rtn(half);
5829int __ovld __cnfn convert_int_rtz(half);
5830int __ovld __cnfn convert_int_sat(half);
5831int __ovld __cnfn convert_int_sat_rte(half);
5832int __ovld __cnfn convert_int_sat_rtp(half);
5833int __ovld __cnfn convert_int_sat_rtn(half);
5834int __ovld __cnfn convert_int_sat_rtz(half);
5835int2 __ovld __cnfn convert_int2(half2);
5836int2 __ovld __cnfn convert_int2_rte(half2);
5837int2 __ovld __cnfn convert_int2_rtp(half2);
5838int2 __ovld __cnfn convert_int2_rtn(half2);
5839int2 __ovld __cnfn convert_int2_rtz(half2);
5840int2 __ovld __cnfn convert_int2_sat(half2);
5841int2 __ovld __cnfn convert_int2_sat_rte(half2);
5842int2 __ovld __cnfn convert_int2_sat_rtp(half2);
5843int2 __ovld __cnfn convert_int2_sat_rtn(half2);
5844int2 __ovld __cnfn convert_int2_sat_rtz(half2);
5845int3 __ovld __cnfn convert_int3(half3);
5846int3 __ovld __cnfn convert_int3_rte(half3);
5847int3 __ovld __cnfn convert_int3_rtp(half3);
5848int3 __ovld __cnfn convert_int3_rtn(half3);
5849int3 __ovld __cnfn convert_int3_rtz(half3);
5850int3 __ovld __cnfn convert_int3_sat(half3);
5851int3 __ovld __cnfn convert_int3_sat_rte(half3);
5852int3 __ovld __cnfn convert_int3_sat_rtp(half3);
5853int3 __ovld __cnfn convert_int3_sat_rtn(half3);
5854int3 __ovld __cnfn convert_int3_sat_rtz(half3);
5855int4 __ovld __cnfn convert_int4(half4);
5856int4 __ovld __cnfn convert_int4_rte(half4);
5857int4 __ovld __cnfn convert_int4_rtp(half4);
5858int4 __ovld __cnfn convert_int4_rtn(half4);
5859int4 __ovld __cnfn convert_int4_rtz(half4);
5860int4 __ovld __cnfn convert_int4_sat(half4);
5861int4 __ovld __cnfn convert_int4_sat_rte(half4);
5862int4 __ovld __cnfn convert_int4_sat_rtp(half4);
5863int4 __ovld __cnfn convert_int4_sat_rtn(half4);
5864int4 __ovld __cnfn convert_int4_sat_rtz(half4);
5865int8 __ovld __cnfn convert_int8(half8);
5866int8 __ovld __cnfn convert_int8_rte(half8);
5867int8 __ovld __cnfn convert_int8_rtp(half8);
5868int8 __ovld __cnfn convert_int8_rtn(half8);
5869int8 __ovld __cnfn convert_int8_rtz(half8);
5870int8 __ovld __cnfn convert_int8_sat(half8);
5871int8 __ovld __cnfn convert_int8_sat_rte(half8);
5872int8 __ovld __cnfn convert_int8_sat_rtp(half8);
5873int8 __ovld __cnfn convert_int8_sat_rtn(half8);
5874int8 __ovld __cnfn convert_int8_sat_rtz(half8);
5875int16 __ovld __cnfn convert_int16(half16);
5876int16 __ovld __cnfn convert_int16_rte(half16);
5877int16 __ovld __cnfn convert_int16_rtp(half16);
5878int16 __ovld __cnfn convert_int16_rtn(half16);
5879int16 __ovld __cnfn convert_int16_rtz(half16);
5880int16 __ovld __cnfn convert_int16_sat(half16);
5881int16 __ovld __cnfn convert_int16_sat_rte(half16);
5882int16 __ovld __cnfn convert_int16_sat_rtp(half16);
5883int16 __ovld __cnfn convert_int16_sat_rtn(half16);
5884int16 __ovld __cnfn convert_int16_sat_rtz(half16);
5885long __ovld __cnfn convert_long(half);
5886long __ovld __cnfn convert_long_rte(half);
5887long __ovld __cnfn convert_long_rtp(half);
5888long __ovld __cnfn convert_long_rtn(half);
5889long __ovld __cnfn convert_long_rtz(half);
5890long __ovld __cnfn convert_long_sat(half);
5891long __ovld __cnfn convert_long_sat_rte(half);
5892long __ovld __cnfn convert_long_sat_rtp(half);
5893long __ovld __cnfn convert_long_sat_rtn(half);
5894long __ovld __cnfn convert_long_sat_rtz(half);
5895long2 __ovld __cnfn convert_long2(half2);
5896long2 __ovld __cnfn convert_long2_rte(half2);
5897long2 __ovld __cnfn convert_long2_rtp(half2);
5898long2 __ovld __cnfn convert_long2_rtn(half2);
5899long2 __ovld __cnfn convert_long2_rtz(half2);
5900long2 __ovld __cnfn convert_long2_sat(half2);
5901long2 __ovld __cnfn convert_long2_sat_rte(half2);
5902long2 __ovld __cnfn convert_long2_sat_rtp(half2);
5903long2 __ovld __cnfn convert_long2_sat_rtn(half2);
5904long2 __ovld __cnfn convert_long2_sat_rtz(half2);
5905long3 __ovld __cnfn convert_long3(half3);
5906long3 __ovld __cnfn convert_long3_rte(half3);
5907long3 __ovld __cnfn convert_long3_rtp(half3);
5908long3 __ovld __cnfn convert_long3_rtn(half3);
5909long3 __ovld __cnfn convert_long3_rtz(half3);
5910long3 __ovld __cnfn convert_long3_sat(half3);
5911long3 __ovld __cnfn convert_long3_sat_rte(half3);
5912long3 __ovld __cnfn convert_long3_sat_rtp(half3);
5913long3 __ovld __cnfn convert_long3_sat_rtn(half3);
5914long3 __ovld __cnfn convert_long3_sat_rtz(half3);
5915long4 __ovld __cnfn convert_long4(half4);
5916long4 __ovld __cnfn convert_long4_rte(half4);
5917long4 __ovld __cnfn convert_long4_rtp(half4);
5918long4 __ovld __cnfn convert_long4_rtn(half4);
5919long4 __ovld __cnfn convert_long4_rtz(half4);
5920long4 __ovld __cnfn convert_long4_sat(half4);
5921long4 __ovld __cnfn convert_long4_sat_rte(half4);
5922long4 __ovld __cnfn convert_long4_sat_rtp(half4);
5923long4 __ovld __cnfn convert_long4_sat_rtn(half4);
5924long4 __ovld __cnfn convert_long4_sat_rtz(half4);
5925long8 __ovld __cnfn convert_long8(half8);
5926long8 __ovld __cnfn convert_long8_rte(half8);
5927long8 __ovld __cnfn convert_long8_rtp(half8);
5928long8 __ovld __cnfn convert_long8_rtn(half8);
5929long8 __ovld __cnfn convert_long8_rtz(half8);
5930long8 __ovld __cnfn convert_long8_sat(half8);
5931long8 __ovld __cnfn convert_long8_sat_rte(half8);
5932long8 __ovld __cnfn convert_long8_sat_rtp(half8);
5933long8 __ovld __cnfn convert_long8_sat_rtn(half8);
5934long8 __ovld __cnfn convert_long8_sat_rtz(half8);
5935long16 __ovld __cnfn convert_long16(half16);
5936long16 __ovld __cnfn convert_long16_rte(half16);
5937long16 __ovld __cnfn convert_long16_rtp(half16);
5938long16 __ovld __cnfn convert_long16_rtn(half16);
5939long16 __ovld __cnfn convert_long16_rtz(half16);
5940long16 __ovld __cnfn convert_long16_sat(half16);
5941long16 __ovld __cnfn convert_long16_sat_rte(half16);
5942long16 __ovld __cnfn convert_long16_sat_rtp(half16);
5943long16 __ovld __cnfn convert_long16_sat_rtn(half16);
5944long16 __ovld __cnfn convert_long16_sat_rtz(half16);
5945float __ovld __cnfn convert_float(half);
5946float __ovld __cnfn convert_float_rte(half);
5947float __ovld __cnfn convert_float_rtp(half);
5948float __ovld __cnfn convert_float_rtn(half);
5949float __ovld __cnfn convert_float_rtz(half);
5950float2 __ovld __cnfn convert_float2(half2);
5951float2 __ovld __cnfn convert_float2_rte(half2);
5952float2 __ovld __cnfn convert_float2_rtp(half2);
5953float2 __ovld __cnfn convert_float2_rtn(half2);
5954float2 __ovld __cnfn convert_float2_rtz(half2);
5955float3 __ovld __cnfn convert_float3(half3);
5956float3 __ovld __cnfn convert_float3_rte(half3);
5957float3 __ovld __cnfn convert_float3_rtp(half3);
5958float3 __ovld __cnfn convert_float3_rtn(half3);
5959float3 __ovld __cnfn convert_float3_rtz(half3);
5960float4 __ovld __cnfn convert_float4(half4);
5961float4 __ovld __cnfn convert_float4_rte(half4);
5962float4 __ovld __cnfn convert_float4_rtp(half4);
5963float4 __ovld __cnfn convert_float4_rtn(half4);
5964float4 __ovld __cnfn convert_float4_rtz(half4);
5965float8 __ovld __cnfn convert_float8(half8);
5966float8 __ovld __cnfn convert_float8_rte(half8);
5967float8 __ovld __cnfn convert_float8_rtp(half8);
5968float8 __ovld __cnfn convert_float8_rtn(half8);
5969float8 __ovld __cnfn convert_float8_rtz(half8);
5970float16 __ovld __cnfn convert_float16(half16);
5971float16 __ovld __cnfn convert_float16_rte(half16);
5972float16 __ovld __cnfn convert_float16_rtp(half16);
5973float16 __ovld __cnfn convert_float16_rtn(half16);
5974float16 __ovld __cnfn convert_float16_rtz(half16);
5975
5976// Convert non-double types to half types.
5977half __ovld __cnfn convert_half(uchar);
5978half __ovld __cnfn convert_half(ushort);
5979half __ovld __cnfn convert_half(uint);
5980half __ovld __cnfn convert_half(ulong);
5981half __ovld __cnfn convert_half(char);
5982half __ovld __cnfn convert_half(short);
5983half __ovld __cnfn convert_half(int);
5984half __ovld __cnfn convert_half(long);
5985half __ovld __cnfn convert_half(float);
5986half __ovld __cnfn convert_half(half);
5987half __ovld __cnfn convert_half_rte(uchar);
5988half __ovld __cnfn convert_half_rte(ushort);
5989half __ovld __cnfn convert_half_rte(uint);
5990half __ovld __cnfn convert_half_rte(ulong);
5991half __ovld __cnfn convert_half_rte(char);
5992half __ovld __cnfn convert_half_rte(short);
5993half __ovld __cnfn convert_half_rte(int);
5994half __ovld __cnfn convert_half_rte(long);
5995half __ovld __cnfn convert_half_rte(float);
5996half __ovld __cnfn convert_half_rte(half);
5997half __ovld __cnfn convert_half_rtp(uchar);
5998half __ovld __cnfn convert_half_rtp(ushort);
5999half __ovld __cnfn convert_half_rtp(uint);
6000half __ovld __cnfn convert_half_rtp(ulong);
6001half __ovld __cnfn convert_half_rtp(char);
6002half __ovld __cnfn convert_half_rtp(short);
6003half __ovld __cnfn convert_half_rtp(int);
6004half __ovld __cnfn convert_half_rtp(long);
6005half __ovld __cnfn convert_half_rtp(float);
6006half __ovld __cnfn convert_half_rtp(half);
6007half __ovld __cnfn convert_half_rtn(uchar);
6008half __ovld __cnfn convert_half_rtn(ushort);
6009half __ovld __cnfn convert_half_rtn(uint);
6010half __ovld __cnfn convert_half_rtn(ulong);
6011half __ovld __cnfn convert_half_rtn(char);
6012half __ovld __cnfn convert_half_rtn(short);
6013half __ovld __cnfn convert_half_rtn(int);
6014half __ovld __cnfn convert_half_rtn(long);
6015half __ovld __cnfn convert_half_rtn(float);
6016half __ovld __cnfn convert_half_rtn(half);
6017half __ovld __cnfn convert_half_rtz(uchar);
6018half __ovld __cnfn convert_half_rtz(ushort);
6019half __ovld __cnfn convert_half_rtz(uint);
6020half __ovld __cnfn convert_half_rtz(ulong);
6021half __ovld __cnfn convert_half_rtz(char);
6022half __ovld __cnfn convert_half_rtz(short);
6023half __ovld __cnfn convert_half_rtz(int);
6024half __ovld __cnfn convert_half_rtz(long);
6025half __ovld __cnfn convert_half_rtz(float);
6026half __ovld __cnfn convert_half_rtz(half);
6027half2 __ovld __cnfn convert_half2(char2);
6028half2 __ovld __cnfn convert_half2(uchar2);
6029half2 __ovld __cnfn convert_half2(short2);
6030half2 __ovld __cnfn convert_half2(ushort2);
6031half2 __ovld __cnfn convert_half2(int2);
6032half2 __ovld __cnfn convert_half2(uint2);
6033half2 __ovld __cnfn convert_half2(long2);
6034half2 __ovld __cnfn convert_half2(ulong2);
6035half2 __ovld __cnfn convert_half2(float2);
6036half2 __ovld __cnfn convert_half2(half2);
6037half2 __ovld __cnfn convert_half2_rte(char2);
6038half2 __ovld __cnfn convert_half2_rte(uchar2);
6039half2 __ovld __cnfn convert_half2_rte(short2);
6040half2 __ovld __cnfn convert_half2_rte(ushort2);
6041half2 __ovld __cnfn convert_half2_rte(int2);
6042half2 __ovld __cnfn convert_half2_rte(uint2);
6043half2 __ovld __cnfn convert_half2_rte(long2);
6044half2 __ovld __cnfn convert_half2_rte(ulong2);
6045half2 __ovld __cnfn convert_half2_rte(float2);
6046half2 __ovld __cnfn convert_half2_rte(half2);
6047half2 __ovld __cnfn convert_half2_rtp(char2);
6048half2 __ovld __cnfn convert_half2_rtp(uchar2);
6049half2 __ovld __cnfn convert_half2_rtp(short2);
6050half2 __ovld __cnfn convert_half2_rtp(ushort2);
6051half2 __ovld __cnfn convert_half2_rtp(int2);
6052half2 __ovld __cnfn convert_half2_rtp(uint2);
6053half2 __ovld __cnfn convert_half2_rtp(long2);
6054half2 __ovld __cnfn convert_half2_rtp(ulong2);
6055half2 __ovld __cnfn convert_half2_rtp(float2);
6056half2 __ovld __cnfn convert_half2_rtp(half2);
6057half2 __ovld __cnfn convert_half2_rtn(char2);
6058half2 __ovld __cnfn convert_half2_rtn(uchar2);
6059half2 __ovld __cnfn convert_half2_rtn(short2);
6060half2 __ovld __cnfn convert_half2_rtn(ushort2);
6061half2 __ovld __cnfn convert_half2_rtn(int2);
6062half2 __ovld __cnfn convert_half2_rtn(uint2);
6063half2 __ovld __cnfn convert_half2_rtn(long2);
6064half2 __ovld __cnfn convert_half2_rtn(ulong2);
6065half2 __ovld __cnfn convert_half2_rtn(float2);
6066half2 __ovld __cnfn convert_half2_rtn(half2);
6067half2 __ovld __cnfn convert_half2_rtz(char2);
6068half2 __ovld __cnfn convert_half2_rtz(uchar2);
6069half2 __ovld __cnfn convert_half2_rtz(short2);
6070half2 __ovld __cnfn convert_half2_rtz(ushort2);
6071half2 __ovld __cnfn convert_half2_rtz(int2);
6072half2 __ovld __cnfn convert_half2_rtz(uint2);
6073half2 __ovld __cnfn convert_half2_rtz(long2);
6074half2 __ovld __cnfn convert_half2_rtz(ulong2);
6075half2 __ovld __cnfn convert_half2_rtz(float2);
6076half2 __ovld __cnfn convert_half2_rtz(half2);
6077half3 __ovld __cnfn convert_half3(char3);
6078half3 __ovld __cnfn convert_half3(uchar3);
6079half3 __ovld __cnfn convert_half3(short3);
6080half3 __ovld __cnfn convert_half3(ushort3);
6081half3 __ovld __cnfn convert_half3(int3);
6082half3 __ovld __cnfn convert_half3(uint3);
6083half3 __ovld __cnfn convert_half3(long3);
6084half3 __ovld __cnfn convert_half3(ulong3);
6085half3 __ovld __cnfn convert_half3(float3);
6086half3 __ovld __cnfn convert_half3(half3);
6087half3 __ovld __cnfn convert_half3_rte(char3);
6088half3 __ovld __cnfn convert_half3_rte(uchar3);
6089half3 __ovld __cnfn convert_half3_rte(short3);
6090half3 __ovld __cnfn convert_half3_rte(ushort3);
6091half3 __ovld __cnfn convert_half3_rte(int3);
6092half3 __ovld __cnfn convert_half3_rte(uint3);
6093half3 __ovld __cnfn convert_half3_rte(long3);
6094half3 __ovld __cnfn convert_half3_rte(ulong3);
6095half3 __ovld __cnfn convert_half3_rte(float3);
6096half3 __ovld __cnfn convert_half3_rte(half3);
6097half3 __ovld __cnfn convert_half3_rtp(char3);
6098half3 __ovld __cnfn convert_half3_rtp(uchar3);
6099half3 __ovld __cnfn convert_half3_rtp(short3);
6100half3 __ovld __cnfn convert_half3_rtp(ushort3);
6101half3 __ovld __cnfn convert_half3_rtp(int3);
6102half3 __ovld __cnfn convert_half3_rtp(uint3);
6103half3 __ovld __cnfn convert_half3_rtp(long3);
6104half3 __ovld __cnfn convert_half3_rtp(ulong3);
6105half3 __ovld __cnfn convert_half3_rtp(float3);
6106half3 __ovld __cnfn convert_half3_rtp(half3);
6107half3 __ovld __cnfn convert_half3_rtn(char3);
6108half3 __ovld __cnfn convert_half3_rtn(uchar3);
6109half3 __ovld __cnfn convert_half3_rtn(short3);
6110half3 __ovld __cnfn convert_half3_rtn(ushort3);
6111half3 __ovld __cnfn convert_half3_rtn(int3);
6112half3 __ovld __cnfn convert_half3_rtn(uint3);
6113half3 __ovld __cnfn convert_half3_rtn(long3);
6114half3 __ovld __cnfn convert_half3_rtn(ulong3);
6115half3 __ovld __cnfn convert_half3_rtn(float3);
6116half3 __ovld __cnfn convert_half3_rtn(half3);
6117half3 __ovld __cnfn convert_half3_rtz(char3);
6118half3 __ovld __cnfn convert_half3_rtz(uchar3);
6119half3 __ovld __cnfn convert_half3_rtz(short3);
6120half3 __ovld __cnfn convert_half3_rtz(ushort3);
6121half3 __ovld __cnfn convert_half3_rtz(int3);
6122half3 __ovld __cnfn convert_half3_rtz(uint3);
6123half3 __ovld __cnfn convert_half3_rtz(long3);
6124half3 __ovld __cnfn convert_half3_rtz(ulong3);
6125half3 __ovld __cnfn convert_half3_rtz(float3);
6126half3 __ovld __cnfn convert_half3_rtz(half3);
6127half4 __ovld __cnfn convert_half4(char4);
6128half4 __ovld __cnfn convert_half4(uchar4);
6129half4 __ovld __cnfn convert_half4(short4);
6130half4 __ovld __cnfn convert_half4(ushort4);
6131half4 __ovld __cnfn convert_half4(int4);
6132half4 __ovld __cnfn convert_half4(uint4);
6133half4 __ovld __cnfn convert_half4(long4);
6134half4 __ovld __cnfn convert_half4(ulong4);
6135half4 __ovld __cnfn convert_half4(float4);
6136half4 __ovld __cnfn convert_half4(half4);
6137half4 __ovld __cnfn convert_half4_rte(char4);
6138half4 __ovld __cnfn convert_half4_rte(uchar4);
6139half4 __ovld __cnfn convert_half4_rte(short4);
6140half4 __ovld __cnfn convert_half4_rte(ushort4);
6141half4 __ovld __cnfn convert_half4_rte(int4);
6142half4 __ovld __cnfn convert_half4_rte(uint4);
6143half4 __ovld __cnfn convert_half4_rte(long4);
6144half4 __ovld __cnfn convert_half4_rte(ulong4);
6145half4 __ovld __cnfn convert_half4_rte(float4);
6146half4 __ovld __cnfn convert_half4_rte(half4);
6147half4 __ovld __cnfn convert_half4_rtp(char4);
6148half4 __ovld __cnfn convert_half4_rtp(uchar4);
6149half4 __ovld __cnfn convert_half4_rtp(short4);
6150half4 __ovld __cnfn convert_half4_rtp(ushort4);
6151half4 __ovld __cnfn convert_half4_rtp(int4);
6152half4 __ovld __cnfn convert_half4_rtp(uint4);
6153half4 __ovld __cnfn convert_half4_rtp(long4);
6154half4 __ovld __cnfn convert_half4_rtp(ulong4);
6155half4 __ovld __cnfn convert_half4_rtp(float4);
6156half4 __ovld __cnfn convert_half4_rtp(half4);
6157half4 __ovld __cnfn convert_half4_rtn(char4);
6158half4 __ovld __cnfn convert_half4_rtn(uchar4);
6159half4 __ovld __cnfn convert_half4_rtn(short4);
6160half4 __ovld __cnfn convert_half4_rtn(ushort4);
6161half4 __ovld __cnfn convert_half4_rtn(int4);
6162half4 __ovld __cnfn convert_half4_rtn(uint4);
6163half4 __ovld __cnfn convert_half4_rtn(long4);
6164half4 __ovld __cnfn convert_half4_rtn(ulong4);
6165half4 __ovld __cnfn convert_half4_rtn(float4);
6166half4 __ovld __cnfn convert_half4_rtn(half4);
6167half4 __ovld __cnfn convert_half4_rtz(char4);
6168half4 __ovld __cnfn convert_half4_rtz(uchar4);
6169half4 __ovld __cnfn convert_half4_rtz(short4);
6170half4 __ovld __cnfn convert_half4_rtz(ushort4);
6171half4 __ovld __cnfn convert_half4_rtz(int4);
6172half4 __ovld __cnfn convert_half4_rtz(uint4);
6173half4 __ovld __cnfn convert_half4_rtz(long4);
6174half4 __ovld __cnfn convert_half4_rtz(ulong4);
6175half4 __ovld __cnfn convert_half4_rtz(float4);
6176half4 __ovld __cnfn convert_half4_rtz(half4);
6177half8 __ovld __cnfn convert_half8(char8);
6178half8 __ovld __cnfn convert_half8(uchar8);
6179half8 __ovld __cnfn convert_half8(short8);
6180half8 __ovld __cnfn convert_half8(ushort8);
6181half8 __ovld __cnfn convert_half8(int8);
6182half8 __ovld __cnfn convert_half8(uint8);
6183half8 __ovld __cnfn convert_half8(long8);
6184half8 __ovld __cnfn convert_half8(ulong8);
6185half8 __ovld __cnfn convert_half8(float8);
6186half8 __ovld __cnfn convert_half8(half8);
6187half8 __ovld __cnfn convert_half8_rte(char8);
6188half8 __ovld __cnfn convert_half8_rte(uchar8);
6189half8 __ovld __cnfn convert_half8_rte(short8);
6190half8 __ovld __cnfn convert_half8_rte(ushort8);
6191half8 __ovld __cnfn convert_half8_rte(int8);
6192half8 __ovld __cnfn convert_half8_rte(uint8);
6193half8 __ovld __cnfn convert_half8_rte(long8);
6194half8 __ovld __cnfn convert_half8_rte(ulong8);
6195half8 __ovld __cnfn convert_half8_rte(float8);
6196half8 __ovld __cnfn convert_half8_rte(half8);
6197half8 __ovld __cnfn convert_half8_rtp(char8);
6198half8 __ovld __cnfn convert_half8_rtp(uchar8);
6199half8 __ovld __cnfn convert_half8_rtp(short8);
6200half8 __ovld __cnfn convert_half8_rtp(ushort8);
6201half8 __ovld __cnfn convert_half8_rtp(int8);
6202half8 __ovld __cnfn convert_half8_rtp(uint8);
6203half8 __ovld __cnfn convert_half8_rtp(long8);
6204half8 __ovld __cnfn convert_half8_rtp(ulong8);
6205half8 __ovld __cnfn convert_half8_rtp(float8);
6206half8 __ovld __cnfn convert_half8_rtp(half8);
6207half8 __ovld __cnfn convert_half8_rtn(char8);
6208half8 __ovld __cnfn convert_half8_rtn(uchar8);
6209half8 __ovld __cnfn convert_half8_rtn(short8);
6210half8 __ovld __cnfn convert_half8_rtn(ushort8);
6211half8 __ovld __cnfn convert_half8_rtn(int8);
6212half8 __ovld __cnfn convert_half8_rtn(uint8);
6213half8 __ovld __cnfn convert_half8_rtn(long8);
6214half8 __ovld __cnfn convert_half8_rtn(ulong8);
6215half8 __ovld __cnfn convert_half8_rtn(float8);
6216half8 __ovld __cnfn convert_half8_rtn(half8);
6217half8 __ovld __cnfn convert_half8_rtz(char8);
6218half8 __ovld __cnfn convert_half8_rtz(uchar8);
6219half8 __ovld __cnfn convert_half8_rtz(short8);
6220half8 __ovld __cnfn convert_half8_rtz(ushort8);
6221half8 __ovld __cnfn convert_half8_rtz(int8);
6222half8 __ovld __cnfn convert_half8_rtz(uint8);
6223half8 __ovld __cnfn convert_half8_rtz(long8);
6224half8 __ovld __cnfn convert_half8_rtz(ulong8);
6225half8 __ovld __cnfn convert_half8_rtz(float8);
6226half8 __ovld __cnfn convert_half8_rtz(half8);
6227half16 __ovld __cnfn convert_half16(char16);
6228half16 __ovld __cnfn convert_half16(uchar16);
6229half16 __ovld __cnfn convert_half16(short16);
6230half16 __ovld __cnfn convert_half16(ushort16);
6231half16 __ovld __cnfn convert_half16(int16);
6232half16 __ovld __cnfn convert_half16(uint16);
6233half16 __ovld __cnfn convert_half16(long16);
6234half16 __ovld __cnfn convert_half16(ulong16);
6235half16 __ovld __cnfn convert_half16(float16);
6236half16 __ovld __cnfn convert_half16(half16);
6237half16 __ovld __cnfn convert_half16_rte(char16);
6238half16 __ovld __cnfn convert_half16_rte(uchar16);
6239half16 __ovld __cnfn convert_half16_rte(short16);
6240half16 __ovld __cnfn convert_half16_rte(ushort16);
6241half16 __ovld __cnfn convert_half16_rte(int16);
6242half16 __ovld __cnfn convert_half16_rte(uint16);
6243half16 __ovld __cnfn convert_half16_rte(long16);
6244half16 __ovld __cnfn convert_half16_rte(ulong16);
6245half16 __ovld __cnfn convert_half16_rte(float16);
6246half16 __ovld __cnfn convert_half16_rte(half16);
6247half16 __ovld __cnfn convert_half16_rtp(char16);
6248half16 __ovld __cnfn convert_half16_rtp(uchar16);
6249half16 __ovld __cnfn convert_half16_rtp(short16);
6250half16 __ovld __cnfn convert_half16_rtp(ushort16);
6251half16 __ovld __cnfn convert_half16_rtp(int16);
6252half16 __ovld __cnfn convert_half16_rtp(uint16);
6253half16 __ovld __cnfn convert_half16_rtp(long16);
6254half16 __ovld __cnfn convert_half16_rtp(ulong16);
6255half16 __ovld __cnfn convert_half16_rtp(float16);
6256half16 __ovld __cnfn convert_half16_rtp(half16);
6257half16 __ovld __cnfn convert_half16_rtn(char16);
6258half16 __ovld __cnfn convert_half16_rtn(uchar16);
6259half16 __ovld __cnfn convert_half16_rtn(short16);
6260half16 __ovld __cnfn convert_half16_rtn(ushort16);
6261half16 __ovld __cnfn convert_half16_rtn(int16);
6262half16 __ovld __cnfn convert_half16_rtn(uint16);
6263half16 __ovld __cnfn convert_half16_rtn(long16);
6264half16 __ovld __cnfn convert_half16_rtn(ulong16);
6265half16 __ovld __cnfn convert_half16_rtn(float16);
6266half16 __ovld __cnfn convert_half16_rtn(half16);
6267half16 __ovld __cnfn convert_half16_rtz(char16);
6268half16 __ovld __cnfn convert_half16_rtz(uchar16);
6269half16 __ovld __cnfn convert_half16_rtz(short16);
6270half16 __ovld __cnfn convert_half16_rtz(ushort16);
6271half16 __ovld __cnfn convert_half16_rtz(int16);
6272half16 __ovld __cnfn convert_half16_rtz(uint16);
6273half16 __ovld __cnfn convert_half16_rtz(long16);
6274half16 __ovld __cnfn convert_half16_rtz(ulong16);
6275half16 __ovld __cnfn convert_half16_rtz(float16);
6276half16 __ovld __cnfn convert_half16_rtz(half16);
6277
6278// Convert half types to double types.
6279#ifdef cl_khr_fp64
6280double __ovld __cnfn convert_double(half);
6281double __ovld __cnfn convert_double_rte(half);
6282double __ovld __cnfn convert_double_rtp(half);
6283double __ovld __cnfn convert_double_rtn(half);
6284double __ovld __cnfn convert_double_rtz(half);
6285double2 __ovld __cnfn convert_double2(half2);
6286double2 __ovld __cnfn convert_double2_rte(half2);
6287double2 __ovld __cnfn convert_double2_rtp(half2);
6288double2 __ovld __cnfn convert_double2_rtn(half2);
6289double2 __ovld __cnfn convert_double2_rtz(half2);
6290double3 __ovld __cnfn convert_double3(half3);
6291double3 __ovld __cnfn convert_double3_rte(half3);
6292double3 __ovld __cnfn convert_double3_rtp(half3);
6293double3 __ovld __cnfn convert_double3_rtn(half3);
6294double3 __ovld __cnfn convert_double3_rtz(half3);
6295double4 __ovld __cnfn convert_double4(half4);
6296double4 __ovld __cnfn convert_double4_rte(half4);
6297double4 __ovld __cnfn convert_double4_rtp(half4);
6298double4 __ovld __cnfn convert_double4_rtn(half4);
6299double4 __ovld __cnfn convert_double4_rtz(half4);
6300double8 __ovld __cnfn convert_double8(half8);
6301double8 __ovld __cnfn convert_double8_rte(half8);
6302double8 __ovld __cnfn convert_double8_rtp(half8);
6303double8 __ovld __cnfn convert_double8_rtn(half8);
6304double8 __ovld __cnfn convert_double8_rtz(half8);
6305double16 __ovld __cnfn convert_double16(half16);
6306double16 __ovld __cnfn convert_double16_rte(half16);
6307double16 __ovld __cnfn convert_double16_rtp(half16);
6308double16 __ovld __cnfn convert_double16_rtn(half16);
6309double16 __ovld __cnfn convert_double16_rtz(half16);
6310
6311// Convert double types to half types.
6312half __ovld __cnfn convert_half(double);
6313half __ovld __cnfn convert_half_rte(double);
6314half __ovld __cnfn convert_half_rtp(double);
6315half __ovld __cnfn convert_half_rtn(double);
6316half __ovld __cnfn convert_half_rtz(double);
6317half2 __ovld __cnfn convert_half2(double2);
6318half2 __ovld __cnfn convert_half2_rte(double2);
6319half2 __ovld __cnfn convert_half2_rtp(double2);
6320half2 __ovld __cnfn convert_half2_rtn(double2);
6321half2 __ovld __cnfn convert_half2_rtz(double2);
6322half3 __ovld __cnfn convert_half3(double3);
6323half3 __ovld __cnfn convert_half3_rte(double3);
6324half3 __ovld __cnfn convert_half3_rtp(double3);
6325half3 __ovld __cnfn convert_half3_rtn(double3);
6326half3 __ovld __cnfn convert_half3_rtz(double3);
6327half4 __ovld __cnfn convert_half4(double4);
6328half4 __ovld __cnfn convert_half4_rte(double4);
6329half4 __ovld __cnfn convert_half4_rtp(double4);
6330half4 __ovld __cnfn convert_half4_rtn(double4);
6331half4 __ovld __cnfn convert_half4_rtz(double4);
6332half8 __ovld __cnfn convert_half8(double8);
6333half8 __ovld __cnfn convert_half8_rte(double8);
6334half8 __ovld __cnfn convert_half8_rtp(double8);
6335half8 __ovld __cnfn convert_half8_rtn(double8);
6336half8 __ovld __cnfn convert_half8_rtz(double8);
6337half16 __ovld __cnfn convert_half16(double16);
6338half16 __ovld __cnfn convert_half16_rte(double16);
6339half16 __ovld __cnfn convert_half16_rtp(double16);
6340half16 __ovld __cnfn convert_half16_rtn(double16);
6341half16 __ovld __cnfn convert_half16_rtz(double16);
6342#endif //cl_khr_fp64
6343
6344#endif // cl_khr_fp16
6345
Logan Chien2833ffb2018-10-09 10:03:24 +08006346// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6347
6348/**
6349 * Returns the number of dimensions in use. This is the
6350 * value given to the work_dim argument specified in
6351 * clEnqueueNDRangeKernel.
6352 * For clEnqueueTask, this returns 1.
6353 */
6354uint __ovld __cnfn get_work_dim(void);
6355
6356/**
6357 * Returns the number of global work-items specified for
6358 * dimension identified by dimindx. This value is given by
6359 * the global_work_size argument to
6360 * clEnqueueNDRangeKernel. Valid values of dimindx
6361 * are 0 to get_work_dim() - 1. For other values of
6362 * dimindx, get_global_size() returns 1.
6363 * For clEnqueueTask, this always returns 1.
6364 */
6365size_t __ovld __cnfn get_global_size(uint dimindx);
6366
6367/**
6368 * Returns the unique global work-item ID value for
6369 * dimension identified by dimindx. The global work-item
6370 * ID specifies the work-item ID based on the number of
6371 * global work-items specified to execute the kernel. Valid
6372 * values of dimindx are 0 to get_work_dim() - 1. For
6373 * other values of dimindx, get_global_id() returns 0.
6374 * For clEnqueueTask, this returns 0.
6375 */
6376size_t __ovld __cnfn get_global_id(uint dimindx);
6377
6378/**
6379 * Returns the number of local work-items specified in
6380 * dimension identified by dimindx. This value is given by
6381 * the local_work_size argument to
6382 * clEnqueueNDRangeKernel if local_work_size is not
6383 * NULL; otherwise the OpenCL implementation chooses
6384 * an appropriate local_work_size value which is returned
6385 * by this function. Valid values of dimindx are 0 to
6386 * get_work_dim() - 1. For other values of dimindx,
6387 * get_local_size() returns 1.
6388 * For clEnqueueTask, this always returns 1.
6389 */
6390size_t __ovld __cnfn get_local_size(uint dimindx);
6391
6392/**
6393 * Returns the unique local work-item ID i.e. a work-item
6394 * within a specific work-group for dimension identified by
6395 * dimindx. Valid values of dimindx are 0 to
6396 * get_work_dim() - 1. For other values of dimindx,
6397 * get_local_id() returns 0.
6398 * For clEnqueueTask, this returns 0.
6399 */
6400size_t __ovld __cnfn get_local_id(uint dimindx);
6401
6402/**
6403 * Returns the number of work-groups that will execute a
6404 * kernel for dimension identified by dimindx.
6405 * Valid values of dimindx are 0 to get_work_dim() - 1.
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08006406 * For other values of dimindx, get_num_groups() returns 1.
Logan Chien2833ffb2018-10-09 10:03:24 +08006407 * For clEnqueueTask, this always returns 1.
6408 */
6409size_t __ovld __cnfn get_num_groups(uint dimindx);
6410
6411/**
6412 * get_group_id returns the work-group ID which is a
6413 * number from 0 .. get_num_groups(dimindx) - 1.
6414 * Valid values of dimindx are 0 to get_work_dim() - 1.
6415 * For other values, get_group_id() returns 0.
6416 * For clEnqueueTask, this returns 0.
6417 */
6418size_t __ovld __cnfn get_group_id(uint dimindx);
6419
6420/**
6421 * get_global_offset returns the offset values specified in
6422 * global_work_offset argument to
6423 * clEnqueueNDRangeKernel.
6424 * Valid values of dimindx are 0 to get_work_dim() - 1.
6425 * For other values, get_global_offset() returns 0.
6426 * For clEnqueueTask, this returns 0.
6427 */
6428size_t __ovld __cnfn get_global_offset(uint dimindx);
6429
Logan Chienbedbf4f2020-01-06 19:35:19 -08006430#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +08006431size_t __ovld get_enqueued_local_size(uint dimindx);
6432size_t __ovld get_global_linear_id(void);
6433size_t __ovld get_local_linear_id(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -08006434#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +08006435
6436// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
6437
6438/**
6439 * Arc cosine function.
6440 */
6441float __ovld __cnfn acos(float);
6442float2 __ovld __cnfn acos(float2);
6443float3 __ovld __cnfn acos(float3);
6444float4 __ovld __cnfn acos(float4);
6445float8 __ovld __cnfn acos(float8);
6446float16 __ovld __cnfn acos(float16);
6447#ifdef cl_khr_fp64
6448double __ovld __cnfn acos(double);
6449double2 __ovld __cnfn acos(double2);
6450double3 __ovld __cnfn acos(double3);
6451double4 __ovld __cnfn acos(double4);
6452double8 __ovld __cnfn acos(double8);
6453double16 __ovld __cnfn acos(double16);
6454#endif //cl_khr_fp64
6455#ifdef cl_khr_fp16
6456half __ovld __cnfn acos(half);
6457half2 __ovld __cnfn acos(half2);
6458half3 __ovld __cnfn acos(half3);
6459half4 __ovld __cnfn acos(half4);
6460half8 __ovld __cnfn acos(half8);
6461half16 __ovld __cnfn acos(half16);
6462#endif //cl_khr_fp16
6463
6464/**
6465 * Inverse hyperbolic cosine.
6466 */
6467float __ovld __cnfn acosh(float);
6468float2 __ovld __cnfn acosh(float2);
6469float3 __ovld __cnfn acosh(float3);
6470float4 __ovld __cnfn acosh(float4);
6471float8 __ovld __cnfn acosh(float8);
6472float16 __ovld __cnfn acosh(float16);
6473#ifdef cl_khr_fp64
6474double __ovld __cnfn acosh(double);
6475double2 __ovld __cnfn acosh(double2);
6476double3 __ovld __cnfn acosh(double3);
6477double4 __ovld __cnfn acosh(double4);
6478double8 __ovld __cnfn acosh(double8);
6479double16 __ovld __cnfn acosh(double16);
6480#endif //cl_khr_fp64
6481#ifdef cl_khr_fp16
6482half __ovld __cnfn acosh(half);
6483half2 __ovld __cnfn acosh(half2);
6484half3 __ovld __cnfn acosh(half3);
6485half4 __ovld __cnfn acosh(half4);
6486half8 __ovld __cnfn acosh(half8);
6487half16 __ovld __cnfn acosh(half16);
6488#endif //cl_khr_fp16
6489
6490/**
6491 * Compute acos (x) / PI.
6492 */
6493float __ovld __cnfn acospi(float x);
6494float2 __ovld __cnfn acospi(float2 x);
6495float3 __ovld __cnfn acospi(float3 x);
6496float4 __ovld __cnfn acospi(float4 x);
6497float8 __ovld __cnfn acospi(float8 x);
6498float16 __ovld __cnfn acospi(float16 x);
6499#ifdef cl_khr_fp64
6500double __ovld __cnfn acospi(double x);
6501double2 __ovld __cnfn acospi(double2 x);
6502double3 __ovld __cnfn acospi(double3 x);
6503double4 __ovld __cnfn acospi(double4 x);
6504double8 __ovld __cnfn acospi(double8 x);
6505double16 __ovld __cnfn acospi(double16 x);
6506#endif //cl_khr_fp64
6507#ifdef cl_khr_fp16
6508half __ovld __cnfn acospi(half x);
6509half2 __ovld __cnfn acospi(half2 x);
6510half3 __ovld __cnfn acospi(half3 x);
6511half4 __ovld __cnfn acospi(half4 x);
6512half8 __ovld __cnfn acospi(half8 x);
6513half16 __ovld __cnfn acospi(half16 x);
6514#endif //cl_khr_fp16
6515
6516/**
6517 * Arc sine function.
6518 */
6519float __ovld __cnfn asin(float);
6520float2 __ovld __cnfn asin(float2);
6521float3 __ovld __cnfn asin(float3);
6522float4 __ovld __cnfn asin(float4);
6523float8 __ovld __cnfn asin(float8);
6524float16 __ovld __cnfn asin(float16);
6525#ifdef cl_khr_fp64
6526double __ovld __cnfn asin(double);
6527double2 __ovld __cnfn asin(double2);
6528double3 __ovld __cnfn asin(double3);
6529double4 __ovld __cnfn asin(double4);
6530double8 __ovld __cnfn asin(double8);
6531double16 __ovld __cnfn asin(double16);
6532#endif //cl_khr_fp64
6533#ifdef cl_khr_fp16
6534half __ovld __cnfn asin(half);
6535half2 __ovld __cnfn asin(half2);
6536half3 __ovld __cnfn asin(half3);
6537half4 __ovld __cnfn asin(half4);
6538half8 __ovld __cnfn asin(half8);
6539half16 __ovld __cnfn asin(half16);
6540#endif //cl_khr_fp16
6541
6542/**
6543 * Inverse hyperbolic sine.
6544 */
6545float __ovld __cnfn asinh(float);
6546float2 __ovld __cnfn asinh(float2);
6547float3 __ovld __cnfn asinh(float3);
6548float4 __ovld __cnfn asinh(float4);
6549float8 __ovld __cnfn asinh(float8);
6550float16 __ovld __cnfn asinh(float16);
6551#ifdef cl_khr_fp64
6552double __ovld __cnfn asinh(double);
6553double2 __ovld __cnfn asinh(double2);
6554double3 __ovld __cnfn asinh(double3);
6555double4 __ovld __cnfn asinh(double4);
6556double8 __ovld __cnfn asinh(double8);
6557double16 __ovld __cnfn asinh(double16);
6558#endif //cl_khr_fp64
6559#ifdef cl_khr_fp16
6560half __ovld __cnfn asinh(half);
6561half2 __ovld __cnfn asinh(half2);
6562half3 __ovld __cnfn asinh(half3);
6563half4 __ovld __cnfn asinh(half4);
6564half8 __ovld __cnfn asinh(half8);
6565half16 __ovld __cnfn asinh(half16);
6566#endif //cl_khr_fp16
6567
6568/**
6569 * Compute asin (x) / PI.
6570 */
6571float __ovld __cnfn asinpi(float x);
6572float2 __ovld __cnfn asinpi(float2 x);
6573float3 __ovld __cnfn asinpi(float3 x);
6574float4 __ovld __cnfn asinpi(float4 x);
6575float8 __ovld __cnfn asinpi(float8 x);
6576float16 __ovld __cnfn asinpi(float16 x);
6577#ifdef cl_khr_fp64
6578double __ovld __cnfn asinpi(double x);
6579double2 __ovld __cnfn asinpi(double2 x);
6580double3 __ovld __cnfn asinpi(double3 x);
6581double4 __ovld __cnfn asinpi(double4 x);
6582double8 __ovld __cnfn asinpi(double8 x);
6583double16 __ovld __cnfn asinpi(double16 x);
6584#endif //cl_khr_fp64
6585#ifdef cl_khr_fp16
6586half __ovld __cnfn asinpi(half x);
6587half2 __ovld __cnfn asinpi(half2 x);
6588half3 __ovld __cnfn asinpi(half3 x);
6589half4 __ovld __cnfn asinpi(half4 x);
6590half8 __ovld __cnfn asinpi(half8 x);
6591half16 __ovld __cnfn asinpi(half16 x);
6592#endif //cl_khr_fp16
6593
6594/**
6595 * Arc tangent function.
6596 */
6597float __ovld __cnfn atan(float y_over_x);
6598float2 __ovld __cnfn atan(float2 y_over_x);
6599float3 __ovld __cnfn atan(float3 y_over_x);
6600float4 __ovld __cnfn atan(float4 y_over_x);
6601float8 __ovld __cnfn atan(float8 y_over_x);
6602float16 __ovld __cnfn atan(float16 y_over_x);
6603#ifdef cl_khr_fp64
6604double __ovld __cnfn atan(double y_over_x);
6605double2 __ovld __cnfn atan(double2 y_over_x);
6606double3 __ovld __cnfn atan(double3 y_over_x);
6607double4 __ovld __cnfn atan(double4 y_over_x);
6608double8 __ovld __cnfn atan(double8 y_over_x);
6609double16 __ovld __cnfn atan(double16 y_over_x);
6610#endif //cl_khr_fp64
6611#ifdef cl_khr_fp16
6612half __ovld __cnfn atan(half y_over_x);
6613half2 __ovld __cnfn atan(half2 y_over_x);
6614half3 __ovld __cnfn atan(half3 y_over_x);
6615half4 __ovld __cnfn atan(half4 y_over_x);
6616half8 __ovld __cnfn atan(half8 y_over_x);
6617half16 __ovld __cnfn atan(half16 y_over_x);
6618#endif //cl_khr_fp16
6619
6620/**
6621 * Arc tangent of y / x.
6622 */
6623float __ovld __cnfn atan2(float y, float x);
6624float2 __ovld __cnfn atan2(float2 y, float2 x);
6625float3 __ovld __cnfn atan2(float3 y, float3 x);
6626float4 __ovld __cnfn atan2(float4 y, float4 x);
6627float8 __ovld __cnfn atan2(float8 y, float8 x);
6628float16 __ovld __cnfn atan2(float16 y, float16 x);
6629#ifdef cl_khr_fp64
6630double __ovld __cnfn atan2(double y, double x);
6631double2 __ovld __cnfn atan2(double2 y, double2 x);
6632double3 __ovld __cnfn atan2(double3 y, double3 x);
6633double4 __ovld __cnfn atan2(double4 y, double4 x);
6634double8 __ovld __cnfn atan2(double8 y, double8 x);
6635double16 __ovld __cnfn atan2(double16 y, double16 x);
6636#endif //cl_khr_fp64
6637#ifdef cl_khr_fp16
6638half __ovld __cnfn atan2(half y, half x);
6639half2 __ovld __cnfn atan2(half2 y, half2 x);
6640half3 __ovld __cnfn atan2(half3 y, half3 x);
6641half4 __ovld __cnfn atan2(half4 y, half4 x);
6642half8 __ovld __cnfn atan2(half8 y, half8 x);
6643half16 __ovld __cnfn atan2(half16 y, half16 x);
6644#endif //cl_khr_fp16
6645
6646/**
6647 * Hyperbolic arc tangent.
6648 */
6649float __ovld __cnfn atanh(float);
6650float2 __ovld __cnfn atanh(float2);
6651float3 __ovld __cnfn atanh(float3);
6652float4 __ovld __cnfn atanh(float4);
6653float8 __ovld __cnfn atanh(float8);
6654float16 __ovld __cnfn atanh(float16);
6655#ifdef cl_khr_fp64
6656double __ovld __cnfn atanh(double);
6657double2 __ovld __cnfn atanh(double2);
6658double3 __ovld __cnfn atanh(double3);
6659double4 __ovld __cnfn atanh(double4);
6660double8 __ovld __cnfn atanh(double8);
6661double16 __ovld __cnfn atanh(double16);
6662#endif //cl_khr_fp64
6663#ifdef cl_khr_fp16
6664half __ovld __cnfn atanh(half);
6665half2 __ovld __cnfn atanh(half2);
6666half3 __ovld __cnfn atanh(half3);
6667half4 __ovld __cnfn atanh(half4);
6668half8 __ovld __cnfn atanh(half8);
6669half16 __ovld __cnfn atanh(half16);
6670#endif //cl_khr_fp16
6671
6672/**
6673 * Compute atan (x) / PI.
6674 */
6675float __ovld __cnfn atanpi(float x);
6676float2 __ovld __cnfn atanpi(float2 x);
6677float3 __ovld __cnfn atanpi(float3 x);
6678float4 __ovld __cnfn atanpi(float4 x);
6679float8 __ovld __cnfn atanpi(float8 x);
6680float16 __ovld __cnfn atanpi(float16 x);
6681#ifdef cl_khr_fp64
6682double __ovld __cnfn atanpi(double x);
6683double2 __ovld __cnfn atanpi(double2 x);
6684double3 __ovld __cnfn atanpi(double3 x);
6685double4 __ovld __cnfn atanpi(double4 x);
6686double8 __ovld __cnfn atanpi(double8 x);
6687double16 __ovld __cnfn atanpi(double16 x);
6688#endif //cl_khr_fp64
6689#ifdef cl_khr_fp16
6690half __ovld __cnfn atanpi(half x);
6691half2 __ovld __cnfn atanpi(half2 x);
6692half3 __ovld __cnfn atanpi(half3 x);
6693half4 __ovld __cnfn atanpi(half4 x);
6694half8 __ovld __cnfn atanpi(half8 x);
6695half16 __ovld __cnfn atanpi(half16 x);
6696#endif //cl_khr_fp16
6697
6698/**
6699 * Compute atan2 (y, x) / PI.
6700 */
6701float __ovld __cnfn atan2pi(float y, float x);
6702float2 __ovld __cnfn atan2pi(float2 y, float2 x);
6703float3 __ovld __cnfn atan2pi(float3 y, float3 x);
6704float4 __ovld __cnfn atan2pi(float4 y, float4 x);
6705float8 __ovld __cnfn atan2pi(float8 y, float8 x);
6706float16 __ovld __cnfn atan2pi(float16 y, float16 x);
6707#ifdef cl_khr_fp64
6708double __ovld __cnfn atan2pi(double y, double x);
6709double2 __ovld __cnfn atan2pi(double2 y, double2 x);
6710double3 __ovld __cnfn atan2pi(double3 y, double3 x);
6711double4 __ovld __cnfn atan2pi(double4 y, double4 x);
6712double8 __ovld __cnfn atan2pi(double8 y, double8 x);
6713double16 __ovld __cnfn atan2pi(double16 y, double16 x);
6714#endif //cl_khr_fp64
6715#ifdef cl_khr_fp16
6716half __ovld __cnfn atan2pi(half y, half x);
6717half2 __ovld __cnfn atan2pi(half2 y, half2 x);
6718half3 __ovld __cnfn atan2pi(half3 y, half3 x);
6719half4 __ovld __cnfn atan2pi(half4 y, half4 x);
6720half8 __ovld __cnfn atan2pi(half8 y, half8 x);
6721half16 __ovld __cnfn atan2pi(half16 y, half16 x);
6722#endif //cl_khr_fp16
6723
6724/**
6725 * Compute cube-root.
6726 */
6727float __ovld __cnfn cbrt(float);
6728float2 __ovld __cnfn cbrt(float2);
6729float3 __ovld __cnfn cbrt(float3);
6730float4 __ovld __cnfn cbrt(float4);
6731float8 __ovld __cnfn cbrt(float8);
6732float16 __ovld __cnfn cbrt(float16);
6733#ifdef cl_khr_fp64
6734double __ovld __cnfn cbrt(double);
6735double2 __ovld __cnfn cbrt(double2);
6736double3 __ovld __cnfn cbrt(double3);
6737double4 __ovld __cnfn cbrt(double4);
6738double8 __ovld __cnfn cbrt(double8);
6739double16 __ovld __cnfn cbrt(double16);
6740#endif //cl_khr_fp64
6741#ifdef cl_khr_fp16
6742half __ovld __cnfn cbrt(half);
6743half2 __ovld __cnfn cbrt(half2);
6744half3 __ovld __cnfn cbrt(half3);
6745half4 __ovld __cnfn cbrt(half4);
6746half8 __ovld __cnfn cbrt(half8);
6747half16 __ovld __cnfn cbrt(half16);
6748#endif //cl_khr_fp16
6749
6750/**
6751 * Round to integral value using the round to positive
6752 * infinity rounding mode.
6753 */
6754float __ovld __cnfn ceil(float);
6755float2 __ovld __cnfn ceil(float2);
6756float3 __ovld __cnfn ceil(float3);
6757float4 __ovld __cnfn ceil(float4);
6758float8 __ovld __cnfn ceil(float8);
6759float16 __ovld __cnfn ceil(float16);
6760#ifdef cl_khr_fp64
6761double __ovld __cnfn ceil(double);
6762double2 __ovld __cnfn ceil(double2);
6763double3 __ovld __cnfn ceil(double3);
6764double4 __ovld __cnfn ceil(double4);
6765double8 __ovld __cnfn ceil(double8);
6766double16 __ovld __cnfn ceil(double16);
6767#endif //cl_khr_fp64
6768#ifdef cl_khr_fp16
6769half __ovld __cnfn ceil(half);
6770half2 __ovld __cnfn ceil(half2);
6771half3 __ovld __cnfn ceil(half3);
6772half4 __ovld __cnfn ceil(half4);
6773half8 __ovld __cnfn ceil(half8);
6774half16 __ovld __cnfn ceil(half16);
6775#endif //cl_khr_fp16
6776
6777/**
6778 * Returns x with its sign changed to match the sign of y.
6779 */
6780float __ovld __cnfn copysign(float x, float y);
6781float2 __ovld __cnfn copysign(float2 x, float2 y);
6782float3 __ovld __cnfn copysign(float3 x, float3 y);
6783float4 __ovld __cnfn copysign(float4 x, float4 y);
6784float8 __ovld __cnfn copysign(float8 x, float8 y);
6785float16 __ovld __cnfn copysign(float16 x, float16 y);
6786#ifdef cl_khr_fp64
6787double __ovld __cnfn copysign(double x, double y);
6788double2 __ovld __cnfn copysign(double2 x, double2 y);
6789double3 __ovld __cnfn copysign(double3 x, double3 y);
6790double4 __ovld __cnfn copysign(double4 x, double4 y);
6791double8 __ovld __cnfn copysign(double8 x, double8 y);
6792double16 __ovld __cnfn copysign(double16 x, double16 y);
6793#endif //cl_khr_fp64
6794#ifdef cl_khr_fp16
6795half __ovld __cnfn copysign(half x, half y);
6796half2 __ovld __cnfn copysign(half2 x, half2 y);
6797half3 __ovld __cnfn copysign(half3 x, half3 y);
6798half4 __ovld __cnfn copysign(half4 x, half4 y);
6799half8 __ovld __cnfn copysign(half8 x, half8 y);
6800half16 __ovld __cnfn copysign(half16 x, half16 y);
6801#endif //cl_khr_fp16
6802
6803/**
6804 * Compute cosine.
6805 */
6806float __ovld __cnfn cos(float);
6807float2 __ovld __cnfn cos(float2);
6808float3 __ovld __cnfn cos(float3);
6809float4 __ovld __cnfn cos(float4);
6810float8 __ovld __cnfn cos(float8);
6811float16 __ovld __cnfn cos(float16);
6812#ifdef cl_khr_fp64
6813double __ovld __cnfn cos(double);
6814double2 __ovld __cnfn cos(double2);
6815double3 __ovld __cnfn cos(double3);
6816double4 __ovld __cnfn cos(double4);
6817double8 __ovld __cnfn cos(double8);
6818double16 __ovld __cnfn cos(double16);
6819#endif //cl_khr_fp64
6820#ifdef cl_khr_fp16
6821half __ovld __cnfn cos(half);
6822half2 __ovld __cnfn cos(half2);
6823half3 __ovld __cnfn cos(half3);
6824half4 __ovld __cnfn cos(half4);
6825half8 __ovld __cnfn cos(half8);
6826half16 __ovld __cnfn cos(half16);
6827#endif //cl_khr_fp16
6828
6829/**
6830 * Compute hyperbolic cosine.
6831 */
6832float __ovld __cnfn cosh(float);
6833float2 __ovld __cnfn cosh(float2);
6834float3 __ovld __cnfn cosh(float3);
6835float4 __ovld __cnfn cosh(float4);
6836float8 __ovld __cnfn cosh(float8);
6837float16 __ovld __cnfn cosh(float16);
6838#ifdef cl_khr_fp64
6839double __ovld __cnfn cosh(double);
6840double2 __ovld __cnfn cosh(double2);
6841double3 __ovld __cnfn cosh(double3);
6842double4 __ovld __cnfn cosh(double4);
6843double8 __ovld __cnfn cosh(double8);
6844double16 __ovld __cnfn cosh(double16);
6845#endif //cl_khr_fp64
6846#ifdef cl_khr_fp16
6847half __ovld __cnfn cosh(half);
6848half2 __ovld __cnfn cosh(half2);
6849half3 __ovld __cnfn cosh(half3);
6850half4 __ovld __cnfn cosh(half4);
6851half8 __ovld __cnfn cosh(half8);
6852half16 __ovld __cnfn cosh(half16);
6853#endif //cl_khr_fp16
6854
6855/**
6856 * Compute cos (PI * x).
6857 */
6858float __ovld __cnfn cospi(float x);
6859float2 __ovld __cnfn cospi(float2 x);
6860float3 __ovld __cnfn cospi(float3 x);
6861float4 __ovld __cnfn cospi(float4 x);
6862float8 __ovld __cnfn cospi(float8 x);
6863float16 __ovld __cnfn cospi(float16 x);
6864#ifdef cl_khr_fp64
6865double __ovld __cnfn cospi(double x);
6866double2 __ovld __cnfn cospi(double2 x);
6867double3 __ovld __cnfn cospi(double3 x);
6868double4 __ovld __cnfn cospi(double4 x);
6869double8 __ovld __cnfn cospi(double8 x);
6870double16 __ovld __cnfn cospi(double16 x);
6871#endif //cl_khr_fp64
6872#ifdef cl_khr_fp16
6873half __ovld __cnfn cospi(half x);
6874half2 __ovld __cnfn cospi(half2 x);
6875half3 __ovld __cnfn cospi(half3 x);
6876half4 __ovld __cnfn cospi(half4 x);
6877half8 __ovld __cnfn cospi(half8 x);
6878half16 __ovld __cnfn cospi(half16 x);
6879#endif //cl_khr_fp16
6880
6881/**
6882 * Complementary error function.
6883 */
6884float __ovld __cnfn erfc(float);
6885float2 __ovld __cnfn erfc(float2);
6886float3 __ovld __cnfn erfc(float3);
6887float4 __ovld __cnfn erfc(float4);
6888float8 __ovld __cnfn erfc(float8);
6889float16 __ovld __cnfn erfc(float16);
6890#ifdef cl_khr_fp64
6891double __ovld __cnfn erfc(double);
6892double2 __ovld __cnfn erfc(double2);
6893double3 __ovld __cnfn erfc(double3);
6894double4 __ovld __cnfn erfc(double4);
6895double8 __ovld __cnfn erfc(double8);
6896double16 __ovld __cnfn erfc(double16);
6897#endif //cl_khr_fp64
6898#ifdef cl_khr_fp16
6899half __ovld __cnfn erfc(half);
6900half2 __ovld __cnfn erfc(half2);
6901half3 __ovld __cnfn erfc(half3);
6902half4 __ovld __cnfn erfc(half4);
6903half8 __ovld __cnfn erfc(half8);
6904half16 __ovld __cnfn erfc(half16);
6905#endif //cl_khr_fp16
6906
6907/**
6908 * Error function encountered in integrating the
6909 * normal distribution.
6910 */
6911float __ovld __cnfn erf(float);
6912float2 __ovld __cnfn erf(float2);
6913float3 __ovld __cnfn erf(float3);
6914float4 __ovld __cnfn erf(float4);
6915float8 __ovld __cnfn erf(float8);
6916float16 __ovld __cnfn erf(float16);
6917#ifdef cl_khr_fp64
6918double __ovld __cnfn erf(double);
6919double2 __ovld __cnfn erf(double2);
6920double3 __ovld __cnfn erf(double3);
6921double4 __ovld __cnfn erf(double4);
6922double8 __ovld __cnfn erf(double8);
6923double16 __ovld __cnfn erf(double16);
6924#endif //cl_khr_fp64
6925#ifdef cl_khr_fp16
6926half __ovld __cnfn erf(half);
6927half2 __ovld __cnfn erf(half2);
6928half3 __ovld __cnfn erf(half3);
6929half4 __ovld __cnfn erf(half4);
6930half8 __ovld __cnfn erf(half8);
6931half16 __ovld __cnfn erf(half16);
6932#endif //cl_khr_fp16
6933
6934/**
6935 * Compute the base e exponential function of x.
6936 */
6937float __ovld __cnfn exp(float x);
6938float2 __ovld __cnfn exp(float2 x);
6939float3 __ovld __cnfn exp(float3 x);
6940float4 __ovld __cnfn exp(float4 x);
6941float8 __ovld __cnfn exp(float8 x);
6942float16 __ovld __cnfn exp(float16 x);
6943#ifdef cl_khr_fp64
6944double __ovld __cnfn exp(double x);
6945double2 __ovld __cnfn exp(double2 x);
6946double3 __ovld __cnfn exp(double3 x);
6947double4 __ovld __cnfn exp(double4 x);
6948double8 __ovld __cnfn exp(double8 x);
6949double16 __ovld __cnfn exp(double16 x);
6950#endif //cl_khr_fp64
6951#ifdef cl_khr_fp16
6952half __ovld __cnfn exp(half x);
6953half2 __ovld __cnfn exp(half2 x);
6954half3 __ovld __cnfn exp(half3 x);
6955half4 __ovld __cnfn exp(half4 x);
6956half8 __ovld __cnfn exp(half8 x);
6957half16 __ovld __cnfn exp(half16 x);
6958#endif //cl_khr_fp16
6959
6960/**
6961 * Exponential base 2 function.
6962 */
6963float __ovld __cnfn exp2(float);
6964float2 __ovld __cnfn exp2(float2);
6965float3 __ovld __cnfn exp2(float3);
6966float4 __ovld __cnfn exp2(float4);
6967float8 __ovld __cnfn exp2(float8);
6968float16 __ovld __cnfn exp2(float16);
6969#ifdef cl_khr_fp64
6970double __ovld __cnfn exp2(double);
6971double2 __ovld __cnfn exp2(double2);
6972double3 __ovld __cnfn exp2(double3);
6973double4 __ovld __cnfn exp2(double4);
6974double8 __ovld __cnfn exp2(double8);
6975double16 __ovld __cnfn exp2(double16);
6976#endif //cl_khr_fp64
6977#ifdef cl_khr_fp16
6978half __ovld __cnfn exp2(half);
6979half2 __ovld __cnfn exp2(half2);
6980half3 __ovld __cnfn exp2(half3);
6981half4 __ovld __cnfn exp2(half4);
6982half8 __ovld __cnfn exp2(half8);
6983half16 __ovld __cnfn exp2(half16);
6984#endif //cl_khr_fp16
6985
6986/**
6987 * Exponential base 10 function.
6988 */
6989float __ovld __cnfn exp10(float);
6990float2 __ovld __cnfn exp10(float2);
6991float3 __ovld __cnfn exp10(float3);
6992float4 __ovld __cnfn exp10(float4);
6993float8 __ovld __cnfn exp10(float8);
6994float16 __ovld __cnfn exp10(float16);
6995#ifdef cl_khr_fp64
6996double __ovld __cnfn exp10(double);
6997double2 __ovld __cnfn exp10(double2);
6998double3 __ovld __cnfn exp10(double3);
6999double4 __ovld __cnfn exp10(double4);
7000double8 __ovld __cnfn exp10(double8);
7001double16 __ovld __cnfn exp10(double16);
7002#endif //cl_khr_fp64
7003#ifdef cl_khr_fp16
7004half __ovld __cnfn exp10(half);
7005half2 __ovld __cnfn exp10(half2);
7006half3 __ovld __cnfn exp10(half3);
7007half4 __ovld __cnfn exp10(half4);
7008half8 __ovld __cnfn exp10(half8);
7009half16 __ovld __cnfn exp10(half16);
7010#endif //cl_khr_fp16
7011
7012/**
7013 * Compute e^x- 1.0.
7014 */
7015float __ovld __cnfn expm1(float x);
7016float2 __ovld __cnfn expm1(float2 x);
7017float3 __ovld __cnfn expm1(float3 x);
7018float4 __ovld __cnfn expm1(float4 x);
7019float8 __ovld __cnfn expm1(float8 x);
7020float16 __ovld __cnfn expm1(float16 x);
7021#ifdef cl_khr_fp64
7022double __ovld __cnfn expm1(double x);
7023double2 __ovld __cnfn expm1(double2 x);
7024double3 __ovld __cnfn expm1(double3 x);
7025double4 __ovld __cnfn expm1(double4 x);
7026double8 __ovld __cnfn expm1(double8 x);
7027double16 __ovld __cnfn expm1(double16 x);
7028#endif //cl_khr_fp64
7029#ifdef cl_khr_fp16
7030half __ovld __cnfn expm1(half x);
7031half2 __ovld __cnfn expm1(half2 x);
7032half3 __ovld __cnfn expm1(half3 x);
7033half4 __ovld __cnfn expm1(half4 x);
7034half8 __ovld __cnfn expm1(half8 x);
7035half16 __ovld __cnfn expm1(half16 x);
7036#endif //cl_khr_fp16
7037
7038/**
7039 * Compute absolute value of a floating-point number.
7040 */
7041float __ovld __cnfn fabs(float);
7042float2 __ovld __cnfn fabs(float2);
7043float3 __ovld __cnfn fabs(float3);
7044float4 __ovld __cnfn fabs(float4);
7045float8 __ovld __cnfn fabs(float8);
7046float16 __ovld __cnfn fabs(float16);
7047#ifdef cl_khr_fp64
7048double __ovld __cnfn fabs(double);
7049double2 __ovld __cnfn fabs(double2);
7050double3 __ovld __cnfn fabs(double3);
7051double4 __ovld __cnfn fabs(double4);
7052double8 __ovld __cnfn fabs(double8);
7053double16 __ovld __cnfn fabs(double16);
7054#endif //cl_khr_fp64
7055#ifdef cl_khr_fp16
7056half __ovld __cnfn fabs(half);
7057half2 __ovld __cnfn fabs(half2);
7058half3 __ovld __cnfn fabs(half3);
7059half4 __ovld __cnfn fabs(half4);
7060half8 __ovld __cnfn fabs(half8);
7061half16 __ovld __cnfn fabs(half16);
7062#endif //cl_khr_fp16
7063
7064/**
7065 * x - y if x > y, +0 if x is less than or equal to y.
7066 */
7067float __ovld __cnfn fdim(float x, float y);
7068float2 __ovld __cnfn fdim(float2 x, float2 y);
7069float3 __ovld __cnfn fdim(float3 x, float3 y);
7070float4 __ovld __cnfn fdim(float4 x, float4 y);
7071float8 __ovld __cnfn fdim(float8 x, float8 y);
7072float16 __ovld __cnfn fdim(float16 x, float16 y);
7073#ifdef cl_khr_fp64
7074double __ovld __cnfn fdim(double x, double y);
7075double2 __ovld __cnfn fdim(double2 x, double2 y);
7076double3 __ovld __cnfn fdim(double3 x, double3 y);
7077double4 __ovld __cnfn fdim(double4 x, double4 y);
7078double8 __ovld __cnfn fdim(double8 x, double8 y);
7079double16 __ovld __cnfn fdim(double16 x, double16 y);
7080#endif //cl_khr_fp64
7081#ifdef cl_khr_fp16
7082half __ovld __cnfn fdim(half x, half y);
7083half2 __ovld __cnfn fdim(half2 x, half2 y);
7084half3 __ovld __cnfn fdim(half3 x, half3 y);
7085half4 __ovld __cnfn fdim(half4 x, half4 y);
7086half8 __ovld __cnfn fdim(half8 x, half8 y);
7087half16 __ovld __cnfn fdim(half16 x, half16 y);
7088#endif //cl_khr_fp16
7089
7090/**
7091 * Round to integral value using the round to -ve
7092 * infinity rounding mode.
7093 */
7094float __ovld __cnfn floor(float);
7095float2 __ovld __cnfn floor(float2);
7096float3 __ovld __cnfn floor(float3);
7097float4 __ovld __cnfn floor(float4);
7098float8 __ovld __cnfn floor(float8);
7099float16 __ovld __cnfn floor(float16);
7100#ifdef cl_khr_fp64
7101double __ovld __cnfn floor(double);
7102double2 __ovld __cnfn floor(double2);
7103double3 __ovld __cnfn floor(double3);
7104double4 __ovld __cnfn floor(double4);
7105double8 __ovld __cnfn floor(double8);
7106double16 __ovld __cnfn floor(double16);
7107#endif //cl_khr_fp64
7108#ifdef cl_khr_fp16
7109half __ovld __cnfn floor(half);
7110half2 __ovld __cnfn floor(half2);
7111half3 __ovld __cnfn floor(half3);
7112half4 __ovld __cnfn floor(half4);
7113half8 __ovld __cnfn floor(half8);
7114half16 __ovld __cnfn floor(half16);
7115#endif //cl_khr_fp16
7116
7117/**
7118 * Returns the correctly rounded floating-point
7119 * representation of the sum of c with the infinitely
7120 * precise product of a and b. Rounding of
7121 * intermediate products shall not occur. Edge case
7122 * behavior is per the IEEE 754-2008 standard.
7123 */
7124float __ovld __cnfn fma(float a, float b, float c);
7125float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
7126float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
7127float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
7128float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
7129float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
7130#ifdef cl_khr_fp64
7131double __ovld __cnfn fma(double a, double b, double c);
7132double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
7133double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
7134double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
7135double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
7136double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
7137#endif //cl_khr_fp64
7138#ifdef cl_khr_fp16
7139half __ovld __cnfn fma(half a, half b, half c);
7140half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
7141half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
7142half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
7143half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
7144half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
7145#endif //cl_khr_fp16
7146
7147/**
7148 * Returns y if x < y, otherwise it returns x. If one
7149 * argument is a NaN, fmax() returns the other
7150 * argument. If both arguments are NaNs, fmax()
7151 * returns a NaN.
7152 */
7153float __ovld __cnfn fmax(float x, float y);
7154float2 __ovld __cnfn fmax(float2 x, float2 y);
7155float3 __ovld __cnfn fmax(float3 x, float3 y);
7156float4 __ovld __cnfn fmax(float4 x, float4 y);
7157float8 __ovld __cnfn fmax(float8 x, float8 y);
7158float16 __ovld __cnfn fmax(float16 x, float16 y);
7159float2 __ovld __cnfn fmax(float2 x, float y);
7160float3 __ovld __cnfn fmax(float3 x, float y);
7161float4 __ovld __cnfn fmax(float4 x, float y);
7162float8 __ovld __cnfn fmax(float8 x, float y);
7163float16 __ovld __cnfn fmax(float16 x, float y);
7164#ifdef cl_khr_fp64
7165double __ovld __cnfn fmax(double x, double y);
7166double2 __ovld __cnfn fmax(double2 x, double2 y);
7167double3 __ovld __cnfn fmax(double3 x, double3 y);
7168double4 __ovld __cnfn fmax(double4 x, double4 y);
7169double8 __ovld __cnfn fmax(double8 x, double8 y);
7170double16 __ovld __cnfn fmax(double16 x, double16 y);
7171double2 __ovld __cnfn fmax(double2 x, double y);
7172double3 __ovld __cnfn fmax(double3 x, double y);
7173double4 __ovld __cnfn fmax(double4 x, double y);
7174double8 __ovld __cnfn fmax(double8 x, double y);
7175double16 __ovld __cnfn fmax(double16 x, double y);
7176#endif //cl_khr_fp64
7177#ifdef cl_khr_fp16
7178half __ovld __cnfn fmax(half x, half y);
7179half2 __ovld __cnfn fmax(half2 x, half2 y);
7180half3 __ovld __cnfn fmax(half3 x, half3 y);
7181half4 __ovld __cnfn fmax(half4 x, half4 y);
7182half8 __ovld __cnfn fmax(half8 x, half8 y);
7183half16 __ovld __cnfn fmax(half16 x, half16 y);
7184half2 __ovld __cnfn fmax(half2 x, half y);
7185half3 __ovld __cnfn fmax(half3 x, half y);
7186half4 __ovld __cnfn fmax(half4 x, half y);
7187half8 __ovld __cnfn fmax(half8 x, half y);
7188half16 __ovld __cnfn fmax(half16 x, half y);
7189#endif //cl_khr_fp16
7190
7191/**
7192 * Returns y if y < x, otherwise it returns x. If one
7193 * argument is a NaN, fmin() returns the other
7194 * argument. If both arguments are NaNs, fmin()
7195 * returns a NaN.
7196 */
7197float __ovld __cnfn fmin(float x, float y);
7198float2 __ovld __cnfn fmin(float2 x, float2 y);
7199float3 __ovld __cnfn fmin(float3 x, float3 y);
7200float4 __ovld __cnfn fmin(float4 x, float4 y);
7201float8 __ovld __cnfn fmin(float8 x, float8 y);
7202float16 __ovld __cnfn fmin(float16 x, float16 y);
7203float2 __ovld __cnfn fmin(float2 x, float y);
7204float3 __ovld __cnfn fmin(float3 x, float y);
7205float4 __ovld __cnfn fmin(float4 x, float y);
7206float8 __ovld __cnfn fmin(float8 x, float y);
7207float16 __ovld __cnfn fmin(float16 x, float y);
7208#ifdef cl_khr_fp64
7209double __ovld __cnfn fmin(double x, double y);
7210double2 __ovld __cnfn fmin(double2 x, double2 y);
7211double3 __ovld __cnfn fmin(double3 x, double3 y);
7212double4 __ovld __cnfn fmin(double4 x, double4 y);
7213double8 __ovld __cnfn fmin(double8 x, double8 y);
7214double16 __ovld __cnfn fmin(double16 x, double16 y);
7215double2 __ovld __cnfn fmin(double2 x, double y);
7216double3 __ovld __cnfn fmin(double3 x, double y);
7217double4 __ovld __cnfn fmin(double4 x, double y);
7218double8 __ovld __cnfn fmin(double8 x, double y);
7219double16 __ovld __cnfn fmin(double16 x, double y);
7220#endif //cl_khr_fp64
7221#ifdef cl_khr_fp16
7222half __ovld __cnfn fmin(half x, half y);
7223half2 __ovld __cnfn fmin(half2 x, half2 y);
7224half3 __ovld __cnfn fmin(half3 x, half3 y);
7225half4 __ovld __cnfn fmin(half4 x, half4 y);
7226half8 __ovld __cnfn fmin(half8 x, half8 y);
7227half16 __ovld __cnfn fmin(half16 x, half16 y);
7228half2 __ovld __cnfn fmin(half2 x, half y);
7229half3 __ovld __cnfn fmin(half3 x, half y);
7230half4 __ovld __cnfn fmin(half4 x, half y);
7231half8 __ovld __cnfn fmin(half8 x, half y);
7232half16 __ovld __cnfn fmin(half16 x, half y);
7233#endif //cl_khr_fp16
7234
7235/**
7236 * Modulus. Returns x - y * trunc (x/y).
7237 */
7238float __ovld __cnfn fmod(float x, float y);
7239float2 __ovld __cnfn fmod(float2 x, float2 y);
7240float3 __ovld __cnfn fmod(float3 x, float3 y);
7241float4 __ovld __cnfn fmod(float4 x, float4 y);
7242float8 __ovld __cnfn fmod(float8 x, float8 y);
7243float16 __ovld __cnfn fmod(float16 x, float16 y);
7244#ifdef cl_khr_fp64
7245double __ovld __cnfn fmod(double x, double y);
7246double2 __ovld __cnfn fmod(double2 x, double2 y);
7247double3 __ovld __cnfn fmod(double3 x, double3 y);
7248double4 __ovld __cnfn fmod(double4 x, double4 y);
7249double8 __ovld __cnfn fmod(double8 x, double8 y);
7250double16 __ovld __cnfn fmod(double16 x, double16 y);
7251#endif //cl_khr_fp64
7252#ifdef cl_khr_fp16
7253half __ovld __cnfn fmod(half x, half y);
7254half2 __ovld __cnfn fmod(half2 x, half2 y);
7255half3 __ovld __cnfn fmod(half3 x, half3 y);
7256half4 __ovld __cnfn fmod(half4 x, half4 y);
7257half8 __ovld __cnfn fmod(half8 x, half8 y);
7258half16 __ovld __cnfn fmod(half16 x, half16 y);
7259#endif //cl_khr_fp16
7260
7261/**
7262 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
7263 * floor(x) is returned in iptr.
7264 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007265#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007266float __ovld fract(float x, float *iptr);
7267float2 __ovld fract(float2 x, float2 *iptr);
7268float3 __ovld fract(float3 x, float3 *iptr);
7269float4 __ovld fract(float4 x, float4 *iptr);
7270float8 __ovld fract(float8 x, float8 *iptr);
7271float16 __ovld fract(float16 x, float16 *iptr);
7272#ifdef cl_khr_fp64
7273double __ovld fract(double x, double *iptr);
7274double2 __ovld fract(double2 x, double2 *iptr);
7275double3 __ovld fract(double3 x, double3 *iptr);
7276double4 __ovld fract(double4 x, double4 *iptr);
7277double8 __ovld fract(double8 x, double8 *iptr);
7278double16 __ovld fract(double16 x, double16 *iptr);
7279#endif //cl_khr_fp64
7280#ifdef cl_khr_fp16
7281half __ovld fract(half x, half *iptr);
7282half2 __ovld fract(half2 x, half2 *iptr);
7283half3 __ovld fract(half3 x, half3 *iptr);
7284half4 __ovld fract(half4 x, half4 *iptr);
7285half8 __ovld fract(half8 x, half8 *iptr);
7286half16 __ovld fract(half16 x, half16 *iptr);
7287#endif //cl_khr_fp16
7288#else
7289float __ovld fract(float x, __global float *iptr);
7290float2 __ovld fract(float2 x, __global float2 *iptr);
7291float3 __ovld fract(float3 x, __global float3 *iptr);
7292float4 __ovld fract(float4 x, __global float4 *iptr);
7293float8 __ovld fract(float8 x, __global float8 *iptr);
7294float16 __ovld fract(float16 x, __global float16 *iptr);
7295float __ovld fract(float x, __local float *iptr);
7296float2 __ovld fract(float2 x, __local float2 *iptr);
7297float3 __ovld fract(float3 x, __local float3 *iptr);
7298float4 __ovld fract(float4 x, __local float4 *iptr);
7299float8 __ovld fract(float8 x, __local float8 *iptr);
7300float16 __ovld fract(float16 x, __local float16 *iptr);
7301float __ovld fract(float x, __private float *iptr);
7302float2 __ovld fract(float2 x, __private float2 *iptr);
7303float3 __ovld fract(float3 x, __private float3 *iptr);
7304float4 __ovld fract(float4 x, __private float4 *iptr);
7305float8 __ovld fract(float8 x, __private float8 *iptr);
7306float16 __ovld fract(float16 x, __private float16 *iptr);
7307#ifdef cl_khr_fp64
7308double __ovld fract(double x, __global double *iptr);
7309double2 __ovld fract(double2 x, __global double2 *iptr);
7310double3 __ovld fract(double3 x, __global double3 *iptr);
7311double4 __ovld fract(double4 x, __global double4 *iptr);
7312double8 __ovld fract(double8 x, __global double8 *iptr);
7313double16 __ovld fract(double16 x, __global double16 *iptr);
7314double __ovld fract(double x, __local double *iptr);
7315double2 __ovld fract(double2 x, __local double2 *iptr);
7316double3 __ovld fract(double3 x, __local double3 *iptr);
7317double4 __ovld fract(double4 x, __local double4 *iptr);
7318double8 __ovld fract(double8 x, __local double8 *iptr);
7319double16 __ovld fract(double16 x, __local double16 *iptr);
7320double __ovld fract(double x, __private double *iptr);
7321double2 __ovld fract(double2 x, __private double2 *iptr);
7322double3 __ovld fract(double3 x, __private double3 *iptr);
7323double4 __ovld fract(double4 x, __private double4 *iptr);
7324double8 __ovld fract(double8 x, __private double8 *iptr);
7325double16 __ovld fract(double16 x, __private double16 *iptr);
7326#endif //cl_khr_fp64
7327#ifdef cl_khr_fp16
7328half __ovld fract(half x, __global half *iptr);
7329half2 __ovld fract(half2 x, __global half2 *iptr);
7330half3 __ovld fract(half3 x, __global half3 *iptr);
7331half4 __ovld fract(half4 x, __global half4 *iptr);
7332half8 __ovld fract(half8 x, __global half8 *iptr);
7333half16 __ovld fract(half16 x, __global half16 *iptr);
7334half __ovld fract(half x, __local half *iptr);
7335half2 __ovld fract(half2 x, __local half2 *iptr);
7336half3 __ovld fract(half3 x, __local half3 *iptr);
7337half4 __ovld fract(half4 x, __local half4 *iptr);
7338half8 __ovld fract(half8 x, __local half8 *iptr);
7339half16 __ovld fract(half16 x, __local half16 *iptr);
7340half __ovld fract(half x, __private half *iptr);
7341half2 __ovld fract(half2 x, __private half2 *iptr);
7342half3 __ovld fract(half3 x, __private half3 *iptr);
7343half4 __ovld fract(half4 x, __private half4 *iptr);
7344half8 __ovld fract(half8 x, __private half8 *iptr);
7345half16 __ovld fract(half16 x, __private half16 *iptr);
7346#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007347#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007348
7349/**
7350 * Extract mantissa and exponent from x. For each
7351 * component the mantissa returned is a float with
7352 * magnitude in the interval [1/2, 1) or 0. Each
7353 * component of x equals mantissa returned * 2^exp.
7354 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007355#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007356float __ovld frexp(float x, int *exp);
7357float2 __ovld frexp(float2 x, int2 *exp);
7358float3 __ovld frexp(float3 x, int3 *exp);
7359float4 __ovld frexp(float4 x, int4 *exp);
7360float8 __ovld frexp(float8 x, int8 *exp);
7361float16 __ovld frexp(float16 x, int16 *exp);
7362#ifdef cl_khr_fp64
7363double __ovld frexp(double x, int *exp);
7364double2 __ovld frexp(double2 x, int2 *exp);
7365double3 __ovld frexp(double3 x, int3 *exp);
7366double4 __ovld frexp(double4 x, int4 *exp);
7367double8 __ovld frexp(double8 x, int8 *exp);
7368double16 __ovld frexp(double16 x, int16 *exp);
7369#endif //cl_khr_fp64
7370#ifdef cl_khr_fp16
7371half __ovld frexp(half x, int *exp);
7372half2 __ovld frexp(half2 x, int2 *exp);
7373half3 __ovld frexp(half3 x, int3 *exp);
7374half4 __ovld frexp(half4 x, int4 *exp);
7375half8 __ovld frexp(half8 x, int8 *exp);
7376half16 __ovld frexp(half16 x, int16 *exp);
7377#endif //cl_khr_fp16
7378#else
7379float __ovld frexp(float x, __global int *exp);
7380float2 __ovld frexp(float2 x, __global int2 *exp);
7381float3 __ovld frexp(float3 x, __global int3 *exp);
7382float4 __ovld frexp(float4 x, __global int4 *exp);
7383float8 __ovld frexp(float8 x, __global int8 *exp);
7384float16 __ovld frexp(float16 x, __global int16 *exp);
7385float __ovld frexp(float x, __local int *exp);
7386float2 __ovld frexp(float2 x, __local int2 *exp);
7387float3 __ovld frexp(float3 x, __local int3 *exp);
7388float4 __ovld frexp(float4 x, __local int4 *exp);
7389float8 __ovld frexp(float8 x, __local int8 *exp);
7390float16 __ovld frexp(float16 x, __local int16 *exp);
7391float __ovld frexp(float x, __private int *exp);
7392float2 __ovld frexp(float2 x, __private int2 *exp);
7393float3 __ovld frexp(float3 x, __private int3 *exp);
7394float4 __ovld frexp(float4 x, __private int4 *exp);
7395float8 __ovld frexp(float8 x, __private int8 *exp);
7396float16 __ovld frexp(float16 x, __private int16 *exp);
7397#ifdef cl_khr_fp64
7398double __ovld frexp(double x, __global int *exp);
7399double2 __ovld frexp(double2 x, __global int2 *exp);
7400double3 __ovld frexp(double3 x, __global int3 *exp);
7401double4 __ovld frexp(double4 x, __global int4 *exp);
7402double8 __ovld frexp(double8 x, __global int8 *exp);
7403double16 __ovld frexp(double16 x, __global int16 *exp);
7404double __ovld frexp(double x, __local int *exp);
7405double2 __ovld frexp(double2 x, __local int2 *exp);
7406double3 __ovld frexp(double3 x, __local int3 *exp);
7407double4 __ovld frexp(double4 x, __local int4 *exp);
7408double8 __ovld frexp(double8 x, __local int8 *exp);
7409double16 __ovld frexp(double16 x, __local int16 *exp);
7410double __ovld frexp(double x, __private int *exp);
7411double2 __ovld frexp(double2 x, __private int2 *exp);
7412double3 __ovld frexp(double3 x, __private int3 *exp);
7413double4 __ovld frexp(double4 x, __private int4 *exp);
7414double8 __ovld frexp(double8 x, __private int8 *exp);
7415double16 __ovld frexp(double16 x, __private int16 *exp);
7416#endif //cl_khr_fp64
7417#ifdef cl_khr_fp16
7418half __ovld frexp(half x, __global int *exp);
7419half2 __ovld frexp(half2 x, __global int2 *exp);
7420half3 __ovld frexp(half3 x, __global int3 *exp);
7421half4 __ovld frexp(half4 x, __global int4 *exp);
7422half8 __ovld frexp(half8 x, __global int8 *exp);
7423half16 __ovld frexp(half16 x, __global int16 *exp);
7424half __ovld frexp(half x, __local int *exp);
7425half2 __ovld frexp(half2 x, __local int2 *exp);
7426half3 __ovld frexp(half3 x, __local int3 *exp);
7427half4 __ovld frexp(half4 x, __local int4 *exp);
7428half8 __ovld frexp(half8 x, __local int8 *exp);
7429half16 __ovld frexp(half16 x, __local int16 *exp);
7430half __ovld frexp(half x, __private int *exp);
7431half2 __ovld frexp(half2 x, __private int2 *exp);
7432half3 __ovld frexp(half3 x, __private int3 *exp);
7433half4 __ovld frexp(half4 x, __private int4 *exp);
7434half8 __ovld frexp(half8 x, __private int8 *exp);
7435half16 __ovld frexp(half16 x, __private int16 *exp);
7436#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007437#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007438
7439/**
7440 * Compute the value of the square root of x^2 + y^2
7441 * without undue overflow or underflow.
7442 */
7443float __ovld __cnfn hypot(float x, float y);
7444float2 __ovld __cnfn hypot(float2 x, float2 y);
7445float3 __ovld __cnfn hypot(float3 x, float3 y);
7446float4 __ovld __cnfn hypot(float4 x, float4 y);
7447float8 __ovld __cnfn hypot(float8 x, float8 y);
7448float16 __ovld __cnfn hypot(float16 x, float16 y);
7449#ifdef cl_khr_fp64
7450double __ovld __cnfn hypot(double x, double y);
7451double2 __ovld __cnfn hypot(double2 x, double2 y);
7452double3 __ovld __cnfn hypot(double3 x, double3 y);
7453double4 __ovld __cnfn hypot(double4 x, double4 y);
7454double8 __ovld __cnfn hypot(double8 x, double8 y);
7455double16 __ovld __cnfn hypot(double16 x, double16 y);
7456#endif //cl_khr_fp64
7457#ifdef cl_khr_fp16
7458half __ovld __cnfn hypot(half x, half y);
7459half2 __ovld __cnfn hypot(half2 x, half2 y);
7460half3 __ovld __cnfn hypot(half3 x, half3 y);
7461half4 __ovld __cnfn hypot(half4 x, half4 y);
7462half8 __ovld __cnfn hypot(half8 x, half8 y);
7463half16 __ovld __cnfn hypot(half16 x, half16 y);
7464#endif //cl_khr_fp16
7465
7466/**
7467 * Return the exponent as an integer value.
7468 */
7469int __ovld __cnfn ilogb(float x);
7470int2 __ovld __cnfn ilogb(float2 x);
7471int3 __ovld __cnfn ilogb(float3 x);
7472int4 __ovld __cnfn ilogb(float4 x);
7473int8 __ovld __cnfn ilogb(float8 x);
7474int16 __ovld __cnfn ilogb(float16 x);
7475#ifdef cl_khr_fp64
7476int __ovld __cnfn ilogb(double x);
7477int2 __ovld __cnfn ilogb(double2 x);
7478int3 __ovld __cnfn ilogb(double3 x);
7479int4 __ovld __cnfn ilogb(double4 x);
7480int8 __ovld __cnfn ilogb(double8 x);
7481int16 __ovld __cnfn ilogb(double16 x);
7482#endif //cl_khr_fp64
7483#ifdef cl_khr_fp16
7484int __ovld __cnfn ilogb(half x);
7485int2 __ovld __cnfn ilogb(half2 x);
7486int3 __ovld __cnfn ilogb(half3 x);
7487int4 __ovld __cnfn ilogb(half4 x);
7488int8 __ovld __cnfn ilogb(half8 x);
7489int16 __ovld __cnfn ilogb(half16 x);
7490#endif //cl_khr_fp16
7491
7492/**
7493 * Multiply x by 2 to the power n.
7494 */
7495float __ovld __cnfn ldexp(float x, int n);
7496float2 __ovld __cnfn ldexp(float2 x, int2 n);
7497float3 __ovld __cnfn ldexp(float3 x, int3 n);
7498float4 __ovld __cnfn ldexp(float4 x, int4 n);
7499float8 __ovld __cnfn ldexp(float8 x, int8 n);
7500float16 __ovld __cnfn ldexp(float16 x, int16 n);
7501float2 __ovld __cnfn ldexp(float2 x, int n);
7502float3 __ovld __cnfn ldexp(float3 x, int n);
7503float4 __ovld __cnfn ldexp(float4 x, int n);
7504float8 __ovld __cnfn ldexp(float8 x, int n);
7505float16 __ovld __cnfn ldexp(float16 x, int n);
7506#ifdef cl_khr_fp64
7507double __ovld __cnfn ldexp(double x, int n);
7508double2 __ovld __cnfn ldexp(double2 x, int2 n);
7509double3 __ovld __cnfn ldexp(double3 x, int3 n);
7510double4 __ovld __cnfn ldexp(double4 x, int4 n);
7511double8 __ovld __cnfn ldexp(double8 x, int8 n);
7512double16 __ovld __cnfn ldexp(double16 x, int16 n);
7513double2 __ovld __cnfn ldexp(double2 x, int n);
7514double3 __ovld __cnfn ldexp(double3 x, int n);
7515double4 __ovld __cnfn ldexp(double4 x, int n);
7516double8 __ovld __cnfn ldexp(double8 x, int n);
7517double16 __ovld __cnfn ldexp(double16 x, int n);
7518#endif //cl_khr_fp64
7519#ifdef cl_khr_fp16
7520half __ovld __cnfn ldexp(half x, int n);
7521half2 __ovld __cnfn ldexp(half2 x, int2 n);
7522half3 __ovld __cnfn ldexp(half3 x, int3 n);
7523half4 __ovld __cnfn ldexp(half4 x, int4 n);
7524half8 __ovld __cnfn ldexp(half8 x, int8 n);
7525half16 __ovld __cnfn ldexp(half16 x, int16 n);
7526half2 __ovld __cnfn ldexp(half2 x, int n);
7527half3 __ovld __cnfn ldexp(half3 x, int n);
7528half4 __ovld __cnfn ldexp(half4 x, int n);
7529half8 __ovld __cnfn ldexp(half8 x, int n);
7530half16 __ovld __cnfn ldexp(half16 x, int n);
7531#endif //cl_khr_fp16
7532
7533/**
7534 * Log gamma function. Returns the natural
7535 * logarithm of the absolute value of the gamma
7536 * function. The sign of the gamma function is
7537 * returned in the signp argument of lgamma_r.
7538 */
7539float __ovld __cnfn lgamma(float x);
7540float2 __ovld __cnfn lgamma(float2 x);
7541float3 __ovld __cnfn lgamma(float3 x);
7542float4 __ovld __cnfn lgamma(float4 x);
7543float8 __ovld __cnfn lgamma(float8 x);
7544float16 __ovld __cnfn lgamma(float16 x);
7545#ifdef cl_khr_fp64
7546double __ovld __cnfn lgamma(double x);
7547double2 __ovld __cnfn lgamma(double2 x);
7548double3 __ovld __cnfn lgamma(double3 x);
7549double4 __ovld __cnfn lgamma(double4 x);
7550double8 __ovld __cnfn lgamma(double8 x);
7551double16 __ovld __cnfn lgamma(double16 x);
7552#endif //cl_khr_fp64
7553#ifdef cl_khr_fp16
7554half __ovld __cnfn lgamma(half x);
7555half2 __ovld __cnfn lgamma(half2 x);
7556half3 __ovld __cnfn lgamma(half3 x);
7557half4 __ovld __cnfn lgamma(half4 x);
7558half8 __ovld __cnfn lgamma(half8 x);
7559half16 __ovld __cnfn lgamma(half16 x);
7560#endif //cl_khr_fp16
7561
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007562#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007563float __ovld lgamma_r(float x, int *signp);
7564float2 __ovld lgamma_r(float2 x, int2 *signp);
7565float3 __ovld lgamma_r(float3 x, int3 *signp);
7566float4 __ovld lgamma_r(float4 x, int4 *signp);
7567float8 __ovld lgamma_r(float8 x, int8 *signp);
7568float16 __ovld lgamma_r(float16 x, int16 *signp);
7569#ifdef cl_khr_fp64
7570double __ovld lgamma_r(double x, int *signp);
7571double2 __ovld lgamma_r(double2 x, int2 *signp);
7572double3 __ovld lgamma_r(double3 x, int3 *signp);
7573double4 __ovld lgamma_r(double4 x, int4 *signp);
7574double8 __ovld lgamma_r(double8 x, int8 *signp);
7575double16 __ovld lgamma_r(double16 x, int16 *signp);
7576#endif //cl_khr_fp64
7577#ifdef cl_khr_fp16
7578half __ovld lgamma_r(half x, int *signp);
7579half2 __ovld lgamma_r(half2 x, int2 *signp);
7580half3 __ovld lgamma_r(half3 x, int3 *signp);
7581half4 __ovld lgamma_r(half4 x, int4 *signp);
7582half8 __ovld lgamma_r(half8 x, int8 *signp);
7583half16 __ovld lgamma_r(half16 x, int16 *signp);
7584#endif //cl_khr_fp16
7585#else
7586float __ovld lgamma_r(float x, __global int *signp);
7587float2 __ovld lgamma_r(float2 x, __global int2 *signp);
7588float3 __ovld lgamma_r(float3 x, __global int3 *signp);
7589float4 __ovld lgamma_r(float4 x, __global int4 *signp);
7590float8 __ovld lgamma_r(float8 x, __global int8 *signp);
7591float16 __ovld lgamma_r(float16 x, __global int16 *signp);
7592float __ovld lgamma_r(float x, __local int *signp);
7593float2 __ovld lgamma_r(float2 x, __local int2 *signp);
7594float3 __ovld lgamma_r(float3 x, __local int3 *signp);
7595float4 __ovld lgamma_r(float4 x, __local int4 *signp);
7596float8 __ovld lgamma_r(float8 x, __local int8 *signp);
7597float16 __ovld lgamma_r(float16 x, __local int16 *signp);
7598float __ovld lgamma_r(float x, __private int *signp);
7599float2 __ovld lgamma_r(float2 x, __private int2 *signp);
7600float3 __ovld lgamma_r(float3 x, __private int3 *signp);
7601float4 __ovld lgamma_r(float4 x, __private int4 *signp);
7602float8 __ovld lgamma_r(float8 x, __private int8 *signp);
7603float16 __ovld lgamma_r(float16 x, __private int16 *signp);
7604#ifdef cl_khr_fp64
7605double __ovld lgamma_r(double x, __global int *signp);
7606double2 __ovld lgamma_r(double2 x, __global int2 *signp);
7607double3 __ovld lgamma_r(double3 x, __global int3 *signp);
7608double4 __ovld lgamma_r(double4 x, __global int4 *signp);
7609double8 __ovld lgamma_r(double8 x, __global int8 *signp);
7610double16 __ovld lgamma_r(double16 x, __global int16 *signp);
7611double __ovld lgamma_r(double x, __local int *signp);
7612double2 __ovld lgamma_r(double2 x, __local int2 *signp);
7613double3 __ovld lgamma_r(double3 x, __local int3 *signp);
7614double4 __ovld lgamma_r(double4 x, __local int4 *signp);
7615double8 __ovld lgamma_r(double8 x, __local int8 *signp);
7616double16 __ovld lgamma_r(double16 x, __local int16 *signp);
7617double __ovld lgamma_r(double x, __private int *signp);
7618double2 __ovld lgamma_r(double2 x, __private int2 *signp);
7619double3 __ovld lgamma_r(double3 x, __private int3 *signp);
7620double4 __ovld lgamma_r(double4 x, __private int4 *signp);
7621double8 __ovld lgamma_r(double8 x, __private int8 *signp);
7622double16 __ovld lgamma_r(double16 x, __private int16 *signp);
7623#endif //cl_khr_fp64
7624#ifdef cl_khr_fp16
7625half __ovld lgamma_r(half x, __global int *signp);
7626half2 __ovld lgamma_r(half2 x, __global int2 *signp);
7627half3 __ovld lgamma_r(half3 x, __global int3 *signp);
7628half4 __ovld lgamma_r(half4 x, __global int4 *signp);
7629half8 __ovld lgamma_r(half8 x, __global int8 *signp);
7630half16 __ovld lgamma_r(half16 x, __global int16 *signp);
7631half __ovld lgamma_r(half x, __local int *signp);
7632half2 __ovld lgamma_r(half2 x, __local int2 *signp);
7633half3 __ovld lgamma_r(half3 x, __local int3 *signp);
7634half4 __ovld lgamma_r(half4 x, __local int4 *signp);
7635half8 __ovld lgamma_r(half8 x, __local int8 *signp);
7636half16 __ovld lgamma_r(half16 x, __local int16 *signp);
7637half __ovld lgamma_r(half x, __private int *signp);
7638half2 __ovld lgamma_r(half2 x, __private int2 *signp);
7639half3 __ovld lgamma_r(half3 x, __private int3 *signp);
7640half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7641half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7642half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7643#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007644#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007645
7646/**
7647 * Compute natural logarithm.
7648 */
7649float __ovld __cnfn log(float);
7650float2 __ovld __cnfn log(float2);
7651float3 __ovld __cnfn log(float3);
7652float4 __ovld __cnfn log(float4);
7653float8 __ovld __cnfn log(float8);
7654float16 __ovld __cnfn log(float16);
7655#ifdef cl_khr_fp64
7656double __ovld __cnfn log(double);
7657double2 __ovld __cnfn log(double2);
7658double3 __ovld __cnfn log(double3);
7659double4 __ovld __cnfn log(double4);
7660double8 __ovld __cnfn log(double8);
7661double16 __ovld __cnfn log(double16);
7662#endif //cl_khr_fp64
7663#ifdef cl_khr_fp16
7664half __ovld __cnfn log(half);
7665half2 __ovld __cnfn log(half2);
7666half3 __ovld __cnfn log(half3);
7667half4 __ovld __cnfn log(half4);
7668half8 __ovld __cnfn log(half8);
7669half16 __ovld __cnfn log(half16);
7670#endif //cl_khr_fp16
7671
7672/**
7673 * Compute a base 2 logarithm.
7674 */
7675float __ovld __cnfn log2(float);
7676float2 __ovld __cnfn log2(float2);
7677float3 __ovld __cnfn log2(float3);
7678float4 __ovld __cnfn log2(float4);
7679float8 __ovld __cnfn log2(float8);
7680float16 __ovld __cnfn log2(float16);
7681#ifdef cl_khr_fp64
7682double __ovld __cnfn log2(double);
7683double2 __ovld __cnfn log2(double2);
7684double3 __ovld __cnfn log2(double3);
7685double4 __ovld __cnfn log2(double4);
7686double8 __ovld __cnfn log2(double8);
7687double16 __ovld __cnfn log2(double16);
7688#endif //cl_khr_fp64
7689#ifdef cl_khr_fp16
7690half __ovld __cnfn log2(half);
7691half2 __ovld __cnfn log2(half2);
7692half3 __ovld __cnfn log2(half3);
7693half4 __ovld __cnfn log2(half4);
7694half8 __ovld __cnfn log2(half8);
7695half16 __ovld __cnfn log2(half16);
7696#endif //cl_khr_fp16
7697
7698/**
7699 * Compute a base 10 logarithm.
7700 */
7701float __ovld __cnfn log10(float);
7702float2 __ovld __cnfn log10(float2);
7703float3 __ovld __cnfn log10(float3);
7704float4 __ovld __cnfn log10(float4);
7705float8 __ovld __cnfn log10(float8);
7706float16 __ovld __cnfn log10(float16);
7707#ifdef cl_khr_fp64
7708double __ovld __cnfn log10(double);
7709double2 __ovld __cnfn log10(double2);
7710double3 __ovld __cnfn log10(double3);
7711double4 __ovld __cnfn log10(double4);
7712double8 __ovld __cnfn log10(double8);
7713double16 __ovld __cnfn log10(double16);
7714#endif //cl_khr_fp64
7715#ifdef cl_khr_fp16
7716half __ovld __cnfn log10(half);
7717half2 __ovld __cnfn log10(half2);
7718half3 __ovld __cnfn log10(half3);
7719half4 __ovld __cnfn log10(half4);
7720half8 __ovld __cnfn log10(half8);
7721half16 __ovld __cnfn log10(half16);
7722#endif //cl_khr_fp16
7723
7724/**
7725 * Compute a base e logarithm of (1.0 + x).
7726 */
7727float __ovld __cnfn log1p(float x);
7728float2 __ovld __cnfn log1p(float2 x);
7729float3 __ovld __cnfn log1p(float3 x);
7730float4 __ovld __cnfn log1p(float4 x);
7731float8 __ovld __cnfn log1p(float8 x);
7732float16 __ovld __cnfn log1p(float16 x);
7733#ifdef cl_khr_fp64
7734double __ovld __cnfn log1p(double x);
7735double2 __ovld __cnfn log1p(double2 x);
7736double3 __ovld __cnfn log1p(double3 x);
7737double4 __ovld __cnfn log1p(double4 x);
7738double8 __ovld __cnfn log1p(double8 x);
7739double16 __ovld __cnfn log1p(double16 x);
7740#endif //cl_khr_fp64
7741#ifdef cl_khr_fp16
7742half __ovld __cnfn log1p(half x);
7743half2 __ovld __cnfn log1p(half2 x);
7744half3 __ovld __cnfn log1p(half3 x);
7745half4 __ovld __cnfn log1p(half4 x);
7746half8 __ovld __cnfn log1p(half8 x);
7747half16 __ovld __cnfn log1p(half16 x);
7748#endif //cl_khr_fp16
7749
7750/**
7751 * Compute the exponent of x, which is the integral
7752 * part of logr | x |.
7753 */
7754float __ovld __cnfn logb(float x);
7755float2 __ovld __cnfn logb(float2 x);
7756float3 __ovld __cnfn logb(float3 x);
7757float4 __ovld __cnfn logb(float4 x);
7758float8 __ovld __cnfn logb(float8 x);
7759float16 __ovld __cnfn logb(float16 x);
7760#ifdef cl_khr_fp64
7761double __ovld __cnfn logb(double x);
7762double2 __ovld __cnfn logb(double2 x);
7763double3 __ovld __cnfn logb(double3 x);
7764double4 __ovld __cnfn logb(double4 x);
7765double8 __ovld __cnfn logb(double8 x);
7766double16 __ovld __cnfn logb(double16 x);
7767#endif //cl_khr_fp64
7768#ifdef cl_khr_fp16
7769half __ovld __cnfn logb(half x);
7770half2 __ovld __cnfn logb(half2 x);
7771half3 __ovld __cnfn logb(half3 x);
7772half4 __ovld __cnfn logb(half4 x);
7773half8 __ovld __cnfn logb(half8 x);
7774half16 __ovld __cnfn logb(half16 x);
7775#endif //cl_khr_fp16
7776
7777/**
7778 * mad approximates a * b + c. Whether or how the
7779 * product of a * b is rounded and how supernormal or
7780 * subnormal intermediate products are handled is not
7781 * defined. mad is intended to be used where speed is
7782 * preferred over accuracy.
7783 */
7784float __ovld __cnfn mad(float a, float b, float c);
7785float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
7786float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
7787float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
7788float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
7789float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
7790#ifdef cl_khr_fp64
7791double __ovld __cnfn mad(double a, double b, double c);
7792double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
7793double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
7794double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
7795double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
7796double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
7797#endif //cl_khr_fp64
7798#ifdef cl_khr_fp16
7799half __ovld __cnfn mad(half a, half b, half c);
7800half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
7801half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
7802half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
7803half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
7804half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
7805#endif //cl_khr_fp16
7806
7807/**
7808 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
7809 * fmax(x, y).
7810 */
7811float __ovld __cnfn maxmag(float x, float y);
7812float2 __ovld __cnfn maxmag(float2 x, float2 y);
7813float3 __ovld __cnfn maxmag(float3 x, float3 y);
7814float4 __ovld __cnfn maxmag(float4 x, float4 y);
7815float8 __ovld __cnfn maxmag(float8 x, float8 y);
7816float16 __ovld __cnfn maxmag(float16 x, float16 y);
7817#ifdef cl_khr_fp64
7818double __ovld __cnfn maxmag(double x, double y);
7819double2 __ovld __cnfn maxmag(double2 x, double2 y);
7820double3 __ovld __cnfn maxmag(double3 x, double3 y);
7821double4 __ovld __cnfn maxmag(double4 x, double4 y);
7822double8 __ovld __cnfn maxmag(double8 x, double8 y);
7823double16 __ovld __cnfn maxmag(double16 x, double16 y);
7824#endif //cl_khr_fp64
7825#ifdef cl_khr_fp16
7826half __ovld __cnfn maxmag(half x, half y);
7827half2 __ovld __cnfn maxmag(half2 x, half2 y);
7828half3 __ovld __cnfn maxmag(half3 x, half3 y);
7829half4 __ovld __cnfn maxmag(half4 x, half4 y);
7830half8 __ovld __cnfn maxmag(half8 x, half8 y);
7831half16 __ovld __cnfn maxmag(half16 x, half16 y);
7832#endif //cl_khr_fp16
7833
7834/**
7835 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
7836 * fmin(x, y).
7837 */
7838float __ovld __cnfn minmag(float x, float y);
7839float2 __ovld __cnfn minmag(float2 x, float2 y);
7840float3 __ovld __cnfn minmag(float3 x, float3 y);
7841float4 __ovld __cnfn minmag(float4 x, float4 y);
7842float8 __ovld __cnfn minmag(float8 x, float8 y);
7843float16 __ovld __cnfn minmag(float16 x, float16 y);
7844#ifdef cl_khr_fp64
7845double __ovld __cnfn minmag(double x, double y);
7846double2 __ovld __cnfn minmag(double2 x, double2 y);
7847double3 __ovld __cnfn minmag(double3 x, double3 y);
7848double4 __ovld __cnfn minmag(double4 x, double4 y);
7849double8 __ovld __cnfn minmag(double8 x, double8 y);
7850double16 __ovld __cnfn minmag(double16 x, double16 y);
7851#endif //cl_khr_fp64
7852#ifdef cl_khr_fp16
7853half __ovld __cnfn minmag(half x, half y);
7854half2 __ovld __cnfn minmag(half2 x, half2 y);
7855half3 __ovld __cnfn minmag(half3 x, half3 y);
7856half4 __ovld __cnfn minmag(half4 x, half4 y);
7857half8 __ovld __cnfn minmag(half8 x, half8 y);
7858half16 __ovld __cnfn minmag(half16 x, half16 y);
7859#endif //cl_khr_fp16
7860
7861/**
7862 * Decompose a floating-point number. The modf
7863 * function breaks the argument x into integral and
7864 * fractional parts, each of which has the same sign as
7865 * the argument. It stores the integral part in the object
7866 * pointed to by iptr.
7867 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007868#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007869float __ovld modf(float x, float *iptr);
7870float2 __ovld modf(float2 x, float2 *iptr);
7871float3 __ovld modf(float3 x, float3 *iptr);
7872float4 __ovld modf(float4 x, float4 *iptr);
7873float8 __ovld modf(float8 x, float8 *iptr);
7874float16 __ovld modf(float16 x, float16 *iptr);
7875#ifdef cl_khr_fp64
7876double __ovld modf(double x, double *iptr);
7877double2 __ovld modf(double2 x, double2 *iptr);
7878double3 __ovld modf(double3 x, double3 *iptr);
7879double4 __ovld modf(double4 x, double4 *iptr);
7880double8 __ovld modf(double8 x, double8 *iptr);
7881double16 __ovld modf(double16 x, double16 *iptr);
7882#endif //cl_khr_fp64
7883#ifdef cl_khr_fp16
7884half __ovld modf(half x, half *iptr);
7885half2 __ovld modf(half2 x, half2 *iptr);
7886half3 __ovld modf(half3 x, half3 *iptr);
7887half4 __ovld modf(half4 x, half4 *iptr);
7888half8 __ovld modf(half8 x, half8 *iptr);
7889half16 __ovld modf(half16 x, half16 *iptr);
7890#endif //cl_khr_fp16
7891#else
7892float __ovld modf(float x, __global float *iptr);
7893float2 __ovld modf(float2 x, __global float2 *iptr);
7894float3 __ovld modf(float3 x, __global float3 *iptr);
7895float4 __ovld modf(float4 x, __global float4 *iptr);
7896float8 __ovld modf(float8 x, __global float8 *iptr);
7897float16 __ovld modf(float16 x, __global float16 *iptr);
7898float __ovld modf(float x, __local float *iptr);
7899float2 __ovld modf(float2 x, __local float2 *iptr);
7900float3 __ovld modf(float3 x, __local float3 *iptr);
7901float4 __ovld modf(float4 x, __local float4 *iptr);
7902float8 __ovld modf(float8 x, __local float8 *iptr);
7903float16 __ovld modf(float16 x, __local float16 *iptr);
7904float __ovld modf(float x, __private float *iptr);
7905float2 __ovld modf(float2 x, __private float2 *iptr);
7906float3 __ovld modf(float3 x, __private float3 *iptr);
7907float4 __ovld modf(float4 x, __private float4 *iptr);
7908float8 __ovld modf(float8 x, __private float8 *iptr);
7909float16 __ovld modf(float16 x, __private float16 *iptr);
7910#ifdef cl_khr_fp64
7911double __ovld modf(double x, __global double *iptr);
7912double2 __ovld modf(double2 x, __global double2 *iptr);
7913double3 __ovld modf(double3 x, __global double3 *iptr);
7914double4 __ovld modf(double4 x, __global double4 *iptr);
7915double8 __ovld modf(double8 x, __global double8 *iptr);
7916double16 __ovld modf(double16 x, __global double16 *iptr);
7917double __ovld modf(double x, __local double *iptr);
7918double2 __ovld modf(double2 x, __local double2 *iptr);
7919double3 __ovld modf(double3 x, __local double3 *iptr);
7920double4 __ovld modf(double4 x, __local double4 *iptr);
7921double8 __ovld modf(double8 x, __local double8 *iptr);
7922double16 __ovld modf(double16 x, __local double16 *iptr);
7923double __ovld modf(double x, __private double *iptr);
7924double2 __ovld modf(double2 x, __private double2 *iptr);
7925double3 __ovld modf(double3 x, __private double3 *iptr);
7926double4 __ovld modf(double4 x, __private double4 *iptr);
7927double8 __ovld modf(double8 x, __private double8 *iptr);
7928double16 __ovld modf(double16 x, __private double16 *iptr);
7929#endif //cl_khr_fp64
7930#ifdef cl_khr_fp16
7931half __ovld modf(half x, __global half *iptr);
7932half2 __ovld modf(half2 x, __global half2 *iptr);
7933half3 __ovld modf(half3 x, __global half3 *iptr);
7934half4 __ovld modf(half4 x, __global half4 *iptr);
7935half8 __ovld modf(half8 x, __global half8 *iptr);
7936half16 __ovld modf(half16 x, __global half16 *iptr);
7937half __ovld modf(half x, __local half *iptr);
7938half2 __ovld modf(half2 x, __local half2 *iptr);
7939half3 __ovld modf(half3 x, __local half3 *iptr);
7940half4 __ovld modf(half4 x, __local half4 *iptr);
7941half8 __ovld modf(half8 x, __local half8 *iptr);
7942half16 __ovld modf(half16 x, __local half16 *iptr);
7943half __ovld modf(half x, __private half *iptr);
7944half2 __ovld modf(half2 x, __private half2 *iptr);
7945half3 __ovld modf(half3 x, __private half3 *iptr);
7946half4 __ovld modf(half4 x, __private half4 *iptr);
7947half8 __ovld modf(half8 x, __private half8 *iptr);
7948half16 __ovld modf(half16 x, __private half16 *iptr);
7949#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08007950#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08007951
7952/**
7953 * Returns a quiet NaN. The nancode may be placed
7954 * in the significand of the resulting NaN.
7955 */
7956float __ovld __cnfn nan(uint nancode);
7957float2 __ovld __cnfn nan(uint2 nancode);
7958float3 __ovld __cnfn nan(uint3 nancode);
7959float4 __ovld __cnfn nan(uint4 nancode);
7960float8 __ovld __cnfn nan(uint8 nancode);
7961float16 __ovld __cnfn nan(uint16 nancode);
7962#ifdef cl_khr_fp64
7963double __ovld __cnfn nan(ulong nancode);
7964double2 __ovld __cnfn nan(ulong2 nancode);
7965double3 __ovld __cnfn nan(ulong3 nancode);
7966double4 __ovld __cnfn nan(ulong4 nancode);
7967double8 __ovld __cnfn nan(ulong8 nancode);
7968double16 __ovld __cnfn nan(ulong16 nancode);
7969#endif //cl_khr_fp64
7970#ifdef cl_khr_fp16
7971half __ovld __cnfn nan(ushort nancode);
7972half2 __ovld __cnfn nan(ushort2 nancode);
7973half3 __ovld __cnfn nan(ushort3 nancode);
7974half4 __ovld __cnfn nan(ushort4 nancode);
7975half8 __ovld __cnfn nan(ushort8 nancode);
7976half16 __ovld __cnfn nan(ushort16 nancode);
7977#endif //cl_khr_fp16
7978
7979/**
7980 * Computes the next representable single-precision
7981 * floating-point value following x in the direction of
7982 * y. Thus, if y is less than x, nextafter() returns the
7983 * largest representable floating-point number less
7984 * than x.
7985 */
7986float __ovld __cnfn nextafter(float x, float y);
7987float2 __ovld __cnfn nextafter(float2 x, float2 y);
7988float3 __ovld __cnfn nextafter(float3 x, float3 y);
7989float4 __ovld __cnfn nextafter(float4 x, float4 y);
7990float8 __ovld __cnfn nextafter(float8 x, float8 y);
7991float16 __ovld __cnfn nextafter(float16 x, float16 y);
7992#ifdef cl_khr_fp64
7993double __ovld __cnfn nextafter(double x, double y);
7994double2 __ovld __cnfn nextafter(double2 x, double2 y);
7995double3 __ovld __cnfn nextafter(double3 x, double3 y);
7996double4 __ovld __cnfn nextafter(double4 x, double4 y);
7997double8 __ovld __cnfn nextafter(double8 x, double8 y);
7998double16 __ovld __cnfn nextafter(double16 x, double16 y);
7999#endif //cl_khr_fp64
8000#ifdef cl_khr_fp16
8001half __ovld __cnfn nextafter(half x, half y);
8002half2 __ovld __cnfn nextafter(half2 x, half2 y);
8003half3 __ovld __cnfn nextafter(half3 x, half3 y);
8004half4 __ovld __cnfn nextafter(half4 x, half4 y);
8005half8 __ovld __cnfn nextafter(half8 x, half8 y);
8006half16 __ovld __cnfn nextafter(half16 x, half16 y);
8007#endif //cl_khr_fp16
8008
8009/**
8010 * Compute x to the power y.
8011 */
8012float __ovld __cnfn pow(float x, float y);
8013float2 __ovld __cnfn pow(float2 x, float2 y);
8014float3 __ovld __cnfn pow(float3 x, float3 y);
8015float4 __ovld __cnfn pow(float4 x, float4 y);
8016float8 __ovld __cnfn pow(float8 x, float8 y);
8017float16 __ovld __cnfn pow(float16 x, float16 y);
8018#ifdef cl_khr_fp64
8019double __ovld __cnfn pow(double x, double y);
8020double2 __ovld __cnfn pow(double2 x, double2 y);
8021double3 __ovld __cnfn pow(double3 x, double3 y);
8022double4 __ovld __cnfn pow(double4 x, double4 y);
8023double8 __ovld __cnfn pow(double8 x, double8 y);
8024double16 __ovld __cnfn pow(double16 x, double16 y);
8025#endif //cl_khr_fp64
8026#ifdef cl_khr_fp16
8027half __ovld __cnfn pow(half x, half y);
8028half2 __ovld __cnfn pow(half2 x, half2 y);
8029half3 __ovld __cnfn pow(half3 x, half3 y);
8030half4 __ovld __cnfn pow(half4 x, half4 y);
8031half8 __ovld __cnfn pow(half8 x, half8 y);
8032half16 __ovld __cnfn pow(half16 x, half16 y);
8033#endif //cl_khr_fp16
8034
8035/**
8036 * Compute x to the power y, where y is an integer.
8037 */
8038float __ovld __cnfn pown(float x, int y);
8039float2 __ovld __cnfn pown(float2 x, int2 y);
8040float3 __ovld __cnfn pown(float3 x, int3 y);
8041float4 __ovld __cnfn pown(float4 x, int4 y);
8042float8 __ovld __cnfn pown(float8 x, int8 y);
8043float16 __ovld __cnfn pown(float16 x, int16 y);
8044#ifdef cl_khr_fp64
8045double __ovld __cnfn pown(double x, int y);
8046double2 __ovld __cnfn pown(double2 x, int2 y);
8047double3 __ovld __cnfn pown(double3 x, int3 y);
8048double4 __ovld __cnfn pown(double4 x, int4 y);
8049double8 __ovld __cnfn pown(double8 x, int8 y);
8050double16 __ovld __cnfn pown(double16 x, int16 y);
8051#endif //cl_khr_fp64
8052#ifdef cl_khr_fp16
8053half __ovld __cnfn pown(half x, int y);
8054half2 __ovld __cnfn pown(half2 x, int2 y);
8055half3 __ovld __cnfn pown(half3 x, int3 y);
8056half4 __ovld __cnfn pown(half4 x, int4 y);
8057half8 __ovld __cnfn pown(half8 x, int8 y);
8058half16 __ovld __cnfn pown(half16 x, int16 y);
8059#endif //cl_khr_fp16
8060
8061/**
8062 * Compute x to the power y, where x is >= 0.
8063 */
8064float __ovld __cnfn powr(float x, float y);
8065float2 __ovld __cnfn powr(float2 x, float2 y);
8066float3 __ovld __cnfn powr(float3 x, float3 y);
8067float4 __ovld __cnfn powr(float4 x, float4 y);
8068float8 __ovld __cnfn powr(float8 x, float8 y);
8069float16 __ovld __cnfn powr(float16 x, float16 y);
8070#ifdef cl_khr_fp64
8071double __ovld __cnfn powr(double x, double y);
8072double2 __ovld __cnfn powr(double2 x, double2 y);
8073double3 __ovld __cnfn powr(double3 x, double3 y);
8074double4 __ovld __cnfn powr(double4 x, double4 y);
8075double8 __ovld __cnfn powr(double8 x, double8 y);
8076double16 __ovld __cnfn powr(double16 x, double16 y);
8077#endif //cl_khr_fp64
8078#ifdef cl_khr_fp16
8079half __ovld __cnfn powr(half x, half y);
8080half2 __ovld __cnfn powr(half2 x, half2 y);
8081half3 __ovld __cnfn powr(half3 x, half3 y);
8082half4 __ovld __cnfn powr(half4 x, half4 y);
8083half8 __ovld __cnfn powr(half8 x, half8 y);
8084half16 __ovld __cnfn powr(half16 x, half16 y);
8085#endif //cl_khr_fp16
8086
8087/**
8088 * Compute the value r such that r = x - n*y, where n
8089 * is the integer nearest the exact value of x/y. If there
8090 * are two integers closest to x/y, n shall be the even
8091 * one. If r is zero, it is given the same sign as x.
8092 */
8093float __ovld __cnfn remainder(float x, float y);
8094float2 __ovld __cnfn remainder(float2 x, float2 y);
8095float3 __ovld __cnfn remainder(float3 x, float3 y);
8096float4 __ovld __cnfn remainder(float4 x, float4 y);
8097float8 __ovld __cnfn remainder(float8 x, float8 y);
8098float16 __ovld __cnfn remainder(float16 x, float16 y);
8099#ifdef cl_khr_fp64
8100double __ovld __cnfn remainder(double x, double y);
8101double2 __ovld __cnfn remainder(double2 x, double2 y);
8102double3 __ovld __cnfn remainder(double3 x, double3 y);
8103double4 __ovld __cnfn remainder(double4 x, double4 y);
8104double8 __ovld __cnfn remainder(double8 x, double8 y);
8105double16 __ovld __cnfn remainder(double16 x, double16 y);
8106#endif //cl_khr_fp64
8107#ifdef cl_khr_fp16
8108half __ovld __cnfn remainder(half x, half y);
8109half2 __ovld __cnfn remainder(half2 x, half2 y);
8110half3 __ovld __cnfn remainder(half3 x, half3 y);
8111half4 __ovld __cnfn remainder(half4 x, half4 y);
8112half8 __ovld __cnfn remainder(half8 x, half8 y);
8113half16 __ovld __cnfn remainder(half16 x, half16 y);
8114#endif //cl_khr_fp16
8115
8116/**
8117 * The remquo function computes the value r such
8118 * that r = x - n*y, where n is the integer nearest the
8119 * exact value of x/y. If there are two integers closest
8120 * to x/y, n shall be the even one. If r is zero, it is
8121 * given the same sign as x. This is the same value
8122 * that is returned by the remainder function.
8123 * remquo also calculates the lower seven bits of the
8124 * integral quotient x/y, and gives that value the same
8125 * sign as x/y. It stores this signed value in the object
8126 * pointed to by quo.
8127 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008128#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008129float __ovld remquo(float x, float y, int *quo);
8130float2 __ovld remquo(float2 x, float2 y, int2 *quo);
8131float3 __ovld remquo(float3 x, float3 y, int3 *quo);
8132float4 __ovld remquo(float4 x, float4 y, int4 *quo);
8133float8 __ovld remquo(float8 x, float8 y, int8 *quo);
8134float16 __ovld remquo(float16 x, float16 y, int16 *quo);
8135#ifdef cl_khr_fp64
8136double __ovld remquo(double x, double y, int *quo);
8137double2 __ovld remquo(double2 x, double2 y, int2 *quo);
8138double3 __ovld remquo(double3 x, double3 y, int3 *quo);
8139double4 __ovld remquo(double4 x, double4 y, int4 *quo);
8140double8 __ovld remquo(double8 x, double8 y, int8 *quo);
8141double16 __ovld remquo(double16 x, double16 y, int16 *quo);
8142#endif //cl_khr_fp64
8143#ifdef cl_khr_fp16
8144half __ovld remquo(half x, half y, int *quo);
8145half2 __ovld remquo(half2 x, half2 y, int2 *quo);
8146half3 __ovld remquo(half3 x, half3 y, int3 *quo);
8147half4 __ovld remquo(half4 x, half4 y, int4 *quo);
8148half8 __ovld remquo(half8 x, half8 y, int8 *quo);
8149half16 __ovld remquo(half16 x, half16 y, int16 *quo);
8150
8151#endif //cl_khr_fp16
8152#else
8153float __ovld remquo(float x, float y, __global int *quo);
8154float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
8155float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
8156float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
8157float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
8158float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
8159float __ovld remquo(float x, float y, __local int *quo);
8160float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
8161float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
8162float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
8163float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
8164float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
8165float __ovld remquo(float x, float y, __private int *quo);
8166float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
8167float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
8168float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
8169float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
8170float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
8171#ifdef cl_khr_fp64
8172double __ovld remquo(double x, double y, __global int *quo);
8173double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
8174double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
8175double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
8176double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
8177double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
8178double __ovld remquo(double x, double y, __local int *quo);
8179double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
8180double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
8181double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
8182double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
8183double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
8184double __ovld remquo(double x, double y, __private int *quo);
8185double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
8186double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
8187double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
8188double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
8189double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
8190#endif //cl_khr_fp64
8191#ifdef cl_khr_fp16
8192half __ovld remquo(half x, half y, __global int *quo);
8193half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
8194half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
8195half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
8196half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
8197half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
8198half __ovld remquo(half x, half y, __local int *quo);
8199half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
8200half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
8201half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
8202half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
8203half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
8204half __ovld remquo(half x, half y, __private int *quo);
8205half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
8206half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
8207half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8208half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8209half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8210#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008211#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008212/**
8213 * Round to integral value (using round to nearest
8214 * even rounding mode) in floating-point format.
8215 * Refer to section 7.1 for description of rounding
8216 * modes.
8217 */
8218float __ovld __cnfn rint(float);
8219float2 __ovld __cnfn rint(float2);
8220float3 __ovld __cnfn rint(float3);
8221float4 __ovld __cnfn rint(float4);
8222float8 __ovld __cnfn rint(float8);
8223float16 __ovld __cnfn rint(float16);
8224#ifdef cl_khr_fp64
8225double __ovld __cnfn rint(double);
8226double2 __ovld __cnfn rint(double2);
8227double3 __ovld __cnfn rint(double3);
8228double4 __ovld __cnfn rint(double4);
8229double8 __ovld __cnfn rint(double8);
8230double16 __ovld __cnfn rint(double16);
8231#endif //cl_khr_fp64
8232#ifdef cl_khr_fp16
8233half __ovld __cnfn rint(half);
8234half2 __ovld __cnfn rint(half2);
8235half3 __ovld __cnfn rint(half3);
8236half4 __ovld __cnfn rint(half4);
8237half8 __ovld __cnfn rint(half8);
8238half16 __ovld __cnfn rint(half16);
8239#endif //cl_khr_fp16
8240
8241/**
8242 * Compute x to the power 1/y.
8243 */
8244float __ovld __cnfn rootn(float x, int y);
8245float2 __ovld __cnfn rootn(float2 x, int2 y);
8246float3 __ovld __cnfn rootn(float3 x, int3 y);
8247float4 __ovld __cnfn rootn(float4 x, int4 y);
8248float8 __ovld __cnfn rootn(float8 x, int8 y);
8249float16 __ovld __cnfn rootn(float16 x, int16 y);
8250#ifdef cl_khr_fp64
8251double __ovld __cnfn rootn(double x, int y);
8252double2 __ovld __cnfn rootn(double2 x, int2 y);
8253double3 __ovld __cnfn rootn(double3 x, int3 y);
8254double4 __ovld __cnfn rootn(double4 x, int4 y);
8255double8 __ovld __cnfn rootn(double8 x, int8 y);
8256double16 __ovld __cnfn rootn(double16 x, int16 y);
8257#endif //cl_khr_fp64
8258#ifdef cl_khr_fp16
8259half __ovld __cnfn rootn(half x, int y);
8260half2 __ovld __cnfn rootn(half2 x, int2 y);
8261half3 __ovld __cnfn rootn(half3 x, int3 y);
8262half4 __ovld __cnfn rootn(half4 x, int4 y);
8263half8 __ovld __cnfn rootn(half8 x, int8 y);
8264half16 __ovld __cnfn rootn(half16 x, int16 y);
8265#endif //cl_khr_fp16
8266
8267/**
8268 * Return the integral value nearest to x rounding
8269 * halfway cases away from zero, regardless of the
8270 * current rounding direction.
8271 */
8272float __ovld __cnfn round(float x);
8273float2 __ovld __cnfn round(float2 x);
8274float3 __ovld __cnfn round(float3 x);
8275float4 __ovld __cnfn round(float4 x);
8276float8 __ovld __cnfn round(float8 x);
8277float16 __ovld __cnfn round(float16 x);
8278#ifdef cl_khr_fp64
8279double __ovld __cnfn round(double x);
8280double2 __ovld __cnfn round(double2 x);
8281double3 __ovld __cnfn round(double3 x);
8282double4 __ovld __cnfn round(double4 x);
8283double8 __ovld __cnfn round(double8 x);
8284double16 __ovld __cnfn round(double16 x);
8285#endif //cl_khr_fp64
8286#ifdef cl_khr_fp16
8287half __ovld __cnfn round(half x);
8288half2 __ovld __cnfn round(half2 x);
8289half3 __ovld __cnfn round(half3 x);
8290half4 __ovld __cnfn round(half4 x);
8291half8 __ovld __cnfn round(half8 x);
8292half16 __ovld __cnfn round(half16 x);
8293#endif //cl_khr_fp16
8294
8295/**
8296 * Compute inverse square root.
8297 */
8298float __ovld __cnfn rsqrt(float);
8299float2 __ovld __cnfn rsqrt(float2);
8300float3 __ovld __cnfn rsqrt(float3);
8301float4 __ovld __cnfn rsqrt(float4);
8302float8 __ovld __cnfn rsqrt(float8);
8303float16 __ovld __cnfn rsqrt(float16);
8304#ifdef cl_khr_fp64
8305double __ovld __cnfn rsqrt(double);
8306double2 __ovld __cnfn rsqrt(double2);
8307double3 __ovld __cnfn rsqrt(double3);
8308double4 __ovld __cnfn rsqrt(double4);
8309double8 __ovld __cnfn rsqrt(double8);
8310double16 __ovld __cnfn rsqrt(double16);
8311#endif //cl_khr_fp64
8312#ifdef cl_khr_fp16
8313half __ovld __cnfn rsqrt(half);
8314half2 __ovld __cnfn rsqrt(half2);
8315half3 __ovld __cnfn rsqrt(half3);
8316half4 __ovld __cnfn rsqrt(half4);
8317half8 __ovld __cnfn rsqrt(half8);
8318half16 __ovld __cnfn rsqrt(half16);
8319#endif //cl_khr_fp16
8320
8321/**
8322 * Compute sine.
8323 */
8324float __ovld __cnfn sin(float);
8325float2 __ovld __cnfn sin(float2);
8326float3 __ovld __cnfn sin(float3);
8327float4 __ovld __cnfn sin(float4);
8328float8 __ovld __cnfn sin(float8);
8329float16 __ovld __cnfn sin(float16);
8330#ifdef cl_khr_fp64
8331double __ovld __cnfn sin(double);
8332double2 __ovld __cnfn sin(double2);
8333double3 __ovld __cnfn sin(double3);
8334double4 __ovld __cnfn sin(double4);
8335double8 __ovld __cnfn sin(double8);
8336double16 __ovld __cnfn sin(double16);
8337#endif //cl_khr_fp64
8338#ifdef cl_khr_fp16
8339half __ovld __cnfn sin(half);
8340half2 __ovld __cnfn sin(half2);
8341half3 __ovld __cnfn sin(half3);
8342half4 __ovld __cnfn sin(half4);
8343half8 __ovld __cnfn sin(half8);
8344half16 __ovld __cnfn sin(half16);
8345#endif //cl_khr_fp16
8346
8347/**
8348 * Compute sine and cosine of x. The computed sine
8349 * is the return value and computed cosine is returned
8350 * in cosval.
8351 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008352#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008353float __ovld sincos(float x, float *cosval);
8354float2 __ovld sincos(float2 x, float2 *cosval);
8355float3 __ovld sincos(float3 x, float3 *cosval);
8356float4 __ovld sincos(float4 x, float4 *cosval);
8357float8 __ovld sincos(float8 x, float8 *cosval);
8358float16 __ovld sincos(float16 x, float16 *cosval);
8359#ifdef cl_khr_fp64
8360double __ovld sincos(double x, double *cosval);
8361double2 __ovld sincos(double2 x, double2 *cosval);
8362double3 __ovld sincos(double3 x, double3 *cosval);
8363double4 __ovld sincos(double4 x, double4 *cosval);
8364double8 __ovld sincos(double8 x, double8 *cosval);
8365double16 __ovld sincos(double16 x, double16 *cosval);
8366#endif //cl_khr_fp64
8367#ifdef cl_khr_fp16
8368half __ovld sincos(half x, half *cosval);
8369half2 __ovld sincos(half2 x, half2 *cosval);
8370half3 __ovld sincos(half3 x, half3 *cosval);
8371half4 __ovld sincos(half4 x, half4 *cosval);
8372half8 __ovld sincos(half8 x, half8 *cosval);
8373half16 __ovld sincos(half16 x, half16 *cosval);
8374#endif //cl_khr_fp16
8375#else
8376float __ovld sincos(float x, __global float *cosval);
8377float2 __ovld sincos(float2 x, __global float2 *cosval);
8378float3 __ovld sincos(float3 x, __global float3 *cosval);
8379float4 __ovld sincos(float4 x, __global float4 *cosval);
8380float8 __ovld sincos(float8 x, __global float8 *cosval);
8381float16 __ovld sincos(float16 x, __global float16 *cosval);
8382float __ovld sincos(float x, __local float *cosval);
8383float2 __ovld sincos(float2 x, __local float2 *cosval);
8384float3 __ovld sincos(float3 x, __local float3 *cosval);
8385float4 __ovld sincos(float4 x, __local float4 *cosval);
8386float8 __ovld sincos(float8 x, __local float8 *cosval);
8387float16 __ovld sincos(float16 x, __local float16 *cosval);
8388float __ovld sincos(float x, __private float *cosval);
8389float2 __ovld sincos(float2 x, __private float2 *cosval);
8390float3 __ovld sincos(float3 x, __private float3 *cosval);
8391float4 __ovld sincos(float4 x, __private float4 *cosval);
8392float8 __ovld sincos(float8 x, __private float8 *cosval);
8393float16 __ovld sincos(float16 x, __private float16 *cosval);
8394#ifdef cl_khr_fp64
8395double __ovld sincos(double x, __global double *cosval);
8396double2 __ovld sincos(double2 x, __global double2 *cosval);
8397double3 __ovld sincos(double3 x, __global double3 *cosval);
8398double4 __ovld sincos(double4 x, __global double4 *cosval);
8399double8 __ovld sincos(double8 x, __global double8 *cosval);
8400double16 __ovld sincos(double16 x, __global double16 *cosval);
8401double __ovld sincos(double x, __local double *cosval);
8402double2 __ovld sincos(double2 x, __local double2 *cosval);
8403double3 __ovld sincos(double3 x, __local double3 *cosval);
8404double4 __ovld sincos(double4 x, __local double4 *cosval);
8405double8 __ovld sincos(double8 x, __local double8 *cosval);
8406double16 __ovld sincos(double16 x, __local double16 *cosval);
8407double __ovld sincos(double x, __private double *cosval);
8408double2 __ovld sincos(double2 x, __private double2 *cosval);
8409double3 __ovld sincos(double3 x, __private double3 *cosval);
8410double4 __ovld sincos(double4 x, __private double4 *cosval);
8411double8 __ovld sincos(double8 x, __private double8 *cosval);
8412double16 __ovld sincos(double16 x, __private double16 *cosval);
8413#endif //cl_khr_fp64
8414#ifdef cl_khr_fp16
8415half __ovld sincos(half x, __global half *cosval);
8416half2 __ovld sincos(half2 x, __global half2 *cosval);
8417half3 __ovld sincos(half3 x, __global half3 *cosval);
8418half4 __ovld sincos(half4 x, __global half4 *cosval);
8419half8 __ovld sincos(half8 x, __global half8 *cosval);
8420half16 __ovld sincos(half16 x, __global half16 *cosval);
8421half __ovld sincos(half x, __local half *cosval);
8422half2 __ovld sincos(half2 x, __local half2 *cosval);
8423half3 __ovld sincos(half3 x, __local half3 *cosval);
8424half4 __ovld sincos(half4 x, __local half4 *cosval);
8425half8 __ovld sincos(half8 x, __local half8 *cosval);
8426half16 __ovld sincos(half16 x, __local half16 *cosval);
8427half __ovld sincos(half x, __private half *cosval);
8428half2 __ovld sincos(half2 x, __private half2 *cosval);
8429half3 __ovld sincos(half3 x, __private half3 *cosval);
8430half4 __ovld sincos(half4 x, __private half4 *cosval);
8431half8 __ovld sincos(half8 x, __private half8 *cosval);
8432half16 __ovld sincos(half16 x, __private half16 *cosval);
8433#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08008434#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +08008435
8436/**
8437 * Compute hyperbolic sine.
8438 */
8439float __ovld __cnfn sinh(float);
8440float2 __ovld __cnfn sinh(float2);
8441float3 __ovld __cnfn sinh(float3);
8442float4 __ovld __cnfn sinh(float4);
8443float8 __ovld __cnfn sinh(float8);
8444float16 __ovld __cnfn sinh(float16);
8445#ifdef cl_khr_fp64
8446double __ovld __cnfn sinh(double);
8447double2 __ovld __cnfn sinh(double2);
8448double3 __ovld __cnfn sinh(double3);
8449double4 __ovld __cnfn sinh(double4);
8450double8 __ovld __cnfn sinh(double8);
8451double16 __ovld __cnfn sinh(double16);
8452#endif //cl_khr_fp64
8453#ifdef cl_khr_fp16
8454half __ovld __cnfn sinh(half);
8455half2 __ovld __cnfn sinh(half2);
8456half3 __ovld __cnfn sinh(half3);
8457half4 __ovld __cnfn sinh(half4);
8458half8 __ovld __cnfn sinh(half8);
8459half16 __ovld __cnfn sinh(half16);
8460#endif //cl_khr_fp16
8461
8462/**
8463 * Compute sin (PI * x).
8464 */
8465float __ovld __cnfn sinpi(float x);
8466float2 __ovld __cnfn sinpi(float2 x);
8467float3 __ovld __cnfn sinpi(float3 x);
8468float4 __ovld __cnfn sinpi(float4 x);
8469float8 __ovld __cnfn sinpi(float8 x);
8470float16 __ovld __cnfn sinpi(float16 x);
8471#ifdef cl_khr_fp64
8472double __ovld __cnfn sinpi(double x);
8473double2 __ovld __cnfn sinpi(double2 x);
8474double3 __ovld __cnfn sinpi(double3 x);
8475double4 __ovld __cnfn sinpi(double4 x);
8476double8 __ovld __cnfn sinpi(double8 x);
8477double16 __ovld __cnfn sinpi(double16 x);
8478#endif //cl_khr_fp64
8479#ifdef cl_khr_fp16
8480half __ovld __cnfn sinpi(half x);
8481half2 __ovld __cnfn sinpi(half2 x);
8482half3 __ovld __cnfn sinpi(half3 x);
8483half4 __ovld __cnfn sinpi(half4 x);
8484half8 __ovld __cnfn sinpi(half8 x);
8485half16 __ovld __cnfn sinpi(half16 x);
8486#endif //cl_khr_fp16
8487
8488/**
8489 * Compute square root.
8490 */
8491float __ovld __cnfn sqrt(float);
8492float2 __ovld __cnfn sqrt(float2);
8493float3 __ovld __cnfn sqrt(float3);
8494float4 __ovld __cnfn sqrt(float4);
8495float8 __ovld __cnfn sqrt(float8);
8496float16 __ovld __cnfn sqrt(float16);
8497#ifdef cl_khr_fp64
8498double __ovld __cnfn sqrt(double);
8499double2 __ovld __cnfn sqrt(double2);
8500double3 __ovld __cnfn sqrt(double3);
8501double4 __ovld __cnfn sqrt(double4);
8502double8 __ovld __cnfn sqrt(double8);
8503double16 __ovld __cnfn sqrt(double16);
8504#endif //cl_khr_fp64
8505#ifdef cl_khr_fp16
8506half __ovld __cnfn sqrt(half);
8507half2 __ovld __cnfn sqrt(half2);
8508half3 __ovld __cnfn sqrt(half3);
8509half4 __ovld __cnfn sqrt(half4);
8510half8 __ovld __cnfn sqrt(half8);
8511half16 __ovld __cnfn sqrt(half16);
8512#endif //cl_khr_fp16
8513
8514/**
8515 * Compute tangent.
8516 */
8517float __ovld __cnfn tan(float);
8518float2 __ovld __cnfn tan(float2);
8519float3 __ovld __cnfn tan(float3);
8520float4 __ovld __cnfn tan(float4);
8521float8 __ovld __cnfn tan(float8);
8522float16 __ovld __cnfn tan(float16);
8523#ifdef cl_khr_fp64
8524double __ovld __cnfn tan(double);
8525double2 __ovld __cnfn tan(double2);
8526double3 __ovld __cnfn tan(double3);
8527double4 __ovld __cnfn tan(double4);
8528double8 __ovld __cnfn tan(double8);
8529double16 __ovld __cnfn tan(double16);
8530#endif //cl_khr_fp64
8531#ifdef cl_khr_fp16
8532half __ovld __cnfn tan(half);
8533half2 __ovld __cnfn tan(half2);
8534half3 __ovld __cnfn tan(half3);
8535half4 __ovld __cnfn tan(half4);
8536half8 __ovld __cnfn tan(half8);
8537half16 __ovld __cnfn tan(half16);
8538#endif //cl_khr_fp16
8539
8540/**
8541 * Compute hyperbolic tangent.
8542 */
8543float __ovld __cnfn tanh(float);
8544float2 __ovld __cnfn tanh(float2);
8545float3 __ovld __cnfn tanh(float3);
8546float4 __ovld __cnfn tanh(float4);
8547float8 __ovld __cnfn tanh(float8);
8548float16 __ovld __cnfn tanh(float16);
8549#ifdef cl_khr_fp64
8550double __ovld __cnfn tanh(double);
8551double2 __ovld __cnfn tanh(double2);
8552double3 __ovld __cnfn tanh(double3);
8553double4 __ovld __cnfn tanh(double4);
8554double8 __ovld __cnfn tanh(double8);
8555double16 __ovld __cnfn tanh(double16);
8556#endif //cl_khr_fp64
8557#ifdef cl_khr_fp16
8558half __ovld __cnfn tanh(half);
8559half2 __ovld __cnfn tanh(half2);
8560half3 __ovld __cnfn tanh(half3);
8561half4 __ovld __cnfn tanh(half4);
8562half8 __ovld __cnfn tanh(half8);
8563half16 __ovld __cnfn tanh(half16);
8564#endif //cl_khr_fp16
8565
8566/**
8567 * Compute tan (PI * x).
8568 */
8569float __ovld __cnfn tanpi(float x);
8570float2 __ovld __cnfn tanpi(float2 x);
8571float3 __ovld __cnfn tanpi(float3 x);
8572float4 __ovld __cnfn tanpi(float4 x);
8573float8 __ovld __cnfn tanpi(float8 x);
8574float16 __ovld __cnfn tanpi(float16 x);
8575#ifdef cl_khr_fp64
8576double __ovld __cnfn tanpi(double x);
8577double2 __ovld __cnfn tanpi(double2 x);
8578double3 __ovld __cnfn tanpi(double3 x);
8579double4 __ovld __cnfn tanpi(double4 x);
8580double8 __ovld __cnfn tanpi(double8 x);
8581double16 __ovld __cnfn tanpi(double16 x);
8582#endif //cl_khr_fp64
8583#ifdef cl_khr_fp16
8584half __ovld __cnfn tanpi(half x);
8585half2 __ovld __cnfn tanpi(half2 x);
8586half3 __ovld __cnfn tanpi(half3 x);
8587half4 __ovld __cnfn tanpi(half4 x);
8588half8 __ovld __cnfn tanpi(half8 x);
8589half16 __ovld __cnfn tanpi(half16 x);
8590#endif //cl_khr_fp16
8591
8592/**
8593 * Compute the gamma function.
8594 */
8595float __ovld __cnfn tgamma(float);
8596float2 __ovld __cnfn tgamma(float2);
8597float3 __ovld __cnfn tgamma(float3);
8598float4 __ovld __cnfn tgamma(float4);
8599float8 __ovld __cnfn tgamma(float8);
8600float16 __ovld __cnfn tgamma(float16);
8601#ifdef cl_khr_fp64
8602double __ovld __cnfn tgamma(double);
8603double2 __ovld __cnfn tgamma(double2);
8604double3 __ovld __cnfn tgamma(double3);
8605double4 __ovld __cnfn tgamma(double4);
8606double8 __ovld __cnfn tgamma(double8);
8607double16 __ovld __cnfn tgamma(double16);
8608#endif //cl_khr_fp64
8609#ifdef cl_khr_fp16
8610half __ovld __cnfn tgamma(half);
8611half2 __ovld __cnfn tgamma(half2);
8612half3 __ovld __cnfn tgamma(half3);
8613half4 __ovld __cnfn tgamma(half4);
8614half8 __ovld __cnfn tgamma(half8);
8615half16 __ovld __cnfn tgamma(half16);
8616#endif //cl_khr_fp16
8617
8618/**
8619 * Round to integral value using the round to zero
8620 * rounding mode.
8621 */
8622float __ovld __cnfn trunc(float);
8623float2 __ovld __cnfn trunc(float2);
8624float3 __ovld __cnfn trunc(float3);
8625float4 __ovld __cnfn trunc(float4);
8626float8 __ovld __cnfn trunc(float8);
8627float16 __ovld __cnfn trunc(float16);
8628#ifdef cl_khr_fp64
8629double __ovld __cnfn trunc(double);
8630double2 __ovld __cnfn trunc(double2);
8631double3 __ovld __cnfn trunc(double3);
8632double4 __ovld __cnfn trunc(double4);
8633double8 __ovld __cnfn trunc(double8);
8634double16 __ovld __cnfn trunc(double16);
8635#endif //cl_khr_fp64
8636#ifdef cl_khr_fp16
8637half __ovld __cnfn trunc(half);
8638half2 __ovld __cnfn trunc(half2);
8639half3 __ovld __cnfn trunc(half3);
8640half4 __ovld __cnfn trunc(half4);
8641half8 __ovld __cnfn trunc(half8);
8642half16 __ovld __cnfn trunc(half16);
8643#endif //cl_khr_fp16
8644
8645/**
8646 * Compute cosine. x must be in the range -2^16 ... +2^16.
8647 */
8648float __ovld __cnfn half_cos(float x);
8649float2 __ovld __cnfn half_cos(float2 x);
8650float3 __ovld __cnfn half_cos(float3 x);
8651float4 __ovld __cnfn half_cos(float4 x);
8652float8 __ovld __cnfn half_cos(float8 x);
8653float16 __ovld __cnfn half_cos(float16 x);
8654
8655/**
8656 * Compute x / y.
8657 */
8658float __ovld __cnfn half_divide(float x, float y);
8659float2 __ovld __cnfn half_divide(float2 x, float2 y);
8660float3 __ovld __cnfn half_divide(float3 x, float3 y);
8661float4 __ovld __cnfn half_divide(float4 x, float4 y);
8662float8 __ovld __cnfn half_divide(float8 x, float8 y);
8663float16 __ovld __cnfn half_divide(float16 x, float16 y);
8664
8665/**
8666 * Compute the base- e exponential of x.
8667 */
8668float __ovld __cnfn half_exp(float x);
8669float2 __ovld __cnfn half_exp(float2 x);
8670float3 __ovld __cnfn half_exp(float3 x);
8671float4 __ovld __cnfn half_exp(float4 x);
8672float8 __ovld __cnfn half_exp(float8 x);
8673float16 __ovld __cnfn half_exp(float16 x);
8674
8675/**
8676 * Compute the base- 2 exponential of x.
8677 */
8678float __ovld __cnfn half_exp2(float x);
8679float2 __ovld __cnfn half_exp2(float2 x);
8680float3 __ovld __cnfn half_exp2(float3 x);
8681float4 __ovld __cnfn half_exp2(float4 x);
8682float8 __ovld __cnfn half_exp2(float8 x);
8683float16 __ovld __cnfn half_exp2(float16 x);
8684
8685/**
8686 * Compute the base- 10 exponential of x.
8687 */
8688float __ovld __cnfn half_exp10(float x);
8689float2 __ovld __cnfn half_exp10(float2 x);
8690float3 __ovld __cnfn half_exp10(float3 x);
8691float4 __ovld __cnfn half_exp10(float4 x);
8692float8 __ovld __cnfn half_exp10(float8 x);
8693float16 __ovld __cnfn half_exp10(float16 x);
8694
8695/**
8696 * Compute natural logarithm.
8697 */
8698float __ovld __cnfn half_log(float x);
8699float2 __ovld __cnfn half_log(float2 x);
8700float3 __ovld __cnfn half_log(float3 x);
8701float4 __ovld __cnfn half_log(float4 x);
8702float8 __ovld __cnfn half_log(float8 x);
8703float16 __ovld __cnfn half_log(float16 x);
8704
8705/**
8706 * Compute a base 2 logarithm.
8707 */
8708float __ovld __cnfn half_log2(float x);
8709float2 __ovld __cnfn half_log2(float2 x);
8710float3 __ovld __cnfn half_log2(float3 x);
8711float4 __ovld __cnfn half_log2(float4 x);
8712float8 __ovld __cnfn half_log2(float8 x);
8713float16 __ovld __cnfn half_log2(float16 x);
8714
8715/**
8716 * Compute a base 10 logarithm.
8717 */
8718float __ovld __cnfn half_log10(float x);
8719float2 __ovld __cnfn half_log10(float2 x);
8720float3 __ovld __cnfn half_log10(float3 x);
8721float4 __ovld __cnfn half_log10(float4 x);
8722float8 __ovld __cnfn half_log10(float8 x);
8723float16 __ovld __cnfn half_log10(float16 x);
8724
8725/**
8726 * Compute x to the power y, where x is >= 0.
8727 */
8728float __ovld __cnfn half_powr(float x, float y);
8729float2 __ovld __cnfn half_powr(float2 x, float2 y);
8730float3 __ovld __cnfn half_powr(float3 x, float3 y);
8731float4 __ovld __cnfn half_powr(float4 x, float4 y);
8732float8 __ovld __cnfn half_powr(float8 x, float8 y);
8733float16 __ovld __cnfn half_powr(float16 x, float16 y);
8734
8735/**
8736 * Compute reciprocal.
8737 */
8738float __ovld __cnfn half_recip(float x);
8739float2 __ovld __cnfn half_recip(float2 x);
8740float3 __ovld __cnfn half_recip(float3 x);
8741float4 __ovld __cnfn half_recip(float4 x);
8742float8 __ovld __cnfn half_recip(float8 x);
8743float16 __ovld __cnfn half_recip(float16 x);
8744
8745/**
8746 * Compute inverse square root.
8747 */
8748float __ovld __cnfn half_rsqrt(float x);
8749float2 __ovld __cnfn half_rsqrt(float2 x);
8750float3 __ovld __cnfn half_rsqrt(float3 x);
8751float4 __ovld __cnfn half_rsqrt(float4 x);
8752float8 __ovld __cnfn half_rsqrt(float8 x);
8753float16 __ovld __cnfn half_rsqrt(float16 x);
8754
8755/**
8756 * Compute sine. x must be in the range -2^16 ... +2^16.
8757 */
8758float __ovld __cnfn half_sin(float x);
8759float2 __ovld __cnfn half_sin(float2 x);
8760float3 __ovld __cnfn half_sin(float3 x);
8761float4 __ovld __cnfn half_sin(float4 x);
8762float8 __ovld __cnfn half_sin(float8 x);
8763float16 __ovld __cnfn half_sin(float16 x);
8764
8765/**
8766 * Compute square root.
8767 */
8768float __ovld __cnfn half_sqrt(float x);
8769float2 __ovld __cnfn half_sqrt(float2 x);
8770float3 __ovld __cnfn half_sqrt(float3 x);
8771float4 __ovld __cnfn half_sqrt(float4 x);
8772float8 __ovld __cnfn half_sqrt(float8 x);
8773float16 __ovld __cnfn half_sqrt(float16 x);
8774
8775/**
8776 * Compute tangent. x must be in the range -216 ... +216.
8777 */
8778float __ovld __cnfn half_tan(float x);
8779float2 __ovld __cnfn half_tan(float2 x);
8780float3 __ovld __cnfn half_tan(float3 x);
8781float4 __ovld __cnfn half_tan(float4 x);
8782float8 __ovld __cnfn half_tan(float8 x);
8783float16 __ovld __cnfn half_tan(float16 x);
8784
8785/**
8786 * Compute cosine over an implementation-defined range.
8787 * The maximum error is implementation-defined.
8788 */
8789float __ovld __cnfn native_cos(float x);
8790float2 __ovld __cnfn native_cos(float2 x);
8791float3 __ovld __cnfn native_cos(float3 x);
8792float4 __ovld __cnfn native_cos(float4 x);
8793float8 __ovld __cnfn native_cos(float8 x);
8794float16 __ovld __cnfn native_cos(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008795
8796/**
8797 * Compute x / y over an implementation-defined range.
8798 * The maximum error is implementation-defined.
8799 */
8800float __ovld __cnfn native_divide(float x, float y);
8801float2 __ovld __cnfn native_divide(float2 x, float2 y);
8802float3 __ovld __cnfn native_divide(float3 x, float3 y);
8803float4 __ovld __cnfn native_divide(float4 x, float4 y);
8804float8 __ovld __cnfn native_divide(float8 x, float8 y);
8805float16 __ovld __cnfn native_divide(float16 x, float16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08008806
8807/**
8808 * Compute the base- e exponential of x over an
8809 * implementation-defined range. The maximum error is
8810 * implementation-defined.
8811 */
8812float __ovld __cnfn native_exp(float x);
8813float2 __ovld __cnfn native_exp(float2 x);
8814float3 __ovld __cnfn native_exp(float3 x);
8815float4 __ovld __cnfn native_exp(float4 x);
8816float8 __ovld __cnfn native_exp(float8 x);
8817float16 __ovld __cnfn native_exp(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008818
8819/**
8820 * Compute the base- 2 exponential of x over an
8821 * implementation-defined range. The maximum error is
8822 * implementation-defined.
8823 */
8824float __ovld __cnfn native_exp2(float x);
8825float2 __ovld __cnfn native_exp2(float2 x);
8826float3 __ovld __cnfn native_exp2(float3 x);
8827float4 __ovld __cnfn native_exp2(float4 x);
8828float8 __ovld __cnfn native_exp2(float8 x);
8829float16 __ovld __cnfn native_exp2(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008830
8831/**
8832 * Compute the base- 10 exponential of x over an
8833 * implementation-defined range. The maximum error is
8834 * implementation-defined.
8835 */
8836float __ovld __cnfn native_exp10(float x);
8837float2 __ovld __cnfn native_exp10(float2 x);
8838float3 __ovld __cnfn native_exp10(float3 x);
8839float4 __ovld __cnfn native_exp10(float4 x);
8840float8 __ovld __cnfn native_exp10(float8 x);
8841float16 __ovld __cnfn native_exp10(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008842
8843/**
8844 * Compute natural logarithm over an implementationdefined
8845 * range. The maximum error is implementation
8846 * defined.
8847 */
8848float __ovld __cnfn native_log(float x);
8849float2 __ovld __cnfn native_log(float2 x);
8850float3 __ovld __cnfn native_log(float3 x);
8851float4 __ovld __cnfn native_log(float4 x);
8852float8 __ovld __cnfn native_log(float8 x);
8853float16 __ovld __cnfn native_log(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008854
8855/**
8856 * Compute a base 2 logarithm over an implementationdefined
8857 * range. The maximum error is implementationdefined.
8858 */
8859float __ovld __cnfn native_log2(float x);
8860float2 __ovld __cnfn native_log2(float2 x);
8861float3 __ovld __cnfn native_log2(float3 x);
8862float4 __ovld __cnfn native_log2(float4 x);
8863float8 __ovld __cnfn native_log2(float8 x);
8864float16 __ovld __cnfn native_log2(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008865
8866/**
8867 * Compute a base 10 logarithm over an implementationdefined
8868 * range. The maximum error is implementationdefined.
8869 */
8870float __ovld __cnfn native_log10(float x);
8871float2 __ovld __cnfn native_log10(float2 x);
8872float3 __ovld __cnfn native_log10(float3 x);
8873float4 __ovld __cnfn native_log10(float4 x);
8874float8 __ovld __cnfn native_log10(float8 x);
8875float16 __ovld __cnfn native_log10(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008876
8877/**
8878 * Compute x to the power y, where x is >= 0. The range of
8879 * x and y are implementation-defined. The maximum error
8880 * is implementation-defined.
8881 */
8882float __ovld __cnfn native_powr(float x, float y);
8883float2 __ovld __cnfn native_powr(float2 x, float2 y);
8884float3 __ovld __cnfn native_powr(float3 x, float3 y);
8885float4 __ovld __cnfn native_powr(float4 x, float4 y);
8886float8 __ovld __cnfn native_powr(float8 x, float8 y);
8887float16 __ovld __cnfn native_powr(float16 x, float16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08008888
8889/**
8890 * Compute reciprocal over an implementation-defined
8891 * range. The maximum error is implementation-defined.
8892 */
8893float __ovld __cnfn native_recip(float x);
8894float2 __ovld __cnfn native_recip(float2 x);
8895float3 __ovld __cnfn native_recip(float3 x);
8896float4 __ovld __cnfn native_recip(float4 x);
8897float8 __ovld __cnfn native_recip(float8 x);
8898float16 __ovld __cnfn native_recip(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008899
8900/**
8901 * Compute inverse square root over an implementationdefined
8902 * range. The maximum error is implementationdefined.
8903 */
8904float __ovld __cnfn native_rsqrt(float x);
8905float2 __ovld __cnfn native_rsqrt(float2 x);
8906float3 __ovld __cnfn native_rsqrt(float3 x);
8907float4 __ovld __cnfn native_rsqrt(float4 x);
8908float8 __ovld __cnfn native_rsqrt(float8 x);
8909float16 __ovld __cnfn native_rsqrt(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008910
8911/**
8912 * Compute sine over an implementation-defined range.
8913 * The maximum error is implementation-defined.
8914 */
8915float __ovld __cnfn native_sin(float x);
8916float2 __ovld __cnfn native_sin(float2 x);
8917float3 __ovld __cnfn native_sin(float3 x);
8918float4 __ovld __cnfn native_sin(float4 x);
8919float8 __ovld __cnfn native_sin(float8 x);
8920float16 __ovld __cnfn native_sin(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008921
8922/**
8923 * Compute square root over an implementation-defined
8924 * range. The maximum error is implementation-defined.
8925 */
8926float __ovld __cnfn native_sqrt(float x);
8927float2 __ovld __cnfn native_sqrt(float2 x);
8928float3 __ovld __cnfn native_sqrt(float3 x);
8929float4 __ovld __cnfn native_sqrt(float4 x);
8930float8 __ovld __cnfn native_sqrt(float8 x);
8931float16 __ovld __cnfn native_sqrt(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008932
8933/**
8934 * Compute tangent over an implementation-defined range.
8935 * The maximum error is implementation-defined.
8936 */
8937float __ovld __cnfn native_tan(float x);
8938float2 __ovld __cnfn native_tan(float2 x);
8939float3 __ovld __cnfn native_tan(float3 x);
8940float4 __ovld __cnfn native_tan(float4 x);
8941float8 __ovld __cnfn native_tan(float8 x);
8942float16 __ovld __cnfn native_tan(float16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +08008943
8944// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
8945
8946/**
8947 * Returns | x |.
8948 */
8949uchar __ovld __cnfn abs(char x);
8950uchar __ovld __cnfn abs(uchar x);
8951uchar2 __ovld __cnfn abs(char2 x);
8952uchar2 __ovld __cnfn abs(uchar2 x);
8953uchar3 __ovld __cnfn abs(char3 x);
8954uchar3 __ovld __cnfn abs(uchar3 x);
8955uchar4 __ovld __cnfn abs(char4 x);
8956uchar4 __ovld __cnfn abs(uchar4 x);
8957uchar8 __ovld __cnfn abs(char8 x);
8958uchar8 __ovld __cnfn abs(uchar8 x);
8959uchar16 __ovld __cnfn abs(char16 x);
8960uchar16 __ovld __cnfn abs(uchar16 x);
8961ushort __ovld __cnfn abs(short x);
8962ushort __ovld __cnfn abs(ushort x);
8963ushort2 __ovld __cnfn abs(short2 x);
8964ushort2 __ovld __cnfn abs(ushort2 x);
8965ushort3 __ovld __cnfn abs(short3 x);
8966ushort3 __ovld __cnfn abs(ushort3 x);
8967ushort4 __ovld __cnfn abs(short4 x);
8968ushort4 __ovld __cnfn abs(ushort4 x);
8969ushort8 __ovld __cnfn abs(short8 x);
8970ushort8 __ovld __cnfn abs(ushort8 x);
8971ushort16 __ovld __cnfn abs(short16 x);
8972ushort16 __ovld __cnfn abs(ushort16 x);
8973uint __ovld __cnfn abs(int x);
8974uint __ovld __cnfn abs(uint x);
8975uint2 __ovld __cnfn abs(int2 x);
8976uint2 __ovld __cnfn abs(uint2 x);
8977uint3 __ovld __cnfn abs(int3 x);
8978uint3 __ovld __cnfn abs(uint3 x);
8979uint4 __ovld __cnfn abs(int4 x);
8980uint4 __ovld __cnfn abs(uint4 x);
8981uint8 __ovld __cnfn abs(int8 x);
8982uint8 __ovld __cnfn abs(uint8 x);
8983uint16 __ovld __cnfn abs(int16 x);
8984uint16 __ovld __cnfn abs(uint16 x);
8985ulong __ovld __cnfn abs(long x);
8986ulong __ovld __cnfn abs(ulong x);
8987ulong2 __ovld __cnfn abs(long2 x);
8988ulong2 __ovld __cnfn abs(ulong2 x);
8989ulong3 __ovld __cnfn abs(long3 x);
8990ulong3 __ovld __cnfn abs(ulong3 x);
8991ulong4 __ovld __cnfn abs(long4 x);
8992ulong4 __ovld __cnfn abs(ulong4 x);
8993ulong8 __ovld __cnfn abs(long8 x);
8994ulong8 __ovld __cnfn abs(ulong8 x);
8995ulong16 __ovld __cnfn abs(long16 x);
8996ulong16 __ovld __cnfn abs(ulong16 x);
8997
8998/**
8999 * Returns | x - y | without modulo overflow.
9000 */
9001uchar __ovld __cnfn abs_diff(char x, char y);
9002uchar __ovld __cnfn abs_diff(uchar x, uchar y);
9003uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
9004uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
9005uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
9006uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
9007uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
9008uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
9009uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
9010uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
9011uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
9012uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
9013ushort __ovld __cnfn abs_diff(short x, short y);
9014ushort __ovld __cnfn abs_diff(ushort x, ushort y);
9015ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
9016ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
9017ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
9018ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
9019ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
9020ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
9021ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
9022ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
9023ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
9024ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
9025uint __ovld __cnfn abs_diff(int x, int y);
9026uint __ovld __cnfn abs_diff(uint x, uint y);
9027uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
9028uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
9029uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
9030uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
9031uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
9032uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
9033uint8 __ovld __cnfn abs_diff(int8 x, int8 y);
9034uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y);
9035uint16 __ovld __cnfn abs_diff(int16 x, int16 y);
9036uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y);
9037ulong __ovld __cnfn abs_diff(long x, long y);
9038ulong __ovld __cnfn abs_diff(ulong x, ulong y);
9039ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
9040ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
9041ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
9042ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
9043ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
9044ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
9045ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
9046ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
9047ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
9048ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
9049
9050/**
9051 * Returns x + y and saturates the result.
9052 */
9053char __ovld __cnfn add_sat(char x, char y);
9054uchar __ovld __cnfn add_sat(uchar x, uchar y);
9055char2 __ovld __cnfn add_sat(char2 x, char2 y);
9056uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
9057char3 __ovld __cnfn add_sat(char3 x, char3 y);
9058uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
9059char4 __ovld __cnfn add_sat(char4 x, char4 y);
9060uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
9061char8 __ovld __cnfn add_sat(char8 x, char8 y);
9062uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
9063char16 __ovld __cnfn add_sat(char16 x, char16 y);
9064uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
9065short __ovld __cnfn add_sat(short x, short y);
9066ushort __ovld __cnfn add_sat(ushort x, ushort y);
9067short2 __ovld __cnfn add_sat(short2 x, short2 y);
9068ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
9069short3 __ovld __cnfn add_sat(short3 x, short3 y);
9070ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
9071short4 __ovld __cnfn add_sat(short4 x, short4 y);
9072ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
9073short8 __ovld __cnfn add_sat(short8 x, short8 y);
9074ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
9075short16 __ovld __cnfn add_sat(short16 x, short16 y);
9076ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
9077int __ovld __cnfn add_sat(int x, int y);
9078uint __ovld __cnfn add_sat(uint x, uint y);
9079int2 __ovld __cnfn add_sat(int2 x, int2 y);
9080uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
9081int3 __ovld __cnfn add_sat(int3 x, int3 y);
9082uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
9083int4 __ovld __cnfn add_sat(int4 x, int4 y);
9084uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
9085int8 __ovld __cnfn add_sat(int8 x, int8 y);
9086uint8 __ovld __cnfn add_sat(uint8 x, uint8 y);
9087int16 __ovld __cnfn add_sat(int16 x, int16 y);
9088uint16 __ovld __cnfn add_sat(uint16 x, uint16 y);
9089long __ovld __cnfn add_sat(long x, long y);
9090ulong __ovld __cnfn add_sat(ulong x, ulong y);
9091long2 __ovld __cnfn add_sat(long2 x, long2 y);
9092ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
9093long3 __ovld __cnfn add_sat(long3 x, long3 y);
9094ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
9095long4 __ovld __cnfn add_sat(long4 x, long4 y);
9096ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
9097long8 __ovld __cnfn add_sat(long8 x, long8 y);
9098ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
9099long16 __ovld __cnfn add_sat(long16 x, long16 y);
9100ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
9101
9102/**
9103 * Returns (x + y) >> 1. The intermediate sum does
9104 * not modulo overflow.
9105 */
9106char __ovld __cnfn hadd(char x, char y);
9107uchar __ovld __cnfn hadd(uchar x, uchar y);
9108char2 __ovld __cnfn hadd(char2 x, char2 y);
9109uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
9110char3 __ovld __cnfn hadd(char3 x, char3 y);
9111uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
9112char4 __ovld __cnfn hadd(char4 x, char4 y);
9113uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
9114char8 __ovld __cnfn hadd(char8 x, char8 y);
9115uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
9116char16 __ovld __cnfn hadd(char16 x, char16 y);
9117uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
9118short __ovld __cnfn hadd(short x, short y);
9119ushort __ovld __cnfn hadd(ushort x, ushort y);
9120short2 __ovld __cnfn hadd(short2 x, short2 y);
9121ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
9122short3 __ovld __cnfn hadd(short3 x, short3 y);
9123ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
9124short4 __ovld __cnfn hadd(short4 x, short4 y);
9125ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
9126short8 __ovld __cnfn hadd(short8 x, short8 y);
9127ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
9128short16 __ovld __cnfn hadd(short16 x, short16 y);
9129ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
9130int __ovld __cnfn hadd(int x, int y);
9131uint __ovld __cnfn hadd(uint x, uint y);
9132int2 __ovld __cnfn hadd(int2 x, int2 y);
9133uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
9134int3 __ovld __cnfn hadd(int3 x, int3 y);
9135uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
9136int4 __ovld __cnfn hadd(int4 x, int4 y);
9137uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
9138int8 __ovld __cnfn hadd(int8 x, int8 y);
9139uint8 __ovld __cnfn hadd(uint8 x, uint8 y);
9140int16 __ovld __cnfn hadd(int16 x, int16 y);
9141uint16 __ovld __cnfn hadd(uint16 x, uint16 y);
9142long __ovld __cnfn hadd(long x, long y);
9143ulong __ovld __cnfn hadd(ulong x, ulong y);
9144long2 __ovld __cnfn hadd(long2 x, long2 y);
9145ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
9146long3 __ovld __cnfn hadd(long3 x, long3 y);
9147ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
9148long4 __ovld __cnfn hadd(long4 x, long4 y);
9149ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
9150long8 __ovld __cnfn hadd(long8 x, long8 y);
9151ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
9152long16 __ovld __cnfn hadd(long16 x, long16 y);
9153ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
9154
9155/**
9156 * Returns (x + y + 1) >> 1. The intermediate sum
9157 * does not modulo overflow.
9158 */
9159char __ovld __cnfn rhadd(char x, char y);
9160uchar __ovld __cnfn rhadd(uchar x, uchar y);
9161char2 __ovld __cnfn rhadd(char2 x, char2 y);
9162uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
9163char3 __ovld __cnfn rhadd(char3 x, char3 y);
9164uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
9165char4 __ovld __cnfn rhadd(char4 x, char4 y);
9166uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
9167char8 __ovld __cnfn rhadd(char8 x, char8 y);
9168uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
9169char16 __ovld __cnfn rhadd(char16 x, char16 y);
9170uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
9171short __ovld __cnfn rhadd(short x, short y);
9172ushort __ovld __cnfn rhadd(ushort x, ushort y);
9173short2 __ovld __cnfn rhadd(short2 x, short2 y);
9174ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
9175short3 __ovld __cnfn rhadd(short3 x, short3 y);
9176ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
9177short4 __ovld __cnfn rhadd(short4 x, short4 y);
9178ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
9179short8 __ovld __cnfn rhadd(short8 x, short8 y);
9180ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
9181short16 __ovld __cnfn rhadd(short16 x, short16 y);
9182ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
9183int __ovld __cnfn rhadd(int x, int y);
9184uint __ovld __cnfn rhadd(uint x, uint y);
9185int2 __ovld __cnfn rhadd(int2 x, int2 y);
9186uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
9187int3 __ovld __cnfn rhadd(int3 x, int3 y);
9188uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
9189int4 __ovld __cnfn rhadd(int4 x, int4 y);
9190uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
9191int8 __ovld __cnfn rhadd(int8 x, int8 y);
9192uint8 __ovld __cnfn rhadd(uint8 x, uint8 y);
9193int16 __ovld __cnfn rhadd(int16 x, int16 y);
9194uint16 __ovld __cnfn rhadd(uint16 x, uint16 y);
9195long __ovld __cnfn rhadd(long x, long y);
9196ulong __ovld __cnfn rhadd(ulong x, ulong y);
9197long2 __ovld __cnfn rhadd(long2 x, long2 y);
9198ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
9199long3 __ovld __cnfn rhadd(long3 x, long3 y);
9200ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
9201long4 __ovld __cnfn rhadd(long4 x, long4 y);
9202ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
9203long8 __ovld __cnfn rhadd(long8 x, long8 y);
9204ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
9205long16 __ovld __cnfn rhadd(long16 x, long16 y);
9206ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
9207
9208/**
9209 * Returns min(max(x, minval), maxval).
9210 * Results are undefined if minval > maxval.
9211 */
9212char __ovld __cnfn clamp(char x, char minval, char maxval);
9213uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval);
9214char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
9215uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
9216char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
9217uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
9218char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
9219uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
9220char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
9221uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
9222char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
9223uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
9224short __ovld __cnfn clamp(short x, short minval, short maxval);
9225ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval);
9226short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
9227ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
9228short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
9229ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
9230short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
9231ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
9232short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
9233ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
9234short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
9235ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
9236int __ovld __cnfn clamp(int x, int minval, int maxval);
9237uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
9238int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
9239uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
9240int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
9241uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
9242int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
9243uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
9244int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
9245uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval);
9246int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval);
9247uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval);
9248long __ovld __cnfn clamp(long x, long minval, long maxval);
9249ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval);
9250long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
9251ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
9252long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
9253ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
9254long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
9255ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
9256long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
9257ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
9258long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
9259ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009260char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
9261uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
9262char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
9263uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
9264char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
9265uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
9266char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
9267uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
9268char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
9269uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009270short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
9271ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
9272short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
9273ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
9274short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
9275ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
9276short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
9277ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
9278short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
9279ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009280int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
9281uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
9282int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
9283uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
9284int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
9285uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
9286int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
9287uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval);
9288int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
9289uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval);
Logan Chien2833ffb2018-10-09 10:03:24 +08009290long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
9291ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
9292long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
9293ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
9294long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
9295ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
9296long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
9297ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
9298long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
9299ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
9300
9301/**
9302 * Returns the number of leading 0-bits in x, starting
9303 * at the most significant bit position.
9304 */
9305char __ovld __cnfn clz(char x);
9306uchar __ovld __cnfn clz(uchar x);
9307char2 __ovld __cnfn clz(char2 x);
9308uchar2 __ovld __cnfn clz(uchar2 x);
9309char3 __ovld __cnfn clz(char3 x);
9310uchar3 __ovld __cnfn clz(uchar3 x);
9311char4 __ovld __cnfn clz(char4 x);
9312uchar4 __ovld __cnfn clz(uchar4 x);
9313char8 __ovld __cnfn clz(char8 x);
9314uchar8 __ovld __cnfn clz(uchar8 x);
9315char16 __ovld __cnfn clz(char16 x);
9316uchar16 __ovld __cnfn clz(uchar16 x);
9317short __ovld __cnfn clz(short x);
9318ushort __ovld __cnfn clz(ushort x);
9319short2 __ovld __cnfn clz(short2 x);
9320ushort2 __ovld __cnfn clz(ushort2 x);
9321short3 __ovld __cnfn clz(short3 x);
9322ushort3 __ovld __cnfn clz(ushort3 x);
9323short4 __ovld __cnfn clz(short4 x);
9324ushort4 __ovld __cnfn clz(ushort4 x);
9325short8 __ovld __cnfn clz(short8 x);
9326ushort8 __ovld __cnfn clz(ushort8 x);
9327short16 __ovld __cnfn clz(short16 x);
9328ushort16 __ovld __cnfn clz(ushort16 x);
9329int __ovld __cnfn clz(int x);
9330uint __ovld __cnfn clz(uint x);
9331int2 __ovld __cnfn clz(int2 x);
9332uint2 __ovld __cnfn clz(uint2 x);
9333int3 __ovld __cnfn clz(int3 x);
9334uint3 __ovld __cnfn clz(uint3 x);
9335int4 __ovld __cnfn clz(int4 x);
9336uint4 __ovld __cnfn clz(uint4 x);
9337int8 __ovld __cnfn clz(int8 x);
9338uint8 __ovld __cnfn clz(uint8 x);
9339int16 __ovld __cnfn clz(int16 x);
9340uint16 __ovld __cnfn clz(uint16 x);
9341long __ovld __cnfn clz(long x);
9342ulong __ovld __cnfn clz(ulong x);
9343long2 __ovld __cnfn clz(long2 x);
9344ulong2 __ovld __cnfn clz(ulong2 x);
9345long3 __ovld __cnfn clz(long3 x);
9346ulong3 __ovld __cnfn clz(ulong3 x);
9347long4 __ovld __cnfn clz(long4 x);
9348ulong4 __ovld __cnfn clz(ulong4 x);
9349long8 __ovld __cnfn clz(long8 x);
9350ulong8 __ovld __cnfn clz(ulong8 x);
9351long16 __ovld __cnfn clz(long16 x);
9352ulong16 __ovld __cnfn clz(ulong16 x);
9353
9354/**
9355 * Returns the count of trailing 0-bits in x. If x is 0,
9356 * returns the size in bits of the type of x or
9357 * component type of x, if x is a vector.
9358 */
Logan Chienbedbf4f2020-01-06 19:35:19 -08009359#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -08009360char __ovld __cnfn ctz(char x);
9361uchar __ovld __cnfn ctz(uchar x);
9362char2 __ovld __cnfn ctz(char2 x);
9363uchar2 __ovld __cnfn ctz(uchar2 x);
9364char3 __ovld __cnfn ctz(char3 x);
9365uchar3 __ovld __cnfn ctz(uchar3 x);
9366char4 __ovld __cnfn ctz(char4 x);
9367uchar4 __ovld __cnfn ctz(uchar4 x);
9368char8 __ovld __cnfn ctz(char8 x);
9369uchar8 __ovld __cnfn ctz(uchar8 x);
9370char16 __ovld __cnfn ctz(char16 x);
9371uchar16 __ovld __cnfn ctz(uchar16 x);
9372short __ovld __cnfn ctz(short x);
9373ushort __ovld __cnfn ctz(ushort x);
9374short2 __ovld __cnfn ctz(short2 x);
9375ushort2 __ovld __cnfn ctz(ushort2 x);
9376short3 __ovld __cnfn ctz(short3 x);
9377ushort3 __ovld __cnfn ctz(ushort3 x);
9378short4 __ovld __cnfn ctz(short4 x);
9379ushort4 __ovld __cnfn ctz(ushort4 x);
9380short8 __ovld __cnfn ctz(short8 x);
9381ushort8 __ovld __cnfn ctz(ushort8 x);
9382short16 __ovld __cnfn ctz(short16 x);
9383ushort16 __ovld __cnfn ctz(ushort16 x);
9384int __ovld __cnfn ctz(int x);
9385uint __ovld __cnfn ctz(uint x);
9386int2 __ovld __cnfn ctz(int2 x);
9387uint2 __ovld __cnfn ctz(uint2 x);
9388int3 __ovld __cnfn ctz(int3 x);
9389uint3 __ovld __cnfn ctz(uint3 x);
9390int4 __ovld __cnfn ctz(int4 x);
9391uint4 __ovld __cnfn ctz(uint4 x);
9392int8 __ovld __cnfn ctz(int8 x);
9393uint8 __ovld __cnfn ctz(uint8 x);
9394int16 __ovld __cnfn ctz(int16 x);
9395uint16 __ovld __cnfn ctz(uint16 x);
9396long __ovld __cnfn ctz(long x);
9397ulong __ovld __cnfn ctz(ulong x);
9398long2 __ovld __cnfn ctz(long2 x);
9399ulong2 __ovld __cnfn ctz(ulong2 x);
9400long3 __ovld __cnfn ctz(long3 x);
9401ulong3 __ovld __cnfn ctz(ulong3 x);
9402long4 __ovld __cnfn ctz(long4 x);
9403ulong4 __ovld __cnfn ctz(ulong4 x);
9404long8 __ovld __cnfn ctz(long8 x);
9405ulong8 __ovld __cnfn ctz(ulong8 x);
9406long16 __ovld __cnfn ctz(long16 x);
9407ulong16 __ovld __cnfn ctz(ulong16 x);
Logan Chienbedbf4f2020-01-06 19:35:19 -08009408#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +08009409
9410/**
9411 * Returns mul_hi(a, b) + c.
9412 */
9413char __ovld __cnfn mad_hi(char a, char b, char c);
9414uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c);
9415char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
9416uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
9417char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
9418uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
9419char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
9420uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
9421char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
9422uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
9423char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
9424uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
9425short __ovld __cnfn mad_hi(short a, short b, short c);
9426ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c);
9427short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
9428ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
9429short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
9430ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
9431short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
9432ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
9433short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
9434ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
9435short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
9436ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
9437int __ovld __cnfn mad_hi(int a, int b, int c);
9438uint __ovld __cnfn mad_hi(uint a, uint b, uint c);
9439int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
9440uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
9441int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
9442uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
9443int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
9444uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
9445int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c);
9446uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c);
9447int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c);
9448uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c);
9449long __ovld __cnfn mad_hi(long a, long b, long c);
9450ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c);
9451long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
9452ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
9453long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
9454ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
9455long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
9456ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
9457long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
9458ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
9459long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
9460ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
9461
9462/**
9463 * Returns a * b + c and saturates the result.
9464 */
9465char __ovld __cnfn mad_sat(char a, char b, char c);
9466uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c);
9467char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
9468uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
9469char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
9470uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
9471char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
9472uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
9473char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
9474uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
9475char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
9476uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
9477short __ovld __cnfn mad_sat(short a, short b, short c);
9478ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c);
9479short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
9480ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
9481short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
9482ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
9483short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
9484ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
9485short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
9486ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
9487short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
9488ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
9489int __ovld __cnfn mad_sat(int a, int b, int c);
9490uint __ovld __cnfn mad_sat(uint a, uint b, uint c);
9491int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
9492uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
9493int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
9494uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
9495int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
9496uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
9497int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c);
9498uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c);
9499int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c);
9500uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c);
9501long __ovld __cnfn mad_sat(long a, long b, long c);
9502ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c);
9503long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
9504ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
9505long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
9506ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
9507long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
9508ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
9509long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
9510ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
9511long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
9512ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
9513
9514/**
9515 * Returns y if x < y, otherwise it returns x.
9516 */
9517char __ovld __cnfn max(char x, char y);
9518uchar __ovld __cnfn max(uchar x, uchar y);
9519char2 __ovld __cnfn max(char2 x, char2 y);
9520uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
9521char3 __ovld __cnfn max(char3 x, char3 y);
9522uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
9523char4 __ovld __cnfn max(char4 x, char4 y);
9524uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
9525char8 __ovld __cnfn max(char8 x, char8 y);
9526uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
9527char16 __ovld __cnfn max(char16 x, char16 y);
9528uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
9529short __ovld __cnfn max(short x, short y);
9530ushort __ovld __cnfn max(ushort x, ushort y);
9531short2 __ovld __cnfn max(short2 x, short2 y);
9532ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
9533short3 __ovld __cnfn max(short3 x, short3 y);
9534ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
9535short4 __ovld __cnfn max(short4 x, short4 y);
9536ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
9537short8 __ovld __cnfn max(short8 x, short8 y);
9538ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
9539short16 __ovld __cnfn max(short16 x, short16 y);
9540ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
9541int __ovld __cnfn max(int x, int y);
9542uint __ovld __cnfn max(uint x, uint y);
9543int2 __ovld __cnfn max(int2 x, int2 y);
9544uint2 __ovld __cnfn max(uint2 x, uint2 y);
9545int3 __ovld __cnfn max(int3 x, int3 y);
9546uint3 __ovld __cnfn max(uint3 x, uint3 y);
9547int4 __ovld __cnfn max(int4 x, int4 y);
9548uint4 __ovld __cnfn max(uint4 x, uint4 y);
9549int8 __ovld __cnfn max(int8 x, int8 y);
9550uint8 __ovld __cnfn max(uint8 x, uint8 y);
9551int16 __ovld __cnfn max(int16 x, int16 y);
9552uint16 __ovld __cnfn max(uint16 x, uint16 y);
9553long __ovld __cnfn max(long x, long y);
9554ulong __ovld __cnfn max(ulong x, ulong y);
9555long2 __ovld __cnfn max(long2 x, long2 y);
9556ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
9557long3 __ovld __cnfn max(long3 x, long3 y);
9558ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
9559long4 __ovld __cnfn max(long4 x, long4 y);
9560ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
9561long8 __ovld __cnfn max(long8 x, long8 y);
9562ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
9563long16 __ovld __cnfn max(long16 x, long16 y);
9564ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009565char2 __ovld __cnfn max(char2 x, char y);
9566uchar2 __ovld __cnfn max(uchar2 x, uchar y);
9567char3 __ovld __cnfn max(char3 x, char y);
9568uchar3 __ovld __cnfn max(uchar3 x, uchar y);
9569char4 __ovld __cnfn max(char4 x, char y);
9570uchar4 __ovld __cnfn max(uchar4 x, uchar y);
9571char8 __ovld __cnfn max(char8 x, char y);
9572uchar8 __ovld __cnfn max(uchar8 x, uchar y);
9573char16 __ovld __cnfn max(char16 x, char y);
9574uchar16 __ovld __cnfn max(uchar16 x, uchar y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009575short2 __ovld __cnfn max(short2 x, short y);
9576ushort2 __ovld __cnfn max(ushort2 x, ushort y);
9577short3 __ovld __cnfn max(short3 x, short y);
9578ushort3 __ovld __cnfn max(ushort3 x, ushort y);
9579short4 __ovld __cnfn max(short4 x, short y);
9580ushort4 __ovld __cnfn max(ushort4 x, ushort y);
9581short8 __ovld __cnfn max(short8 x, short y);
9582ushort8 __ovld __cnfn max(ushort8 x, ushort y);
9583short16 __ovld __cnfn max(short16 x, short y);
9584ushort16 __ovld __cnfn max(ushort16 x, ushort y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009585int2 __ovld __cnfn max(int2 x, int y);
9586uint2 __ovld __cnfn max(uint2 x, uint y);
9587int3 __ovld __cnfn max(int3 x, int y);
9588uint3 __ovld __cnfn max(uint3 x, uint y);
9589int4 __ovld __cnfn max(int4 x, int y);
9590uint4 __ovld __cnfn max(uint4 x, uint y);
9591int8 __ovld __cnfn max(int8 x, int y);
9592uint8 __ovld __cnfn max(uint8 x, uint y);
9593int16 __ovld __cnfn max(int16 x, int y);
9594uint16 __ovld __cnfn max(uint16 x, uint y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009595long2 __ovld __cnfn max(long2 x, long y);
9596ulong2 __ovld __cnfn max(ulong2 x, ulong y);
9597long3 __ovld __cnfn max(long3 x, long y);
9598ulong3 __ovld __cnfn max(ulong3 x, ulong y);
9599long4 __ovld __cnfn max(long4 x, long y);
9600ulong4 __ovld __cnfn max(ulong4 x, ulong y);
9601long8 __ovld __cnfn max(long8 x, long y);
9602ulong8 __ovld __cnfn max(ulong8 x, ulong y);
9603long16 __ovld __cnfn max(long16 x, long y);
9604ulong16 __ovld __cnfn max(ulong16 x, ulong y);
9605
9606/**
9607 * Returns y if y < x, otherwise it returns x.
9608 */
9609char __ovld __cnfn min(char x, char y);
9610uchar __ovld __cnfn min(uchar x, uchar y);
9611char2 __ovld __cnfn min(char2 x, char2 y);
9612uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
9613char3 __ovld __cnfn min(char3 x, char3 y);
9614uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
9615char4 __ovld __cnfn min(char4 x, char4 y);
9616uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
9617char8 __ovld __cnfn min(char8 x, char8 y);
9618uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
9619char16 __ovld __cnfn min(char16 x, char16 y);
9620uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
9621short __ovld __cnfn min(short x, short y);
9622ushort __ovld __cnfn min(ushort x, ushort y);
9623short2 __ovld __cnfn min(short2 x, short2 y);
9624ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
9625short3 __ovld __cnfn min(short3 x, short3 y);
9626ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
9627short4 __ovld __cnfn min(short4 x, short4 y);
9628ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
9629short8 __ovld __cnfn min(short8 x, short8 y);
9630ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
9631short16 __ovld __cnfn min(short16 x, short16 y);
9632ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
9633int __ovld __cnfn min(int x, int y);
9634uint __ovld __cnfn min(uint x, uint y);
9635int2 __ovld __cnfn min(int2 x, int2 y);
9636uint2 __ovld __cnfn min(uint2 x, uint2 y);
9637int3 __ovld __cnfn min(int3 x, int3 y);
9638uint3 __ovld __cnfn min(uint3 x, uint3 y);
9639int4 __ovld __cnfn min(int4 x, int4 y);
9640uint4 __ovld __cnfn min(uint4 x, uint4 y);
9641int8 __ovld __cnfn min(int8 x, int8 y);
9642uint8 __ovld __cnfn min(uint8 x, uint8 y);
9643int16 __ovld __cnfn min(int16 x, int16 y);
9644uint16 __ovld __cnfn min(uint16 x, uint16 y);
9645long __ovld __cnfn min(long x, long y);
9646ulong __ovld __cnfn min(ulong x, ulong y);
9647long2 __ovld __cnfn min(long2 x, long2 y);
9648ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
9649long3 __ovld __cnfn min(long3 x, long3 y);
9650ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
9651long4 __ovld __cnfn min(long4 x, long4 y);
9652ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
9653long8 __ovld __cnfn min(long8 x, long8 y);
9654ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
9655long16 __ovld __cnfn min(long16 x, long16 y);
9656ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009657char2 __ovld __cnfn min(char2 x, char y);
9658uchar2 __ovld __cnfn min(uchar2 x, uchar y);
9659char3 __ovld __cnfn min(char3 x, char y);
9660uchar3 __ovld __cnfn min(uchar3 x, uchar y);
9661char4 __ovld __cnfn min(char4 x, char y);
9662uchar4 __ovld __cnfn min(uchar4 x, uchar y);
9663char8 __ovld __cnfn min(char8 x, char y);
9664uchar8 __ovld __cnfn min(uchar8 x, uchar y);
9665char16 __ovld __cnfn min(char16 x, char y);
9666uchar16 __ovld __cnfn min(uchar16 x, uchar y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009667short2 __ovld __cnfn min(short2 x, short y);
9668ushort2 __ovld __cnfn min(ushort2 x, ushort y);
9669short3 __ovld __cnfn min(short3 x, short y);
9670ushort3 __ovld __cnfn min(ushort3 x, ushort y);
9671short4 __ovld __cnfn min(short4 x, short y);
9672ushort4 __ovld __cnfn min(ushort4 x, ushort y);
9673short8 __ovld __cnfn min(short8 x, short y);
9674ushort8 __ovld __cnfn min(ushort8 x, ushort y);
9675short16 __ovld __cnfn min(short16 x, short y);
9676ushort16 __ovld __cnfn min(ushort16 x, ushort y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009677int2 __ovld __cnfn min(int2 x, int y);
9678uint2 __ovld __cnfn min(uint2 x, uint y);
9679int3 __ovld __cnfn min(int3 x, int y);
9680uint3 __ovld __cnfn min(uint3 x, uint y);
9681int4 __ovld __cnfn min(int4 x, int y);
9682uint4 __ovld __cnfn min(uint4 x, uint y);
9683int8 __ovld __cnfn min(int8 x, int y);
9684uint8 __ovld __cnfn min(uint8 x, uint y);
9685int16 __ovld __cnfn min(int16 x, int y);
9686uint16 __ovld __cnfn min(uint16 x, uint y);
Logan Chien2833ffb2018-10-09 10:03:24 +08009687long2 __ovld __cnfn min(long2 x, long y);
9688ulong2 __ovld __cnfn min(ulong2 x, ulong y);
9689long3 __ovld __cnfn min(long3 x, long y);
9690ulong3 __ovld __cnfn min(ulong3 x, ulong y);
9691long4 __ovld __cnfn min(long4 x, long y);
9692ulong4 __ovld __cnfn min(ulong4 x, ulong y);
9693long8 __ovld __cnfn min(long8 x, long y);
9694ulong8 __ovld __cnfn min(ulong8 x, ulong y);
9695long16 __ovld __cnfn min(long16 x, long y);
9696ulong16 __ovld __cnfn min(ulong16 x, ulong y);
9697
9698/**
9699 * Computes x * y and returns the high half of the
9700 * product of x and y.
9701 */
9702char __ovld __cnfn mul_hi(char x, char y);
9703uchar __ovld __cnfn mul_hi(uchar x, uchar y);
9704char2 __ovld __cnfn mul_hi(char2 x, char2 y);
9705uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
9706char3 __ovld __cnfn mul_hi(char3 x, char3 y);
9707uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
9708char4 __ovld __cnfn mul_hi(char4 x, char4 y);
9709uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
9710char8 __ovld __cnfn mul_hi(char8 x, char8 y);
9711uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
9712char16 __ovld __cnfn mul_hi(char16 x, char16 y);
9713uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
9714short __ovld __cnfn mul_hi(short x, short y);
9715ushort __ovld __cnfn mul_hi(ushort x, ushort y);
9716short2 __ovld __cnfn mul_hi(short2 x, short2 y);
9717ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
9718short3 __ovld __cnfn mul_hi(short3 x, short3 y);
9719ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
9720short4 __ovld __cnfn mul_hi(short4 x, short4 y);
9721ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
9722short8 __ovld __cnfn mul_hi(short8 x, short8 y);
9723ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
9724short16 __ovld __cnfn mul_hi(short16 x, short16 y);
9725ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
9726int __ovld __cnfn mul_hi(int x, int y);
9727uint __ovld __cnfn mul_hi(uint x, uint y);
9728int2 __ovld __cnfn mul_hi(int2 x, int2 y);
9729uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
9730int3 __ovld __cnfn mul_hi(int3 x, int3 y);
9731uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
9732int4 __ovld __cnfn mul_hi(int4 x, int4 y);
9733uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
9734int8 __ovld __cnfn mul_hi(int8 x, int8 y);
9735uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y);
9736int16 __ovld __cnfn mul_hi(int16 x, int16 y);
9737uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y);
9738long __ovld __cnfn mul_hi(long x, long y);
9739ulong __ovld __cnfn mul_hi(ulong x, ulong y);
9740long2 __ovld __cnfn mul_hi(long2 x, long2 y);
9741ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
9742long3 __ovld __cnfn mul_hi(long3 x, long3 y);
9743ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
9744long4 __ovld __cnfn mul_hi(long4 x, long4 y);
9745ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
9746long8 __ovld __cnfn mul_hi(long8 x, long8 y);
9747ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
9748long16 __ovld __cnfn mul_hi(long16 x, long16 y);
9749ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
9750
9751/**
9752 * For each element in v, the bits are shifted left by
9753 * the number of bits given by the corresponding
9754 * element in i (subject to usual shift modulo rules
9755 * described in section 6.3). Bits shifted off the left
9756 * side of the element are shifted back in from the
9757 * right.
9758 */
9759char __ovld __cnfn rotate(char v, char i);
9760uchar __ovld __cnfn rotate(uchar v, uchar i);
9761char2 __ovld __cnfn rotate(char2 v, char2 i);
9762uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
9763char3 __ovld __cnfn rotate(char3 v, char3 i);
9764uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
9765char4 __ovld __cnfn rotate(char4 v, char4 i);
9766uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
9767char8 __ovld __cnfn rotate(char8 v, char8 i);
9768uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
9769char16 __ovld __cnfn rotate(char16 v, char16 i);
9770uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
9771short __ovld __cnfn rotate(short v, short i);
9772ushort __ovld __cnfn rotate(ushort v, ushort i);
9773short2 __ovld __cnfn rotate(short2 v, short2 i);
9774ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
9775short3 __ovld __cnfn rotate(short3 v, short3 i);
9776ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
9777short4 __ovld __cnfn rotate(short4 v, short4 i);
9778ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
9779short8 __ovld __cnfn rotate(short8 v, short8 i);
9780ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
9781short16 __ovld __cnfn rotate(short16 v, short16 i);
9782ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
9783int __ovld __cnfn rotate(int v, int i);
9784uint __ovld __cnfn rotate(uint v, uint i);
9785int2 __ovld __cnfn rotate(int2 v, int2 i);
9786uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
9787int3 __ovld __cnfn rotate(int3 v, int3 i);
9788uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
9789int4 __ovld __cnfn rotate(int4 v, int4 i);
9790uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
9791int8 __ovld __cnfn rotate(int8 v, int8 i);
9792uint8 __ovld __cnfn rotate(uint8 v, uint8 i);
9793int16 __ovld __cnfn rotate(int16 v, int16 i);
9794uint16 __ovld __cnfn rotate(uint16 v, uint16 i);
9795long __ovld __cnfn rotate(long v, long i);
9796ulong __ovld __cnfn rotate(ulong v, ulong i);
9797long2 __ovld __cnfn rotate(long2 v, long2 i);
9798ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
9799long3 __ovld __cnfn rotate(long3 v, long3 i);
9800ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
9801long4 __ovld __cnfn rotate(long4 v, long4 i);
9802ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
9803long8 __ovld __cnfn rotate(long8 v, long8 i);
9804ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
9805long16 __ovld __cnfn rotate(long16 v, long16 i);
9806ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
9807
9808/**
9809 * Returns x - y and saturates the result.
9810 */
9811char __ovld __cnfn sub_sat(char x, char y);
9812uchar __ovld __cnfn sub_sat(uchar x, uchar y);
9813char2 __ovld __cnfn sub_sat(char2 x, char2 y);
9814uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
9815char3 __ovld __cnfn sub_sat(char3 x, char3 y);
9816uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
9817char4 __ovld __cnfn sub_sat(char4 x, char4 y);
9818uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
9819char8 __ovld __cnfn sub_sat(char8 x, char8 y);
9820uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
9821char16 __ovld __cnfn sub_sat(char16 x, char16 y);
9822uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
9823short __ovld __cnfn sub_sat(short x, short y);
9824ushort __ovld __cnfn sub_sat(ushort x, ushort y);
9825short2 __ovld __cnfn sub_sat(short2 x, short2 y);
9826ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
9827short3 __ovld __cnfn sub_sat(short3 x, short3 y);
9828ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
9829short4 __ovld __cnfn sub_sat(short4 x, short4 y);
9830ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
9831short8 __ovld __cnfn sub_sat(short8 x, short8 y);
9832ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
9833short16 __ovld __cnfn sub_sat(short16 x, short16 y);
9834ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
9835int __ovld __cnfn sub_sat(int x, int y);
9836uint __ovld __cnfn sub_sat(uint x, uint y);
9837int2 __ovld __cnfn sub_sat(int2 x, int2 y);
9838uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
9839int3 __ovld __cnfn sub_sat(int3 x, int3 y);
9840uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
9841int4 __ovld __cnfn sub_sat(int4 x, int4 y);
9842uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
9843int8 __ovld __cnfn sub_sat(int8 x, int8 y);
9844uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y);
9845int16 __ovld __cnfn sub_sat(int16 x, int16 y);
9846uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y);
9847long __ovld __cnfn sub_sat(long x, long y);
9848ulong __ovld __cnfn sub_sat(ulong x, ulong y);
9849long2 __ovld __cnfn sub_sat(long2 x, long2 y);
9850ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
9851long3 __ovld __cnfn sub_sat(long3 x, long3 y);
9852ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
9853long4 __ovld __cnfn sub_sat(long4 x, long4 y);
9854ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
9855long8 __ovld __cnfn sub_sat(long8 x, long8 y);
9856ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
9857long16 __ovld __cnfn sub_sat(long16 x, long16 y);
9858ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
9859
9860/**
9861 * result[i] = ((short)hi[i] << 8) | lo[i]
9862 * result[i] = ((ushort)hi[i] << 8) | lo[i]
9863 */
9864short __ovld __cnfn upsample(char hi, uchar lo);
9865ushort __ovld __cnfn upsample(uchar hi, uchar lo);
9866short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
9867short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
9868short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
9869short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
9870short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
9871ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
9872ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
9873ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
9874ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
9875ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
9876
9877/**
9878 * result[i] = ((int)hi[i] << 16) | lo[i]
9879 * result[i] = ((uint)hi[i] << 16) | lo[i]
9880 */
9881int __ovld __cnfn upsample(short hi, ushort lo);
9882uint __ovld __cnfn upsample(ushort hi, ushort lo);
9883int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
9884int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
9885int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
9886int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
9887int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
9888uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
9889uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
9890uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
9891uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
9892uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
9893/**
9894 * result[i] = ((long)hi[i] << 32) | lo[i]
9895 * result[i] = ((ulong)hi[i] << 32) | lo[i]
9896 */
9897long __ovld __cnfn upsample(int hi, uint lo);
9898ulong __ovld __cnfn upsample(uint hi, uint lo);
9899long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
9900long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
9901long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
9902long8 __ovld __cnfn upsample(int8 hi, uint8 lo);
9903long16 __ovld __cnfn upsample(int16 hi, uint16 lo);
9904ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
9905ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
9906ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
9907ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo);
9908ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo);
9909
9910/*
9911 * popcount(x): returns the number of set bit in x
9912 */
Pirama Arumuga Nainar7e1f8392021-08-16 17:30:48 -07009913#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +08009914char __ovld __cnfn popcount(char x);
9915uchar __ovld __cnfn popcount(uchar x);
9916char2 __ovld __cnfn popcount(char2 x);
9917uchar2 __ovld __cnfn popcount(uchar2 x);
9918char3 __ovld __cnfn popcount(char3 x);
9919uchar3 __ovld __cnfn popcount(uchar3 x);
9920char4 __ovld __cnfn popcount(char4 x);
9921uchar4 __ovld __cnfn popcount(uchar4 x);
9922char8 __ovld __cnfn popcount(char8 x);
9923uchar8 __ovld __cnfn popcount(uchar8 x);
9924char16 __ovld __cnfn popcount(char16 x);
9925uchar16 __ovld __cnfn popcount(uchar16 x);
9926short __ovld __cnfn popcount(short x);
9927ushort __ovld __cnfn popcount(ushort x);
9928short2 __ovld __cnfn popcount(short2 x);
9929ushort2 __ovld __cnfn popcount(ushort2 x);
9930short3 __ovld __cnfn popcount(short3 x);
9931ushort3 __ovld __cnfn popcount(ushort3 x);
9932short4 __ovld __cnfn popcount(short4 x);
9933ushort4 __ovld __cnfn popcount(ushort4 x);
9934short8 __ovld __cnfn popcount(short8 x);
9935ushort8 __ovld __cnfn popcount(ushort8 x);
9936short16 __ovld __cnfn popcount(short16 x);
9937ushort16 __ovld __cnfn popcount(ushort16 x);
9938int __ovld __cnfn popcount(int x);
9939uint __ovld __cnfn popcount(uint x);
9940int2 __ovld __cnfn popcount(int2 x);
9941uint2 __ovld __cnfn popcount(uint2 x);
9942int3 __ovld __cnfn popcount(int3 x);
9943uint3 __ovld __cnfn popcount(uint3 x);
9944int4 __ovld __cnfn popcount(int4 x);
9945uint4 __ovld __cnfn popcount(uint4 x);
9946int8 __ovld __cnfn popcount(int8 x);
9947uint8 __ovld __cnfn popcount(uint8 x);
9948int16 __ovld __cnfn popcount(int16 x);
9949uint16 __ovld __cnfn popcount(uint16 x);
9950long __ovld __cnfn popcount(long x);
9951ulong __ovld __cnfn popcount(ulong x);
9952long2 __ovld __cnfn popcount(long2 x);
9953ulong2 __ovld __cnfn popcount(ulong2 x);
9954long3 __ovld __cnfn popcount(long3 x);
9955ulong3 __ovld __cnfn popcount(ulong3 x);
9956long4 __ovld __cnfn popcount(long4 x);
9957ulong4 __ovld __cnfn popcount(ulong4 x);
9958long8 __ovld __cnfn popcount(long8 x);
9959ulong8 __ovld __cnfn popcount(ulong8 x);
9960long16 __ovld __cnfn popcount(long16 x);
9961ulong16 __ovld __cnfn popcount(ulong16 x);
Pirama Arumuga Nainar7e1f8392021-08-16 17:30:48 -07009962#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +08009963
9964/**
9965 * Multiply two 24-bit integer values x and y and add
9966 * the 32-bit integer result to the 32-bit integer z.
9967 * Refer to definition of mul24 to see how the 24-bit
9968 * integer multiplication is performed.
9969 */
9970int __ovld __cnfn mad24(int x, int y, int z);
9971uint __ovld __cnfn mad24(uint x, uint y, uint z);
9972int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
9973uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
9974int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
9975uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
9976int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
9977uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
9978int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z);
9979uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z);
9980int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z);
9981uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z);
9982
9983/**
9984 * Multiply two 24-bit integer values x and y. x and y
9985 * are 32-bit integers but only the low 24-bits are used
9986 * to perform the multiplication. mul24 should only
9987 * be used when values in x and y are in the range [-
9988 * 2^23, 2^23-1] if x and y are signed integers and in the
9989 * range [0, 2^24-1] if x and y are unsigned integers. If
9990 * x and y are not in this range, the multiplication
9991 * result is implementation-defined.
9992 */
9993int __ovld __cnfn mul24(int x, int y);
9994uint __ovld __cnfn mul24(uint x, uint y);
9995int2 __ovld __cnfn mul24(int2 x, int2 y);
9996uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
9997int3 __ovld __cnfn mul24(int3 x, int3 y);
9998uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
9999int4 __ovld __cnfn mul24(int4 x, int4 y);
10000uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
10001int8 __ovld __cnfn mul24(int8 x, int8 y);
10002uint8 __ovld __cnfn mul24(uint8 x, uint8 y);
10003int16 __ovld __cnfn mul24(int16 x, int16 y);
10004uint16 __ovld __cnfn mul24(uint16 x, uint16 y);
10005
10006// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
10007
10008/**
10009 * Returns fmin(fmax(x, minval), maxval).
10010 * Results are undefined if minval > maxval.
10011 */
10012float __ovld __cnfn clamp(float x, float minval, float maxval);
10013float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
10014float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
10015float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
10016float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
10017float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
10018float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
10019float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
10020float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
10021float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
10022float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
10023#ifdef cl_khr_fp64
10024double __ovld __cnfn clamp(double x, double minval, double maxval);
10025double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
10026double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
10027double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
10028double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
10029double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
10030double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
10031double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
10032double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
10033double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
10034double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
10035#endif //cl_khr_fp64
10036#ifdef cl_khr_fp16
10037half __ovld __cnfn clamp(half x, half minval, half maxval);
10038half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
10039half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
10040half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
10041half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
10042half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
10043half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
10044half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
10045half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
10046half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
10047half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
10048#endif //cl_khr_fp16
10049
10050/**
10051 * Converts radians to degrees, i.e. (180 / PI) *
10052 * radians.
10053 */
10054float __ovld __cnfn degrees(float radians);
10055float2 __ovld __cnfn degrees(float2 radians);
10056float3 __ovld __cnfn degrees(float3 radians);
10057float4 __ovld __cnfn degrees(float4 radians);
10058float8 __ovld __cnfn degrees(float8 radians);
10059float16 __ovld __cnfn degrees(float16 radians);
10060#ifdef cl_khr_fp64
10061double __ovld __cnfn degrees(double radians);
10062double2 __ovld __cnfn degrees(double2 radians);
10063double3 __ovld __cnfn degrees(double3 radians);
10064double4 __ovld __cnfn degrees(double4 radians);
10065double8 __ovld __cnfn degrees(double8 radians);
10066double16 __ovld __cnfn degrees(double16 radians);
10067#endif //cl_khr_fp64
10068#ifdef cl_khr_fp16
10069half __ovld __cnfn degrees(half radians);
10070half2 __ovld __cnfn degrees(half2 radians);
10071half3 __ovld __cnfn degrees(half3 radians);
10072half4 __ovld __cnfn degrees(half4 radians);
10073half8 __ovld __cnfn degrees(half8 radians);
10074half16 __ovld __cnfn degrees(half16 radians);
10075#endif //cl_khr_fp16
10076
10077/**
10078 * Returns y if x < y, otherwise it returns x. If x and y
10079 * are infinite or NaN, the return values are undefined.
10080 */
10081float __ovld __cnfn max(float x, float y);
10082float2 __ovld __cnfn max(float2 x, float2 y);
10083float3 __ovld __cnfn max(float3 x, float3 y);
10084float4 __ovld __cnfn max(float4 x, float4 y);
10085float8 __ovld __cnfn max(float8 x, float8 y);
10086float16 __ovld __cnfn max(float16 x, float16 y);
10087float2 __ovld __cnfn max(float2 x, float y);
10088float3 __ovld __cnfn max(float3 x, float y);
10089float4 __ovld __cnfn max(float4 x, float y);
10090float8 __ovld __cnfn max(float8 x, float y);
10091float16 __ovld __cnfn max(float16 x, float y);
10092#ifdef cl_khr_fp64
10093double __ovld __cnfn max(double x, double y);
10094double2 __ovld __cnfn max(double2 x, double2 y);
10095double3 __ovld __cnfn max(double3 x, double3 y);
10096double4 __ovld __cnfn max(double4 x, double4 y);
10097double8 __ovld __cnfn max(double8 x, double8 y);
10098double16 __ovld __cnfn max(double16 x, double16 y);
10099double2 __ovld __cnfn max(double2 x, double y);
10100double3 __ovld __cnfn max(double3 x, double y);
10101double4 __ovld __cnfn max(double4 x, double y);
10102double8 __ovld __cnfn max(double8 x, double y);
10103double16 __ovld __cnfn max(double16 x, double y);
10104#endif //cl_khr_fp64
10105#ifdef cl_khr_fp16
10106half __ovld __cnfn max(half x, half y);
10107half2 __ovld __cnfn max(half2 x, half2 y);
10108half3 __ovld __cnfn max(half3 x, half3 y);
10109half4 __ovld __cnfn max(half4 x, half4 y);
10110half8 __ovld __cnfn max(half8 x, half8 y);
10111half16 __ovld __cnfn max(half16 x, half16 y);
10112half2 __ovld __cnfn max(half2 x, half y);
10113half3 __ovld __cnfn max(half3 x, half y);
10114half4 __ovld __cnfn max(half4 x, half y);
10115half8 __ovld __cnfn max(half8 x, half y);
10116half16 __ovld __cnfn max(half16 x, half y);
10117#endif //cl_khr_fp16
10118
10119/**
10120 * Returns y if y < x, otherwise it returns x. If x and y
10121 * are infinite or NaN, the return values are undefined.
10122 */
10123float __ovld __cnfn min(float x, float y);
10124float2 __ovld __cnfn min(float2 x, float2 y);
10125float3 __ovld __cnfn min(float3 x, float3 y);
10126float4 __ovld __cnfn min(float4 x, float4 y);
10127float8 __ovld __cnfn min(float8 x, float8 y);
10128float16 __ovld __cnfn min(float16 x, float16 y);
10129float2 __ovld __cnfn min(float2 x, float y);
10130float3 __ovld __cnfn min(float3 x, float y);
10131float4 __ovld __cnfn min(float4 x, float y);
10132float8 __ovld __cnfn min(float8 x, float y);
10133float16 __ovld __cnfn min(float16 x, float y);
10134#ifdef cl_khr_fp64
10135double __ovld __cnfn min(double x, double y);
10136double2 __ovld __cnfn min(double2 x, double2 y);
10137double3 __ovld __cnfn min(double3 x, double3 y);
10138double4 __ovld __cnfn min(double4 x, double4 y);
10139double8 __ovld __cnfn min(double8 x, double8 y);
10140double16 __ovld __cnfn min(double16 x, double16 y);
10141double2 __ovld __cnfn min(double2 x, double y);
10142double3 __ovld __cnfn min(double3 x, double y);
10143double4 __ovld __cnfn min(double4 x, double y);
10144double8 __ovld __cnfn min(double8 x, double y);
10145double16 __ovld __cnfn min(double16 x, double y);
10146#endif //cl_khr_fp64
10147#ifdef cl_khr_fp16
10148half __ovld __cnfn min(half x, half y);
10149half2 __ovld __cnfn min(half2 x, half2 y);
10150half3 __ovld __cnfn min(half3 x, half3 y);
10151half4 __ovld __cnfn min(half4 x, half4 y);
10152half8 __ovld __cnfn min(half8 x, half8 y);
10153half16 __ovld __cnfn min(half16 x, half16 y);
10154half2 __ovld __cnfn min(half2 x, half y);
10155half3 __ovld __cnfn min(half3 x, half y);
10156half4 __ovld __cnfn min(half4 x, half y);
10157half8 __ovld __cnfn min(half8 x, half y);
10158half16 __ovld __cnfn min(half16 x, half y);
10159#endif //cl_khr_fp16
10160
10161/**
10162 * Returns the linear blend of x & y implemented as:
10163 * x + (y - x) * a
10164 * a must be a value in the range 0.0 ... 1.0. If a is not
10165 * in the range 0.0 ... 1.0, the return values are
10166 * undefined.
10167 */
10168float __ovld __cnfn mix(float x, float y, float a);
10169float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
10170float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
10171float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
10172float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
10173float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
10174float2 __ovld __cnfn mix(float2 x, float2 y, float a);
10175float3 __ovld __cnfn mix(float3 x, float3 y, float a);
10176float4 __ovld __cnfn mix(float4 x, float4 y, float a);
10177float8 __ovld __cnfn mix(float8 x, float8 y, float a);
10178float16 __ovld __cnfn mix(float16 x, float16 y, float a);
10179#ifdef cl_khr_fp64
10180double __ovld __cnfn mix(double x, double y, double a);
10181double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
10182double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
10183double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
10184double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
10185double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
10186double2 __ovld __cnfn mix(double2 x, double2 y, double a);
10187double3 __ovld __cnfn mix(double3 x, double3 y, double a);
10188double4 __ovld __cnfn mix(double4 x, double4 y, double a);
10189double8 __ovld __cnfn mix(double8 x, double8 y, double a);
10190double16 __ovld __cnfn mix(double16 x, double16 y, double a);
10191#endif //cl_khr_fp64
10192#ifdef cl_khr_fp16
10193half __ovld __cnfn mix(half x, half y, half a);
10194half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
10195half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
10196half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
10197half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
10198half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
10199half2 __ovld __cnfn mix(half2 x, half2 y, half a);
10200half3 __ovld __cnfn mix(half3 x, half3 y, half a);
10201half4 __ovld __cnfn mix(half4 x, half4 y, half a);
10202half8 __ovld __cnfn mix(half8 x, half8 y, half a);
10203half16 __ovld __cnfn mix(half16 x, half16 y, half a);
10204#endif //cl_khr_fp16
10205
10206/**
10207 * Converts degrees to radians, i.e. (PI / 180) *
10208 * degrees.
10209 */
10210float __ovld __cnfn radians(float degrees);
10211float2 __ovld __cnfn radians(float2 degrees);
10212float3 __ovld __cnfn radians(float3 degrees);
10213float4 __ovld __cnfn radians(float4 degrees);
10214float8 __ovld __cnfn radians(float8 degrees);
10215float16 __ovld __cnfn radians(float16 degrees);
10216#ifdef cl_khr_fp64
10217double __ovld __cnfn radians(double degrees);
10218double2 __ovld __cnfn radians(double2 degrees);
10219double3 __ovld __cnfn radians(double3 degrees);
10220double4 __ovld __cnfn radians(double4 degrees);
10221double8 __ovld __cnfn radians(double8 degrees);
10222double16 __ovld __cnfn radians(double16 degrees);
10223#endif //cl_khr_fp64
10224#ifdef cl_khr_fp16
10225half __ovld __cnfn radians(half degrees);
10226half2 __ovld __cnfn radians(half2 degrees);
10227half3 __ovld __cnfn radians(half3 degrees);
10228half4 __ovld __cnfn radians(half4 degrees);
10229half8 __ovld __cnfn radians(half8 degrees);
10230half16 __ovld __cnfn radians(half16 degrees);
10231#endif //cl_khr_fp16
10232
10233/**
10234 * Returns 0.0 if x < edge, otherwise it returns 1.0.
10235 */
10236float __ovld __cnfn step(float edge, float x);
10237float2 __ovld __cnfn step(float2 edge, float2 x);
10238float3 __ovld __cnfn step(float3 edge, float3 x);
10239float4 __ovld __cnfn step(float4 edge, float4 x);
10240float8 __ovld __cnfn step(float8 edge, float8 x);
10241float16 __ovld __cnfn step(float16 edge, float16 x);
10242float2 __ovld __cnfn step(float edge, float2 x);
10243float3 __ovld __cnfn step(float edge, float3 x);
10244float4 __ovld __cnfn step(float edge, float4 x);
10245float8 __ovld __cnfn step(float edge, float8 x);
10246float16 __ovld __cnfn step(float edge, float16 x);
10247#ifdef cl_khr_fp64
10248double __ovld __cnfn step(double edge, double x);
10249double2 __ovld __cnfn step(double2 edge, double2 x);
10250double3 __ovld __cnfn step(double3 edge, double3 x);
10251double4 __ovld __cnfn step(double4 edge, double4 x);
10252double8 __ovld __cnfn step(double8 edge, double8 x);
10253double16 __ovld __cnfn step(double16 edge, double16 x);
10254double2 __ovld __cnfn step(double edge, double2 x);
10255double3 __ovld __cnfn step(double edge, double3 x);
10256double4 __ovld __cnfn step(double edge, double4 x);
10257double8 __ovld __cnfn step(double edge, double8 x);
10258double16 __ovld __cnfn step(double edge, double16 x);
10259#endif //cl_khr_fp64
10260#ifdef cl_khr_fp16
10261half __ovld __cnfn step(half edge, half x);
10262half2 __ovld __cnfn step(half2 edge, half2 x);
10263half3 __ovld __cnfn step(half3 edge, half3 x);
10264half4 __ovld __cnfn step(half4 edge, half4 x);
10265half8 __ovld __cnfn step(half8 edge, half8 x);
10266half16 __ovld __cnfn step(half16 edge, half16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +080010267half2 __ovld __cnfn step(half edge, half2 x);
10268half3 __ovld __cnfn step(half edge, half3 x);
10269half4 __ovld __cnfn step(half edge, half4 x);
10270half8 __ovld __cnfn step(half edge, half8 x);
10271half16 __ovld __cnfn step(half edge, half16 x);
10272#endif //cl_khr_fp16
10273
10274/**
10275 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
10276 * performs smooth Hermite interpolation between 0
10277 * and 1when edge0 < x < edge1. This is useful in
10278 * cases where you would want a threshold function
10279 * with a smooth transition.
10280 * This is equivalent to:
10281 * gentype t;
10282 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
10283 * return t * t * (3 - 2 * t);
10284 * Results are undefined if edge0 >= edge1 or if x,
10285 * edge0 or edge1 is a NaN.
10286 */
10287float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
10288float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
10289float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
10290float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
10291float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
10292float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
10293float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
10294float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
10295float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
10296float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
10297float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
10298#ifdef cl_khr_fp64
10299double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
10300double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
10301double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
10302double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
10303double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
10304double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
10305double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
10306double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
10307double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
10308double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
10309double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
10310#endif //cl_khr_fp64
10311#ifdef cl_khr_fp16
10312half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
10313half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
10314half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
10315half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
10316half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
10317half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
Logan Chien2833ffb2018-10-09 10:03:24 +080010318half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
10319half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
10320half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
10321half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
10322half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
10323#endif //cl_khr_fp16
10324
10325/**
10326 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
10327 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
10328 */
10329float __ovld __cnfn sign(float x);
10330float2 __ovld __cnfn sign(float2 x);
10331float3 __ovld __cnfn sign(float3 x);
10332float4 __ovld __cnfn sign(float4 x);
10333float8 __ovld __cnfn sign(float8 x);
10334float16 __ovld __cnfn sign(float16 x);
10335#ifdef cl_khr_fp64
10336double __ovld __cnfn sign(double x);
10337double2 __ovld __cnfn sign(double2 x);
10338double3 __ovld __cnfn sign(double3 x);
10339double4 __ovld __cnfn sign(double4 x);
10340double8 __ovld __cnfn sign(double8 x);
10341double16 __ovld __cnfn sign(double16 x);
10342#endif //cl_khr_fp64
10343#ifdef cl_khr_fp16
10344half __ovld __cnfn sign(half x);
10345half2 __ovld __cnfn sign(half2 x);
10346half3 __ovld __cnfn sign(half3 x);
10347half4 __ovld __cnfn sign(half4 x);
10348half8 __ovld __cnfn sign(half8 x);
10349half16 __ovld __cnfn sign(half16 x);
10350#endif //cl_khr_fp16
10351
10352// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
10353
10354/**
10355 * Returns the cross product of p0.xyz and p1.xyz. The
10356 * w component of float4 result returned will be 0.0.
10357 */
10358float4 __ovld __cnfn cross(float4 p0, float4 p1);
10359float3 __ovld __cnfn cross(float3 p0, float3 p1);
10360#ifdef cl_khr_fp64
10361double4 __ovld __cnfn cross(double4 p0, double4 p1);
10362double3 __ovld __cnfn cross(double3 p0, double3 p1);
10363#endif //cl_khr_fp64
10364#ifdef cl_khr_fp16
10365half4 __ovld __cnfn cross(half4 p0, half4 p1);
10366half3 __ovld __cnfn cross(half3 p0, half3 p1);
10367#endif //cl_khr_fp16
10368
10369/**
10370 * Compute dot product.
10371 */
10372float __ovld __cnfn dot(float p0, float p1);
10373float __ovld __cnfn dot(float2 p0, float2 p1);
10374float __ovld __cnfn dot(float3 p0, float3 p1);
10375float __ovld __cnfn dot(float4 p0, float4 p1);
10376#ifdef cl_khr_fp64
10377double __ovld __cnfn dot(double p0, double p1);
10378double __ovld __cnfn dot(double2 p0, double2 p1);
10379double __ovld __cnfn dot(double3 p0, double3 p1);
10380double __ovld __cnfn dot(double4 p0, double4 p1);
10381#endif //cl_khr_fp64
10382#ifdef cl_khr_fp16
10383half __ovld __cnfn dot(half p0, half p1);
10384half __ovld __cnfn dot(half2 p0, half2 p1);
10385half __ovld __cnfn dot(half3 p0, half3 p1);
10386half __ovld __cnfn dot(half4 p0, half4 p1);
10387#endif //cl_khr_fp16
10388
10389/**
10390 * Returns the distance between p0 and p1. This is
10391 * calculated as length(p0 - p1).
10392 */
10393float __ovld __cnfn distance(float p0, float p1);
10394float __ovld __cnfn distance(float2 p0, float2 p1);
10395float __ovld __cnfn distance(float3 p0, float3 p1);
10396float __ovld __cnfn distance(float4 p0, float4 p1);
10397#ifdef cl_khr_fp64
10398double __ovld __cnfn distance(double p0, double p1);
10399double __ovld __cnfn distance(double2 p0, double2 p1);
10400double __ovld __cnfn distance(double3 p0, double3 p1);
10401double __ovld __cnfn distance(double4 p0, double4 p1);
10402#endif //cl_khr_fp64
10403#ifdef cl_khr_fp16
10404half __ovld __cnfn distance(half p0, half p1);
10405half __ovld __cnfn distance(half2 p0, half2 p1);
10406half __ovld __cnfn distance(half3 p0, half3 p1);
10407half __ovld __cnfn distance(half4 p0, half4 p1);
10408#endif //cl_khr_fp16
10409
10410/**
10411 * Return the length of vector p, i.e.,
10412 * sqrt(p.x2 + p.y 2 + ...)
10413 */
10414float __ovld __cnfn length(float p);
10415float __ovld __cnfn length(float2 p);
10416float __ovld __cnfn length(float3 p);
10417float __ovld __cnfn length(float4 p);
10418#ifdef cl_khr_fp64
10419double __ovld __cnfn length(double p);
10420double __ovld __cnfn length(double2 p);
10421double __ovld __cnfn length(double3 p);
10422double __ovld __cnfn length(double4 p);
10423#endif //cl_khr_fp64
10424#ifdef cl_khr_fp16
10425half __ovld __cnfn length(half p);
10426half __ovld __cnfn length(half2 p);
10427half __ovld __cnfn length(half3 p);
10428half __ovld __cnfn length(half4 p);
10429#endif //cl_khr_fp16
10430
10431/**
10432 * Returns a vector in the same direction as p but with a
10433 * length of 1.
10434 */
10435float __ovld __cnfn normalize(float p);
10436float2 __ovld __cnfn normalize(float2 p);
10437float3 __ovld __cnfn normalize(float3 p);
10438float4 __ovld __cnfn normalize(float4 p);
10439#ifdef cl_khr_fp64
10440double __ovld __cnfn normalize(double p);
10441double2 __ovld __cnfn normalize(double2 p);
10442double3 __ovld __cnfn normalize(double3 p);
10443double4 __ovld __cnfn normalize(double4 p);
10444#endif //cl_khr_fp64
10445#ifdef cl_khr_fp16
10446half __ovld __cnfn normalize(half p);
10447half2 __ovld __cnfn normalize(half2 p);
10448half3 __ovld __cnfn normalize(half3 p);
10449half4 __ovld __cnfn normalize(half4 p);
10450#endif //cl_khr_fp16
10451
10452/**
10453 * Returns fast_length(p0 - p1).
10454 */
10455float __ovld __cnfn fast_distance(float p0, float p1);
10456float __ovld __cnfn fast_distance(float2 p0, float2 p1);
10457float __ovld __cnfn fast_distance(float3 p0, float3 p1);
10458float __ovld __cnfn fast_distance(float4 p0, float4 p1);
10459#ifdef cl_khr_fp16
10460half __ovld __cnfn fast_distance(half p0, half p1);
10461half __ovld __cnfn fast_distance(half2 p0, half2 p1);
10462half __ovld __cnfn fast_distance(half3 p0, half3 p1);
10463half __ovld __cnfn fast_distance(half4 p0, half4 p1);
10464#endif //cl_khr_fp16
10465
10466/**
10467 * Returns the length of vector p computed as:
10468 * half_sqrt(p.x2 + p.y2 + ...)
10469 */
10470float __ovld __cnfn fast_length(float p);
10471float __ovld __cnfn fast_length(float2 p);
10472float __ovld __cnfn fast_length(float3 p);
10473float __ovld __cnfn fast_length(float4 p);
10474#ifdef cl_khr_fp16
10475half __ovld __cnfn fast_length(half p);
10476half __ovld __cnfn fast_length(half2 p);
10477half __ovld __cnfn fast_length(half3 p);
10478half __ovld __cnfn fast_length(half4 p);
10479#endif //cl_khr_fp16
10480
10481/**
10482 * Returns a vector in the same direction as p but with a
10483 * length of 1. fast_normalize is computed as:
10484 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
10485 * The result shall be within 8192 ulps error from the
10486 * infinitely precise result of
10487 * if (all(p == 0.0f))
10488 * result = p;
10489 * else
10490 * result = p / sqrt (p.x^2 + p.y^2 + ...);
10491 * with the following exceptions:
10492 * 1) If the sum of squares is greater than FLT_MAX
10493 * then the value of the floating-point values in the
10494 * result vector are undefined.
10495 * 2) If the sum of squares is less than FLT_MIN then
10496 * the implementation may return back p.
10497 * 3) If the device is in "denorms are flushed to zero"
10498 * mode, individual operand elements with magnitude
10499 * less than sqrt(FLT_MIN) may be flushed to zero
10500 * before proceeding with the calculation.
10501 */
10502float __ovld __cnfn fast_normalize(float p);
10503float2 __ovld __cnfn fast_normalize(float2 p);
10504float3 __ovld __cnfn fast_normalize(float3 p);
10505float4 __ovld __cnfn fast_normalize(float4 p);
10506#ifdef cl_khr_fp16
10507half __ovld __cnfn fast_normalize(half p);
10508half2 __ovld __cnfn fast_normalize(half2 p);
10509half3 __ovld __cnfn fast_normalize(half3 p);
10510half4 __ovld __cnfn fast_normalize(half4 p);
10511#endif //cl_khr_fp16
10512
10513// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
10514
10515/**
10516 * intn isequal (floatn x, floatn y)
10517 * Returns the component-wise compare of x == y.
10518 */
10519int __ovld __cnfn isequal(float x, float y);
10520int2 __ovld __cnfn isequal(float2 x, float2 y);
10521int3 __ovld __cnfn isequal(float3 x, float3 y);
10522int4 __ovld __cnfn isequal(float4 x, float4 y);
10523int8 __ovld __cnfn isequal(float8 x, float8 y);
10524int16 __ovld __cnfn isequal(float16 x, float16 y);
10525#ifdef cl_khr_fp64
10526int __ovld __cnfn isequal(double x, double y);
10527long2 __ovld __cnfn isequal(double2 x, double2 y);
10528long3 __ovld __cnfn isequal(double3 x, double3 y);
10529long4 __ovld __cnfn isequal(double4 x, double4 y);
10530long8 __ovld __cnfn isequal(double8 x, double8 y);
10531long16 __ovld __cnfn isequal(double16 x, double16 y);
10532#endif //cl_khr_fp64
10533#ifdef cl_khr_fp16
10534int __ovld __cnfn isequal(half x, half y);
10535short2 __ovld __cnfn isequal(half2 x, half2 y);
10536short3 __ovld __cnfn isequal(half3 x, half3 y);
10537short4 __ovld __cnfn isequal(half4 x, half4 y);
10538short8 __ovld __cnfn isequal(half8 x, half8 y);
10539short16 __ovld __cnfn isequal(half16 x, half16 y);
10540#endif //cl_khr_fp16
10541
10542/**
10543 * Returns the component-wise compare of x != y.
10544 */
10545int __ovld __cnfn isnotequal(float x, float y);
10546int2 __ovld __cnfn isnotequal(float2 x, float2 y);
10547int3 __ovld __cnfn isnotequal(float3 x, float3 y);
10548int4 __ovld __cnfn isnotequal(float4 x, float4 y);
10549int8 __ovld __cnfn isnotequal(float8 x, float8 y);
10550int16 __ovld __cnfn isnotequal(float16 x, float16 y);
10551#ifdef cl_khr_fp64
10552int __ovld __cnfn isnotequal(double x, double y);
10553long2 __ovld __cnfn isnotequal(double2 x, double2 y);
10554long3 __ovld __cnfn isnotequal(double3 x, double3 y);
10555long4 __ovld __cnfn isnotequal(double4 x, double4 y);
10556long8 __ovld __cnfn isnotequal(double8 x, double8 y);
10557long16 __ovld __cnfn isnotequal(double16 x, double16 y);
10558#endif //cl_khr_fp64
10559#ifdef cl_khr_fp16
10560int __ovld __cnfn isnotequal(half x, half y);
10561short2 __ovld __cnfn isnotequal(half2 x, half2 y);
10562short3 __ovld __cnfn isnotequal(half3 x, half3 y);
10563short4 __ovld __cnfn isnotequal(half4 x, half4 y);
10564short8 __ovld __cnfn isnotequal(half8 x, half8 y);
10565short16 __ovld __cnfn isnotequal(half16 x, half16 y);
10566#endif //cl_khr_fp16
10567
10568/**
10569 * Returns the component-wise compare of x > y.
10570 */
10571int __ovld __cnfn isgreater(float x, float y);
10572int2 __ovld __cnfn isgreater(float2 x, float2 y);
10573int3 __ovld __cnfn isgreater(float3 x, float3 y);
10574int4 __ovld __cnfn isgreater(float4 x, float4 y);
10575int8 __ovld __cnfn isgreater(float8 x, float8 y);
10576int16 __ovld __cnfn isgreater(float16 x, float16 y);
10577#ifdef cl_khr_fp64
10578int __ovld __cnfn isgreater(double x, double y);
10579long2 __ovld __cnfn isgreater(double2 x, double2 y);
10580long3 __ovld __cnfn isgreater(double3 x, double3 y);
10581long4 __ovld __cnfn isgreater(double4 x, double4 y);
10582long8 __ovld __cnfn isgreater(double8 x, double8 y);
10583long16 __ovld __cnfn isgreater(double16 x, double16 y);
10584#endif //cl_khr_fp64
10585#ifdef cl_khr_fp16
10586int __ovld __cnfn isgreater(half x, half y);
10587short2 __ovld __cnfn isgreater(half2 x, half2 y);
10588short3 __ovld __cnfn isgreater(half3 x, half3 y);
10589short4 __ovld __cnfn isgreater(half4 x, half4 y);
10590short8 __ovld __cnfn isgreater(half8 x, half8 y);
10591short16 __ovld __cnfn isgreater(half16 x, half16 y);
10592#endif //cl_khr_fp16
10593
10594/**
10595 * Returns the component-wise compare of x >= y.
10596 */
10597int __ovld __cnfn isgreaterequal(float x, float y);
10598int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
10599int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
10600int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
10601int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
10602int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
10603#ifdef cl_khr_fp64
10604int __ovld __cnfn isgreaterequal(double x, double y);
10605long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
10606long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
10607long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
10608long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
10609long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
10610#endif //cl_khr_fp64
10611#ifdef cl_khr_fp16
10612int __ovld __cnfn isgreaterequal(half x, half y);
10613short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
10614short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
10615short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
10616short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
10617short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
10618#endif //cl_khr_fp16
10619
10620/**
10621 * Returns the component-wise compare of x < y.
10622 */
10623int __ovld __cnfn isless(float x, float y);
10624int2 __ovld __cnfn isless(float2 x, float2 y);
10625int3 __ovld __cnfn isless(float3 x, float3 y);
10626int4 __ovld __cnfn isless(float4 x, float4 y);
10627int8 __ovld __cnfn isless(float8 x, float8 y);
10628int16 __ovld __cnfn isless(float16 x, float16 y);
10629#ifdef cl_khr_fp64
10630int __ovld __cnfn isless(double x, double y);
10631long2 __ovld __cnfn isless(double2 x, double2 y);
10632long3 __ovld __cnfn isless(double3 x, double3 y);
10633long4 __ovld __cnfn isless(double4 x, double4 y);
10634long8 __ovld __cnfn isless(double8 x, double8 y);
10635long16 __ovld __cnfn isless(double16 x, double16 y);
10636#endif //cl_khr_fp64
10637#ifdef cl_khr_fp16
10638int __ovld __cnfn isless(half x, half y);
10639short2 __ovld __cnfn isless(half2 x, half2 y);
10640short3 __ovld __cnfn isless(half3 x, half3 y);
10641short4 __ovld __cnfn isless(half4 x, half4 y);
10642short8 __ovld __cnfn isless(half8 x, half8 y);
10643short16 __ovld __cnfn isless(half16 x, half16 y);
10644#endif //cl_khr_fp16
10645
10646/**
10647 * Returns the component-wise compare of x <= y.
10648 */
10649int __ovld __cnfn islessequal(float x, float y);
10650int2 __ovld __cnfn islessequal(float2 x, float2 y);
10651int3 __ovld __cnfn islessequal(float3 x, float3 y);
10652int4 __ovld __cnfn islessequal(float4 x, float4 y);
10653int8 __ovld __cnfn islessequal(float8 x, float8 y);
10654int16 __ovld __cnfn islessequal(float16 x, float16 y);
10655#ifdef cl_khr_fp64
10656int __ovld __cnfn islessequal(double x, double y);
10657long2 __ovld __cnfn islessequal(double2 x, double2 y);
10658long3 __ovld __cnfn islessequal(double3 x, double3 y);
10659long4 __ovld __cnfn islessequal(double4 x, double4 y);
10660long8 __ovld __cnfn islessequal(double8 x, double8 y);
10661long16 __ovld __cnfn islessequal(double16 x, double16 y);
10662#endif //cl_khr_fp64
10663#ifdef cl_khr_fp16
10664int __ovld __cnfn islessequal(half x, half y);
10665short2 __ovld __cnfn islessequal(half2 x, half2 y);
10666short3 __ovld __cnfn islessequal(half3 x, half3 y);
10667short4 __ovld __cnfn islessequal(half4 x, half4 y);
10668short8 __ovld __cnfn islessequal(half8 x, half8 y);
10669short16 __ovld __cnfn islessequal(half16 x, half16 y);
10670#endif //cl_khr_fp16
10671
10672/**
10673 * Returns the component-wise compare of
10674 * (x < y) || (x > y) .
10675 */
10676int __ovld __cnfn islessgreater(float x, float y);
10677int2 __ovld __cnfn islessgreater(float2 x, float2 y);
10678int3 __ovld __cnfn islessgreater(float3 x, float3 y);
10679int4 __ovld __cnfn islessgreater(float4 x, float4 y);
10680int8 __ovld __cnfn islessgreater(float8 x, float8 y);
10681int16 __ovld __cnfn islessgreater(float16 x, float16 y);
10682#ifdef cl_khr_fp64
10683int __ovld __cnfn islessgreater(double x, double y);
10684long2 __ovld __cnfn islessgreater(double2 x, double2 y);
10685long3 __ovld __cnfn islessgreater(double3 x, double3 y);
10686long4 __ovld __cnfn islessgreater(double4 x, double4 y);
10687long8 __ovld __cnfn islessgreater(double8 x, double8 y);
10688long16 __ovld __cnfn islessgreater(double16 x, double16 y);
10689#endif //cl_khr_fp64
10690#ifdef cl_khr_fp16
10691int __ovld __cnfn islessgreater(half x, half y);
10692short2 __ovld __cnfn islessgreater(half2 x, half2 y);
10693short3 __ovld __cnfn islessgreater(half3 x, half3 y);
10694short4 __ovld __cnfn islessgreater(half4 x, half4 y);
10695short8 __ovld __cnfn islessgreater(half8 x, half8 y);
10696short16 __ovld __cnfn islessgreater(half16 x, half16 y);
10697#endif //cl_khr_fp16
10698
10699/**
10700 * Test for finite value.
10701 */
10702int __ovld __cnfn isfinite(float);
10703int2 __ovld __cnfn isfinite(float2);
10704int3 __ovld __cnfn isfinite(float3);
10705int4 __ovld __cnfn isfinite(float4);
10706int8 __ovld __cnfn isfinite(float8);
10707int16 __ovld __cnfn isfinite(float16);
10708#ifdef cl_khr_fp64
10709int __ovld __cnfn isfinite(double);
10710long2 __ovld __cnfn isfinite(double2);
10711long3 __ovld __cnfn isfinite(double3);
10712long4 __ovld __cnfn isfinite(double4);
10713long8 __ovld __cnfn isfinite(double8);
10714long16 __ovld __cnfn isfinite(double16);
10715#endif //cl_khr_fp64
10716#ifdef cl_khr_fp16
10717int __ovld __cnfn isfinite(half);
10718short2 __ovld __cnfn isfinite(half2);
10719short3 __ovld __cnfn isfinite(half3);
10720short4 __ovld __cnfn isfinite(half4);
10721short8 __ovld __cnfn isfinite(half8);
10722short16 __ovld __cnfn isfinite(half16);
10723#endif //cl_khr_fp16
10724
10725/**
10726 * Test for infinity value (+ve or -ve) .
10727 */
10728int __ovld __cnfn isinf(float);
10729int2 __ovld __cnfn isinf(float2);
10730int3 __ovld __cnfn isinf(float3);
10731int4 __ovld __cnfn isinf(float4);
10732int8 __ovld __cnfn isinf(float8);
10733int16 __ovld __cnfn isinf(float16);
10734#ifdef cl_khr_fp64
10735int __ovld __cnfn isinf(double);
10736long2 __ovld __cnfn isinf(double2);
10737long3 __ovld __cnfn isinf(double3);
10738long4 __ovld __cnfn isinf(double4);
10739long8 __ovld __cnfn isinf(double8);
10740long16 __ovld __cnfn isinf(double16);
10741#endif //cl_khr_fp64
10742#ifdef cl_khr_fp16
10743int __ovld __cnfn isinf(half);
10744short2 __ovld __cnfn isinf(half2);
10745short3 __ovld __cnfn isinf(half3);
10746short4 __ovld __cnfn isinf(half4);
10747short8 __ovld __cnfn isinf(half8);
10748short16 __ovld __cnfn isinf(half16);
10749#endif //cl_khr_fp16
10750
10751/**
10752 * Test for a NaN.
10753 */
10754int __ovld __cnfn isnan(float);
10755int2 __ovld __cnfn isnan(float2);
10756int3 __ovld __cnfn isnan(float3);
10757int4 __ovld __cnfn isnan(float4);
10758int8 __ovld __cnfn isnan(float8);
10759int16 __ovld __cnfn isnan(float16);
10760#ifdef cl_khr_fp64
10761int __ovld __cnfn isnan(double);
10762long2 __ovld __cnfn isnan(double2);
10763long3 __ovld __cnfn isnan(double3);
10764long4 __ovld __cnfn isnan(double4);
10765long8 __ovld __cnfn isnan(double8);
10766long16 __ovld __cnfn isnan(double16);
10767#endif //cl_khr_fp64
10768#ifdef cl_khr_fp16
10769int __ovld __cnfn isnan(half);
10770short2 __ovld __cnfn isnan(half2);
10771short3 __ovld __cnfn isnan(half3);
10772short4 __ovld __cnfn isnan(half4);
10773short8 __ovld __cnfn isnan(half8);
10774short16 __ovld __cnfn isnan(half16);
10775#endif //cl_khr_fp16
10776
10777/**
10778 * Test for a normal value.
10779 */
10780int __ovld __cnfn isnormal(float);
10781int2 __ovld __cnfn isnormal(float2);
10782int3 __ovld __cnfn isnormal(float3);
10783int4 __ovld __cnfn isnormal(float4);
10784int8 __ovld __cnfn isnormal(float8);
10785int16 __ovld __cnfn isnormal(float16);
10786#ifdef cl_khr_fp64
10787int __ovld __cnfn isnormal(double);
10788long2 __ovld __cnfn isnormal(double2);
10789long3 __ovld __cnfn isnormal(double3);
10790long4 __ovld __cnfn isnormal(double4);
10791long8 __ovld __cnfn isnormal(double8);
10792long16 __ovld __cnfn isnormal(double16);
10793#endif //cl_khr_fp64
10794#ifdef cl_khr_fp16
10795int __ovld __cnfn isnormal(half);
10796short2 __ovld __cnfn isnormal(half2);
10797short3 __ovld __cnfn isnormal(half3);
10798short4 __ovld __cnfn isnormal(half4);
10799short8 __ovld __cnfn isnormal(half8);
10800short16 __ovld __cnfn isnormal(half16);
10801#endif //cl_khr_fp16
10802
10803/**
10804 * Test if arguments are ordered. isordered() takes
10805 * arguments x and y, and returns the result
10806 * isequal(x, x) && isequal(y, y).
10807 */
10808int __ovld __cnfn isordered(float x, float y);
10809int2 __ovld __cnfn isordered(float2 x, float2 y);
10810int3 __ovld __cnfn isordered(float3 x, float3 y);
10811int4 __ovld __cnfn isordered(float4 x, float4 y);
10812int8 __ovld __cnfn isordered(float8 x, float8 y);
10813int16 __ovld __cnfn isordered(float16 x, float16 y);
10814#ifdef cl_khr_fp64
10815int __ovld __cnfn isordered(double x, double y);
10816long2 __ovld __cnfn isordered(double2 x, double2 y);
10817long3 __ovld __cnfn isordered(double3 x, double3 y);
10818long4 __ovld __cnfn isordered(double4 x, double4 y);
10819long8 __ovld __cnfn isordered(double8 x, double8 y);
10820long16 __ovld __cnfn isordered(double16 x, double16 y);
10821#endif //cl_khr_fp64
10822#ifdef cl_khr_fp16
10823int __ovld __cnfn isordered(half x, half y);
10824short2 __ovld __cnfn isordered(half2 x, half2 y);
10825short3 __ovld __cnfn isordered(half3 x, half3 y);
10826short4 __ovld __cnfn isordered(half4 x, half4 y);
10827short8 __ovld __cnfn isordered(half8 x, half8 y);
10828short16 __ovld __cnfn isordered(half16 x, half16 y);
10829#endif //cl_khr_fp16
10830
10831/**
10832 * Test if arguments are unordered. isunordered()
10833 * takes arguments x and y, returning non-zero if x or y
10834 * is NaN, and zero otherwise.
10835 */
10836int __ovld __cnfn isunordered(float x, float y);
10837int2 __ovld __cnfn isunordered(float2 x, float2 y);
10838int3 __ovld __cnfn isunordered(float3 x, float3 y);
10839int4 __ovld __cnfn isunordered(float4 x, float4 y);
10840int8 __ovld __cnfn isunordered(float8 x, float8 y);
10841int16 __ovld __cnfn isunordered(float16 x, float16 y);
10842#ifdef cl_khr_fp64
10843int __ovld __cnfn isunordered(double x, double y);
10844long2 __ovld __cnfn isunordered(double2 x, double2 y);
10845long3 __ovld __cnfn isunordered(double3 x, double3 y);
10846long4 __ovld __cnfn isunordered(double4 x, double4 y);
10847long8 __ovld __cnfn isunordered(double8 x, double8 y);
10848long16 __ovld __cnfn isunordered(double16 x, double16 y);
10849#endif //cl_khr_fp64
10850#ifdef cl_khr_fp16
10851int __ovld __cnfn isunordered(half x, half y);
10852short2 __ovld __cnfn isunordered(half2 x, half2 y);
10853short3 __ovld __cnfn isunordered(half3 x, half3 y);
10854short4 __ovld __cnfn isunordered(half4 x, half4 y);
10855short8 __ovld __cnfn isunordered(half8 x, half8 y);
10856short16 __ovld __cnfn isunordered(half16 x, half16 y);
10857#endif //cl_khr_fp16
10858
10859/**
10860 * Test for sign bit. The scalar version of the function
10861 * returns a 1 if the sign bit in the float is set else returns
10862 * 0. The vector version of the function returns the
10863 * following for each component in floatn: a -1 if the
10864 * sign bit in the float is set else returns 0.
10865 */
10866int __ovld __cnfn signbit(float);
10867int2 __ovld __cnfn signbit(float2);
10868int3 __ovld __cnfn signbit(float3);
10869int4 __ovld __cnfn signbit(float4);
10870int8 __ovld __cnfn signbit(float8);
10871int16 __ovld __cnfn signbit(float16);
10872#ifdef cl_khr_fp64
10873int __ovld __cnfn signbit(double);
10874long2 __ovld __cnfn signbit(double2);
10875long3 __ovld __cnfn signbit(double3);
10876long4 __ovld __cnfn signbit(double4);
10877long8 __ovld __cnfn signbit(double8);
10878long16 __ovld __cnfn signbit(double16);
10879#endif //cl_khr_fp64
10880#ifdef cl_khr_fp16
10881int __ovld __cnfn signbit(half);
10882short2 __ovld __cnfn signbit(half2);
10883short3 __ovld __cnfn signbit(half3);
10884short4 __ovld __cnfn signbit(half4);
10885short8 __ovld __cnfn signbit(half8);
10886short16 __ovld __cnfn signbit(half16);
10887#endif //cl_khr_fp16
10888
10889/**
10890 * Returns 1 if the most significant bit in any component
10891 * of x is set; otherwise returns 0.
10892 */
10893int __ovld __cnfn any(char x);
10894int __ovld __cnfn any(char2 x);
10895int __ovld __cnfn any(char3 x);
10896int __ovld __cnfn any(char4 x);
10897int __ovld __cnfn any(char8 x);
10898int __ovld __cnfn any(char16 x);
10899int __ovld __cnfn any(short x);
10900int __ovld __cnfn any(short2 x);
10901int __ovld __cnfn any(short3 x);
10902int __ovld __cnfn any(short4 x);
10903int __ovld __cnfn any(short8 x);
10904int __ovld __cnfn any(short16 x);
10905int __ovld __cnfn any(int x);
10906int __ovld __cnfn any(int2 x);
10907int __ovld __cnfn any(int3 x);
10908int __ovld __cnfn any(int4 x);
10909int __ovld __cnfn any(int8 x);
10910int __ovld __cnfn any(int16 x);
10911int __ovld __cnfn any(long x);
10912int __ovld __cnfn any(long2 x);
10913int __ovld __cnfn any(long3 x);
10914int __ovld __cnfn any(long4 x);
10915int __ovld __cnfn any(long8 x);
10916int __ovld __cnfn any(long16 x);
10917
10918/**
10919 * Returns 1 if the most significant bit in all components
10920 * of x is set; otherwise returns 0.
10921 */
10922int __ovld __cnfn all(char x);
10923int __ovld __cnfn all(char2 x);
10924int __ovld __cnfn all(char3 x);
10925int __ovld __cnfn all(char4 x);
10926int __ovld __cnfn all(char8 x);
10927int __ovld __cnfn all(char16 x);
10928int __ovld __cnfn all(short x);
10929int __ovld __cnfn all(short2 x);
10930int __ovld __cnfn all(short3 x);
10931int __ovld __cnfn all(short4 x);
10932int __ovld __cnfn all(short8 x);
10933int __ovld __cnfn all(short16 x);
10934int __ovld __cnfn all(int x);
10935int __ovld __cnfn all(int2 x);
10936int __ovld __cnfn all(int3 x);
10937int __ovld __cnfn all(int4 x);
10938int __ovld __cnfn all(int8 x);
10939int __ovld __cnfn all(int16 x);
10940int __ovld __cnfn all(long x);
10941int __ovld __cnfn all(long2 x);
10942int __ovld __cnfn all(long3 x);
10943int __ovld __cnfn all(long4 x);
10944int __ovld __cnfn all(long8 x);
10945int __ovld __cnfn all(long16 x);
10946
10947/**
10948 * Each bit of the result is the corresponding bit of a if
10949 * the corresponding bit of c is 0. Otherwise it is the
10950 * corresponding bit of b.
10951 */
10952char __ovld __cnfn bitselect(char a, char b, char c);
10953uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c);
10954char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
10955uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
10956char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
10957uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
10958char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
10959uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
10960char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
10961uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
10962char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
10963uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
10964short __ovld __cnfn bitselect(short a, short b, short c);
10965ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c);
10966short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
10967ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
10968short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
10969ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
10970short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
10971ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
10972short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
10973ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
10974short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
10975ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
10976int __ovld __cnfn bitselect(int a, int b, int c);
10977uint __ovld __cnfn bitselect(uint a, uint b, uint c);
10978int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
10979uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
10980int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
10981uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
10982int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
10983uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
10984int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c);
10985uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c);
10986int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c);
10987uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c);
10988long __ovld __cnfn bitselect(long a, long b, long c);
10989ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c);
10990long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
10991ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
10992long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
10993ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
10994long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
10995ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
10996long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
10997ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
10998long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
10999ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
11000float __ovld __cnfn bitselect(float a, float b, float c);
11001float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
11002float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
11003float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
11004float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
11005float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
11006#ifdef cl_khr_fp64
11007double __ovld __cnfn bitselect(double a, double b, double c);
11008double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
11009double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
11010double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
11011double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
11012double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
11013#endif //cl_khr_fp64
11014#ifdef cl_khr_fp16
11015half __ovld __cnfn bitselect(half a, half b, half c);
11016half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
11017half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
11018half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
11019half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
11020half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
11021#endif //cl_khr_fp16
11022
11023/**
11024 * For each component of a vector type,
11025 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
11026 * For a scalar type, result = c ? b : a.
Logan Chien55afb0a2018-10-15 10:42:14 +080011027 * b and a must have the same type.
11028 * c must have the same number of elements and bits as a.
Logan Chien2833ffb2018-10-09 10:03:24 +080011029 */
11030char __ovld __cnfn select(char a, char b, char c);
11031uchar __ovld __cnfn select(uchar a, uchar b, char c);
11032char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
11033uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
11034char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
11035uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
11036char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
11037uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
11038char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
11039uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
11040char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
11041uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011042
Logan Chien2833ffb2018-10-09 10:03:24 +080011043short __ovld __cnfn select(short a, short b, short c);
11044ushort __ovld __cnfn select(ushort a, ushort b, short c);
11045short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
11046ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
11047short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
11048ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
11049short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
11050ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
11051short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
11052ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
11053short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
11054ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011055
Logan Chien2833ffb2018-10-09 10:03:24 +080011056int __ovld __cnfn select(int a, int b, int c);
11057uint __ovld __cnfn select(uint a, uint b, int c);
11058int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
11059uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
11060int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
11061uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
11062int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
11063uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
11064int8 __ovld __cnfn select(int8 a, int8 b, int8 c);
11065uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c);
11066int16 __ovld __cnfn select(int16 a, int16 b, int16 c);
11067uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c);
Logan Chien2833ffb2018-10-09 10:03:24 +080011068float __ovld __cnfn select(float a, float b, int c);
11069float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
11070float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
11071float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
11072float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
11073float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011074
Logan Chien2833ffb2018-10-09 10:03:24 +080011075long __ovld __cnfn select(long a, long b, long c);
11076ulong __ovld __cnfn select(ulong a, ulong b, long c);
11077long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
11078ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
11079long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
11080ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
11081long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
11082ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
11083long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
11084ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
11085long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
11086ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011087
Logan Chien2833ffb2018-10-09 10:03:24 +080011088char __ovld __cnfn select(char a, char b, uchar c);
11089uchar __ovld __cnfn select(uchar a, uchar b, uchar c);
11090char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
11091uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
11092char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
11093uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
11094char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
11095uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
11096char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
11097uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
11098char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
11099uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011100
Logan Chien2833ffb2018-10-09 10:03:24 +080011101short __ovld __cnfn select(short a, short b, ushort c);
11102ushort __ovld __cnfn select(ushort a, ushort b, ushort c);
11103short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
11104ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
11105short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
11106ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
11107short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
11108ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
11109short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
11110ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
11111short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
11112ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011113
Logan Chien2833ffb2018-10-09 10:03:24 +080011114int __ovld __cnfn select(int a, int b, uint c);
11115uint __ovld __cnfn select(uint a, uint b, uint c);
11116int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
11117uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
11118int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
11119uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
11120int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
11121uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
11122int8 __ovld __cnfn select(int8 a, int8 b, uint8 c);
11123uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c);
11124int16 __ovld __cnfn select(int16 a, int16 b, uint16 c);
11125uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c);
Logan Chien2833ffb2018-10-09 10:03:24 +080011126float __ovld __cnfn select(float a, float b, uint c);
11127float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
11128float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
11129float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
11130float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
11131float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011132
Logan Chien2833ffb2018-10-09 10:03:24 +080011133long __ovld __cnfn select(long a, long b, ulong c);
11134ulong __ovld __cnfn select(ulong a, ulong b, ulong c);
11135long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
11136ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
11137long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
11138ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
11139long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
11140ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
11141long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
11142ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
11143long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
11144ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
Logan Chien55afb0a2018-10-15 10:42:14 +080011145
Logan Chien2833ffb2018-10-09 10:03:24 +080011146#ifdef cl_khr_fp64
11147double __ovld __cnfn select(double a, double b, long c);
11148double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
11149double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
11150double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
11151double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
11152double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
11153double __ovld __cnfn select(double a, double b, ulong c);
11154double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
11155double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
11156double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
11157double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
11158double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
11159#endif //cl_khr_fp64
11160#ifdef cl_khr_fp16
11161half __ovld __cnfn select(half a, half b, short c);
11162half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
11163half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
11164half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
11165half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
11166half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
11167half __ovld __cnfn select(half a, half b, ushort c);
11168half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
11169half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
11170half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
11171half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
11172half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
11173#endif //cl_khr_fp16
11174
11175// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
11176// 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
11177/**
11178 * Use generic type gentype to indicate the built-in data types
11179 * char, uchar, short, ushort, int, uint, long, ulong, float,
11180 * double or half.
11181 *
11182 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
11183 *
11184 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
11185 *
Logan Chien55afb0a2018-10-15 10:42:14 +080011186 * The address computed as (p + (offset * n)) must be
Logan Chien2833ffb2018-10-09 10:03:24 +080011187 * 8-bit aligned if gentype is char, uchar;
11188 * 16-bit aligned if gentype is short, ushort, half;
11189 * 32-bit aligned if gentype is int, uint, float;
11190 * 64-bit aligned if gentype is long, ulong, double.
11191 */
11192
11193char2 __ovld vload2(size_t offset, const __constant char *p);
11194uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
11195short2 __ovld vload2(size_t offset, const __constant short *p);
11196ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
11197int2 __ovld vload2(size_t offset, const __constant int *p);
11198uint2 __ovld vload2(size_t offset, const __constant uint *p);
11199long2 __ovld vload2(size_t offset, const __constant long *p);
11200ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
11201float2 __ovld vload2(size_t offset, const __constant float *p);
11202char3 __ovld vload3(size_t offset, const __constant char *p);
11203uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
11204short3 __ovld vload3(size_t offset, const __constant short *p);
11205ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
11206int3 __ovld vload3(size_t offset, const __constant int *p);
11207uint3 __ovld vload3(size_t offset, const __constant uint *p);
11208long3 __ovld vload3(size_t offset, const __constant long *p);
11209ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
11210float3 __ovld vload3(size_t offset, const __constant float *p);
11211char4 __ovld vload4(size_t offset, const __constant char *p);
11212uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
11213short4 __ovld vload4(size_t offset, const __constant short *p);
11214ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
11215int4 __ovld vload4(size_t offset, const __constant int *p);
11216uint4 __ovld vload4(size_t offset, const __constant uint *p);
11217long4 __ovld vload4(size_t offset, const __constant long *p);
11218ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
11219float4 __ovld vload4(size_t offset, const __constant float *p);
11220char8 __ovld vload8(size_t offset, const __constant char *p);
11221uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
11222short8 __ovld vload8(size_t offset, const __constant short *p);
11223ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
11224int8 __ovld vload8(size_t offset, const __constant int *p);
11225uint8 __ovld vload8(size_t offset, const __constant uint *p);
11226long8 __ovld vload8(size_t offset, const __constant long *p);
11227ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
11228float8 __ovld vload8(size_t offset, const __constant float *p);
11229char16 __ovld vload16(size_t offset, const __constant char *p);
11230uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
11231short16 __ovld vload16(size_t offset, const __constant short *p);
11232ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
11233int16 __ovld vload16(size_t offset, const __constant int *p);
11234uint16 __ovld vload16(size_t offset, const __constant uint *p);
11235long16 __ovld vload16(size_t offset, const __constant long *p);
11236ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
11237float16 __ovld vload16(size_t offset, const __constant float *p);
11238#ifdef cl_khr_fp64
11239double2 __ovld vload2(size_t offset, const __constant double *p);
11240double3 __ovld vload3(size_t offset, const __constant double *p);
11241double4 __ovld vload4(size_t offset, const __constant double *p);
11242double8 __ovld vload8(size_t offset, const __constant double *p);
11243double16 __ovld vload16(size_t offset, const __constant double *p);
11244#endif //cl_khr_fp64
11245
11246#ifdef cl_khr_fp16
11247half __ovld vload(size_t offset, const __constant half *p);
11248half2 __ovld vload2(size_t offset, const __constant half *p);
11249half3 __ovld vload3(size_t offset, const __constant half *p);
11250half4 __ovld vload4(size_t offset, const __constant half *p);
11251half8 __ovld vload8(size_t offset, const __constant half *p);
11252half16 __ovld vload16(size_t offset, const __constant half *p);
11253#endif //cl_khr_fp16
11254
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011255#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011256char2 __ovld vload2(size_t offset, const char *p);
11257uchar2 __ovld vload2(size_t offset, const uchar *p);
11258short2 __ovld vload2(size_t offset, const short *p);
11259ushort2 __ovld vload2(size_t offset, const ushort *p);
11260int2 __ovld vload2(size_t offset, const int *p);
11261uint2 __ovld vload2(size_t offset, const uint *p);
11262long2 __ovld vload2(size_t offset, const long *p);
11263ulong2 __ovld vload2(size_t offset, const ulong *p);
11264float2 __ovld vload2(size_t offset, const float *p);
11265char3 __ovld vload3(size_t offset, const char *p);
11266uchar3 __ovld vload3(size_t offset, const uchar *p);
11267short3 __ovld vload3(size_t offset, const short *p);
11268ushort3 __ovld vload3(size_t offset, const ushort *p);
11269int3 __ovld vload3(size_t offset, const int *p);
11270uint3 __ovld vload3(size_t offset, const uint *p);
11271long3 __ovld vload3(size_t offset, const long *p);
11272ulong3 __ovld vload3(size_t offset, const ulong *p);
11273float3 __ovld vload3(size_t offset, const float *p);
11274char4 __ovld vload4(size_t offset, const char *p);
11275uchar4 __ovld vload4(size_t offset, const uchar *p);
11276short4 __ovld vload4(size_t offset, const short *p);
11277ushort4 __ovld vload4(size_t offset, const ushort *p);
11278int4 __ovld vload4(size_t offset, const int *p);
11279uint4 __ovld vload4(size_t offset, const uint *p);
11280long4 __ovld vload4(size_t offset, const long *p);
11281ulong4 __ovld vload4(size_t offset, const ulong *p);
11282float4 __ovld vload4(size_t offset, const float *p);
11283char8 __ovld vload8(size_t offset, const char *p);
11284uchar8 __ovld vload8(size_t offset, const uchar *p);
11285short8 __ovld vload8(size_t offset, const short *p);
11286ushort8 __ovld vload8(size_t offset, const ushort *p);
11287int8 __ovld vload8(size_t offset, const int *p);
11288uint8 __ovld vload8(size_t offset, const uint *p);
11289long8 __ovld vload8(size_t offset, const long *p);
11290ulong8 __ovld vload8(size_t offset, const ulong *p);
11291float8 __ovld vload8(size_t offset, const float *p);
11292char16 __ovld vload16(size_t offset, const char *p);
11293uchar16 __ovld vload16(size_t offset, const uchar *p);
11294short16 __ovld vload16(size_t offset, const short *p);
11295ushort16 __ovld vload16(size_t offset, const ushort *p);
11296int16 __ovld vload16(size_t offset, const int *p);
11297uint16 __ovld vload16(size_t offset, const uint *p);
11298long16 __ovld vload16(size_t offset, const long *p);
11299ulong16 __ovld vload16(size_t offset, const ulong *p);
11300float16 __ovld vload16(size_t offset, const float *p);
11301
11302#ifdef cl_khr_fp64
11303double2 __ovld vload2(size_t offset, const double *p);
11304double3 __ovld vload3(size_t offset, const double *p);
11305double4 __ovld vload4(size_t offset, const double *p);
11306double8 __ovld vload8(size_t offset, const double *p);
11307double16 __ovld vload16(size_t offset, const double *p);
11308#endif //cl_khr_fp64
11309
11310#ifdef cl_khr_fp16
11311half __ovld vload(size_t offset, const half *p);
11312half2 __ovld vload2(size_t offset, const half *p);
11313half3 __ovld vload3(size_t offset, const half *p);
11314half4 __ovld vload4(size_t offset, const half *p);
11315half8 __ovld vload8(size_t offset, const half *p);
11316half16 __ovld vload16(size_t offset, const half *p);
11317#endif //cl_khr_fp16
11318#else
11319char2 __ovld vload2(size_t offset, const __global char *p);
11320uchar2 __ovld vload2(size_t offset, const __global uchar *p);
11321short2 __ovld vload2(size_t offset, const __global short *p);
11322ushort2 __ovld vload2(size_t offset, const __global ushort *p);
11323int2 __ovld vload2(size_t offset, const __global int *p);
11324uint2 __ovld vload2(size_t offset, const __global uint *p);
11325long2 __ovld vload2(size_t offset, const __global long *p);
11326ulong2 __ovld vload2(size_t offset, const __global ulong *p);
11327float2 __ovld vload2(size_t offset, const __global float *p);
11328char3 __ovld vload3(size_t offset, const __global char *p);
11329uchar3 __ovld vload3(size_t offset, const __global uchar *p);
11330short3 __ovld vload3(size_t offset, const __global short *p);
11331ushort3 __ovld vload3(size_t offset, const __global ushort *p);
11332int3 __ovld vload3(size_t offset, const __global int *p);
11333uint3 __ovld vload3(size_t offset, const __global uint *p);
11334long3 __ovld vload3(size_t offset, const __global long *p);
11335ulong3 __ovld vload3(size_t offset, const __global ulong *p);
11336float3 __ovld vload3(size_t offset, const __global float *p);
11337char4 __ovld vload4(size_t offset, const __global char *p);
11338uchar4 __ovld vload4(size_t offset, const __global uchar *p);
11339short4 __ovld vload4(size_t offset, const __global short *p);
11340ushort4 __ovld vload4(size_t offset, const __global ushort *p);
11341int4 __ovld vload4(size_t offset, const __global int *p);
11342uint4 __ovld vload4(size_t offset, const __global uint *p);
11343long4 __ovld vload4(size_t offset, const __global long *p);
11344ulong4 __ovld vload4(size_t offset, const __global ulong *p);
11345float4 __ovld vload4(size_t offset, const __global float *p);
11346char8 __ovld vload8(size_t offset, const __global char *p);
11347uchar8 __ovld vload8(size_t offset, const __global uchar *p);
11348short8 __ovld vload8(size_t offset, const __global short *p);
11349ushort8 __ovld vload8(size_t offset, const __global ushort *p);
11350int8 __ovld vload8(size_t offset, const __global int *p);
11351uint8 __ovld vload8(size_t offset, const __global uint *p);
11352long8 __ovld vload8(size_t offset, const __global long *p);
11353ulong8 __ovld vload8(size_t offset, const __global ulong *p);
11354float8 __ovld vload8(size_t offset, const __global float *p);
11355char16 __ovld vload16(size_t offset, const __global char *p);
11356uchar16 __ovld vload16(size_t offset, const __global uchar *p);
11357short16 __ovld vload16(size_t offset, const __global short *p);
11358ushort16 __ovld vload16(size_t offset, const __global ushort *p);
11359int16 __ovld vload16(size_t offset, const __global int *p);
11360uint16 __ovld vload16(size_t offset, const __global uint *p);
11361long16 __ovld vload16(size_t offset, const __global long *p);
11362ulong16 __ovld vload16(size_t offset, const __global ulong *p);
11363float16 __ovld vload16(size_t offset, const __global float *p);
11364char2 __ovld vload2(size_t offset, const __local char *p);
11365uchar2 __ovld vload2(size_t offset, const __local uchar *p);
11366short2 __ovld vload2(size_t offset, const __local short *p);
11367ushort2 __ovld vload2(size_t offset, const __local ushort *p);
11368int2 __ovld vload2(size_t offset, const __local int *p);
11369uint2 __ovld vload2(size_t offset, const __local uint *p);
11370long2 __ovld vload2(size_t offset, const __local long *p);
11371ulong2 __ovld vload2(size_t offset, const __local ulong *p);
11372float2 __ovld vload2(size_t offset, const __local float *p);
11373char3 __ovld vload3(size_t offset, const __local char *p);
11374uchar3 __ovld vload3(size_t offset, const __local uchar *p);
11375short3 __ovld vload3(size_t offset, const __local short *p);
11376ushort3 __ovld vload3(size_t offset, const __local ushort *p);
11377int3 __ovld vload3(size_t offset, const __local int *p);
11378uint3 __ovld vload3(size_t offset, const __local uint *p);
11379long3 __ovld vload3(size_t offset, const __local long *p);
11380ulong3 __ovld vload3(size_t offset, const __local ulong *p);
11381float3 __ovld vload3(size_t offset, const __local float *p);
11382char4 __ovld vload4(size_t offset, const __local char *p);
11383uchar4 __ovld vload4(size_t offset, const __local uchar *p);
11384short4 __ovld vload4(size_t offset, const __local short *p);
11385ushort4 __ovld vload4(size_t offset, const __local ushort *p);
11386int4 __ovld vload4(size_t offset, const __local int *p);
11387uint4 __ovld vload4(size_t offset, const __local uint *p);
11388long4 __ovld vload4(size_t offset, const __local long *p);
11389ulong4 __ovld vload4(size_t offset, const __local ulong *p);
11390float4 __ovld vload4(size_t offset, const __local float *p);
11391char8 __ovld vload8(size_t offset, const __local char *p);
11392uchar8 __ovld vload8(size_t offset, const __local uchar *p);
11393short8 __ovld vload8(size_t offset, const __local short *p);
11394ushort8 __ovld vload8(size_t offset, const __local ushort *p);
11395int8 __ovld vload8(size_t offset, const __local int *p);
11396uint8 __ovld vload8(size_t offset, const __local uint *p);
11397long8 __ovld vload8(size_t offset, const __local long *p);
11398ulong8 __ovld vload8(size_t offset, const __local ulong *p);
11399float8 __ovld vload8(size_t offset, const __local float *p);
11400char16 __ovld vload16(size_t offset, const __local char *p);
11401uchar16 __ovld vload16(size_t offset, const __local uchar *p);
11402short16 __ovld vload16(size_t offset, const __local short *p);
11403ushort16 __ovld vload16(size_t offset, const __local ushort *p);
11404int16 __ovld vload16(size_t offset, const __local int *p);
11405uint16 __ovld vload16(size_t offset, const __local uint *p);
11406long16 __ovld vload16(size_t offset, const __local long *p);
11407ulong16 __ovld vload16(size_t offset, const __local ulong *p);
11408float16 __ovld vload16(size_t offset, const __local float *p);
11409char2 __ovld vload2(size_t offset, const __private char *p);
11410uchar2 __ovld vload2(size_t offset, const __private uchar *p);
11411short2 __ovld vload2(size_t offset, const __private short *p);
11412ushort2 __ovld vload2(size_t offset, const __private ushort *p);
11413int2 __ovld vload2(size_t offset, const __private int *p);
11414uint2 __ovld vload2(size_t offset, const __private uint *p);
11415long2 __ovld vload2(size_t offset, const __private long *p);
11416ulong2 __ovld vload2(size_t offset, const __private ulong *p);
11417float2 __ovld vload2(size_t offset, const __private float *p);
11418char3 __ovld vload3(size_t offset, const __private char *p);
11419uchar3 __ovld vload3(size_t offset, const __private uchar *p);
11420short3 __ovld vload3(size_t offset, const __private short *p);
11421ushort3 __ovld vload3(size_t offset, const __private ushort *p);
11422int3 __ovld vload3(size_t offset, const __private int *p);
11423uint3 __ovld vload3(size_t offset, const __private uint *p);
11424long3 __ovld vload3(size_t offset, const __private long *p);
11425ulong3 __ovld vload3(size_t offset, const __private ulong *p);
11426float3 __ovld vload3(size_t offset, const __private float *p);
11427char4 __ovld vload4(size_t offset, const __private char *p);
11428uchar4 __ovld vload4(size_t offset, const __private uchar *p);
11429short4 __ovld vload4(size_t offset, const __private short *p);
11430ushort4 __ovld vload4(size_t offset, const __private ushort *p);
11431int4 __ovld vload4(size_t offset, const __private int *p);
11432uint4 __ovld vload4(size_t offset, const __private uint *p);
11433long4 __ovld vload4(size_t offset, const __private long *p);
11434ulong4 __ovld vload4(size_t offset, const __private ulong *p);
11435float4 __ovld vload4(size_t offset, const __private float *p);
11436char8 __ovld vload8(size_t offset, const __private char *p);
11437uchar8 __ovld vload8(size_t offset, const __private uchar *p);
11438short8 __ovld vload8(size_t offset, const __private short *p);
11439ushort8 __ovld vload8(size_t offset, const __private ushort *p);
11440int8 __ovld vload8(size_t offset, const __private int *p);
11441uint8 __ovld vload8(size_t offset, const __private uint *p);
11442long8 __ovld vload8(size_t offset, const __private long *p);
11443ulong8 __ovld vload8(size_t offset, const __private ulong *p);
11444float8 __ovld vload8(size_t offset, const __private float *p);
11445char16 __ovld vload16(size_t offset, const __private char *p);
11446uchar16 __ovld vload16(size_t offset, const __private uchar *p);
11447short16 __ovld vload16(size_t offset, const __private short *p);
11448ushort16 __ovld vload16(size_t offset, const __private ushort *p);
11449int16 __ovld vload16(size_t offset, const __private int *p);
11450uint16 __ovld vload16(size_t offset, const __private uint *p);
11451long16 __ovld vload16(size_t offset, const __private long *p);
11452ulong16 __ovld vload16(size_t offset, const __private ulong *p);
11453float16 __ovld vload16(size_t offset, const __private float *p);
11454
11455#ifdef cl_khr_fp64
11456double2 __ovld vload2(size_t offset, const __global double *p);
11457double3 __ovld vload3(size_t offset, const __global double *p);
11458double4 __ovld vload4(size_t offset, const __global double *p);
11459double8 __ovld vload8(size_t offset, const __global double *p);
11460double16 __ovld vload16(size_t offset, const __global double *p);
11461double2 __ovld vload2(size_t offset, const __local double *p);
11462double3 __ovld vload3(size_t offset, const __local double *p);
11463double4 __ovld vload4(size_t offset, const __local double *p);
11464double8 __ovld vload8(size_t offset, const __local double *p);
11465double16 __ovld vload16(size_t offset, const __local double *p);
11466double2 __ovld vload2(size_t offset, const __private double *p);
11467double3 __ovld vload3(size_t offset, const __private double *p);
11468double4 __ovld vload4(size_t offset, const __private double *p);
11469double8 __ovld vload8(size_t offset, const __private double *p);
11470double16 __ovld vload16(size_t offset, const __private double *p);
11471#endif //cl_khr_fp64
11472
11473#ifdef cl_khr_fp16
11474half __ovld vload(size_t offset, const __global half *p);
11475half2 __ovld vload2(size_t offset, const __global half *p);
11476half3 __ovld vload3(size_t offset, const __global half *p);
11477half4 __ovld vload4(size_t offset, const __global half *p);
11478half8 __ovld vload8(size_t offset, const __global half *p);
11479half16 __ovld vload16(size_t offset, const __global half *p);
11480half __ovld vload(size_t offset, const __local half *p);
11481half2 __ovld vload2(size_t offset, const __local half *p);
11482half3 __ovld vload3(size_t offset, const __local half *p);
11483half4 __ovld vload4(size_t offset, const __local half *p);
11484half8 __ovld vload8(size_t offset, const __local half *p);
11485half16 __ovld vload16(size_t offset, const __local half *p);
11486half __ovld vload(size_t offset, const __private half *p);
11487half2 __ovld vload2(size_t offset, const __private half *p);
11488half3 __ovld vload3(size_t offset, const __private half *p);
11489half4 __ovld vload4(size_t offset, const __private half *p);
11490half8 __ovld vload8(size_t offset, const __private half *p);
11491half16 __ovld vload16(size_t offset, const __private half *p);
11492#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011493#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011494
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011495#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011496void __ovld vstore2(char2 data, size_t offset, char *p);
11497void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
11498void __ovld vstore2(short2 data, size_t offset, short *p);
11499void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
11500void __ovld vstore2(int2 data, size_t offset, int *p);
11501void __ovld vstore2(uint2 data, size_t offset, uint *p);
11502void __ovld vstore2(long2 data, size_t offset, long *p);
11503void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
11504void __ovld vstore2(float2 data, size_t offset, float *p);
11505void __ovld vstore3(char3 data, size_t offset, char *p);
11506void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
11507void __ovld vstore3(short3 data, size_t offset, short *p);
11508void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
11509void __ovld vstore3(int3 data, size_t offset, int *p);
11510void __ovld vstore3(uint3 data, size_t offset, uint *p);
11511void __ovld vstore3(long3 data, size_t offset, long *p);
11512void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
11513void __ovld vstore3(float3 data, size_t offset, float *p);
11514void __ovld vstore4(char4 data, size_t offset, char *p);
11515void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
11516void __ovld vstore4(short4 data, size_t offset, short *p);
11517void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
11518void __ovld vstore4(int4 data, size_t offset, int *p);
11519void __ovld vstore4(uint4 data, size_t offset, uint *p);
11520void __ovld vstore4(long4 data, size_t offset, long *p);
11521void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
11522void __ovld vstore4(float4 data, size_t offset, float *p);
11523void __ovld vstore8(char8 data, size_t offset, char *p);
11524void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
11525void __ovld vstore8(short8 data, size_t offset, short *p);
11526void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
11527void __ovld vstore8(int8 data, size_t offset, int *p);
11528void __ovld vstore8(uint8 data, size_t offset, uint *p);
11529void __ovld vstore8(long8 data, size_t offset, long *p);
11530void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
11531void __ovld vstore8(float8 data, size_t offset, float *p);
11532void __ovld vstore16(char16 data, size_t offset, char *p);
11533void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
11534void __ovld vstore16(short16 data, size_t offset, short *p);
11535void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
11536void __ovld vstore16(int16 data, size_t offset, int *p);
11537void __ovld vstore16(uint16 data, size_t offset, uint *p);
11538void __ovld vstore16(long16 data, size_t offset, long *p);
11539void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
11540void __ovld vstore16(float16 data, size_t offset, float *p);
11541#ifdef cl_khr_fp64
11542void __ovld vstore2(double2 data, size_t offset, double *p);
11543void __ovld vstore3(double3 data, size_t offset, double *p);
11544void __ovld vstore4(double4 data, size_t offset, double *p);
11545void __ovld vstore8(double8 data, size_t offset, double *p);
11546void __ovld vstore16(double16 data, size_t offset, double *p);
11547#endif //cl_khr_fp64
11548#ifdef cl_khr_fp16
11549void __ovld vstore(half data, size_t offset, half *p);
11550void __ovld vstore2(half2 data, size_t offset, half *p);
11551void __ovld vstore3(half3 data, size_t offset, half *p);
11552void __ovld vstore4(half4 data, size_t offset, half *p);
11553void __ovld vstore8(half8 data, size_t offset, half *p);
11554void __ovld vstore16(half16 data, size_t offset, half *p);
11555#endif //cl_khr_fp16
11556#else
11557void __ovld vstore2(char2 data, size_t offset, __global char *p);
11558void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
11559void __ovld vstore2(short2 data, size_t offset, __global short *p);
11560void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
11561void __ovld vstore2(int2 data, size_t offset, __global int *p);
11562void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
11563void __ovld vstore2(long2 data, size_t offset, __global long *p);
11564void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
11565void __ovld vstore2(float2 data, size_t offset, __global float *p);
11566void __ovld vstore3(char3 data, size_t offset, __global char *p);
11567void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
11568void __ovld vstore3(short3 data, size_t offset, __global short *p);
11569void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
11570void __ovld vstore3(int3 data, size_t offset, __global int *p);
11571void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
11572void __ovld vstore3(long3 data, size_t offset, __global long *p);
11573void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
11574void __ovld vstore3(float3 data, size_t offset, __global float *p);
11575void __ovld vstore4(char4 data, size_t offset, __global char *p);
11576void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
11577void __ovld vstore4(short4 data, size_t offset, __global short *p);
11578void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
11579void __ovld vstore4(int4 data, size_t offset, __global int *p);
11580void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
11581void __ovld vstore4(long4 data, size_t offset, __global long *p);
11582void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
11583void __ovld vstore4(float4 data, size_t offset, __global float *p);
11584void __ovld vstore8(char8 data, size_t offset, __global char *p);
11585void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
11586void __ovld vstore8(short8 data, size_t offset, __global short *p);
11587void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
11588void __ovld vstore8(int8 data, size_t offset, __global int *p);
11589void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
11590void __ovld vstore8(long8 data, size_t offset, __global long *p);
11591void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
11592void __ovld vstore8(float8 data, size_t offset, __global float *p);
11593void __ovld vstore16(char16 data, size_t offset, __global char *p);
11594void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
11595void __ovld vstore16(short16 data, size_t offset, __global short *p);
11596void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
11597void __ovld vstore16(int16 data, size_t offset, __global int *p);
11598void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
11599void __ovld vstore16(long16 data, size_t offset, __global long *p);
11600void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
11601void __ovld vstore16(float16 data, size_t offset, __global float *p);
11602void __ovld vstore2(char2 data, size_t offset, __local char *p);
11603void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
11604void __ovld vstore2(short2 data, size_t offset, __local short *p);
11605void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
11606void __ovld vstore2(int2 data, size_t offset, __local int *p);
11607void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
11608void __ovld vstore2(long2 data, size_t offset, __local long *p);
11609void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
11610void __ovld vstore2(float2 data, size_t offset, __local float *p);
11611void __ovld vstore3(char3 data, size_t offset, __local char *p);
11612void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
11613void __ovld vstore3(short3 data, size_t offset, __local short *p);
11614void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
11615void __ovld vstore3(int3 data, size_t offset, __local int *p);
11616void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
11617void __ovld vstore3(long3 data, size_t offset, __local long *p);
11618void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
11619void __ovld vstore3(float3 data, size_t offset, __local float *p);
11620void __ovld vstore4(char4 data, size_t offset, __local char *p);
11621void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
11622void __ovld vstore4(short4 data, size_t offset, __local short *p);
11623void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
11624void __ovld vstore4(int4 data, size_t offset, __local int *p);
11625void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
11626void __ovld vstore4(long4 data, size_t offset, __local long *p);
11627void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
11628void __ovld vstore4(float4 data, size_t offset, __local float *p);
11629void __ovld vstore8(char8 data, size_t offset, __local char *p);
11630void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
11631void __ovld vstore8(short8 data, size_t offset, __local short *p);
11632void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
11633void __ovld vstore8(int8 data, size_t offset, __local int *p);
11634void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
11635void __ovld vstore8(long8 data, size_t offset, __local long *p);
11636void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
11637void __ovld vstore8(float8 data, size_t offset, __local float *p);
11638void __ovld vstore16(char16 data, size_t offset, __local char *p);
11639void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
11640void __ovld vstore16(short16 data, size_t offset, __local short *p);
11641void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
11642void __ovld vstore16(int16 data, size_t offset, __local int *p);
11643void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
11644void __ovld vstore16(long16 data, size_t offset, __local long *p);
11645void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
11646void __ovld vstore16(float16 data, size_t offset, __local float *p);
11647void __ovld vstore2(char2 data, size_t offset, __private char *p);
11648void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
11649void __ovld vstore2(short2 data, size_t offset, __private short *p);
11650void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
11651void __ovld vstore2(int2 data, size_t offset, __private int *p);
11652void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
11653void __ovld vstore2(long2 data, size_t offset, __private long *p);
11654void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
11655void __ovld vstore2(float2 data, size_t offset, __private float *p);
11656void __ovld vstore3(char3 data, size_t offset, __private char *p);
11657void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
11658void __ovld vstore3(short3 data, size_t offset, __private short *p);
11659void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
11660void __ovld vstore3(int3 data, size_t offset, __private int *p);
11661void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
11662void __ovld vstore3(long3 data, size_t offset, __private long *p);
11663void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
11664void __ovld vstore3(float3 data, size_t offset, __private float *p);
11665void __ovld vstore4(char4 data, size_t offset, __private char *p);
11666void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
11667void __ovld vstore4(short4 data, size_t offset, __private short *p);
11668void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
11669void __ovld vstore4(int4 data, size_t offset, __private int *p);
11670void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
11671void __ovld vstore4(long4 data, size_t offset, __private long *p);
11672void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
11673void __ovld vstore4(float4 data, size_t offset, __private float *p);
11674void __ovld vstore8(char8 data, size_t offset, __private char *p);
11675void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
11676void __ovld vstore8(short8 data, size_t offset, __private short *p);
11677void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
11678void __ovld vstore8(int8 data, size_t offset, __private int *p);
11679void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
11680void __ovld vstore8(long8 data, size_t offset, __private long *p);
11681void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
11682void __ovld vstore8(float8 data, size_t offset, __private float *p);
11683void __ovld vstore16(char16 data, size_t offset, __private char *p);
11684void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
11685void __ovld vstore16(short16 data, size_t offset, __private short *p);
11686void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
11687void __ovld vstore16(int16 data, size_t offset, __private int *p);
11688void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
11689void __ovld vstore16(long16 data, size_t offset, __private long *p);
11690void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
11691void __ovld vstore16(float16 data, size_t offset, __private float *p);
11692#ifdef cl_khr_fp64
11693void __ovld vstore2(double2 data, size_t offset, __global double *p);
11694void __ovld vstore3(double3 data, size_t offset, __global double *p);
11695void __ovld vstore4(double4 data, size_t offset, __global double *p);
11696void __ovld vstore8(double8 data, size_t offset, __global double *p);
11697void __ovld vstore16(double16 data, size_t offset, __global double *p);
11698void __ovld vstore2(double2 data, size_t offset, __local double *p);
11699void __ovld vstore3(double3 data, size_t offset, __local double *p);
11700void __ovld vstore4(double4 data, size_t offset, __local double *p);
11701void __ovld vstore8(double8 data, size_t offset, __local double *p);
11702void __ovld vstore16(double16 data, size_t offset, __local double *p);
11703void __ovld vstore2(double2 data, size_t offset, __private double *p);
11704void __ovld vstore3(double3 data, size_t offset, __private double *p);
11705void __ovld vstore4(double4 data, size_t offset, __private double *p);
11706void __ovld vstore8(double8 data, size_t offset, __private double *p);
11707void __ovld vstore16(double16 data, size_t offset, __private double *p);
11708#endif //cl_khr_fp64
11709#ifdef cl_khr_fp16
11710void __ovld vstore(half data, size_t offset, __global half *p);
11711void __ovld vstore2(half2 data, size_t offset, __global half *p);
11712void __ovld vstore3(half3 data, size_t offset, __global half *p);
11713void __ovld vstore4(half4 data, size_t offset, __global half *p);
11714void __ovld vstore8(half8 data, size_t offset, __global half *p);
11715void __ovld vstore16(half16 data, size_t offset, __global half *p);
11716void __ovld vstore(half data, size_t offset, __local half *p);
11717void __ovld vstore2(half2 data, size_t offset, __local half *p);
11718void __ovld vstore3(half3 data, size_t offset, __local half *p);
11719void __ovld vstore4(half4 data, size_t offset, __local half *p);
11720void __ovld vstore8(half8 data, size_t offset, __local half *p);
11721void __ovld vstore16(half16 data, size_t offset, __local half *p);
11722void __ovld vstore(half data, size_t offset, __private half *p);
11723void __ovld vstore2(half2 data, size_t offset, __private half *p);
11724void __ovld vstore3(half3 data, size_t offset, __private half *p);
11725void __ovld vstore4(half4 data, size_t offset, __private half *p);
11726void __ovld vstore8(half8 data, size_t offset, __private half *p);
11727void __ovld vstore16(half16 data, size_t offset, __private half *p);
11728#endif //cl_khr_fp16
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011729#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011730
11731/**
11732 * Read sizeof (half) bytes of data from address
11733 * (p + offset). The data read is interpreted as a
11734 * half value. The half value is converted to a
11735 * float value and the float value is returned.
11736 * The read address computed as (p + offset)
11737 * must be 16-bit aligned.
11738 */
11739float __ovld vload_half(size_t offset, const __constant half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011740#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011741float __ovld vload_half(size_t offset, const half *p);
11742#else
11743float __ovld vload_half(size_t offset, const __global half *p);
11744float __ovld vload_half(size_t offset, const __local half *p);
11745float __ovld vload_half(size_t offset, const __private half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011746#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011747
11748/**
11749 * Read sizeof (halfn) bytes of data from address
11750 * (p + (offset * n)). The data read is interpreted
11751 * as a halfn value. The halfn value read is
11752 * converted to a floatn value and the floatn
11753 * value is returned. The read address computed
11754 * as (p + (offset * n)) must be 16-bit aligned.
11755 */
11756float2 __ovld vload_half2(size_t offset, const __constant half *p);
11757float3 __ovld vload_half3(size_t offset, const __constant half *p);
11758float4 __ovld vload_half4(size_t offset, const __constant half *p);
11759float8 __ovld vload_half8(size_t offset, const __constant half *p);
11760float16 __ovld vload_half16(size_t offset, const __constant half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011761#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011762float2 __ovld vload_half2(size_t offset, const half *p);
11763float3 __ovld vload_half3(size_t offset, const half *p);
11764float4 __ovld vload_half4(size_t offset, const half *p);
11765float8 __ovld vload_half8(size_t offset, const half *p);
11766float16 __ovld vload_half16(size_t offset, const half *p);
11767#else
11768float2 __ovld vload_half2(size_t offset, const __global half *p);
11769float3 __ovld vload_half3(size_t offset, const __global half *p);
11770float4 __ovld vload_half4(size_t offset, const __global half *p);
11771float8 __ovld vload_half8(size_t offset, const __global half *p);
11772float16 __ovld vload_half16(size_t offset, const __global half *p);
11773float2 __ovld vload_half2(size_t offset, const __local half *p);
11774float3 __ovld vload_half3(size_t offset, const __local half *p);
11775float4 __ovld vload_half4(size_t offset, const __local half *p);
11776float8 __ovld vload_half8(size_t offset, const __local half *p);
11777float16 __ovld vload_half16(size_t offset, const __local half *p);
11778float2 __ovld vload_half2(size_t offset, const __private half *p);
11779float3 __ovld vload_half3(size_t offset, const __private half *p);
11780float4 __ovld vload_half4(size_t offset, const __private half *p);
11781float8 __ovld vload_half8(size_t offset, const __private half *p);
11782float16 __ovld vload_half16(size_t offset, const __private half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011783#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011784
11785/**
11786 * The float value given by data is first
11787 * converted to a half value using the appropriate
11788 * rounding mode. The half value is then written
11789 * to address computed as (p + offset). The
11790 * address computed as (p + offset) must be 16-
11791 * bit aligned.
11792 * vstore_half use the current rounding mode.
11793 * The default current rounding mode is round to
11794 * nearest even.
11795 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011796#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011797void __ovld vstore_half(float data, size_t offset, half *p);
11798void __ovld vstore_half_rte(float data, size_t offset, half *p);
11799void __ovld vstore_half_rtz(float data, size_t offset, half *p);
11800void __ovld vstore_half_rtp(float data, size_t offset, half *p);
11801void __ovld vstore_half_rtn(float data, size_t offset, half *p);
11802#ifdef cl_khr_fp64
11803void __ovld vstore_half(double data, size_t offset, half *p);
11804void __ovld vstore_half_rte(double data, size_t offset, half *p);
11805void __ovld vstore_half_rtz(double data, size_t offset, half *p);
11806void __ovld vstore_half_rtp(double data, size_t offset, half *p);
11807void __ovld vstore_half_rtn(double data, size_t offset, half *p);
11808#endif //cl_khr_fp64
11809#else
11810void __ovld vstore_half(float data, size_t offset, __global half *p);
11811void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
11812void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
11813void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
11814void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
11815void __ovld vstore_half(float data, size_t offset, __local half *p);
11816void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
11817void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
11818void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
11819void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
11820void __ovld vstore_half(float data, size_t offset, __private half *p);
11821void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
11822void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
11823void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
11824void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
11825#ifdef cl_khr_fp64
11826void __ovld vstore_half(double data, size_t offset, __global half *p);
11827void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
11828void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
11829void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
11830void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
11831void __ovld vstore_half(double data, size_t offset, __local half *p);
11832void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
11833void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
11834void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
11835void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
11836void __ovld vstore_half(double data, size_t offset, __private half *p);
11837void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
11838void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
11839void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
11840void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11841#endif //cl_khr_fp64
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011842#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011843
11844/**
11845 * The floatn value given by data is converted to
11846 * a halfn value using the appropriate rounding
11847 * mode. The halfn value is then written to
11848 * address computed as (p + (offset * n)). The
11849 * address computed as (p + (offset * n)) must be
11850 * 16-bit aligned.
11851 * vstore_halfn uses the current rounding mode.
11852 * The default current rounding mode is round to
11853 * nearest even.
11854 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080011855#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080011856void __ovld vstore_half2(float2 data, size_t offset, half *p);
11857void __ovld vstore_half3(float3 data, size_t offset, half *p);
11858void __ovld vstore_half4(float4 data, size_t offset, half *p);
11859void __ovld vstore_half8(float8 data, size_t offset, half *p);
11860void __ovld vstore_half16(float16 data, size_t offset, half *p);
11861void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
11862void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
11863void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
11864void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
11865void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
11866void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
11867void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
11868void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
11869void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
11870void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
11871void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
11872void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
11873void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
11874void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
11875void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
11876void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
11877void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
11878void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
11879void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
11880void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
11881#ifdef cl_khr_fp64
11882void __ovld vstore_half2(double2 data, size_t offset, half *p);
11883void __ovld vstore_half3(double3 data, size_t offset, half *p);
11884void __ovld vstore_half4(double4 data, size_t offset, half *p);
11885void __ovld vstore_half8(double8 data, size_t offset, half *p);
11886void __ovld vstore_half16(double16 data, size_t offset, half *p);
11887void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
11888void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
11889void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
11890void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
11891void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
11892void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
11893void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
11894void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
11895void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
11896void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
11897void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
11898void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
11899void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
11900void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
11901void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
11902void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
11903void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
11904void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
11905void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
11906void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
11907#endif //cl_khr_fp64
11908#else
11909void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
11910void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
11911void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
11912void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
11913void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
11914void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
11915void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
11916void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
11917void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
11918void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
11919void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
11920void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
11921void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
11922void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
11923void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
11924void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
11925void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
11926void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
11927void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
11928void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
11929void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
11930void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
11931void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
11932void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
11933void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
11934void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
11935void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
11936void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
11937void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
11938void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
11939void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
11940void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
11941void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
11942void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
11943void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
11944void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
11945void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
11946void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
11947void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
11948void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
11949void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
11950void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
11951void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
11952void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
11953void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
11954void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
11955void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
11956void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
11957void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
11958void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
11959void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
11960void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
11961void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
11962void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
11963void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
11964void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
11965void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
11966void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
11967void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
11968void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
11969void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
11970void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
11971void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
11972void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
11973void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
11974void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
11975void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
11976void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
11977void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
11978void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
11979void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
11980void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
11981void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
11982void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
11983void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
11984#ifdef cl_khr_fp64
11985void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
11986void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
11987void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
11988void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
11989void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
11990void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
11991void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
11992void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
11993void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
11994void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
11995void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
11996void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
11997void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
11998void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
11999void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
12000void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
12001void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
12002void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
12003void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
12004void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
12005void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
12006void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
12007void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
12008void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
12009void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
12010void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
12011void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
12012void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
12013void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
12014void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
12015void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
12016void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
12017void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
12018void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
12019void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
12020void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
12021void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
12022void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
12023void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
12024void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
12025void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
12026void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
12027void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
12028void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
12029void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
12030void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
12031void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
12032void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
12033void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
12034void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
12035void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
12036void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
12037void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
12038void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
12039void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
12040void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
12041void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
12042void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
12043void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
12044void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
12045void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
12046void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
12047void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
12048void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
12049void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
12050void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
12051void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
12052void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
12053void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
12054void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
12055void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
12056void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
12057void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12058void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12059void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12060#endif //cl_khr_fp64
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012061#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012062
12063/**
12064 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
12065 * bytes of data from address (p + (offset * n)).
12066 * The data read is interpreted as a halfn value.
12067 * The halfn value read is converted to a floatn
12068 * value and the floatn value is returned.
12069 * The address computed as (p + (offset * n))
12070 * must be aligned to sizeof (halfn) bytes.
12071 * For n = 3, vloada_half3 reads a half3 from
12072 * address (p + (offset * 4)) and returns a float3.
12073 * The address computed as (p + (offset * 4))
12074 * must be aligned to sizeof (half) * 4 bytes.
12075 */
Logan Chien2833ffb2018-10-09 10:03:24 +080012076float2 __ovld vloada_half2(size_t offset, const __constant half *p);
12077float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12078float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12079float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12080float16 __ovld vloada_half16(size_t offset, const __constant half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012081#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012082float2 __ovld vloada_half2(size_t offset, const half *p);
12083float3 __ovld vloada_half3(size_t offset, const half *p);
12084float4 __ovld vloada_half4(size_t offset, const half *p);
12085float8 __ovld vloada_half8(size_t offset, const half *p);
12086float16 __ovld vloada_half16(size_t offset, const half *p);
12087#else
Logan Chien2833ffb2018-10-09 10:03:24 +080012088float2 __ovld vloada_half2(size_t offset, const __global half *p);
12089float3 __ovld vloada_half3(size_t offset, const __global half *p);
12090float4 __ovld vloada_half4(size_t offset, const __global half *p);
12091float8 __ovld vloada_half8(size_t offset, const __global half *p);
12092float16 __ovld vloada_half16(size_t offset, const __global half *p);
Logan Chien2833ffb2018-10-09 10:03:24 +080012093float2 __ovld vloada_half2(size_t offset, const __local half *p);
12094float3 __ovld vloada_half3(size_t offset, const __local half *p);
12095float4 __ovld vloada_half4(size_t offset, const __local half *p);
12096float8 __ovld vloada_half8(size_t offset, const __local half *p);
12097float16 __ovld vloada_half16(size_t offset, const __local half *p);
Logan Chien2833ffb2018-10-09 10:03:24 +080012098float2 __ovld vloada_half2(size_t offset, const __private half *p);
12099float3 __ovld vloada_half3(size_t offset, const __private half *p);
12100float4 __ovld vloada_half4(size_t offset, const __private half *p);
12101float8 __ovld vloada_half8(size_t offset, const __private half *p);
12102float16 __ovld vloada_half16(size_t offset, const __private half *p);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012103#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012104
12105/**
12106 * The floatn value given by data is converted to
12107 * a halfn value using the appropriate rounding
12108 * mode.
12109 * For n = 1, 2, 4, 8 and 16, the halfn value is
12110 * written to the address computed as (p + (offset
12111 * * n)). The address computed as (p + (offset *
12112 * n)) must be aligned to sizeof (halfn) bytes.
12113 * For n = 3, the half3 value is written to the
12114 * address computed as (p + (offset * 4)). The
12115 * address computed as (p + (offset * 4)) must be
12116 * aligned to sizeof (half) * 4 bytes.
12117 * vstorea_halfn uses the current rounding
12118 * mode. The default current rounding mode is
12119 * round to nearest even.
12120 */
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012121#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012122void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12123void __ovld vstorea_half3(float3 data, size_t offset, half *p);
12124void __ovld vstorea_half4(float4 data, size_t offset, half *p);
12125void __ovld vstorea_half8(float8 data, size_t offset, half *p);
12126void __ovld vstorea_half16(float16 data, size_t offset, half *p);
12127
Logan Chien2833ffb2018-10-09 10:03:24 +080012128void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
12129void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
12130void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
12131void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
12132void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
12133
Logan Chien2833ffb2018-10-09 10:03:24 +080012134void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
12135void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
12136void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
12137void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
12138void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
12139
Logan Chien2833ffb2018-10-09 10:03:24 +080012140void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
12141void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
12142void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
12143void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
12144void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
12145
Logan Chien2833ffb2018-10-09 10:03:24 +080012146void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
12147void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
12148void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
12149void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
12150void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
12151
12152#ifdef cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080012153void __ovld vstorea_half2(double2 data, size_t offset, half *p);
12154void __ovld vstorea_half3(double3 data, size_t offset, half *p);
12155void __ovld vstorea_half4(double4 data, size_t offset, half *p);
12156void __ovld vstorea_half8(double8 data, size_t offset, half *p);
12157void __ovld vstorea_half16(double16 data, size_t offset, half *p);
12158
Logan Chien2833ffb2018-10-09 10:03:24 +080012159void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
12160void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
12161void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
12162void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
12163void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
12164
Logan Chien2833ffb2018-10-09 10:03:24 +080012165void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
12166void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
12167void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
12168void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
12169void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
12170
Logan Chien2833ffb2018-10-09 10:03:24 +080012171void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
12172void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
12173void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
12174void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
12175void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
12176
Logan Chien2833ffb2018-10-09 10:03:24 +080012177void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
12178void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
12179void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
12180void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
12181void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
12182#endif //cl_khr_fp64
12183
12184#else
Logan Chien2833ffb2018-10-09 10:03:24 +080012185void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
12186void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
12187void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
12188void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
12189void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
12190
Logan Chien2833ffb2018-10-09 10:03:24 +080012191void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
12192void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
12193void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
12194void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
12195void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
12196
Logan Chien2833ffb2018-10-09 10:03:24 +080012197void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
12198void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
12199void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
12200void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
12201void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
12202
Logan Chien2833ffb2018-10-09 10:03:24 +080012203void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
12204void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
12205void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
12206void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
12207void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
12208
Logan Chien2833ffb2018-10-09 10:03:24 +080012209void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
12210void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
12211void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
12212void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
12213void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
12214
Logan Chien2833ffb2018-10-09 10:03:24 +080012215void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
12216void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
12217void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
12218void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
12219void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
12220
Logan Chien2833ffb2018-10-09 10:03:24 +080012221void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
12222void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
12223void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
12224void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
12225void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
12226
Logan Chien2833ffb2018-10-09 10:03:24 +080012227void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
12228void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
12229void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
12230void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
12231void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
12232
Logan Chien2833ffb2018-10-09 10:03:24 +080012233void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
12234void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
12235void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
12236void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
12237void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
12238
Logan Chien2833ffb2018-10-09 10:03:24 +080012239void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
12240void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
12241void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
12242void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
12243void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
12244
Logan Chien2833ffb2018-10-09 10:03:24 +080012245void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
12246void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
12247void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
12248void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
12249void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
12250
Logan Chien2833ffb2018-10-09 10:03:24 +080012251void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
12252void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
12253void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
12254void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
12255void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
12256
Logan Chien2833ffb2018-10-09 10:03:24 +080012257void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
12258void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
12259void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
12260void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
12261void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
12262
Logan Chien2833ffb2018-10-09 10:03:24 +080012263void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
12264void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
12265void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
12266void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
12267void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
12268
Logan Chien2833ffb2018-10-09 10:03:24 +080012269void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
12270void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
12271void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
12272void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
12273void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
12274
12275#ifdef cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080012276void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
12277void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
12278void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
12279void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
12280void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
12281
Logan Chien2833ffb2018-10-09 10:03:24 +080012282void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
12283void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
12284void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
12285void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
12286void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
12287
Logan Chien2833ffb2018-10-09 10:03:24 +080012288void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
12289void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
12290void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
12291void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
12292void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
12293
Logan Chien2833ffb2018-10-09 10:03:24 +080012294void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
12295void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
12296void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
12297void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
12298void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
12299
Logan Chien2833ffb2018-10-09 10:03:24 +080012300void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
12301void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
12302void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
12303void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
12304void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
12305
Logan Chien2833ffb2018-10-09 10:03:24 +080012306void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
12307void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
12308void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
12309void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
12310void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
12311
Logan Chien2833ffb2018-10-09 10:03:24 +080012312void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
12313void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
12314void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
12315void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
12316void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
12317
Logan Chien2833ffb2018-10-09 10:03:24 +080012318void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
12319void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
12320void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
12321void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
12322void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
12323
Logan Chien2833ffb2018-10-09 10:03:24 +080012324void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
12325void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
12326void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
12327void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
12328void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
12329
Logan Chien2833ffb2018-10-09 10:03:24 +080012330void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
12331void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
12332void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
12333void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
12334void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
12335
Logan Chien2833ffb2018-10-09 10:03:24 +080012336void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
12337void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
12338void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
12339void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
12340void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
12341
Logan Chien2833ffb2018-10-09 10:03:24 +080012342void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
12343void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
12344void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
12345void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
12346void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
12347
Logan Chien2833ffb2018-10-09 10:03:24 +080012348void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
12349void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
12350void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
12351void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
12352void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
12353
Logan Chien2833ffb2018-10-09 10:03:24 +080012354void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
12355void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
12356void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
12357void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
12358void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
12359
Logan Chien2833ffb2018-10-09 10:03:24 +080012360void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
12361void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
12362void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12363void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12364void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12365#endif //cl_khr_fp64
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012366#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012367
12368// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12369
Logan Chien2833ffb2018-10-09 10:03:24 +080012370/**
12371 * All work-items in a work-group executing the kernel
12372 * on a processor must execute this function before any
12373 * are allowed to continue execution beyond the barrier.
12374 * This function must be encountered by all work-items in
12375 * a work-group executing the kernel.
12376 * If barrier is inside a conditional statement, then all
12377 * work-items must enter the conditional if any work-item
12378 * enters the conditional statement and executes the
12379 * barrier.
12380 * If barrer is inside a loop, all work-items must execute
12381 * the barrier for each iteration of the loop before any are
12382 * allowed to continue execution beyond the barrier.
12383 * The barrier function also queues a memory fence
12384 * (reads and writes) to ensure correct ordering of
12385 * memory operations to local or global memory.
12386 * The flags argument specifies the memory address space
12387 * and can be set to a combination of the following literal
12388 * values.
12389 * CLK_LOCAL_MEM_FENCE - The barrier function
12390 * will either flush any variables stored in local memory
12391 * or queue a memory fence to ensure correct ordering of
12392 * memory operations to local memory.
12393 * CLK_GLOBAL_MEM_FENCE - The barrier function
12394 * will queue a memory fence to ensure correct ordering
12395 * of memory operations to global memory. This can be
12396 * useful when work-items, for example, write to buffer or
12397 * image objects and then want to read the updated data.
12398 */
12399
Logan Chien55afb0a2018-10-15 10:42:14 +080012400void __ovld __conv barrier(cl_mem_fence_flags flags);
Logan Chien2833ffb2018-10-09 10:03:24 +080012401
Logan Chienbedbf4f2020-01-06 19:35:19 -080012402#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080012403void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
12404void __ovld __conv work_group_barrier(cl_mem_fence_flags flags);
Logan Chienbedbf4f2020-01-06 19:35:19 -080012405#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080012406
12407// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
12408
12409/**
12410 * Orders loads and stores of a work-item
12411 * executing a kernel. This means that loads
12412 * and stores preceding the mem_fence will
12413 * be committed to memory before any loads
12414 * and stores following the mem_fence.
12415 * The flags argument specifies the memory
12416 * address space and can be set to a
12417 * combination of the following literal
12418 * values:
12419 * CLK_LOCAL_MEM_FENCE
12420 * CLK_GLOBAL_MEM_FENCE.
12421 */
12422void __ovld mem_fence(cl_mem_fence_flags flags);
12423
12424/**
12425 * Read memory barrier that orders only
12426 * loads.
12427 * The flags argument specifies the memory
Logan Chien55afb0a2018-10-15 10:42:14 +080012428 * address space and can be set to a
Logan Chien2833ffb2018-10-09 10:03:24 +080012429 * combination of the following literal
12430 * values:
12431 * CLK_LOCAL_MEM_FENCE
12432 * CLK_GLOBAL_MEM_FENCE.
12433 */
12434void __ovld read_mem_fence(cl_mem_fence_flags flags);
12435
12436/**
12437 * Write memory barrier that orders only
12438 * stores.
12439 * The flags argument specifies the memory
Logan Chien55afb0a2018-10-15 10:42:14 +080012440 * address space and can be set to a
Logan Chien2833ffb2018-10-09 10:03:24 +080012441 * combination of the following literal
12442 * values:
12443 * CLK_LOCAL_MEM_FENCE
12444 * CLK_GLOBAL_MEM_FENCE.
12445 */
12446void __ovld write_mem_fence(cl_mem_fence_flags flags);
12447
12448// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
12449
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012450#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012451cl_mem_fence_flags __ovld get_fence(const void *ptr);
12452cl_mem_fence_flags __ovld get_fence(void *ptr);
12453
Logan Chien55afb0a2018-10-15 10:42:14 +080012454/**
Logan Chien2833ffb2018-10-09 10:03:24 +080012455 * Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions
12456 * and checked in Sema since they should be declared as
12457 * addr gentype* to_addr (gentype*);
12458 * where gentype is builtin type or user defined type.
12459 */
12460
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080012461#endif //defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080012462
12463// 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
12464
12465/**
12466 * event_t async_work_group_copy (
12467 * __global gentype *dst,
12468 * const __local gentype *src,
12469 * size_t num_elements,
12470 * event_t event)
12471 * Perform an async copy of num_elements
12472 * gentype elements from src to dst. The async
12473 * copy is performed by all work-items in a workgroup
12474 * and this built-in function must therefore
12475 * be encountered by all work-items in a workgroup
12476 * executing the kernel with the same
12477 * argument values; otherwise the results are
12478 * undefined.
12479 * Returns an event object that can be used by
12480 * wait_group_events to wait for the async copy
12481 * to finish. The event argument can also be used
12482 * to associate the async_work_group_copy with
12483 * a previous async copy allowing an event to be
12484 * shared by multiple async copies; otherwise event
12485 * should be zero.
12486 * If event argument is non-zero, the event object
12487 * supplied in event argument will be returned.
12488 * This function does not perform any implicit
12489 * synchronization of source data such as using a
12490 * barrier before performing the copy.
12491 */
12492event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
12493event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
12494event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
12495event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
12496event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
12497event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
12498event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
12499event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
12500event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
12501event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
12502event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
12503event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
12504event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
12505event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
12506event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
12507event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
12508event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
12509event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
12510event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
12511event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
12512event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
12513event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
12514event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
12515event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
12516event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
12517event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
12518event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
12519event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
12520event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
12521event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
12522event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
12523event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
12524event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
12525event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
12526event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
12527event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
12528event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
12529event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
12530event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
12531event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
12532event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
12533event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
12534event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
12535event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
12536event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
12537event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
12538event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
12539event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
12540event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
12541event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
12542event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
12543event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
12544event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
12545event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
12546event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
12547event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
12548event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
12549event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
12550event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
12551event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
12552event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
12553event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
12554event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
12555event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
12556event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
12557event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
12558event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
12559event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
12560event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
12561event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
12562event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
12563event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
12564event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
12565event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
12566event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
12567event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
12568event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
12569event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
12570event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
12571event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
12572event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
12573event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
12574event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
12575event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
12576event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
12577event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
12578event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
12579event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
12580event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
12581event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
12582event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
12583event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
12584event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
12585event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
12586event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
12587event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
12588event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
12589event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
12590event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
12591event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
12592event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
12593event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
12594event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
12595event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
12596event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
12597event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
12598event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
12599event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
12600#ifdef cl_khr_fp64
12601event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
12602event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
12603event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
12604event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
12605event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
12606event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
12607event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
12608event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
12609event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
12610event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
12611event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
12612event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
12613#endif //cl_khr_fp64
12614#ifdef cl_khr_fp16
12615event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
12616event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
12617event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
12618event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
12619event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
12620event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
12621event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
12622event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
12623event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
12624event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
12625event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
12626event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
12627#endif //cl_khr_fp16
12628
12629/**
12630 * Perform an async gather of num_elements
12631 * gentype elements from src to dst. The
12632 * src_stride is the stride in elements for each
12633 * gentype element read from src. The dst_stride
12634 * is the stride in elements for each gentype
12635 * element written to dst. The async gather is
12636 * performed by all work-items in a work-group.
12637 * This built-in function must therefore be
12638 * encountered by all work-items in a work-group
12639 * executing the kernel with the same argument
12640 * values; otherwise the results are undefined.
12641 * Returns an event object that can be used by
12642 * wait_group_events to wait for the async copy
12643 * to finish. The event argument can also be used
12644 * to associate the
12645 * async_work_group_strided_copy with a
12646 * previous async copy allowing an event to be
12647 * shared by multiple async copies; otherwise event
12648 * should be zero.
12649 * If event argument is non-zero, the event object
12650 * supplied in event argument will be returned.
12651 * This function does not perform any implicit
12652 * synchronization of source data such as using a
12653 * barrier before performing the copy.
12654 */
12655event_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);
12656event_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);
12657event_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);
12658event_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);
12659event_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);
12660event_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);
12661event_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);
12662event_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);
12663event_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);
12664event_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);
12665event_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);
12666event_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);
12667event_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);
12668event_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);
12669event_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);
12670event_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);
12671event_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);
12672event_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);
12673event_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);
12674event_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);
12675event_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);
12676event_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);
12677event_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);
12678event_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);
12679event_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);
12680event_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);
12681event_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);
12682event_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);
12683event_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);
12684event_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);
12685event_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);
12686event_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);
12687event_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);
12688event_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);
12689event_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);
12690event_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);
12691event_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);
12692event_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);
12693event_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);
12694event_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);
12695event_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);
12696event_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);
12697event_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);
12698event_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);
12699event_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);
12700event_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);
12701event_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);
12702event_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);
12703event_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);
12704event_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);
12705event_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);
12706event_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);
12707event_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);
12708event_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);
12709event_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);
12710event_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);
12711event_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);
12712event_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);
12713event_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);
12714event_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);
12715event_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);
12716event_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);
12717event_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);
12718event_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);
12719event_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);
12720event_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);
12721event_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);
12722event_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);
12723event_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);
12724event_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);
12725event_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);
12726event_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);
12727event_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);
12728event_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);
12729event_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);
12730event_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);
12731event_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);
12732event_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);
12733event_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);
12734event_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);
12735event_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);
12736event_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);
12737event_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);
12738event_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);
12739event_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);
12740event_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);
12741event_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);
12742event_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);
12743event_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);
12744event_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);
12745event_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);
12746event_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);
12747event_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);
12748event_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);
12749event_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);
12750event_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);
12751event_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);
12752event_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);
12753event_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);
12754event_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);
12755event_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);
12756event_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);
12757event_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);
12758event_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);
12759event_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);
12760event_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);
12761event_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);
12762event_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);
12763#ifdef cl_khr_fp64
12764event_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);
12765event_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);
12766event_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);
12767event_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);
12768event_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);
12769event_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);
12770event_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);
12771event_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);
12772event_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);
12773event_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);
12774event_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);
12775event_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);
12776#endif //cl_khr_fp64
12777#ifdef cl_khr_fp16
12778event_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);
12779event_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);
12780event_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);
12781event_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);
12782event_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);
12783event_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);
12784event_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);
12785event_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);
12786event_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);
12787event_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);
12788event_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);
12789event_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);
12790#endif //cl_khr_fp16
12791
12792/**
12793 * Wait for events that identify the
12794 * async_work_group_copy operations to
12795 * complete. The event objects specified in
12796 * event_list will be released after the wait is
12797 * performed.
12798 * This function must be encountered by all workitems
12799 * in a work-group executing the kernel with
12800 * the same num_events and event objects specified
12801 * in event_list; otherwise the results are undefined.
12802 */
12803void __ovld wait_group_events(int num_events, event_t *event_list);
12804
12805/**
12806 * Prefetch num_elements * sizeof(gentype)
12807 * bytes into the global cache. The prefetch
12808 * instruction is applied to a work-item in a workgroup
12809 * and does not affect the functional
12810 * behavior of the kernel.
12811 */
12812void __ovld prefetch(const __global char *p, size_t num_elements);
12813void __ovld prefetch(const __global uchar *p, size_t num_elements);
12814void __ovld prefetch(const __global short *p, size_t num_elements);
12815void __ovld prefetch(const __global ushort *p, size_t num_elements);
12816void __ovld prefetch(const __global int *p, size_t num_elements);
12817void __ovld prefetch(const __global uint *p, size_t num_elements);
12818void __ovld prefetch(const __global long *p, size_t num_elements);
12819void __ovld prefetch(const __global ulong *p, size_t num_elements);
12820void __ovld prefetch(const __global float *p, size_t num_elements);
12821void __ovld prefetch(const __global char2 *p, size_t num_elements);
12822void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
12823void __ovld prefetch(const __global short2 *p, size_t num_elements);
12824void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
12825void __ovld prefetch(const __global int2 *p, size_t num_elements);
12826void __ovld prefetch(const __global uint2 *p, size_t num_elements);
12827void __ovld prefetch(const __global long2 *p, size_t num_elements);
12828void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
12829void __ovld prefetch(const __global float2 *p, size_t num_elements);
12830void __ovld prefetch(const __global char3 *p, size_t num_elements);
12831void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
12832void __ovld prefetch(const __global short3 *p, size_t num_elements);
12833void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
12834void __ovld prefetch(const __global int3 *p, size_t num_elements);
12835void __ovld prefetch(const __global uint3 *p, size_t num_elements);
12836void __ovld prefetch(const __global long3 *p, size_t num_elements);
12837void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
12838void __ovld prefetch(const __global float3 *p, size_t num_elements);
12839void __ovld prefetch(const __global char4 *p, size_t num_elements);
12840void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
12841void __ovld prefetch(const __global short4 *p, size_t num_elements);
12842void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
12843void __ovld prefetch(const __global int4 *p, size_t num_elements);
12844void __ovld prefetch(const __global uint4 *p, size_t num_elements);
12845void __ovld prefetch(const __global long4 *p, size_t num_elements);
12846void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
12847void __ovld prefetch(const __global float4 *p, size_t num_elements);
12848void __ovld prefetch(const __global char8 *p, size_t num_elements);
12849void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
12850void __ovld prefetch(const __global short8 *p, size_t num_elements);
12851void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
12852void __ovld prefetch(const __global int8 *p, size_t num_elements);
12853void __ovld prefetch(const __global uint8 *p, size_t num_elements);
12854void __ovld prefetch(const __global long8 *p, size_t num_elements);
12855void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
12856void __ovld prefetch(const __global float8 *p, size_t num_elements);
12857void __ovld prefetch(const __global char16 *p, size_t num_elements);
12858void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
12859void __ovld prefetch(const __global short16 *p, size_t num_elements);
12860void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
12861void __ovld prefetch(const __global int16 *p, size_t num_elements);
12862void __ovld prefetch(const __global uint16 *p, size_t num_elements);
12863void __ovld prefetch(const __global long16 *p, size_t num_elements);
12864void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
12865void __ovld prefetch(const __global float16 *p, size_t num_elements);
12866#ifdef cl_khr_fp64
12867void __ovld prefetch(const __global double *p, size_t num_elements);
12868void __ovld prefetch(const __global double2 *p, size_t num_elements);
12869void __ovld prefetch(const __global double3 *p, size_t num_elements);
12870void __ovld prefetch(const __global double4 *p, size_t num_elements);
12871void __ovld prefetch(const __global double8 *p, size_t num_elements);
12872void __ovld prefetch(const __global double16 *p, size_t num_elements);
12873#endif //cl_khr_fp64
12874#ifdef cl_khr_fp16
12875void __ovld prefetch(const __global half *p, size_t num_elements);
12876void __ovld prefetch(const __global half2 *p, size_t num_elements);
12877void __ovld prefetch(const __global half3 *p, size_t num_elements);
12878void __ovld prefetch(const __global half4 *p, size_t num_elements);
12879void __ovld prefetch(const __global half8 *p, size_t num_elements);
12880void __ovld prefetch(const __global half16 *p, size_t num_elements);
12881#endif // cl_khr_fp16
12882
12883// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
12884
12885#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
12886#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
12887#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
12888#endif
12889/**
12890 * Read the 32-bit value (referred to as old)
12891 * stored at location pointed by p. Compute
12892 * (old + val) and store result at location
12893 * pointed by p. The function returns old.
12894 */
12895int __ovld atomic_add(volatile __global int *p, int val);
12896unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
12897int __ovld atomic_add(volatile __local int *p, int val);
12898unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070012899#ifdef __OPENCL_CPP_VERSION__
12900int __ovld atomic_add(volatile int *p, int val);
12901unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val);
12902#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012903
12904#if defined(cl_khr_global_int32_base_atomics)
12905int __ovld atom_add(volatile __global int *p, int val);
12906unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
12907#endif
12908#if defined(cl_khr_local_int32_base_atomics)
12909int __ovld atom_add(volatile __local int *p, int val);
12910unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
12911#endif
12912
12913#if defined(cl_khr_int64_base_atomics)
12914long __ovld atom_add(volatile __global long *p, long val);
12915unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
12916long __ovld atom_add(volatile __local long *p, long val);
12917unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
12918#endif
12919
12920/**
12921 * Read the 32-bit value (referred to as old) stored at location pointed by p.
12922 * Compute (old - val) and store result at location pointed by p. The function
12923 * returns old.
12924 */
12925int __ovld atomic_sub(volatile __global int *p, int val);
12926unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
12927int __ovld atomic_sub(volatile __local int *p, int val);
12928unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070012929#ifdef __OPENCL_CPP_VERSION__
12930int __ovld atomic_sub(volatile int *p, int val);
12931unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val);
12932#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012933
12934#if defined(cl_khr_global_int32_base_atomics)
12935int __ovld atom_sub(volatile __global int *p, int val);
12936unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
12937#endif
12938#if defined(cl_khr_local_int32_base_atomics)
12939int __ovld atom_sub(volatile __local int *p, int val);
12940unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
12941#endif
12942
12943#if defined(cl_khr_int64_base_atomics)
12944long __ovld atom_sub(volatile __global long *p, long val);
12945unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
12946long __ovld atom_sub(volatile __local long *p, long val);
12947unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
12948#endif
12949
12950/**
12951 * Swaps the old value stored at location p
12952 * with new value given by val. Returns old
12953 * value.
12954 */
12955int __ovld atomic_xchg(volatile __global int *p, int val);
12956unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
12957int __ovld atomic_xchg(volatile __local int *p, int val);
12958unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
12959float __ovld atomic_xchg(volatile __global float *p, float val);
12960float __ovld atomic_xchg(volatile __local float *p, float val);
Logan Chiendf4f7662019-09-04 16:45:23 -070012961#ifdef __OPENCL_CPP_VERSION__
12962int __ovld atomic_xchg(volatile int *p, int val);
12963unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val);
12964float __ovld atomic_xchg(volatile float *p, float val);
12965#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012966
12967#if defined(cl_khr_global_int32_base_atomics)
12968int __ovld atom_xchg(volatile __global int *p, int val);
Logan Chien55afb0a2018-10-15 10:42:14 +080012969unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
Logan Chien2833ffb2018-10-09 10:03:24 +080012970#endif
12971#if defined(cl_khr_local_int32_base_atomics)
Logan Chien55afb0a2018-10-15 10:42:14 +080012972int __ovld atom_xchg(volatile __local int *p, int val);
Logan Chien2833ffb2018-10-09 10:03:24 +080012973unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
12974#endif
12975
12976#if defined(cl_khr_int64_base_atomics)
12977long __ovld atom_xchg(volatile __global long *p, long val);
12978long __ovld atom_xchg(volatile __local long *p, long val);
12979unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
12980unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
12981#endif
12982
12983/**
12984 * Read the 32-bit value (referred to as old)
12985 * stored at location pointed by p. Compute
12986 * (old + 1) and store result at location
12987 * pointed by p. The function returns old.
12988 */
12989int __ovld atomic_inc(volatile __global int *p);
12990unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
12991int __ovld atomic_inc(volatile __local int *p);
12992unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
Logan Chiendf4f7662019-09-04 16:45:23 -070012993#ifdef __OPENCL_CPP_VERSION__
12994int __ovld atomic_inc(volatile int *p);
12995unsigned int __ovld atomic_inc(volatile unsigned int *p);
12996#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080012997
12998#if defined(cl_khr_global_int32_base_atomics)
12999int __ovld atom_inc(volatile __global int *p);
13000unsigned int __ovld atom_inc(volatile __global unsigned int *p);
13001#endif
13002#if defined(cl_khr_local_int32_base_atomics)
13003int __ovld atom_inc(volatile __local int *p);
13004unsigned int __ovld atom_inc(volatile __local unsigned int *p);
13005#endif
13006
13007#if defined(cl_khr_int64_base_atomics)
13008long __ovld atom_inc(volatile __global long *p);
13009unsigned long __ovld atom_inc(volatile __global unsigned long *p);
13010long __ovld atom_inc(volatile __local long *p);
13011unsigned long __ovld atom_inc(volatile __local unsigned long *p);
13012#endif
13013
13014/**
13015 * Read the 32-bit value (referred to as old)
13016 * stored at location pointed by p. Compute
13017 * (old - 1) and store result at location
13018 * pointed by p. The function returns old.
13019 */
13020int __ovld atomic_dec(volatile __global int *p);
13021unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
13022int __ovld atomic_dec(volatile __local int *p);
13023unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
Logan Chiendf4f7662019-09-04 16:45:23 -070013024#ifdef __OPENCL_CPP_VERSION__
13025int __ovld atomic_dec(volatile int *p);
13026unsigned int __ovld atomic_dec(volatile unsigned int *p);
13027#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013028
13029#if defined(cl_khr_global_int32_base_atomics)
13030int __ovld atom_dec(volatile __global int *p);
13031unsigned int __ovld atom_dec(volatile __global unsigned int *p);
13032#endif
13033#if defined(cl_khr_local_int32_base_atomics)
13034int __ovld atom_dec(volatile __local int *p);
13035unsigned int __ovld atom_dec(volatile __local unsigned int *p);
13036#endif
13037
13038#if defined(cl_khr_int64_base_atomics)
13039long __ovld atom_dec(volatile __global long *p);
13040unsigned long __ovld atom_dec(volatile __global unsigned long *p);
13041long __ovld atom_dec(volatile __local long *p);
13042unsigned long __ovld atom_dec(volatile __local unsigned long *p);
13043#endif
13044
13045/**
13046 * Read the 32-bit value (referred to as old)
13047 * stored at location pointed by p. Compute
13048 * (old == cmp) ? val : old and store result at
13049 * location pointed by p. The function
13050 * returns old.
13051 */
13052int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
13053unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13054int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
13055unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013056#ifdef __OPENCL_CPP_VERSION__
13057int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val);
13058unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val);
13059#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013060
13061#if defined(cl_khr_global_int32_base_atomics)
13062int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
13063unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13064#endif
13065#if defined(cl_khr_local_int32_base_atomics)
13066int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
13067unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
13068#endif
13069
13070#if defined(cl_khr_int64_base_atomics)
13071long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
13072unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
13073long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
13074unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
13075#endif
13076
13077/**
13078 * Read the 32-bit value (referred to as old)
13079 * stored at location pointed by p. Compute
13080 * min(old, val) and store minimum value at
13081 * location pointed by p. The function
13082 * returns old.
13083 */
13084int __ovld atomic_min(volatile __global int *p, int val);
13085unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
13086int __ovld atomic_min(volatile __local int *p, int val);
13087unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013088#ifdef __OPENCL_CPP_VERSION__
13089int __ovld atomic_min(volatile int *p, int val);
13090unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val);
13091#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013092
13093#if defined(cl_khr_global_int32_extended_atomics)
13094int __ovld atom_min(volatile __global int *p, int val);
13095unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
13096#endif
13097#if defined(cl_khr_local_int32_extended_atomics)
13098int __ovld atom_min(volatile __local int *p, int val);
13099unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
13100#endif
13101
13102#if defined(cl_khr_int64_extended_atomics)
13103long __ovld atom_min(volatile __global long *p, long val);
13104unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
Logan Chien2833ffb2018-10-09 10:03:24 +080013105long __ovld atom_min(volatile __local long *p, long val);
13106unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
13107#endif
13108
13109/**
13110 * Read the 32-bit value (referred to as old)
13111 * stored at location pointed by p. Compute
13112 * max(old, val) and store maximum value at
13113 * location pointed by p. The function
13114 * returns old.
13115 */
13116int __ovld atomic_max(volatile __global int *p, int val);
13117unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
13118int __ovld atomic_max(volatile __local int *p, int val);
13119unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013120#ifdef __OPENCL_CPP_VERSION__
13121int __ovld atomic_max(volatile int *p, int val);
13122unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val);
13123#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013124
13125#if defined(cl_khr_global_int32_extended_atomics)
13126int __ovld atom_max(volatile __global int *p, int val);
13127unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
13128#endif
13129#if defined(cl_khr_local_int32_extended_atomics)
13130int __ovld atom_max(volatile __local int *p, int val);
13131unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
13132#endif
13133
13134#if defined(cl_khr_int64_extended_atomics)
13135long __ovld atom_max(volatile __global long *p, long val);
13136unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
13137long __ovld atom_max(volatile __local long *p, long val);
13138unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
13139#endif
13140
13141/**
13142 * Read the 32-bit value (referred to as old)
13143 * stored at location pointed by p. Compute
13144 * (old & val) and store result at location
13145 * pointed by p. The function returns old.
13146 */
13147int __ovld atomic_and(volatile __global int *p, int val);
13148unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
13149int __ovld atomic_and(volatile __local int *p, int val);
13150unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013151#ifdef __OPENCL_CPP_VERSION__
13152int __ovld atomic_and(volatile int *p, int val);
13153unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val);
13154#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013155
13156#if defined(cl_khr_global_int32_extended_atomics)
13157int __ovld atom_and(volatile __global int *p, int val);
13158unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
13159#endif
13160#if defined(cl_khr_local_int32_extended_atomics)
13161int __ovld atom_and(volatile __local int *p, int val);
13162unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
13163#endif
13164
13165#if defined(cl_khr_int64_extended_atomics)
13166long __ovld atom_and(volatile __global long *p, long val);
13167unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
13168long __ovld atom_and(volatile __local long *p, long val);
13169unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
13170#endif
13171
13172/**
13173 * Read the 32-bit value (referred to as old)
13174 * stored at location pointed by p. Compute
13175 * (old | val) and store result at location
13176 * pointed by p. The function returns old.
13177 */
13178int __ovld atomic_or(volatile __global int *p, int val);
13179unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
13180int __ovld atomic_or(volatile __local int *p, int val);
13181unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013182#ifdef __OPENCL_CPP_VERSION__
13183int __ovld atomic_or(volatile int *p, int val);
13184unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val);
13185#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013186
13187#if defined(cl_khr_global_int32_extended_atomics)
13188int __ovld atom_or(volatile __global int *p, int val);
13189unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
13190#endif
13191#if defined(cl_khr_local_int32_extended_atomics)
13192int __ovld atom_or(volatile __local int *p, int val);
13193unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
13194#endif
13195
13196#if defined(cl_khr_int64_extended_atomics)
13197long __ovld atom_or(volatile __global long *p, long val);
13198unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
13199long __ovld atom_or(volatile __local long *p, long val);
13200unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
13201#endif
13202
13203/**
13204 * Read the 32-bit value (referred to as old)
13205 * stored at location pointed by p. Compute
13206 * (old ^ val) and store result at location
13207 * pointed by p. The function returns old.
13208 */
13209int __ovld atomic_xor(volatile __global int *p, int val);
13210unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
13211int __ovld atomic_xor(volatile __local int *p, int val);
13212unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
Logan Chiendf4f7662019-09-04 16:45:23 -070013213#ifdef __OPENCL_CPP_VERSION__
13214int __ovld atomic_xor(volatile int *p, int val);
13215unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val);
13216#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080013217
13218#if defined(cl_khr_global_int32_extended_atomics)
13219int __ovld atom_xor(volatile __global int *p, int val);
13220unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
13221#endif
13222#if defined(cl_khr_local_int32_extended_atomics)
13223int __ovld atom_xor(volatile __local int *p, int val);
13224unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
13225#endif
13226
Logan Chien55afb0a2018-10-15 10:42:14 +080013227#if defined(cl_khr_int64_extended_atomics)
13228long __ovld atom_xor(volatile __global long *p, long val);
13229unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val);
13230long __ovld atom_xor(volatile __local long *p, long val);
13231unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val);
13232#endif
13233
Logan Chien2833ffb2018-10-09 10:03:24 +080013234#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13235#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
13236#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
13237#endif
13238
13239// OpenCL v2.0 s6.13.11 - Atomics Functions
13240
Logan Chienbedbf4f2020-01-06 19:35:19 -080013241#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080013242
13243// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
13244#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13245#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
13246#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
13247#endif
13248
13249// atomic_init()
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013250#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080013251void __ovld atomic_init(volatile atomic_int *object, int value);
13252void __ovld atomic_init(volatile atomic_uint *object, uint value);
13253void __ovld atomic_init(volatile atomic_float *object, float value);
13254#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13255void __ovld atomic_init(volatile atomic_long *object, long value);
13256void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
13257#ifdef cl_khr_fp64
13258void __ovld atomic_init(volatile atomic_double *object, double value);
13259#endif //cl_khr_fp64
13260#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013261#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013262#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013263void __ovld atomic_init(volatile __global atomic_int *object, int value);
13264void __ovld atomic_init(volatile __local atomic_int *object, int value);
13265void __ovld atomic_init(volatile __global atomic_uint *object, uint value);
13266void __ovld atomic_init(volatile __local atomic_uint *object, uint value);
13267void __ovld atomic_init(volatile __global atomic_float *object, float value);
13268void __ovld atomic_init(volatile __local atomic_float *object, float value);
13269#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13270void __ovld atomic_init(volatile __global atomic_long *object, long value);
13271void __ovld atomic_init(volatile __local atomic_long *object, long value);
13272void __ovld atomic_init(volatile __global atomic_ulong *object, ulong value);
13273void __ovld atomic_init(volatile __local atomic_ulong *object, ulong value);
13274#ifdef cl_khr_fp64
13275void __ovld atomic_init(volatile __global atomic_double *object, double value);
13276void __ovld atomic_init(volatile __local atomic_double *object, double value);
13277#endif //cl_khr_fp64
13278#endif
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013279#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Logan Chien2833ffb2018-10-09 10:03:24 +080013280
13281// atomic_work_item_fence()
13282void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope);
13283
13284// atomic_fetch()
Logan Chien2833ffb2018-10-09 10:03:24 +080013285// OpenCL v2.0 s6.13.11.7.5:
13286// 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 +080013287
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013288#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
13289#if defined(__opencl_c_generic_address_space)
13290int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
13291uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
13292int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
13293uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
13294int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
13295uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
13296int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
13297uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
13298int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
13299uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
13300int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
13301uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
13302int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
13303uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
Logan Chien55afb0a2018-10-15 10:42:14 +080013304#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013305long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
13306ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
13307long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
13308ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
13309long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
13310ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
13311long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
13312ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
13313long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
13314ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
13315long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
13316ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
13317long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
13318ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
Logan Chien2833ffb2018-10-09 10:03:24 +080013319uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
Logan Chien2833ffb2018-10-09 10:03:24 +080013320uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013321#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13322#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013323#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013324int __ovld atomic_fetch_add(volatile __global atomic_int *object, int operand);
13325int __ovld atomic_fetch_add(volatile __local atomic_int *object, int operand);
13326uint __ovld atomic_fetch_add(volatile __global atomic_uint *object, uint operand);
13327uint __ovld atomic_fetch_add(volatile __local atomic_uint *object, uint operand);
13328int __ovld atomic_fetch_sub(volatile __global atomic_int *object, int operand);
13329int __ovld atomic_fetch_sub(volatile __local atomic_int *object, int operand);
13330uint __ovld atomic_fetch_sub(volatile __global atomic_uint *object, uint operand);
13331uint __ovld atomic_fetch_sub(volatile __local atomic_uint *object, uint operand);
13332int __ovld atomic_fetch_or(volatile __global atomic_int *object, int operand);
13333int __ovld atomic_fetch_or(volatile __local atomic_int *object, int operand);
13334uint __ovld atomic_fetch_or(volatile __global atomic_uint *object, uint operand);
13335uint __ovld atomic_fetch_or(volatile __local atomic_uint *object, uint operand);
13336int __ovld atomic_fetch_xor(volatile __global atomic_int *object, int operand);
13337int __ovld atomic_fetch_xor(volatile __local atomic_int *object, int operand);
13338uint __ovld atomic_fetch_xor(volatile __global atomic_uint *object, uint operand);
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013339uint __ovld atomic_fetch_xor(volatile __local atomic_uint *object, uint operand);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013340int __ovld atomic_fetch_and(volatile __global atomic_int *object, int operand);
13341int __ovld atomic_fetch_and(volatile __local atomic_int *object, int operand);
13342uint __ovld atomic_fetch_and(volatile __global atomic_uint *object, uint operand);
13343uint __ovld atomic_fetch_and(volatile __local atomic_uint *object, uint operand);
13344int __ovld atomic_fetch_min(volatile __global atomic_int *object, int operand);
13345int __ovld atomic_fetch_min(volatile __local atomic_int *object, int operand);
13346uint __ovld atomic_fetch_min(volatile __global atomic_uint *object, uint operand);
13347uint __ovld atomic_fetch_min(volatile __local atomic_uint *object, uint operand);
13348int __ovld atomic_fetch_max(volatile __global atomic_int *object, int operand);
13349int __ovld atomic_fetch_max(volatile __local atomic_int *object, int operand);
13350uint __ovld atomic_fetch_max(volatile __global atomic_uint *object, uint operand);
13351uint __ovld atomic_fetch_max(volatile __local atomic_uint *object, uint operand);
13352#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13353long __ovld atomic_fetch_add(volatile __global atomic_long *object, long operand);
13354long __ovld atomic_fetch_add(volatile __local atomic_long *object, long operand);
13355ulong __ovld atomic_fetch_add(volatile __global atomic_ulong *object, ulong operand);
13356ulong __ovld atomic_fetch_add(volatile __local atomic_ulong *object, ulong operand);
13357uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13358uintptr_t __ovld atomic_fetch_add(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13359long __ovld atomic_fetch_sub(volatile __global atomic_long *object, long operand);
13360long __ovld atomic_fetch_sub(volatile __local atomic_long *object, long operand);
13361ulong __ovld atomic_fetch_sub(volatile __global atomic_ulong *object, ulong operand);
13362ulong __ovld atomic_fetch_sub(volatile __local atomic_ulong *object, ulong operand);
13363uintptr_t __ovld atomic_fetch_sub(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13364uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13365long __ovld atomic_fetch_or(volatile __global atomic_long *object, long operand);
13366long __ovld atomic_fetch_or(volatile __local atomic_long *object, long operand);
13367ulong __ovld atomic_fetch_or(volatile __global atomic_ulong *object, ulong operand);
13368ulong __ovld atomic_fetch_or(volatile __local atomic_ulong *object, ulong operand);
13369uintptr_t __ovld atomic_fetch_or(volatile __global atomic_uintptr_t *object, intptr_t operand);
13370uintptr_t __ovld atomic_fetch_or(volatile __local atomic_uintptr_t *object, intptr_t operand);
13371intptr_t __ovld atomic_fetch_or(volatile __global atomic_intptr_t *object, uintptr_t operand);
13372intptr_t __ovld atomic_fetch_or(volatile __local atomic_intptr_t *object, uintptr_t operand);
13373long __ovld atomic_fetch_xor(volatile __global atomic_long *object, long operand);
13374long __ovld atomic_fetch_xor(volatile __local atomic_long *object, long operand);
13375ulong __ovld atomic_fetch_xor(volatile __global atomic_ulong *object, ulong operand);
13376ulong __ovld atomic_fetch_xor(volatile __local atomic_ulong *object, ulong operand);
13377uintptr_t __ovld atomic_fetch_xor(volatile __global atomic_uintptr_t *object, intptr_t operand);
13378uintptr_t __ovld atomic_fetch_xor(volatile __local atomic_uintptr_t *object, intptr_t operand);
13379intptr_t __ovld atomic_fetch_xor(volatile __global atomic_intptr_t *object, uintptr_t operand);
13380intptr_t __ovld atomic_fetch_xor(volatile __local atomic_intptr_t *object, uintptr_t operand);
13381long __ovld atomic_fetch_and(volatile __global atomic_long *object, long operand);
13382long __ovld atomic_fetch_and(volatile __local atomic_long *object, long operand);
13383ulong __ovld atomic_fetch_and(volatile __global atomic_ulong *object, ulong operand);
13384ulong __ovld atomic_fetch_and(volatile __local atomic_ulong *object, ulong operand);
13385uintptr_t __ovld atomic_fetch_and(volatile __global atomic_uintptr_t *object, intptr_t operand);
13386uintptr_t __ovld atomic_fetch_and(volatile __local atomic_uintptr_t *object, intptr_t operand);
13387intptr_t __ovld atomic_fetch_and(volatile __global atomic_intptr_t *object, uintptr_t operand);
13388intptr_t __ovld atomic_fetch_and(volatile __local atomic_intptr_t *object, uintptr_t operand);
13389long __ovld atomic_fetch_min(volatile __global atomic_long *object, long operand);
13390long __ovld atomic_fetch_min(volatile __local atomic_long *object, long operand);
13391ulong __ovld atomic_fetch_min(volatile __global atomic_ulong *object, ulong operand);
13392ulong __ovld atomic_fetch_min(volatile __local atomic_ulong *object, ulong operand);
13393uintptr_t __ovld atomic_fetch_min(volatile __global atomic_uintptr_t *object, intptr_t operand);
13394uintptr_t __ovld atomic_fetch_min(volatile __local atomic_uintptr_t *object, intptr_t operand);
13395intptr_t __ovld atomic_fetch_min(volatile __global atomic_intptr_t *object, uintptr_t operand);
13396intptr_t __ovld atomic_fetch_min(volatile __local atomic_intptr_t *object, uintptr_t operand);
13397long __ovld atomic_fetch_max(volatile __global atomic_long *object, long operand);
13398long __ovld atomic_fetch_max(volatile __local atomic_long *object, long operand);
13399ulong __ovld atomic_fetch_max(volatile __global atomic_ulong *object, ulong operand);
13400ulong __ovld atomic_fetch_max(volatile __local atomic_ulong *object, ulong operand);
13401uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *object, ptrdiff_t operand);
13402uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *object, ptrdiff_t operand);
13403#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013404#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013405#endif
13406
13407#if defined(__opencl_c_atomic_scope_device)
13408#if defined(__opencl_c_generic_address_space)
13409int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13410uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13411int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13412uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13413int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13414uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13415int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13416uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13417int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13418uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13419int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13420uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13421int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13422uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13423#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13424long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13425ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13426long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13427ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13428long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13429ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13430long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13431ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13432long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13433ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13434long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13435ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13436long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13437ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13438uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
Logan Chien2833ffb2018-10-09 10:03:24 +080013439uintptr_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 -080013440#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13441#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013442#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013443int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13444int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13445uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13446uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13447int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13448int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13449uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13450uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13451int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13452int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13453uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13454uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13455int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13456int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13457uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13458uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13459int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13460int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13461uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13462uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13463int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13464int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13465uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13466uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13467int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order);
13468int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order);
13469uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order);
13470uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order);
13471#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13472long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13473long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13474ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13475ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13476uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13477uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13478long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13479long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13480ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13481ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13482uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13483uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13484long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13485long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13486ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13487ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13488uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13489uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13490intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13491intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13492long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13493long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13494ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13495ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13496uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13497uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13498intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13499intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13500long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13501long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13502ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13503ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13504uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13505uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13506intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13507intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13508long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13509long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13510ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13511ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13512uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order);
13513uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order);
13514intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order);
13515intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order);
13516long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order);
13517long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order);
13518ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order);
13519ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order);
13520uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13521uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13522#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013523#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013524#endif
13525
13526#if defined(__opencl_c_generic_address_space)
13527int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13528uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13529int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13530uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13531int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13532uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13533int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13534uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13535int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13536uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13537int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13538uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13539int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13540uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13541#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13542long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13543ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13544long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13545ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13546long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13547ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13548long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13549ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13550long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13551ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13552long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13553ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13554long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13555ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13556uintptr_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 +080013557uintptr_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 +080013558#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013559#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013560#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080013561int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13562int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13563uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13564uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13565int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13566int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13567uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13568uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13569int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13570int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13571uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13572uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13573int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13574int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13575uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13576uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13577int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13578int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13579uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13580uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13581int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13582int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13583uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13584uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13585int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *object, int operand, memory_order order, memory_scope scope);
13586int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *object, int operand, memory_order order, memory_scope scope);
13587uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13588uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13589#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13590long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13591long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13592uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13593uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13594ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13595ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13596long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13597long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13598ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13599ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13600uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13601uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13602long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13603long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13604ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13605ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13606uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13607uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13608intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13609intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13610long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13611long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13612ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13613ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13614uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13615uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13616intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13617intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13618long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13619long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13620ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13621ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13622uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13623uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13624intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13625intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13626long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13627long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13628ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13629ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13630uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13631uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13632intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13633intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13634long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *object, long operand, memory_order order, memory_scope scope);
13635long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *object, long operand, memory_order order, memory_scope scope);
13636ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13637ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13638uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13639uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13640#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080013641#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
13642
13643// The functionality added by cl_ext_float_atomics extension
13644#if defined(cl_ext_float_atomics)
13645
13646#if defined(__opencl_c_ext_fp16_global_atomic_load_store)
13647void __ovld atomic_store(volatile __global atomic_half *object, half operand);
13648void __ovld atomic_store_explicit(volatile __global atomic_half *object,
13649 half operand, memory_order order);
13650void __ovld atomic_store_explicit(volatile __global atomic_half *object,
13651 half operand, memory_order order,
13652 memory_scope scope);
13653half __ovld atomic_load(volatile __global atomic_half *object);
13654half __ovld atomic_load_explicit(volatile __global atomic_half *object,
13655 memory_order order);
13656half __ovld atomic_load_explicit(volatile __global atomic_half *object,
13657 memory_order order, memory_scope scope);
13658half __ovld atomic_exchange(volatile __global atomic_half *object,
13659 half operand);
13660half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
13661 half operand, memory_order order);
13662half __ovld atomic_exchange_explicit(volatile __global atomic_half *object,
13663 half operand, memory_order order,
13664 memory_scope scope);
13665#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store)
13666
13667#if defined(__opencl_c_ext_fp16_local_atomic_load_store)
13668void __ovld atomic_store(volatile __local atomic_half *object, half operand);
13669void __ovld atomic_store_explicit(volatile __local atomic_half *object,
13670 half operand, memory_order order);
13671void __ovld atomic_store_explicit(volatile __local atomic_half *object,
13672 half operand, memory_order order,
13673 memory_scope scope);
13674half __ovld atomic_load(volatile __local atomic_half *object);
13675half __ovld atomic_load_explicit(volatile __local atomic_half *object,
13676 memory_order order);
13677half __ovld atomic_load_explicit(volatile __local atomic_half *object,
13678 memory_order order, memory_scope scope);
13679half __ovld atomic_exchange(volatile __local atomic_half *object, half operand);
13680half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
13681 half operand, memory_order order);
13682half __ovld atomic_exchange_explicit(volatile __local atomic_half *object,
13683 half operand, memory_order order,
13684 memory_scope scope);
13685#endif // defined(__opencl_c_ext_fp16_local_atomic_load_store)
13686
13687#if defined(__opencl_c_ext_fp16_global_atomic_load_store) && \
13688 defined(__opencl_c_ext_fp16_local_atomic_load_store)
13689void __ovld atomic_store(volatile atomic_half *object, half operand);
13690void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
13691 memory_order order);
13692void __ovld atomic_store_explicit(volatile atomic_half *object, half operand,
13693 memory_order order, memory_scope scope);
13694half __ovld atomic_load(volatile atomic_half *object);
13695half __ovld atomic_load_explicit(volatile atomic_half *object,
13696 memory_order order);
13697half __ovld atomic_load_explicit(volatile atomic_half *object,
13698 memory_order order, memory_scope scope);
13699half __ovld atomic_exchange(volatile atomic_half *object, half operand);
13700half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
13701 memory_order order);
13702half __ovld atomic_exchange_explicit(volatile atomic_half *object, half operand,
13703 memory_order order, memory_scope scope);
13704#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) &&
13705 // defined(__opencl_c_ext_fp16_local_atomic_load_store)
13706
13707#if defined(__opencl_c_ext_fp16_global_atomic_min_max)
13708half __ovld atomic_fetch_min(volatile __global atomic_half *object,
13709 half operand);
13710half __ovld atomic_fetch_max(volatile __global atomic_half *object,
13711 half operand);
13712half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
13713 half operand, memory_order order);
13714half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
13715 half operand, memory_order order);
13716half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *object,
13717 half operand, memory_order order,
13718 memory_scope scope);
13719half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *object,
13720 half operand, memory_order order,
13721 memory_scope scope);
13722#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max)
13723
13724#if defined(__opencl_c_ext_fp16_local_atomic_min_max)
13725half __ovld atomic_fetch_min(volatile __local atomic_half *object,
13726 half operand);
13727half __ovld atomic_fetch_max(volatile __local atomic_half *object,
13728 half operand);
13729half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
13730 half operand, memory_order order);
13731half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
13732 half operand, memory_order order);
13733half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *object,
13734 half operand, memory_order order,
13735 memory_scope scope);
13736half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *object,
13737 half operand, memory_order order,
13738 memory_scope scope);
13739#endif // defined(__opencl_c_ext_fp16_local_atomic_min_max)
13740
13741#if defined(__opencl_c_ext_fp16_global_atomic_min_max) && \
13742 defined(__opencl_c_ext_fp16_local_atomic_min_max)
13743half __ovld atomic_fetch_min(volatile atomic_half *object, half operand);
13744half __ovld atomic_fetch_max(volatile atomic_half *object, half operand);
13745half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
13746 half operand, memory_order order);
13747half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
13748 half operand, memory_order order);
13749half __ovld atomic_fetch_min_explicit(volatile atomic_half *object,
13750 half operand, memory_order order,
13751 memory_scope scope);
13752half __ovld atomic_fetch_max_explicit(volatile atomic_half *object,
13753 half operand, memory_order order,
13754 memory_scope scope);
13755#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) && \
13756 defined(__opencl_c_ext_fp16_local_atomic_min_max)
13757
13758#if defined(__opencl_c_ext_fp32_global_atomic_min_max)
13759float __ovld atomic_fetch_min(volatile __global atomic_float *object,
13760 float operand);
13761float __ovld atomic_fetch_max(volatile __global atomic_float *object,
13762 float operand);
13763float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
13764 float operand, memory_order order);
13765float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
13766 float operand, memory_order order);
13767float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *object,
13768 float operand, memory_order order,
13769 memory_scope scope);
13770float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *object,
13771 float operand, memory_order order,
13772 memory_scope scope);
13773#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max)
13774
13775#if defined(__opencl_c_ext_fp32_local_atomic_min_max)
13776float __ovld atomic_fetch_min(volatile __local atomic_float *object,
13777 float operand);
13778float __ovld atomic_fetch_max(volatile __local atomic_float *object,
13779 float operand);
13780float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
13781 float operand, memory_order order);
13782float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
13783 float operand, memory_order order);
13784float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *object,
13785 float operand, memory_order order,
13786 memory_scope scope);
13787float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *object,
13788 float operand, memory_order order,
13789 memory_scope scope);
13790#endif // defined(__opencl_c_ext_fp32_local_atomic_min_max)
13791
13792#if defined(__opencl_c_ext_fp32_global_atomic_min_max) && \
13793 defined(__opencl_c_ext_fp32_local_atomic_min_max)
13794float __ovld atomic_fetch_min(volatile atomic_float *object, float operand);
13795float __ovld atomic_fetch_max(volatile atomic_float *object, float operand);
13796float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
13797 float operand, memory_order order);
13798float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
13799 float operand, memory_order order);
13800float __ovld atomic_fetch_min_explicit(volatile atomic_float *object,
13801 float operand, memory_order order,
13802 memory_scope scope);
13803float __ovld atomic_fetch_max_explicit(volatile atomic_float *object,
13804 float operand, memory_order order,
13805 memory_scope scope);
13806#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) && \
13807 defined(__opencl_c_ext_fp32_local_atomic_min_max)
13808
13809#if defined(__opencl_c_ext_fp64_global_atomic_min_max)
13810double __ovld atomic_fetch_min(volatile __global atomic_double *object,
13811 double operand);
13812double __ovld atomic_fetch_max(volatile __global atomic_double *object,
13813 double operand);
13814double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
13815 double operand, memory_order order);
13816double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
13817 double operand, memory_order order);
13818double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *object,
13819 double operand, memory_order order,
13820 memory_scope scope);
13821double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *object,
13822 double operand, memory_order order,
13823 memory_scope scope);
13824#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max)
13825
13826#if defined(__opencl_c_ext_fp64_local_atomic_min_max)
13827double __ovld atomic_fetch_min(volatile __local atomic_double *object,
13828 double operand);
13829double __ovld atomic_fetch_max(volatile __local atomic_double *object,
13830 double operand);
13831double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
13832 double operand, memory_order order);
13833double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
13834 double operand, memory_order order);
13835double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *object,
13836 double operand, memory_order order,
13837 memory_scope scope);
13838double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *object,
13839 double operand, memory_order order,
13840 memory_scope scope);
13841#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max)
13842
13843#if defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
13844 defined(__opencl_c_ext_fp64_local_atomic_min_max)
13845double __ovld atomic_fetch_min(volatile atomic_double *object, double operand);
13846double __ovld atomic_fetch_max(volatile atomic_double *object, double operand);
13847double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
13848 double operand, memory_order order);
13849double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
13850 double operand, memory_order order);
13851double __ovld atomic_fetch_min_explicit(volatile atomic_double *object,
13852 double operand, memory_order order,
13853 memory_scope scope);
13854double __ovld atomic_fetch_max_explicit(volatile atomic_double *object,
13855 double operand, memory_order order,
13856 memory_scope scope);
13857#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) && \
13858 defined(__opencl_c_ext_fp64_local_atomic_min_max)
13859
13860#if defined(__opencl_c_ext_fp16_global_atomic_add)
13861half __ovld atomic_fetch_add(volatile __global atomic_half *object,
13862 half operand);
13863half __ovld atomic_fetch_sub(volatile __global atomic_half *object,
13864 half operand);
13865half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
13866 half operand, memory_order order);
13867half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
13868 half operand, memory_order order);
13869half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *object,
13870 half operand, memory_order order,
13871 memory_scope scope);
13872half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *object,
13873 half operand, memory_order order,
13874 memory_scope scope);
13875#endif // defined(__opencl_c_ext_fp16_global_atomic_add)
13876
13877#if defined(__opencl_c_ext_fp16_local_atomic_add)
13878half __ovld atomic_fetch_add(volatile __local atomic_half *object,
13879 half operand);
13880half __ovld atomic_fetch_sub(volatile __local atomic_half *object,
13881 half operand);
13882half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
13883 half operand, memory_order order);
13884half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
13885 half operand, memory_order order);
13886half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *object,
13887 half operand, memory_order order,
13888 memory_scope scope);
13889half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *object,
13890 half operand, memory_order order,
13891 memory_scope scope);
13892#endif // defined(__opencl_c_ext_fp16_local_atomic_add)
13893
13894#if defined(__opencl_c_ext_fp16_global_atomic_add) && \
13895 defined(__opencl_c_ext_fp16_local_atomic_add)
13896half __ovld atomic_fetch_add(volatile atomic_half *object, half operand);
13897half __ovld atomic_fetch_sub(volatile atomic_half *object, half operand);
13898half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
13899 half operand, memory_order order);
13900half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
13901 half operand, memory_order order);
13902half __ovld atomic_fetch_add_explicit(volatile atomic_half *object,
13903 half operand, memory_order order,
13904 memory_scope scope);
13905half __ovld atomic_fetch_sub_explicit(volatile atomic_half *object,
13906 half operand, memory_order order,
13907 memory_scope scope);
13908#endif // defined(__opencl_c_ext_fp16_global_atomic_add) && \
13909 defined(__opencl_c_ext_fp16_local_atomic_add)
13910
13911#if defined(__opencl_c_ext_fp32_global_atomic_add)
13912float __ovld atomic_fetch_add(volatile __global atomic_float *object,
13913 float operand);
13914float __ovld atomic_fetch_sub(volatile __global atomic_float *object,
13915 float operand);
13916float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
13917 float operand, memory_order order);
13918float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
13919 float operand, memory_order order);
13920float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *object,
13921 float operand, memory_order order,
13922 memory_scope scope);
13923float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *object,
13924 float operand, memory_order order,
13925 memory_scope scope);
13926#endif // defined(__opencl_c_ext_fp32_global_atomic_add)
13927
13928#if defined(__opencl_c_ext_fp32_local_atomic_add)
13929float __ovld atomic_fetch_add(volatile __local atomic_float *object,
13930 float operand);
13931float __ovld atomic_fetch_sub(volatile __local atomic_float *object,
13932 float operand);
13933float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
13934 float operand, memory_order order);
13935float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
13936 float operand, memory_order order);
13937float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *object,
13938 float operand, memory_order order,
13939 memory_scope scope);
13940float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *object,
13941 float operand, memory_order order,
13942 memory_scope scope);
13943#endif // defined(__opencl_c_ext_fp32_local_atomic_add)
13944
13945#if defined(__opencl_c_ext_fp32_global_atomic_add) && \
13946 defined(__opencl_c_ext_fp32_local_atomic_add)
13947float __ovld atomic_fetch_add(volatile atomic_float *object, float operand);
13948float __ovld atomic_fetch_sub(volatile atomic_float *object, float operand);
13949float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
13950 float operand, memory_order order);
13951float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
13952 float operand, memory_order order);
13953float __ovld atomic_fetch_add_explicit(volatile atomic_float *object,
13954 float operand, memory_order order,
13955 memory_scope scope);
13956float __ovld atomic_fetch_sub_explicit(volatile atomic_float *object,
13957 float operand, memory_order order,
13958 memory_scope scope);
13959#endif // defined(__opencl_c_ext_fp32_global_atomic_add) && \
13960 defined(__opencl_c_ext_fp32_local_atomic_add)
13961
13962#if defined(__opencl_c_ext_fp64_global_atomic_add)
13963double __ovld atomic_fetch_add(volatile __global atomic_double *object,
13964 double operand);
13965double __ovld atomic_fetch_sub(volatile __global atomic_double *object,
13966 double operand);
13967double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
13968 double operand, memory_order order);
13969double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
13970 double operand, memory_order order);
13971double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *object,
13972 double operand, memory_order order,
13973 memory_scope scope);
13974double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *object,
13975 double operand, memory_order order,
13976 memory_scope scope);
13977#endif // defined(__opencl_c_ext_fp64_global_atomic_add)
13978
13979#if defined(__opencl_c_ext_fp64_local_atomic_add)
13980double __ovld atomic_fetch_add(volatile __local atomic_double *object,
13981 double operand);
13982double __ovld atomic_fetch_sub(volatile __local atomic_double *object,
13983 double operand);
13984double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
13985 double operand, memory_order order);
13986double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
13987 double operand, memory_order order);
13988double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *object,
13989 double operand, memory_order order,
13990 memory_scope scope);
13991double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *object,
13992 double operand, memory_order order,
13993 memory_scope scope);
13994#endif // defined(__opencl_c_ext_fp64_local_atomic_add)
13995
13996#if defined(__opencl_c_ext_fp64_global_atomic_add) && \
13997 defined(__opencl_c_ext_fp64_local_atomic_add)
13998double __ovld atomic_fetch_add(volatile atomic_double *object, double operand);
13999double __ovld atomic_fetch_sub(volatile atomic_double *object, double operand);
14000double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
14001 double operand, memory_order order);
14002double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
14003 double operand, memory_order order);
14004double __ovld atomic_fetch_add_explicit(volatile atomic_double *object,
14005 double operand, memory_order order,
14006 memory_scope scope);
14007double __ovld atomic_fetch_sub_explicit(volatile atomic_double *object,
14008 double operand, memory_order order,
14009 memory_scope scope);
14010#endif // defined(__opencl_c_ext_fp64_global_atomic_add) && \
14011 defined(__opencl_c_ext_fp64_local_atomic_add)
14012
14013#endif // cl_ext_float_atomics
Logan Chien2833ffb2018-10-09 10:03:24 +080014014
14015// atomic_store()
14016
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014017#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14018#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080014019void __ovld atomic_store(volatile atomic_int *object, int desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014020void __ovld atomic_store(volatile atomic_uint *object, uint desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014021void __ovld atomic_store(volatile atomic_float *object, float desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014022
Logan Chien2833ffb2018-10-09 10:03:24 +080014023#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14024#ifdef cl_khr_fp64
14025void __ovld atomic_store(volatile atomic_double *object, double desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014026#endif //cl_khr_fp64
14027void __ovld atomic_store(volatile atomic_long *object, long desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014028void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014029#endif
14030#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014031#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014032void __ovld atomic_store(volatile __global atomic_int *object, int desired);
14033void __ovld atomic_store(volatile __local atomic_int *object, int desired);
14034void __ovld atomic_store(volatile __global atomic_uint *object, uint desired);
14035void __ovld atomic_store(volatile __local atomic_uint *object, uint desired);
14036void __ovld atomic_store(volatile __global atomic_float *object, float desired);
14037void __ovld atomic_store(volatile __local atomic_float *object, float desired);
14038#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14039#ifdef cl_khr_fp64
14040void __ovld atomic_store(volatile __global atomic_double *object, double desired);
14041void __ovld atomic_store(volatile __local atomic_double *object, double desired);
14042#endif //cl_khr_fp64
14043void __ovld atomic_store(volatile __global atomic_long *object, long desired);
14044void __ovld atomic_store(volatile __local atomic_long *object, long desired);
14045void __ovld atomic_store(volatile __global atomic_ulong *object, ulong desired);
14046void __ovld atomic_store(volatile __local atomic_ulong *object, ulong desired);
14047#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014048#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Logan Chien2833ffb2018-10-09 10:03:24 +080014049#endif
14050
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014051#if defined(__opencl_c_atomic_scope_device)
14052#if defined(__opencl_c_generic_address_space)
14053void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
14054void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14055void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
14056#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14057#ifdef cl_khr_fp64
14058void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
14059#endif //cl_khr_fp64
14060void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
14061void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14062#endif
14063#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014064#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014065void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order);
14066void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order);
14067void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
14068void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
14069void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order);
14070void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order);
14071#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14072#ifdef cl_khr_fp64
14073void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order);
14074void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order);
14075#endif
14076void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order);
14077void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order);
14078void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
14079void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
14080#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014081#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014082#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080014083
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014084#if defined(__opencl_c_generic_address_space)
14085void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14086void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14087void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14088#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14089#ifdef cl_khr_fp64
14090void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14091#endif //cl_khr_fp64
14092void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14093void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14094#endif
14095#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014096#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014097void __ovld atomic_store_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
14098void __ovld atomic_store_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
14099void __ovld atomic_store_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14100void __ovld atomic_store_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14101void __ovld atomic_store_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
14102void __ovld atomic_store_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
14103#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14104#ifdef cl_khr_fp64
14105void __ovld atomic_store_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
14106void __ovld atomic_store_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
14107#endif //cl_khr_fp64
14108void __ovld atomic_store_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
14109void __ovld atomic_store_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
14110void __ovld atomic_store_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14111void __ovld atomic_store_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14112#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014113#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014114
14115// atomic_load()
14116#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14117#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080014118int __ovld atomic_load(volatile atomic_int *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014119uint __ovld atomic_load(volatile atomic_uint *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014120float __ovld atomic_load(volatile atomic_float *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014121#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14122#ifdef cl_khr_fp64
14123double __ovld atomic_load(volatile atomic_double *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014124#endif //cl_khr_fp64
14125long __ovld atomic_load(volatile atomic_long *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014126ulong __ovld atomic_load(volatile atomic_ulong *object);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014127#endif
14128#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014129#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014130int __ovld atomic_load(volatile __global atomic_int *object);
14131int __ovld atomic_load(volatile __local atomic_int *object);
14132uint __ovld atomic_load(volatile __global atomic_uint *object);
14133uint __ovld atomic_load(volatile __local atomic_uint *object);
14134float __ovld atomic_load(volatile __global atomic_float *object);
14135float __ovld atomic_load(volatile __local atomic_float *object);
14136#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14137#ifdef cl_khr_fp64
14138double __ovld atomic_load(volatile __global atomic_double *object);
14139double __ovld atomic_load(volatile __local atomic_double *object);
14140#endif //cl_khr_fp64
14141long __ovld atomic_load(volatile __global atomic_long *object);
14142long __ovld atomic_load(volatile __local atomic_long *object);
14143ulong __ovld atomic_load(volatile __global atomic_ulong *object);
14144ulong __ovld atomic_load(volatile __local atomic_ulong *object);
14145#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014146#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014147#endif
14148
14149#if defined(__opencl_c_atomic_scope_device)
14150#if defined(__opencl_c_generic_address_space)
14151int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
14152uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
14153float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
14154#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14155#ifdef cl_khr_fp64
14156double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
14157#endif //cl_khr_fp64
14158long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
Logan Chien2833ffb2018-10-09 10:03:24 +080014159ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014160#endif
14161#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014162#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014163int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order);
14164int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order);
14165uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order);
14166uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order);
14167float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order);
14168float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order);
14169#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14170#ifdef cl_khr_fp64
14171double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order);
14172double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order);
14173#endif //cl_khr_fp64
14174long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order);
14175long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order);
14176ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order);
14177ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order);
14178#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014179#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014180#endif
14181
14182#if defined(__opencl_c_generic_address_space)
14183int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
14184uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
14185float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
14186#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14187#ifdef cl_khr_fp64
14188double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
14189#endif //cl_khr_fp64
14190long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014191ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
14192#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014193#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014194#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014195int __ovld atomic_load_explicit(volatile __global atomic_int *object, memory_order order, memory_scope scope);
14196int __ovld atomic_load_explicit(volatile __local atomic_int *object, memory_order order, memory_scope scope);
14197uint __ovld atomic_load_explicit(volatile __global atomic_uint *object, memory_order order, memory_scope scope);
14198uint __ovld atomic_load_explicit(volatile __local atomic_uint *object, memory_order order, memory_scope scope);
14199float __ovld atomic_load_explicit(volatile __global atomic_float *object, memory_order order, memory_scope scope);
14200float __ovld atomic_load_explicit(volatile __local atomic_float *object, memory_order order, memory_scope scope);
14201#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14202#ifdef cl_khr_fp64
14203double __ovld atomic_load_explicit(volatile __global atomic_double *object, memory_order order, memory_scope scope);
14204double __ovld atomic_load_explicit(volatile __local atomic_double *object, memory_order order, memory_scope scope);
14205#endif
14206long __ovld atomic_load_explicit(volatile __global atomic_long *object, memory_order order, memory_scope scope);
14207long __ovld atomic_load_explicit(volatile __local atomic_long *object, memory_order order, memory_scope scope);
14208ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *object, memory_order order, memory_scope scope);
14209ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *object, memory_order order, memory_scope scope);
14210#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014211#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Logan Chien2833ffb2018-10-09 10:03:24 +080014212
14213// atomic_exchange()
14214
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014215#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14216#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080014217int __ovld atomic_exchange(volatile atomic_int *object, int desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014218uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014219float __ovld atomic_exchange(volatile atomic_float *object, float desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014220#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14221#ifdef cl_khr_fp64
14222double __ovld atomic_exchange(volatile atomic_double *object, double desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014223#endif //cl_khr_fp64
14224long __ovld atomic_exchange(volatile atomic_long *object, long desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014225ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014226#endif
14227#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014228#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014229int __ovld atomic_exchange(volatile __global atomic_int *object, int desired);
14230int __ovld atomic_exchange(volatile __local atomic_int *object, int desired);
14231uint __ovld atomic_exchange(volatile __global atomic_uint *object, uint desired);
14232uint __ovld atomic_exchange(volatile __local atomic_uint *object, uint desired);
14233float __ovld atomic_exchange(volatile __global atomic_float *object, float desired);
14234float __ovld atomic_exchange(volatile __local atomic_float *object, float desired);
14235#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14236#ifdef cl_khr_fp64
14237double __ovld atomic_exchange(volatile __global atomic_double *object, double desired);
14238double __ovld atomic_exchange(volatile __local atomic_double *object, double desired);
14239#endif //cl_khr_fp64
14240long __ovld atomic_exchange(volatile __global atomic_long *object, long desired);
14241long __ovld atomic_exchange(volatile __local atomic_long *object, long desired);
14242ulong __ovld atomic_exchange(volatile __global atomic_ulong *object, ulong desired);
14243ulong __ovld atomic_exchange(volatile __local atomic_ulong *object, ulong desired);
14244#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014245#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Logan Chien2833ffb2018-10-09 10:03:24 +080014246#endif
14247
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014248#if defined(__opencl_c_atomic_scope_device)
14249#if defined(__opencl_c_generic_address_space)
14250int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
14251uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
14252float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
14253#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14254#ifdef cl_khr_fp64
14255double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
14256#endif //cl_khr_fp64
14257long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
14258ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
14259#endif
14260#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014261#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014262int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order);
14263int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order);
14264uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order);
14265uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order);
14266float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order);
14267float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order);
14268#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14269#ifdef cl_khr_fp64
14270double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order);
14271double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order);
14272#endif //cl_khr_fp64
14273long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order);
14274long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order);
14275ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order);
14276ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order);
14277#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014278#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014279#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080014280
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014281#if defined(__opencl_c_generic_address_space)
14282int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
14283uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14284float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
14285#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14286#ifdef cl_khr_fp64
14287double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
14288#endif //cl_khr_fp64
14289long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
14290ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14291#endif
14292#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014293#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014294int __ovld atomic_exchange_explicit(volatile __global atomic_int *object, int desired, memory_order order, memory_scope scope);
14295int __ovld atomic_exchange_explicit(volatile __local atomic_int *object, int desired, memory_order order, memory_scope scope);
14296uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14297uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *object, uint desired, memory_order order, memory_scope scope);
14298float __ovld atomic_exchange_explicit(volatile __global atomic_float *object, float desired, memory_order order, memory_scope scope);
14299float __ovld atomic_exchange_explicit(volatile __local atomic_float *object, float desired, memory_order order, memory_scope scope);
14300#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14301#ifdef cl_khr_fp64
14302double __ovld atomic_exchange_explicit(volatile __global atomic_double *object, double desired, memory_order order, memory_scope scope);
14303double __ovld atomic_exchange_explicit(volatile __local atomic_double *object, double desired, memory_order order, memory_scope scope);
14304#endif //cl_khr_fp64
14305long __ovld atomic_exchange_explicit(volatile __global atomic_long *object, long desired, memory_order order, memory_scope scope);
14306long __ovld atomic_exchange_explicit(volatile __local atomic_long *object, long desired, memory_order order, memory_scope scope);
14307ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14308ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
14309#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014310#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014311
14312// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
14313#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14314#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080014315bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
Logan Chien2833ffb2018-10-09 10:03:24 +080014316bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014317bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
14318bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
14319bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
14320bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
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(volatile atomic_double *object, double *expected, double desired);
14324bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
14325#endif //cl_khr_fp64
14326bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
14327bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
14328bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
14329bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
14330#endif
14331#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014332#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014333bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __global int *expected, int desired);
14334bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __local int *expected, int desired);
14335bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *object, __private int *expected, int desired);
14336bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __global int *expected, int desired);
14337bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __local int *expected, int desired);
14338bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *object, __private int *expected, int desired);
14339bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __global uint *expected, uint desired);
14340bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __local uint *expected, uint desired);
14341bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *object, __private uint *expected, uint desired);
14342bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __global uint *expected, uint desired);
14343bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __local uint *expected, uint desired);
14344bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *object, __private uint *expected, uint desired);
14345bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __global float *expected, float desired);
14346bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __local float *expected, float desired);
14347bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *object, __private float *expected, float desired);
14348bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __global float *expected, float desired);
14349bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __local float *expected, float desired);
14350bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *object, __private float *expected, float desired);
14351bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __global int *expected, int desired);
14352bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __local int *expected, int desired);
14353bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *object, __private int *expected, int desired);
14354bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __global int *expected, int desired);
14355bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __local int *expected, int desired);
14356bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *object, __private int *expected, int desired);
14357bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __global uint *expected, uint desired);
14358bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __local uint *expected, uint desired);
14359bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *object, __private uint *expected, uint desired);
14360bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __global uint *expected, uint desired);
14361bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __local uint *expected, uint desired);
14362bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *object, __private uint *expected, uint desired);
14363bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __global float *expected, float desired);
14364bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __local float *expected, float desired);
14365bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *object, __private float *expected, float desired);
14366bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __global float *expected, float desired);
14367bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __local float *expected, float desired);
14368bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *object, __private float *expected, float desired);
14369#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14370#ifdef cl_khr_fp64
14371bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __global double *expected, double desired);
14372bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __local double *expected, double desired);
14373bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *object, __private double *expected, double desired);
14374bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __global double *expected, double desired);
14375bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __local double *expected, double desired);
14376bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *object, __private double *expected, double desired);
14377bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __global double *expected, double desired);
14378bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __local double *expected, double desired);
14379bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *object, __private double *expected, double desired);
14380bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __global double *expected, double desired);
14381bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __local double *expected, double desired);
14382bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *object, __private double *expected, double desired);
14383#endif //cl_khr_fp64
14384bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __global long *expected, long desired);
14385bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __local long *expected, long desired);
14386bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *object, __private long *expected, long desired);
14387bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __global long *expected, long desired);
14388bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __local long *expected, long desired);
14389bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *object, __private long *expected, long desired);
14390bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
14391bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
14392bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
14393bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
14394bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
14395bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
14396bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __global long *expected, long desired);
14397bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __local long *expected, long desired);
14398bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *object, __private long *expected, long desired);
14399bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __global long *expected, long desired);
14400bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __local long *expected, long desired);
14401bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *object, __private long *expected, long desired);
14402bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __global ulong *expected, ulong desired);
14403bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __local ulong *expected, ulong desired);
14404bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *object, __private ulong *expected, ulong desired);
14405bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __global ulong *expected, ulong desired);
14406bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __local ulong *expected, ulong desired);
14407bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *object, __private ulong *expected, ulong desired);
14408#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014409#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014410#endif
14411
14412#if defined(__opencl_c_generic_address_space)
14413bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14414 int desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014415bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14416 uint desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014417bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14418 int desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014419bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14420 uint desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014421bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14422 float desired, memory_order success, memory_order failure);
Logan Chien2833ffb2018-10-09 10:03:24 +080014423bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14424 float desired, memory_order success, memory_order failure);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014425#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14426#ifdef cl_khr_fp64
14427bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14428 double desired, memory_order success, memory_order failure);
14429bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14430 double desired, memory_order success, memory_order failure);
14431#endif //cl_khr_fp64
14432bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14433 long desired, memory_order success, memory_order failure);
14434bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14435 long desired, memory_order success, memory_order failure);
14436bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14437 ulong desired, memory_order success, memory_order failure);
14438bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14439 ulong desired, memory_order success, memory_order failure);
14440#endif
14441#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014442#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014443bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
14444 int desired, memory_order success, memory_order failure);
14445bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
14446 int desired, memory_order success, memory_order failure);
14447bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
14448 int desired, memory_order success, memory_order failure);
14449bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
14450 int desired, memory_order success, memory_order failure);
14451bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
14452 int desired, memory_order success, memory_order failure);
14453bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
14454 int desired, memory_order success, memory_order failure);
14455bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
14456 uint desired, memory_order success, memory_order failure);
14457bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
14458 uint desired, memory_order success, memory_order failure);
14459bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
14460 uint desired, memory_order success, memory_order failure);
14461bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
14462 uint desired, memory_order success, memory_order failure);
14463bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
14464 uint desired, memory_order success, memory_order failure);
14465bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
14466 uint desired, memory_order success, memory_order failure);
14467bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
14468 float desired, memory_order success, memory_order failure);
14469bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
14470 float desired, memory_order success, memory_order failure);
14471bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
14472 float desired, memory_order success, memory_order failure);
14473bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
14474 float desired, memory_order success, memory_order failure);
14475bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
14476 float desired, memory_order success, memory_order failure);
14477bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
14478 float desired, memory_order success, memory_order failure);
14479bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
14480 int desired, memory_order success, memory_order failure);
14481bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
14482 int desired, memory_order success, memory_order failure);
14483bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
14484 int desired, memory_order success, memory_order failure);
14485bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
14486 int desired, memory_order success, memory_order failure);
14487bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
14488 int desired, memory_order success, memory_order failure);
14489bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
14490 int desired, memory_order success, memory_order failure);
14491bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
14492 uint desired, memory_order success, memory_order failure);
14493bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
14494 uint desired, memory_order success, memory_order failure);
14495bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
14496 uint desired, memory_order success, memory_order failure);
14497bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
14498 uint desired, memory_order success, memory_order failure);
14499bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
14500 uint desired, memory_order success, memory_order failure);
14501bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
14502 uint desired, memory_order success, memory_order failure);
14503bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
14504 float desired, memory_order success, memory_order failure);
14505bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
14506 float desired, memory_order success, memory_order failure);
14507bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
14508 float desired, memory_order success, memory_order failure);
14509bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
14510 float desired, memory_order success, memory_order failure);
14511bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
14512 float desired, memory_order success, memory_order failure);
14513bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
14514 float desired, memory_order success, memory_order failure);
14515#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14516#ifdef cl_khr_fp64
14517bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
14518 double desired, memory_order success, memory_order failure);
14519bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
14520 double desired, memory_order success, memory_order failure);
14521bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
14522 double desired, memory_order success, memory_order failure);
14523bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
14524 double desired, memory_order success, memory_order failure);
14525bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
14526 double desired, memory_order success, memory_order failure);
14527bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
14528 double desired, memory_order success, memory_order failure);
14529bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
14530 double desired, memory_order success, memory_order failure);
14531bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
14532 double desired, memory_order success, memory_order failure);
14533bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
14534 double desired, memory_order success, memory_order failure);
14535bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
14536 double desired, memory_order success, memory_order failure);
14537bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
14538 double desired, memory_order success, memory_order failure);
14539bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
14540 double desired, memory_order success, memory_order failure);
14541#endif //cl_khr_fp64
14542bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
14543 long desired, memory_order success, memory_order failure);
14544bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
14545 long desired, memory_order success, memory_order failure);
14546bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
14547 long desired, memory_order success, memory_order failure);
14548bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
14549 long desired, memory_order success, memory_order failure);
14550bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
14551 long desired, memory_order success, memory_order failure);
14552bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
14553 long desired, memory_order success, memory_order failure);
14554bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14555 ulong desired, memory_order success, memory_order failure);
14556bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14557 ulong desired, memory_order success, memory_order failure);
14558bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14559 ulong desired, memory_order success, memory_order failure);
14560bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14561 ulong desired, memory_order success, memory_order failure);
14562bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14563 ulong desired, memory_order success, memory_order failure);
14564bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14565 ulong desired, memory_order success, memory_order failure);
14566bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
14567 long desired, memory_order success, memory_order failure);
14568bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
14569 long desired, memory_order success, memory_order failure);
14570bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
14571 long desired, memory_order success, memory_order failure);
14572bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
14573 long desired, memory_order success, memory_order failure);
14574bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
14575 long desired, memory_order success, memory_order failure);
14576bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
14577 long desired, memory_order success, memory_order failure);
14578bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14579 ulong desired, memory_order success, memory_order failure);
14580bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14581 ulong desired, memory_order success, memory_order failure);
14582bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14583 ulong desired, memory_order success, memory_order failure);
14584bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14585 ulong desired, memory_order success, memory_order failure);
14586bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14587 ulong desired, memory_order success, memory_order failure);
14588bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14589 ulong desired, memory_order success, memory_order failure);
14590#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014591#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014592
14593#if defined(__opencl_c_generic_address_space)
14594bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
14595 int desired, memory_order success, memory_order failure, memory_scope scope);
14596bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
14597 uint desired, memory_order success, memory_order failure, memory_scope scope);
14598bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
14599 int desired, memory_order success, memory_order failure, memory_scope scope);
14600bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
14601 uint desired, memory_order success, memory_order failure, memory_scope scope);
14602bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
14603 float desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014604bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
14605 float desired, memory_order success, memory_order failure, memory_scope scope);
14606#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14607#ifdef cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080014608bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
14609 double desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014610bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
14611 double desired, memory_order success, memory_order failure, memory_scope scope);
14612#endif //cl_khr_fp64
Logan Chien2833ffb2018-10-09 10:03:24 +080014613bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
14614 long desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014615bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
14616 long desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014617bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
14618 ulong desired, memory_order success, memory_order failure, memory_scope scope);
Logan Chien2833ffb2018-10-09 10:03:24 +080014619bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
14620 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14621#endif
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014622#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014623#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014624bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __global int *expected,
14625 int desired, memory_order success, memory_order failure, memory_scope scope);
14626bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __local int *expected,
14627 int desired, memory_order success, memory_order failure, memory_scope scope);
14628bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *object, __private int *expected,
14629 int desired, memory_order success, memory_order failure, memory_scope scope);
14630bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __global int *expected,
14631 int desired, memory_order success, memory_order failure, memory_scope scope);
14632bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __local int *expected,
14633 int desired, memory_order success, memory_order failure, memory_scope scope);
14634bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *object, __private int *expected,
14635 int desired, memory_order success, memory_order failure, memory_scope scope);
14636bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __global uint *expected,
14637 uint desired, memory_order success, memory_order failure, memory_scope scope);
14638bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __local uint *expected,
14639 uint desired, memory_order success, memory_order failure, memory_scope scope);
14640bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *object, __private uint *expected,
14641 uint desired, memory_order success, memory_order failure, memory_scope scope);
14642bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __global uint *expected,
14643 uint desired, memory_order success, memory_order failure, memory_scope scope);
14644bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __local uint *expected,
14645 uint desired, memory_order success, memory_order failure, memory_scope scope);
14646bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *object, __private uint *expected,
14647 uint desired, memory_order success, memory_order failure, memory_scope scope);
14648bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __global float *expected,
14649 float desired, memory_order success, memory_order failure, memory_scope scope);
14650bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __local float *expected,
14651 float desired, memory_order success, memory_order failure, memory_scope scope);
14652bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *object, __private float *expected,
14653 float desired, memory_order success, memory_order failure, memory_scope scope);
14654bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __global float *expected,
14655 float desired, memory_order success, memory_order failure, memory_scope scope);
14656bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __local float *expected,
14657 float desired, memory_order success, memory_order failure, memory_scope scope);
14658bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *object, __private float *expected,
14659 float desired, memory_order success, memory_order failure, memory_scope scope);
14660bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __global int *expected,
14661 int desired, memory_order success, memory_order failure, memory_scope scope);
14662bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __local int *expected,
14663 int desired, memory_order success, memory_order failure, memory_scope scope);
14664bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *object, __private int *expected,
14665 int desired, memory_order success, memory_order failure, memory_scope scope);
14666bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __global int *expected,
14667 int desired, memory_order success, memory_order failure, memory_scope scope);
14668bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __local int *expected,
14669 int desired, memory_order success, memory_order failure, memory_scope scope);
14670bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *object, __private int *expected,
14671 int desired, memory_order success, memory_order failure, memory_scope scope);
14672bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __global uint *expected,
14673 uint desired, memory_order success, memory_order failure, memory_scope scope);
14674bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __local uint *expected,
14675 uint desired, memory_order success, memory_order failure, memory_scope scope);
14676bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *object, __private uint *expected,
14677 uint desired, memory_order success, memory_order failure, memory_scope scope);
14678bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __global uint *expected,
14679 uint desired, memory_order success, memory_order failure, memory_scope scope);
14680bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __local uint *expected,
14681 uint desired, memory_order success, memory_order failure, memory_scope scope);
14682bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *object, __private uint *expected,
14683 uint desired, memory_order success, memory_order failure, memory_scope scope);
14684bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __global float *expected,
14685 float desired, memory_order success, memory_order failure, memory_scope scope);
14686bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __local float *expected,
14687 float desired, memory_order success, memory_order failure, memory_scope scope);
14688bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *object, __private float *expected,
14689 float desired, memory_order success, memory_order failure, memory_scope scope);
14690bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __global float *expected,
14691 float desired, memory_order success, memory_order failure, memory_scope scope);
14692bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __local float *expected,
14693 float desired, memory_order success, memory_order failure, memory_scope scope);
14694bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *object, __private float *expected,
14695 float desired, memory_order success, memory_order failure, memory_scope scope);
14696#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
14697#ifdef cl_khr_fp64
14698bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __global double *expected,
14699 double desired, memory_order success, memory_order failure, memory_scope scope);
14700bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __local double *expected,
14701 double desired, memory_order success, memory_order failure, memory_scope scope);
14702bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *object, __private double *expected,
14703 double desired, memory_order success, memory_order failure, memory_scope scope);
14704bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __global double *expected,
14705 double desired, memory_order success, memory_order failure, memory_scope scope);
14706bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __local double *expected,
14707 double desired, memory_order success, memory_order failure, memory_scope scope);
14708bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *object, __private double *expected,
14709 double desired, memory_order success, memory_order failure, memory_scope scope);
14710bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __global double *expected,
14711 double desired, memory_order success, memory_order failure, memory_scope scope);
14712bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __local double *expected,
14713 double desired, memory_order success, memory_order failure, memory_scope scope);
14714bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *object, __private double *expected,
14715 double desired, memory_order success, memory_order failure, memory_scope scope);
14716bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __global double *expected,
14717 double desired, memory_order success, memory_order failure, memory_scope scope);
14718bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __local double *expected,
14719 double desired, memory_order success, memory_order failure, memory_scope scope);
14720bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *object, __private double *expected,
14721 double desired, memory_order success, memory_order failure, memory_scope scope);
14722#endif //cl_khr_fp64
14723bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __global long *expected,
14724 long desired, memory_order success, memory_order failure, memory_scope scope);
14725bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __local long *expected,
14726 long desired, memory_order success, memory_order failure, memory_scope scope);
14727bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *object, __private long *expected,
14728 long desired, memory_order success, memory_order failure, memory_scope scope);
14729bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __global long *expected,
14730 long desired, memory_order success, memory_order failure, memory_scope scope);
14731bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __local long *expected,
14732 long desired, memory_order success, memory_order failure, memory_scope scope);
14733bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *object, __private long *expected,
14734 long desired, memory_order success, memory_order failure, memory_scope scope);
14735bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14736 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14737bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14738 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14739bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14740 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14741bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14742 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14743bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14744 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14745bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14746 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14747bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __global long *expected,
14748 long desired, memory_order success, memory_order failure, memory_scope scope);
14749bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __local long *expected,
14750 long desired, memory_order success, memory_order failure, memory_scope scope);
14751bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *object, __private long *expected,
14752 long desired, memory_order success, memory_order failure, memory_scope scope);
14753bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __global long *expected,
14754 long desired, memory_order success, memory_order failure, memory_scope scope);
14755bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __local long *expected,
14756 long desired, memory_order success, memory_order failure, memory_scope scope);
14757bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *object, __private long *expected,
14758 long desired, memory_order success, memory_order failure, memory_scope scope);
14759bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __global ulong *expected,
14760 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14761bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __local ulong *expected,
14762 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14763bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *object, __private ulong *expected,
14764 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14765bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __global ulong *expected,
14766 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14767bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __local ulong *expected,
14768 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14769bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *object, __private ulong *expected,
14770 ulong desired, memory_order success, memory_order failure, memory_scope scope);
14771#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014772#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Logan Chien2833ffb2018-10-09 10:03:24 +080014773
14774// atomic_flag_test_and_set() and atomic_flag_clear()
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014775#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device)
14776#if defined(__opencl_c_generic_address_space)
Logan Chien2833ffb2018-10-09 10:03:24 +080014777bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object);
Logan Chien2833ffb2018-10-09 10:03:24 +080014778void __ovld atomic_flag_clear(volatile atomic_flag *object);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014779#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014780#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014781bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *object);
14782bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *object);
14783void __ovld atomic_flag_clear(volatile __global atomic_flag *object);
14784void __ovld atomic_flag_clear(volatile __local atomic_flag *object);
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014785#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014786#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080014787
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014788#if defined(__opencl_c_atomic_scope_device)
14789#if defined(__opencl_c_generic_address_space)
14790bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order);
14791void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order);
14792#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014793#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014794bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order);
14795bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order);
14796void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order);
14797void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order);
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014798#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014799#endif
14800
14801#if defined(__opencl_c_generic_address_space)
14802bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14803void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope);
14804#endif //defined(__opencl_c_generic_address_space)
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014805#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080014806bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
14807bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
14808void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *object, memory_order order, memory_scope scope);
14809void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *object, memory_order order, memory_scope scope);
Pirama Arumuga Nainarec8c89d2022-02-23 09:26:16 -080014810#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100)
Logan Chienbedbf4f2020-01-06 19:35:19 -080014811#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080014812
14813// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
14814
14815/**
14816 * The shuffle and shuffle2 built-in functions construct
14817 * a permutation of elements from one or two input
14818 * vectors respectively that are of the same type,
14819 * returning a vector with the same element type as the
14820 * input and length that is the same as the shuffle mask.
14821 * The size of each element in the mask must match the
14822 * size of each element in the result. For shuffle, only
14823 * the ilogb(2m-1) least significant bits of each mask
14824 * element are considered. For shuffle2, only the
14825 * ilogb(2m-1)+1 least significant bits of each mask
14826 * element are considered. Other bits in the mask shall
14827 * be ignored.
14828 * The elements of the input vectors are numbered from
14829 * left to right across one or both of the vectors. For this
14830 * purpose, the number of elements in a vector is given
14831 * by vec_step(gentypem). The shuffle mask operand
14832 * specifies, for each element of the result vector, which
14833 * element of the one or two input vectors the result
14834 * element gets.
14835 * Examples:
14836 * uint4 mask = (uint4)(3, 2,
14837 * 1, 0);
14838 * float4 a;
14839 * float4 r = shuffle(a, mask);
14840 * // r.s0123 = a.wzyx
14841 * uint8 mask = (uint8)(0, 1, 2, 3,
14842 * 4, 5, 6, 7);
14843 * float4 a, b;
14844 * float8 r = shuffle2(a, b, mask);
14845 * // r.s0123 = a.xyzw
14846 * // r.s4567 = b.xyzw
14847 * uint4 mask;
14848 * float8 a;
14849 * float4 b;
14850 * b = shuffle(a, mask);
14851 * Examples that are not valid are:
14852 * uint8 mask;
14853 * short16 a;
14854 * short8 b;
14855 * b = shuffle(a, mask); <- not valid
14856 */
14857char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
14858char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
14859char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
14860char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
14861
14862uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
14863uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
14864uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
14865uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
14866
14867short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
14868short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
14869short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
14870short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
14871
14872ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
14873ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
14874ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
14875ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
14876
14877int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
14878int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
14879int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
14880int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
14881
14882uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
14883uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
14884uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
14885uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
14886
14887long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
14888long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
14889long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
14890long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
14891
14892ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
14893ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
14894ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
14895ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
14896
14897float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
14898float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
14899float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
14900float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
14901
14902char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
14903char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
14904char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
14905char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
14906
14907uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
14908uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
14909uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
14910uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
14911
14912short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
14913short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
14914short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
14915short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
14916
14917ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
14918ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
14919ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
14920ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
14921
14922int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
14923int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
14924int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
14925int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
14926
14927uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
14928uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
14929uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
14930uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
14931
14932long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
14933long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
14934long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
14935long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
14936
14937ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
14938ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
14939ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
14940ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
14941
14942float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
14943float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
14944float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
14945float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
14946
14947char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
14948char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
14949char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
14950char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
14951
14952uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
14953uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
14954uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
14955uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
14956
14957short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
14958short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
14959short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
14960short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
14961
14962ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
14963ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
14964ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
14965ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
14966
14967int8 __ovld __cnfn shuffle(int2 x, uint8 mask);
14968int8 __ovld __cnfn shuffle(int4 x, uint8 mask);
14969int8 __ovld __cnfn shuffle(int8 x, uint8 mask);
14970int8 __ovld __cnfn shuffle(int16 x, uint8 mask);
14971
14972uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask);
14973uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask);
14974uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask);
14975uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask);
14976
14977long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
14978long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
14979long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
14980long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
14981
14982ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
14983ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
14984ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
14985ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
14986
14987float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
14988float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
14989float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
14990float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
14991
14992char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
14993char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
14994char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
14995char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
14996
14997uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
14998uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
14999uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
15000uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
15001
15002short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
15003short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
15004short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
15005short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
15006
15007ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
15008ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
15009ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
15010ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
15011
15012int16 __ovld __cnfn shuffle(int2 x, uint16 mask);
15013int16 __ovld __cnfn shuffle(int4 x, uint16 mask);
15014int16 __ovld __cnfn shuffle(int8 x, uint16 mask);
15015int16 __ovld __cnfn shuffle(int16 x, uint16 mask);
15016
15017uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask);
15018uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask);
15019uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask);
15020uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask);
15021
15022long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
15023long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
15024long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
15025long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
15026
15027ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
15028ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
15029ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
15030ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
15031
15032float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
15033float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
15034float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
15035float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
15036
15037#ifdef cl_khr_fp64
15038double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
15039double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
15040double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
15041double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
15042
15043double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
15044double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
15045double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
15046double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
15047
15048double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
15049double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
15050double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
15051double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
15052
15053double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
15054double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
15055double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
15056double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
15057#endif //cl_khr_fp64
15058
15059#ifdef cl_khr_fp16
15060half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
15061half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
15062half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
15063half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
15064
15065half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
15066half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
15067half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
15068half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
15069
15070half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
15071half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
15072half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
15073half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
15074
15075half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
15076half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
15077half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
15078half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
15079#endif //cl_khr_fp16
15080
15081char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
15082char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
15083char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
15084char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
15085
15086uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
15087uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
15088uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
15089uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
15090
15091short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
15092short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
15093short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
15094short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
15095
15096ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
15097ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
15098ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
15099ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
15100
15101int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
15102int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
15103int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
15104int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
15105
15106uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
15107uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
15108uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
15109uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
15110
15111long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
15112long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
15113long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
15114long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
15115
15116ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
15117ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
15118ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
15119ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
15120
15121float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
15122float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
15123float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
15124float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
15125
15126char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
15127char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
15128char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
15129char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
15130
15131uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
15132uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
15133uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
15134uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
15135
15136short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
15137short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
15138short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
15139short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
15140
15141ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
15142ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
15143ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
15144ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
15145
15146int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
15147int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
15148int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
15149int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
15150
15151uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
15152uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
15153uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
15154uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
15155
15156long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
15157long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
15158long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
15159long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
15160
15161ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
15162ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
15163ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
15164ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
15165
15166float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
15167float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
15168float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
15169float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
15170
15171char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
15172char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
15173char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
15174char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
15175
15176uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
15177uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
15178uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
15179uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
15180
15181short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
15182short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
15183short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
15184short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
15185
15186ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
15187ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
15188ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
15189ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
15190
15191int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
15192int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
15193int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask);
15194int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask);
15195
15196uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
15197uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
15198uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask);
15199uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask);
15200
15201long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
15202long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
15203long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
15204long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
15205
15206ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
15207ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
15208ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
15209ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
15210
15211float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
15212float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
15213float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
15214float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
15215
15216char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
15217char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
15218char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
15219char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
15220
15221uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
15222uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
15223uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
15224uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
15225
15226short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
15227short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
15228short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
15229short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
15230
15231ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
15232ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
15233ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
15234ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
15235
15236int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
15237int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
15238int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask);
15239int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask);
15240
15241uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
15242uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
15243uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask);
15244uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask);
15245
15246long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
15247long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
15248long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
15249long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
15250
15251ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
15252ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
15253ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
15254ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
15255
15256float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
15257float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
15258float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
15259float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
15260
15261#ifdef cl_khr_fp64
15262double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
15263double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
15264double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
15265double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
15266
15267double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
15268double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
15269double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
15270double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
15271
15272double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
15273double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
15274double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
15275double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
15276
15277double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
15278double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
15279double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
15280double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
15281#endif //cl_khr_fp64
15282
15283#ifdef cl_khr_fp16
15284half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
15285half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
15286half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
15287half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
15288
15289half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
15290half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
15291half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
15292half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
15293
15294half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
15295half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
15296half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
15297half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
15298
15299half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
15300half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
15301half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
15302half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
15303#endif //cl_khr_fp16
15304
Logan Chien2833ffb2018-10-09 10:03:24 +080015305// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
15306
Logan Chien55afb0a2018-10-15 10:42:14 +080015307#ifdef cl_khr_gl_msaa_sharing
15308#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
15309#endif //cl_khr_gl_msaa_sharing
15310
Logan Chien2833ffb2018-10-09 10:03:24 +080015311/**
15312 * Use the coordinate (coord.xy) to do an element lookup in
15313 * the 2D image object specified by image.
15314 *
15315 * Use the coordinate (coord.x, coord.y, coord.z) to do
15316 * an element lookup in the 3D image object specified
15317 * by image. coord.w is ignored.
15318 *
15319 * Use the coordinate (coord.z) to index into the
15320 * 2D image array object specified by image_array
15321 * and (coord.x, coord.y) to do an element lookup in
15322 * the 2D image object specified by image.
15323 *
15324 * Use the coordinate (x) to do an element lookup in
15325 * the 1D image object specified by image.
15326 *
15327 * Use the coordinate (coord.y) to index into the
15328 * 1D image array object specified by image_array
15329 * and (coord.x) to do an element lookup in
15330 * the 1D image object specified by image.
15331 *
15332 * Use the coordinate (cood.xy) and sample to do an
15333 * element lookup in the 2D multi-sample image specified
15334 * by image.
15335 *
15336 * Use coord.xy and sample to do an element
15337 * lookup in the 2D multi-sample image layer
15338 * identified by index coord.z in the 2D multi-sample
15339 * image array specified by image.
15340 *
15341 * For mipmap images, use the mip-level specified by
15342 * the Level-of-Detail (lod) or use gradients for LOD
15343 * computation.
15344 *
15345 * read_imagef returns floating-point values in the
15346 * range [0.0 ... 1.0] for image objects created with
15347 * image_channel_data_type set to one of the predefined
15348 * packed formats or CL_UNORM_INT8, or
15349 * CL_UNORM_INT16.
15350 *
15351 * read_imagef returns floating-point values in the
15352 * range [-1.0 ... 1.0] for image objects created with
15353 * image_channel_data_type set to CL_SNORM_INT8,
15354 * or CL_SNORM_INT16.
15355 *
15356 * read_imagef returns floating-point values for image
15357 * objects created with image_channel_data_type set to
15358 * CL_HALF_FLOAT or CL_FLOAT.
15359 *
15360 * read_imagei and read_imageui return
15361 * unnormalized signed integer and unsigned integer
15362 * values respectively. Each channel will be stored in a
15363 * 32-bit integer.
15364 *
15365 * read_imagei can only be used with image objects
15366 * created with image_channel_data_type set to one of
15367 * the following values:
15368 * CL_SIGNED_INT8,
15369 * CL_SIGNED_INT16 and
15370 * CL_SIGNED_INT32.
15371 * If the image_channel_data_type is not one of the
15372 * above values, the values returned by read_imagei
15373 * are undefined.
15374 *
15375 * read_imageui can only be used with image objects
15376 * created with image_channel_data_type set to one of
15377 * the following values:
15378 * CL_UNSIGNED_INT8,
15379 * CL_UNSIGNED_INT16 and
15380 * CL_UNSIGNED_INT32.
15381 * If the image_channel_data_type is not one of the
15382 * above values, the values returned by read_imageui
15383 * are undefined.
15384 *
15385 * The read_image{i|ui} calls support a nearest filter
15386 * only. The filter_mode specified in sampler
15387 * must be set to CLK_FILTER_NEAREST; otherwise
15388 * the values returned are undefined.
Logan Chien55afb0a2018-10-15 10:42:14 +080015389
Logan Chien2833ffb2018-10-09 10:03:24 +080015390 * The read_image{f|i|ui} calls that take
15391 * integer coordinates must use a sampler with
15392 * normalized coordinates set to
15393 * CLK_NORMALIZED_COORDS_FALSE and
15394 * addressing mode set to
15395 * CLK_ADDRESS_CLAMP_TO_EDGE,
15396 * CLK_ADDRESS_CLAMP or CLK_ADDRESS_NONE;
15397 * otherwise the values returned are undefined.
15398 *
15399 * Values returned by read_imagef for image objects
15400 * with image_channel_data_type values not specified
15401 * in the description above are undefined.
15402 */
15403
15404float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
15405float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
15406
15407int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
15408int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
15409uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
15410uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
15411
15412float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
15413float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
15414
15415int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
15416int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
15417uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
15418uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
15419
Logan Chienbedbf4f2020-01-06 19:35:19 -080015420#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015421float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15422float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15423
15424int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15425int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
15426uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
15427uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015428#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015429
15430float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
15431float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
15432
15433int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
15434int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
15435uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
15436uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
15437
Logan Chienbedbf4f2020-01-06 19:35:19 -080015438#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015439float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15440float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15441
15442int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15443int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
15444uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
15445uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015446#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015447
15448#ifdef cl_khr_depth_images
15449float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
15450float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
15451
15452float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
15453float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
15454#endif //cl_khr_depth_images
15455
15456#if defined(cl_khr_gl_msaa_sharing)
15457float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
15458int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
15459uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
15460
15461float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
15462
15463float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
15464int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
15465uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
15466
15467float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
15468#endif //cl_khr_gl_msaa_sharing
15469
15470// OpenCL Extension v2.0 s9.18 - Mipmaps
Logan Chienbedbf4f2020-01-06 19:35:19 -080015471#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015472#ifdef cl_khr_mipmap_image
15473
15474float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15475int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15476uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
15477
15478float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15479int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15480uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15481
15482float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15483int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15484uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
15485
15486float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15487
15488float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15489int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15490uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15491
15492float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15493
15494float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15495int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15496uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
15497
15498float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15499int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15500uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15501
15502float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15503int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15504uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15505
15506float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15507int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15508uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15509
15510float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15511
15512float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15513int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15514uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15515
15516float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15517
15518float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15519int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15520uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15521
Logan Chien2833ffb2018-10-09 10:03:24 +080015522#endif //cl_khr_mipmap_image
Logan Chienbedbf4f2020-01-06 19:35:19 -080015523#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015524
Logan Chienbedbf4f2020-01-06 19:35:19 -080015525#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chiendbcf4122019-03-21 10:50:25 +080015526
Logan Chien2833ffb2018-10-09 10:03:24 +080015527/**
15528* Sampler-less Image Access
15529*/
15530
15531float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
15532int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
15533uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
15534
15535float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
15536int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
15537uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
15538
15539float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
15540int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
15541uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
15542
15543float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
15544int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
15545uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
15546
15547float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
15548int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
15549uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
15550
15551#ifdef cl_khr_depth_images
15552float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
15553float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
15554#endif //cl_khr_depth_images
15555
15556float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
15557int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
15558uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
15559
Logan Chienbedbf4f2020-01-06 19:35:19 -080015560#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chiendbcf4122019-03-21 10:50:25 +080015561
Logan Chien2833ffb2018-10-09 10:03:24 +080015562// Image read functions returning half4 type
15563#ifdef cl_khr_fp16
15564half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
15565half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
Logan Chien2833ffb2018-10-09 10:03:24 +080015566half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
15567half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
15568half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
15569half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015570#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chiendbcf4122019-03-21 10:50:25 +080015571half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
15572half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
Logan Chien2833ffb2018-10-09 10:03:24 +080015573half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
15574half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
Logan Chiendbcf4122019-03-21 10:50:25 +080015575/**
15576 * Sampler-less Image Access
15577 */
Logan Chien2833ffb2018-10-09 10:03:24 +080015578half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
15579half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
15580half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
15581half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
15582half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
15583half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080015584#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
Logan Chien2833ffb2018-10-09 10:03:24 +080015585#endif //cl_khr_fp16
15586
15587// Image read functions for read_write images
Logan Chienbedbf4f2020-01-06 19:35:19 -080015588#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015589float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
15590int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
15591uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
15592
15593float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
15594int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
15595uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
15596
15597float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
15598int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
15599uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
15600
15601float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
15602int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
15603uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
15604
15605float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
15606int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
15607uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
15608
15609float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
15610int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
15611uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
15612
15613#ifdef cl_khr_depth_images
15614float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
15615float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
15616#endif //cl_khr_depth_images
15617
15618#if cl_khr_gl_msaa_sharing
15619float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
15620int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
15621uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
15622
15623float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
15624int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
15625uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
15626
15627float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
15628float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
15629#endif //cl_khr_gl_msaa_sharing
15630
Logan Chienbedbf4f2020-01-06 19:35:19 -080015631#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015632#ifdef cl_khr_mipmap_image
15633float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15634int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15635uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
15636
15637float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15638int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15639uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
15640
15641float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15642int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15643uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
15644
15645float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
15646
15647float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15648int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15649uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
15650
15651float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
15652
15653float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15654int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15655uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
15656
15657float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15658int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15659uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
15660
15661float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15662int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15663uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
15664
15665float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15666int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15667uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15668
15669float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
15670
15671float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15672int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15673uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15674
15675float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
15676
15677float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15678int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15679uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
15680
Logan Chien2833ffb2018-10-09 10:03:24 +080015681#endif //cl_khr_mipmap_image
Logan Chienbedbf4f2020-01-06 19:35:19 -080015682#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015683
15684// Image read functions returning half4 type
15685#ifdef cl_khr_fp16
15686half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
15687half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
15688half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
15689half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
15690half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
15691half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
15692#endif //cl_khr_fp16
Logan Chienbedbf4f2020-01-06 19:35:19 -080015693#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015694
15695/**
15696 * Write color value to location specified by coordinate
15697 * (coord.x, coord.y) in the 2D image object specified by image.
15698 * (coord.x, coord.y) are considered to be unnormalized coordinates
15699 * and must be in the range 0 ... image width - 1, and 0
15700 * ... image height - 1.
15701
15702 * Write color value to location specified by coordinate
15703 * (coord.x, coord.y) in the 2D image object specified by index
15704 * (coord.z) of the 2D image array object image_array.
15705 * (coord.x, coord.y) are considered to be unnormalized
15706 * coordinates and must be in the range 0 ... image width
15707 * - 1.
15708 *
15709 * Write color value to location specified by coordinate
15710 * (coord) in the 1D image (buffer) object specified by image.
15711 * coord is considered to be unnormalized coordinates
15712 * and must be in the range 0 ... image width - 1.
15713 *
15714 * Write color value to location specified by coordinate
15715 * (coord.x) in the 1D image object specified by index
15716 * (coord.y) of the 1D image array object image_array.
15717 * x is considered to be unnormalized coordinates
15718 * and must be in the range 0 ... image width - 1.
15719 *
15720 * Write color value to location specified by coordinate
15721 * (coord.x, coord.y, coord.z) in the 3D image object specified by image.
15722 * coord.x & coord.y are considered to be unnormalized coordinates
15723 * and must be in the range 0 ... image width - 1, and 0
15724 * ... image height - 1.
15725 *
15726 * For mipmap images, use mip-level specified by lod.
15727 *
15728 * Appropriate data format conversion to the specified
15729 * image format is done before writing the color value.
15730 *
15731 * write_imagef can only be used with image objects
15732 * created with image_channel_data_type set to one of
15733 * the pre-defined packed formats or set to
15734 * CL_SNORM_INT8, CL_UNORM_INT8,
15735 * CL_SNORM_INT16, CL_UNORM_INT16,
15736 * CL_HALF_FLOAT or CL_FLOAT. Appropriate data
15737 * format conversion will be done to convert channel
15738 * data from a floating-point value to actual data format
15739 * in which the channels are stored.
15740 *
15741 * write_imagei can only be used with image objects
15742 * created with image_channel_data_type set to one of
15743 * the following values:
15744 * CL_SIGNED_INT8,
15745 * CL_SIGNED_INT16 and
15746 * CL_SIGNED_INT32.
15747 *
15748 * write_imageui can only be used with image objects
15749 * created with image_channel_data_type set to one of
15750 * the following values:
15751 * CL_UNSIGNED_INT8,
15752 * CL_UNSIGNED_INT16 and
15753 * CL_UNSIGNED_INT32.
15754 *
15755 * The behavior of write_imagef, write_imagei and
15756 * write_imageui for image objects created with
15757 * image_channel_data_type values not specified in
15758 * the description above or with (x, y) coordinate
15759 * values that are not in the range (0 ... image width -1,
15760 * 0 ... image height - 1), respectively, is undefined.
15761 */
15762void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
15763void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
15764void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
15765
15766void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
15767void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
15768void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
15769
15770void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
15771void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
15772void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
15773
15774void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
15775void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
15776void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
15777
15778void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
15779void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
15780void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
15781
Logan Chien55afb0a2018-10-15 10:42:14 +080015782#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015783void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
15784void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
15785void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015786#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015787
15788#ifdef cl_khr_depth_images
15789void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
15790void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
15791#endif //cl_khr_depth_images
15792
15793// OpenCL Extension v2.0 s9.18 - Mipmaps
Logan Chienbedbf4f2020-01-06 19:35:19 -080015794#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015795#if defined(cl_khr_mipmap_image_writes)
Logan Chien2833ffb2018-10-09 10:03:24 +080015796void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
15797void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
15798void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
15799
15800void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
15801void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
15802void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
15803
15804void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
15805void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
15806void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
15807
15808void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
15809void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
15810void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
15811
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015812void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float depth);
15813void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float depth);
Logan Chien2833ffb2018-10-09 10:03:24 +080015814
Logan Chien55afb0a2018-10-15 10:42:14 +080015815#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015816void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
15817void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
15818void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015819#endif //cl_khr_3d_image_writes
15820
15821#endif //defined(cl_khr_mipmap_image_writes)
Logan Chienbedbf4f2020-01-06 19:35:19 -080015822#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015823
15824// Image write functions for half4 type
15825#ifdef cl_khr_fp16
15826void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
15827void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015828#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015829void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015830#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015831void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
15832void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
15833void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
15834#endif //cl_khr_fp16
15835
15836// Image write functions for read_write images
Logan Chienbedbf4f2020-01-06 19:35:19 -080015837#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015838void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
15839void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
15840void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
15841
15842void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
15843void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
15844void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
15845
15846void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
15847void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
15848void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
15849
15850void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
15851void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
15852void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
15853
15854void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
15855void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
15856void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
15857
Logan Chien55afb0a2018-10-15 10:42:14 +080015858#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015859void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
15860void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
15861void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015862#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015863
15864#ifdef cl_khr_depth_images
15865void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
15866void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
15867#endif //cl_khr_depth_images
15868
Logan Chienbedbf4f2020-01-06 19:35:19 -080015869#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015870#if defined(cl_khr_mipmap_image_writes)
Logan Chien2833ffb2018-10-09 10:03:24 +080015871void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
15872void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
15873void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
15874
15875void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
15876void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
15877void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
15878
15879void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
15880void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
15881void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
15882
15883void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
15884void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
15885void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
15886
15887void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
15888void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
15889
Logan Chien55afb0a2018-10-15 10:42:14 +080015890#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015891void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
15892void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
15893void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
Sasha Smundak33d5ddd2020-05-04 13:37:26 -070015894#endif //cl_khr_3d_image_writes
15895
15896#endif //cl_khr_mipmap_image_writes
Logan Chienbedbf4f2020-01-06 19:35:19 -080015897#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015898
15899// Image write functions for half4 type
15900#ifdef cl_khr_fp16
15901void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
15902void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015903#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015904void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
Logan Chien55afb0a2018-10-15 10:42:14 +080015905#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015906void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
15907void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
15908void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
15909#endif //cl_khr_fp16
Logan Chienbedbf4f2020-01-06 19:35:19 -080015910#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015911
15912// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
15913// access qualifier, which by default assume read_only access qualifier. Image query builtin
15914// functions with write_only image argument should also be declared.
15915
15916/**
15917 * Return the image width in pixels.
15918 *
15919 */
15920int __ovld __cnfn get_image_width(read_only image1d_t image);
15921int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
15922int __ovld __cnfn get_image_width(read_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015923#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015924int __ovld __cnfn get_image_width(read_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015925#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015926int __ovld __cnfn get_image_width(read_only image1d_array_t image);
15927int __ovld __cnfn get_image_width(read_only image2d_array_t image);
15928#ifdef cl_khr_depth_images
15929int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
15930int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
15931#endif //cl_khr_depth_images
15932#if defined(cl_khr_gl_msaa_sharing)
15933int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
15934int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
15935int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
15936int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
15937#endif //cl_khr_gl_msaa_sharing
15938
15939int __ovld __cnfn get_image_width(write_only image1d_t image);
15940int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
15941int __ovld __cnfn get_image_width(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015942#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015943int __ovld __cnfn get_image_width(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015944#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015945int __ovld __cnfn get_image_width(write_only image1d_array_t image);
15946int __ovld __cnfn get_image_width(write_only image2d_array_t image);
15947#ifdef cl_khr_depth_images
15948int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
15949int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
15950#endif //cl_khr_depth_images
15951#if defined(cl_khr_gl_msaa_sharing)
15952int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
15953int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
15954int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
15955int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
15956#endif //cl_khr_gl_msaa_sharing
15957
Logan Chienbedbf4f2020-01-06 19:35:19 -080015958#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015959int __ovld __cnfn get_image_width(read_write image1d_t image);
15960int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
15961int __ovld __cnfn get_image_width(read_write image2d_t image);
15962int __ovld __cnfn get_image_width(read_write image3d_t image);
15963int __ovld __cnfn get_image_width(read_write image1d_array_t image);
15964int __ovld __cnfn get_image_width(read_write image2d_array_t image);
15965#ifdef cl_khr_depth_images
15966int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
15967int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
15968#endif //cl_khr_depth_images
15969#if defined(cl_khr_gl_msaa_sharing)
15970int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
15971int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
15972int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
15973int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
15974#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080015975#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080015976
15977/**
15978 * Return the image height in pixels.
15979 */
15980int __ovld __cnfn get_image_height(read_only image2d_t image);
15981int __ovld __cnfn get_image_height(read_only image3d_t image);
15982int __ovld __cnfn get_image_height(read_only image2d_array_t image);
15983#ifdef cl_khr_depth_images
15984int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
15985int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
15986#endif //cl_khr_depth_images
15987#if defined(cl_khr_gl_msaa_sharing)
15988int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
15989int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
15990int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
15991int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
15992#endif //cl_khr_gl_msaa_sharing
15993
15994int __ovld __cnfn get_image_height(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015995#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080015996int __ovld __cnfn get_image_height(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080015997#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080015998int __ovld __cnfn get_image_height(write_only image2d_array_t image);
15999#ifdef cl_khr_depth_images
16000int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
16001int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
16002#endif //cl_khr_depth_images
16003#if defined(cl_khr_gl_msaa_sharing)
16004int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
16005int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
16006int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
16007int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
16008#endif //cl_khr_gl_msaa_sharing
16009
Logan Chienbedbf4f2020-01-06 19:35:19 -080016010#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016011int __ovld __cnfn get_image_height(read_write image2d_t image);
16012int __ovld __cnfn get_image_height(read_write image3d_t image);
16013int __ovld __cnfn get_image_height(read_write image2d_array_t image);
16014#ifdef cl_khr_depth_images
16015int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
16016int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
16017#endif //cl_khr_depth_images
16018#if defined(cl_khr_gl_msaa_sharing)
16019int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
16020int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
16021int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
16022int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
16023#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080016024#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016025
16026/**
16027 * Return the image depth in pixels.
16028 */
16029int __ovld __cnfn get_image_depth(read_only image3d_t image);
16030
Logan Chien55afb0a2018-10-15 10:42:14 +080016031#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080016032int __ovld __cnfn get_image_depth(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016033#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080016034
Logan Chienbedbf4f2020-01-06 19:35:19 -080016035#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016036int __ovld __cnfn get_image_depth(read_write image3d_t image);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016037#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016038
16039// OpenCL Extension v2.0 s9.18 - Mipmaps
Logan Chienbedbf4f2020-01-06 19:35:19 -080016040#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016041#ifdef cl_khr_mipmap_image
16042/**
16043 * Return the image miplevels.
16044 */
16045
16046int __ovld get_image_num_mip_levels(read_only image1d_t image);
16047int __ovld get_image_num_mip_levels(read_only image2d_t image);
16048int __ovld get_image_num_mip_levels(read_only image3d_t image);
16049
16050int __ovld get_image_num_mip_levels(write_only image1d_t image);
16051int __ovld get_image_num_mip_levels(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016052#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080016053int __ovld get_image_num_mip_levels(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016054#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080016055
Logan Chien2833ffb2018-10-09 10:03:24 +080016056int __ovld get_image_num_mip_levels(read_write image1d_t image);
16057int __ovld get_image_num_mip_levels(read_write image2d_t image);
16058int __ovld get_image_num_mip_levels(read_write image3d_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080016059
16060int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
16061int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
16062int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
16063int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
16064
16065int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
16066int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
16067int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
16068int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
16069
Logan Chien2833ffb2018-10-09 10:03:24 +080016070int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
16071int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
16072int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
16073int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080016074
16075#endif //cl_khr_mipmap_image
Logan Chienbedbf4f2020-01-06 19:35:19 -080016076#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016077
16078/**
16079 * Return the channel data type. Valid values are:
16080 * CLK_SNORM_INT8
16081 * CLK_SNORM_INT16
16082 * CLK_UNORM_INT8
16083 * CLK_UNORM_INT16
16084 * CLK_UNORM_SHORT_565
16085 * CLK_UNORM_SHORT_555
16086 * CLK_UNORM_SHORT_101010
16087 * CLK_SIGNED_INT8
16088 * CLK_SIGNED_INT16
16089 * CLK_SIGNED_INT32
16090 * CLK_UNSIGNED_INT8
16091 * CLK_UNSIGNED_INT16
16092 * CLK_UNSIGNED_INT32
16093 * CLK_HALF_FLOAT
16094 * CLK_FLOAT
16095 */
16096
Logan Chien2833ffb2018-10-09 10:03:24 +080016097int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
16098int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
16099int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
16100int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
16101int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
16102int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
16103#ifdef cl_khr_depth_images
16104int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
16105int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
16106#endif //cl_khr_depth_images
16107#if defined(cl_khr_gl_msaa_sharing)
16108int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
16109int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
16110int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
16111int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
16112#endif //cl_khr_gl_msaa_sharing
16113
16114int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
16115int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
16116int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016117#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080016118int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016119#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080016120int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
16121int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
16122#ifdef cl_khr_depth_images
16123int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
16124int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
16125#endif //cl_khr_depth_images
16126#if defined(cl_khr_gl_msaa_sharing)
16127int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
16128int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
16129int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
16130int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
16131#endif //cl_khr_gl_msaa_sharing
16132
Logan Chienbedbf4f2020-01-06 19:35:19 -080016133#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016134int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
16135int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
16136int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
16137int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
16138int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
16139int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
16140#ifdef cl_khr_depth_images
16141int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
16142int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
16143#endif //cl_khr_depth_images
16144#if defined(cl_khr_gl_msaa_sharing)
16145int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
16146int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
16147int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
16148int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
16149#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080016150#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016151
16152/**
16153 * Return the image channel order. Valid values are:
16154 * CLK_A
16155 * CLK_R
16156 * CLK_Rx
16157 * CLK_RG
16158 * CLK_RGx
16159 * CLK_RA
16160 * CLK_RGB
16161 * CLK_RGBx
16162 * CLK_RGBA
16163 * CLK_ARGB
16164 * CLK_BGRA
16165 * CLK_INTENSITY
16166 * CLK_LUMINANCE
16167 */
Logan Chien2833ffb2018-10-09 10:03:24 +080016168
16169int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
16170int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
16171int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
16172int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
16173int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
16174int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
16175#ifdef cl_khr_depth_images
16176int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
16177int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
16178#endif //cl_khr_depth_images
16179#if defined(cl_khr_gl_msaa_sharing)
16180int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
16181int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
16182int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
16183int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
16184#endif //cl_khr_gl_msaa_sharing
16185
16186int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
16187int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
16188int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016189#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080016190int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016191#endif
Logan Chien2833ffb2018-10-09 10:03:24 +080016192int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
16193int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
16194#ifdef cl_khr_depth_images
16195int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
16196int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
16197#endif //cl_khr_depth_images
16198#if defined(cl_khr_gl_msaa_sharing)
16199int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
16200int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
16201int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
16202int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
16203#endif //cl_khr_gl_msaa_sharing
16204
Logan Chienbedbf4f2020-01-06 19:35:19 -080016205#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016206int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
16207int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
16208int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
16209int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
16210int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
16211int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
16212#ifdef cl_khr_depth_images
16213int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
16214int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
16215#endif //cl_khr_depth_images
16216#if defined(cl_khr_gl_msaa_sharing)
16217int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
16218int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
16219int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
16220int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
16221#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080016222#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016223
16224/**
16225 * Return the 2D image width and height as an int2
16226 * type. The width is returned in the x component, and
16227 * the height in the y component.
16228 */
16229int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
16230int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
16231#ifdef cl_khr_depth_images
16232int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
16233int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
16234#endif //cl_khr_depth_images
16235#if defined(cl_khr_gl_msaa_sharing)
16236int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
16237int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
16238int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
16239int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
16240#endif //cl_khr_gl_msaa_sharing
16241
16242int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
16243int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
16244#ifdef cl_khr_depth_images
16245int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
16246int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
16247#endif //cl_khr_depth_images
16248#if defined(cl_khr_gl_msaa_sharing)
16249int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
16250int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
16251int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
16252int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
16253#endif //cl_khr_gl_msaa_sharing
16254
Logan Chienbedbf4f2020-01-06 19:35:19 -080016255#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016256int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
16257int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
16258#ifdef cl_khr_depth_images
16259int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
16260int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
16261#endif //cl_khr_depth_images
16262#if defined(cl_khr_gl_msaa_sharing)
16263int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
16264int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
16265int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
16266int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
16267#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080016268#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016269
16270/**
16271 * Return the 3D image width, height, and depth as an
16272 * int4 type. The width is returned in the x
16273 * component, height in the y component, depth in the z
16274 * component and the w component is 0.
16275 */
16276int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016277#ifdef cl_khr_3d_image_writes
Logan Chien2833ffb2018-10-09 10:03:24 +080016278int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
Logan Chien55afb0a2018-10-15 10:42:14 +080016279#endif
Logan Chienbedbf4f2020-01-06 19:35:19 -080016280#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016281int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016282#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016283
16284/**
16285 * Return the image array size.
16286 */
16287
16288size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
16289size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
16290#ifdef cl_khr_depth_images
16291size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
16292#endif //cl_khr_depth_images
16293#if defined(cl_khr_gl_msaa_sharing)
16294size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
16295size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
16296#endif //cl_khr_gl_msaa_sharing
16297
16298size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
16299size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
16300#ifdef cl_khr_depth_images
16301size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
16302#endif //cl_khr_depth_images
16303#if defined(cl_khr_gl_msaa_sharing)
16304size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
16305size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
16306#endif //cl_khr_gl_msaa_sharing
16307
Logan Chienbedbf4f2020-01-06 19:35:19 -080016308#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016309size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
16310size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
16311#ifdef cl_khr_depth_images
16312size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
16313#endif //cl_khr_depth_images
16314#if defined(cl_khr_gl_msaa_sharing)
16315size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
16316size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
16317#endif //cl_khr_gl_msaa_sharing
Logan Chienbedbf4f2020-01-06 19:35:19 -080016318#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016319
16320/**
16321* Return the number of samples associated with image
16322*/
16323#if defined(cl_khr_gl_msaa_sharing)
16324int __ovld get_image_num_samples(read_only image2d_msaa_t image);
16325int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080016326int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
16327int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
16328
16329int __ovld get_image_num_samples(write_only image2d_msaa_t image);
16330int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080016331int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
16332int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
16333
Logan Chienbedbf4f2020-01-06 19:35:19 -080016334#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016335int __ovld get_image_num_samples(read_write image2d_msaa_t image);
16336int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
Logan Chien2833ffb2018-10-09 10:03:24 +080016337int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
16338int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016339#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016340#endif
16341
16342// OpenCL v2.0 s6.13.15 - Work-group Functions
16343
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016344#if defined(__opencl_c_work_group_collective_functions)
Logan Chien55afb0a2018-10-15 10:42:14 +080016345int __ovld __conv work_group_all(int predicate);
16346int __ovld __conv work_group_any(int predicate);
Logan Chien2833ffb2018-10-09 10:03:24 +080016347
16348#ifdef cl_khr_fp16
Logan Chien55afb0a2018-10-15 10:42:14 +080016349half __ovld __conv work_group_broadcast(half a, size_t local_id);
16350half __ovld __conv work_group_broadcast(half a, size_t x, size_t y);
16351half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z);
Logan Chien2833ffb2018-10-09 10:03:24 +080016352#endif
Logan Chien55afb0a2018-10-15 10:42:14 +080016353int __ovld __conv work_group_broadcast(int a, size_t local_id);
16354int __ovld __conv work_group_broadcast(int a, size_t x, size_t y);
16355int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z);
16356uint __ovld __conv work_group_broadcast(uint a, size_t local_id);
16357uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y);
16358uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z);
16359long __ovld __conv work_group_broadcast(long a, size_t local_id);
16360long __ovld __conv work_group_broadcast(long a, size_t x, size_t y);
16361long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z);
16362ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id);
16363ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y);
16364ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
16365float __ovld __conv work_group_broadcast(float a, size_t local_id);
16366float __ovld __conv work_group_broadcast(float a, size_t x, size_t y);
16367float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z);
Logan Chien2833ffb2018-10-09 10:03:24 +080016368#ifdef cl_khr_fp64
Logan Chien55afb0a2018-10-15 10:42:14 +080016369double __ovld __conv work_group_broadcast(double a, size_t local_id);
16370double __ovld __conv work_group_broadcast(double a, size_t x, size_t y);
16371double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z);
Logan Chien2833ffb2018-10-09 10:03:24 +080016372#endif //cl_khr_fp64
16373
16374#ifdef cl_khr_fp16
Logan Chien55afb0a2018-10-15 10:42:14 +080016375half __ovld __conv work_group_reduce_add(half x);
16376half __ovld __conv work_group_reduce_min(half x);
16377half __ovld __conv work_group_reduce_max(half x);
16378half __ovld __conv work_group_scan_exclusive_add(half x);
16379half __ovld __conv work_group_scan_exclusive_min(half x);
16380half __ovld __conv work_group_scan_exclusive_max(half x);
16381half __ovld __conv work_group_scan_inclusive_add(half x);
16382half __ovld __conv work_group_scan_inclusive_min(half x);
16383half __ovld __conv work_group_scan_inclusive_max(half x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016384#endif
Logan Chien55afb0a2018-10-15 10:42:14 +080016385int __ovld __conv work_group_reduce_add(int x);
16386int __ovld __conv work_group_reduce_min(int x);
16387int __ovld __conv work_group_reduce_max(int x);
16388int __ovld __conv work_group_scan_exclusive_add(int x);
16389int __ovld __conv work_group_scan_exclusive_min(int x);
16390int __ovld __conv work_group_scan_exclusive_max(int x);
16391int __ovld __conv work_group_scan_inclusive_add(int x);
16392int __ovld __conv work_group_scan_inclusive_min(int x);
16393int __ovld __conv work_group_scan_inclusive_max(int x);
16394uint __ovld __conv work_group_reduce_add(uint x);
16395uint __ovld __conv work_group_reduce_min(uint x);
16396uint __ovld __conv work_group_reduce_max(uint x);
16397uint __ovld __conv work_group_scan_exclusive_add(uint x);
16398uint __ovld __conv work_group_scan_exclusive_min(uint x);
16399uint __ovld __conv work_group_scan_exclusive_max(uint x);
16400uint __ovld __conv work_group_scan_inclusive_add(uint x);
16401uint __ovld __conv work_group_scan_inclusive_min(uint x);
16402uint __ovld __conv work_group_scan_inclusive_max(uint x);
16403long __ovld __conv work_group_reduce_add(long x);
16404long __ovld __conv work_group_reduce_min(long x);
16405long __ovld __conv work_group_reduce_max(long x);
16406long __ovld __conv work_group_scan_exclusive_add(long x);
16407long __ovld __conv work_group_scan_exclusive_min(long x);
16408long __ovld __conv work_group_scan_exclusive_max(long x);
16409long __ovld __conv work_group_scan_inclusive_add(long x);
16410long __ovld __conv work_group_scan_inclusive_min(long x);
16411long __ovld __conv work_group_scan_inclusive_max(long x);
16412ulong __ovld __conv work_group_reduce_add(ulong x);
16413ulong __ovld __conv work_group_reduce_min(ulong x);
16414ulong __ovld __conv work_group_reduce_max(ulong x);
16415ulong __ovld __conv work_group_scan_exclusive_add(ulong x);
16416ulong __ovld __conv work_group_scan_exclusive_min(ulong x);
16417ulong __ovld __conv work_group_scan_exclusive_max(ulong x);
16418ulong __ovld __conv work_group_scan_inclusive_add(ulong x);
16419ulong __ovld __conv work_group_scan_inclusive_min(ulong x);
16420ulong __ovld __conv work_group_scan_inclusive_max(ulong x);
16421float __ovld __conv work_group_reduce_add(float x);
16422float __ovld __conv work_group_reduce_min(float x);
16423float __ovld __conv work_group_reduce_max(float x);
16424float __ovld __conv work_group_scan_exclusive_add(float x);
16425float __ovld __conv work_group_scan_exclusive_min(float x);
16426float __ovld __conv work_group_scan_exclusive_max(float x);
16427float __ovld __conv work_group_scan_inclusive_add(float x);
16428float __ovld __conv work_group_scan_inclusive_min(float x);
16429float __ovld __conv work_group_scan_inclusive_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016430#ifdef cl_khr_fp64
Logan Chien55afb0a2018-10-15 10:42:14 +080016431double __ovld __conv work_group_reduce_add(double x);
16432double __ovld __conv work_group_reduce_min(double x);
16433double __ovld __conv work_group_reduce_max(double x);
16434double __ovld __conv work_group_scan_exclusive_add(double x);
16435double __ovld __conv work_group_scan_exclusive_min(double x);
16436double __ovld __conv work_group_scan_exclusive_max(double x);
16437double __ovld __conv work_group_scan_inclusive_add(double x);
16438double __ovld __conv work_group_scan_inclusive_min(double x);
16439double __ovld __conv work_group_scan_inclusive_max(double x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016440#endif //cl_khr_fp64
16441
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016442#endif //defined(__opencl_c_work_group_collective_functions)
Logan Chien2833ffb2018-10-09 10:03:24 +080016443
16444// OpenCL v2.0 s6.13.16 - Pipe Functions
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016445#if defined(__opencl_c_pipes)
Logan Chien2833ffb2018-10-09 10:03:24 +080016446bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016447#endif //defined(__opencl_c_pipes)
Logan Chien2833ffb2018-10-09 10:03:24 +080016448
16449
16450// OpenCL v2.0 s6.13.17 - Enqueue Kernels
Logan Chienbedbf4f2020-01-06 19:35:19 -080016451#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016452
Logan Chien2833ffb2018-10-09 10:03:24 +080016453ndrange_t __ovld ndrange_1D(size_t);
16454ndrange_t __ovld ndrange_1D(size_t, size_t);
16455ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
16456
16457ndrange_t __ovld ndrange_2D(const size_t[2]);
16458ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
16459ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
16460
16461ndrange_t __ovld ndrange_3D(const size_t[3]);
16462ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
16463ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
16464
Logan Chienbedbf4f2020-01-06 19:35:19 -080016465int __ovld enqueue_marker(queue_t, uint, const clk_event_t*, clk_event_t*);
Logan Chien2833ffb2018-10-09 10:03:24 +080016466
16467void __ovld retain_event(clk_event_t);
16468
16469void __ovld release_event(clk_event_t);
16470
Logan Chien55afb0a2018-10-15 10:42:14 +080016471clk_event_t __ovld create_user_event(void);
Logan Chien2833ffb2018-10-09 10:03:24 +080016472
16473void __ovld set_user_event_status(clk_event_t e, int state);
16474
Logan Chien55afb0a2018-10-15 10:42:14 +080016475bool __ovld is_valid_event (clk_event_t event);
Logan Chien2833ffb2018-10-09 10:03:24 +080016476
16477void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
16478
16479queue_t __ovld get_default_queue(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016480#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016481
16482// OpenCL Extension v2.0 s9.17 - Sub-groups
16483
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016484#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups)
Logan Chien2833ffb2018-10-09 10:03:24 +080016485// Shared Sub Group Functions
16486uint __ovld get_sub_group_size(void);
16487uint __ovld get_max_sub_group_size(void);
16488uint __ovld get_num_sub_groups(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016489#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016490uint __ovld get_enqueued_num_sub_groups(void);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016491#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016492uint __ovld get_sub_group_id(void);
16493uint __ovld get_sub_group_local_id(void);
16494
Logan Chien55afb0a2018-10-15 10:42:14 +080016495void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016496#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080016497void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
Logan Chienbedbf4f2020-01-06 19:35:19 -080016498#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien2833ffb2018-10-09 10:03:24 +080016499
Logan Chien55afb0a2018-10-15 10:42:14 +080016500int __ovld __conv sub_group_all(int predicate);
16501int __ovld __conv sub_group_any(int predicate);
Logan Chien2833ffb2018-10-09 10:03:24 +080016502
Logan Chien55afb0a2018-10-15 10:42:14 +080016503int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id);
16504uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id);
16505long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id);
16506ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id);
16507float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id);
Logan Chien2833ffb2018-10-09 10:03:24 +080016508
Logan Chien55afb0a2018-10-15 10:42:14 +080016509int __ovld __conv sub_group_reduce_add(int x);
16510uint __ovld __conv sub_group_reduce_add(uint x);
16511long __ovld __conv sub_group_reduce_add(long x);
16512ulong __ovld __conv sub_group_reduce_add(ulong x);
16513float __ovld __conv sub_group_reduce_add(float x);
16514int __ovld __conv sub_group_reduce_min(int x);
16515uint __ovld __conv sub_group_reduce_min(uint x);
16516long __ovld __conv sub_group_reduce_min(long x);
16517ulong __ovld __conv sub_group_reduce_min(ulong x);
16518float __ovld __conv sub_group_reduce_min(float x);
16519int __ovld __conv sub_group_reduce_max(int x);
16520uint __ovld __conv sub_group_reduce_max(uint x);
16521long __ovld __conv sub_group_reduce_max(long x);
16522ulong __ovld __conv sub_group_reduce_max(ulong x);
16523float __ovld __conv sub_group_reduce_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016524
Logan Chien55afb0a2018-10-15 10:42:14 +080016525int __ovld __conv sub_group_scan_exclusive_add(int x);
16526uint __ovld __conv sub_group_scan_exclusive_add(uint x);
16527long __ovld __conv sub_group_scan_exclusive_add(long x);
16528ulong __ovld __conv sub_group_scan_exclusive_add(ulong x);
16529float __ovld __conv sub_group_scan_exclusive_add(float x);
16530int __ovld __conv sub_group_scan_exclusive_min(int x);
16531uint __ovld __conv sub_group_scan_exclusive_min(uint x);
16532long __ovld __conv sub_group_scan_exclusive_min(long x);
16533ulong __ovld __conv sub_group_scan_exclusive_min(ulong x);
16534float __ovld __conv sub_group_scan_exclusive_min(float x);
16535int __ovld __conv sub_group_scan_exclusive_max(int x);
16536uint __ovld __conv sub_group_scan_exclusive_max(uint x);
16537long __ovld __conv sub_group_scan_exclusive_max(long x);
16538ulong __ovld __conv sub_group_scan_exclusive_max(ulong x);
16539float __ovld __conv sub_group_scan_exclusive_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016540
Logan Chien55afb0a2018-10-15 10:42:14 +080016541int __ovld __conv sub_group_scan_inclusive_add(int x);
16542uint __ovld __conv sub_group_scan_inclusive_add(uint x);
16543long __ovld __conv sub_group_scan_inclusive_add(long x);
16544ulong __ovld __conv sub_group_scan_inclusive_add(ulong x);
16545float __ovld __conv sub_group_scan_inclusive_add(float x);
16546int __ovld __conv sub_group_scan_inclusive_min(int x);
16547uint __ovld __conv sub_group_scan_inclusive_min(uint x);
16548long __ovld __conv sub_group_scan_inclusive_min(long x);
16549ulong __ovld __conv sub_group_scan_inclusive_min(ulong x);
16550float __ovld __conv sub_group_scan_inclusive_min(float x);
16551int __ovld __conv sub_group_scan_inclusive_max(int x);
16552uint __ovld __conv sub_group_scan_inclusive_max(uint x);
16553long __ovld __conv sub_group_scan_inclusive_max(long x);
16554ulong __ovld __conv sub_group_scan_inclusive_max(ulong x);
16555float __ovld __conv sub_group_scan_inclusive_max(float x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016556
16557#ifdef cl_khr_fp16
Logan Chien55afb0a2018-10-15 10:42:14 +080016558half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id);
16559half __ovld __conv sub_group_reduce_add(half x);
16560half __ovld __conv sub_group_reduce_min(half x);
16561half __ovld __conv sub_group_reduce_max(half x);
16562half __ovld __conv sub_group_scan_exclusive_add(half x);
16563half __ovld __conv sub_group_scan_exclusive_min(half x);
16564half __ovld __conv sub_group_scan_exclusive_max(half x);
16565half __ovld __conv sub_group_scan_inclusive_add(half x);
16566half __ovld __conv sub_group_scan_inclusive_min(half x);
16567half __ovld __conv sub_group_scan_inclusive_max(half x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016568#endif //cl_khr_fp16
16569
16570#ifdef cl_khr_fp64
Logan Chien55afb0a2018-10-15 10:42:14 +080016571double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id);
16572double __ovld __conv sub_group_reduce_add(double x);
16573double __ovld __conv sub_group_reduce_min(double x);
16574double __ovld __conv sub_group_reduce_max(double x);
16575double __ovld __conv sub_group_scan_exclusive_add(double x);
16576double __ovld __conv sub_group_scan_exclusive_min(double x);
16577double __ovld __conv sub_group_scan_exclusive_max(double x);
16578double __ovld __conv sub_group_scan_inclusive_add(double x);
16579double __ovld __conv sub_group_scan_inclusive_min(double x);
16580double __ovld __conv sub_group_scan_inclusive_max(double x);
Logan Chien2833ffb2018-10-09 10:03:24 +080016581#endif //cl_khr_fp64
16582
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080016583#endif //cl_khr_subgroups cl_intel_subgroups __opencl_c_subgroups
Logan Chien2833ffb2018-10-09 10:03:24 +080016584
Sasha Smundak0fc590b2020-10-07 08:11:59 -070016585#if defined(cl_khr_subgroup_extended_types)
16586char __ovld __conv sub_group_broadcast( char value, uint index );
16587char2 __ovld __conv sub_group_broadcast( char2 value, uint index );
16588char3 __ovld __conv sub_group_broadcast( char3 value, uint index );
16589char4 __ovld __conv sub_group_broadcast( char4 value, uint index );
16590char8 __ovld __conv sub_group_broadcast( char8 value, uint index );
16591char16 __ovld __conv sub_group_broadcast( char16 value, uint index );
16592
16593uchar __ovld __conv sub_group_broadcast( uchar value, uint index );
16594uchar2 __ovld __conv sub_group_broadcast( uchar2 value, uint index );
16595uchar3 __ovld __conv sub_group_broadcast( uchar3 value, uint index );
16596uchar4 __ovld __conv sub_group_broadcast( uchar4 value, uint index );
16597uchar8 __ovld __conv sub_group_broadcast( uchar8 value, uint index );
16598uchar16 __ovld __conv sub_group_broadcast( uchar16 value, uint index );
16599
16600short __ovld __conv sub_group_broadcast( short value, uint index );
16601short2 __ovld __conv sub_group_broadcast( short2 value, uint index );
16602short3 __ovld __conv sub_group_broadcast( short3 value, uint index );
16603short4 __ovld __conv sub_group_broadcast( short4 value, uint index );
16604short8 __ovld __conv sub_group_broadcast( short8 value, uint index );
16605short16 __ovld __conv sub_group_broadcast( short16 value, uint index );
16606
16607ushort __ovld __conv sub_group_broadcast( ushort value, uint index );
16608ushort2 __ovld __conv sub_group_broadcast( ushort2 value, uint index );
16609ushort3 __ovld __conv sub_group_broadcast( ushort3 value, uint index );
16610ushort4 __ovld __conv sub_group_broadcast( ushort4 value, uint index );
16611ushort8 __ovld __conv sub_group_broadcast( ushort8 value, uint index );
16612ushort16 __ovld __conv sub_group_broadcast( ushort16 value, uint index );
16613
16614// scalar int broadcast is part of cl_khr_subgroups
16615int2 __ovld __conv sub_group_broadcast( int2 value, uint index );
16616int3 __ovld __conv sub_group_broadcast( int3 value, uint index );
16617int4 __ovld __conv sub_group_broadcast( int4 value, uint index );
16618int8 __ovld __conv sub_group_broadcast( int8 value, uint index );
16619int16 __ovld __conv sub_group_broadcast( int16 value, uint index );
16620
16621// scalar uint broadcast is part of cl_khr_subgroups
16622uint2 __ovld __conv sub_group_broadcast( uint2 value, uint index );
16623uint3 __ovld __conv sub_group_broadcast( uint3 value, uint index );
16624uint4 __ovld __conv sub_group_broadcast( uint4 value, uint index );
16625uint8 __ovld __conv sub_group_broadcast( uint8 value, uint index );
16626uint16 __ovld __conv sub_group_broadcast( uint16 value, uint index );
16627
16628// scalar long broadcast is part of cl_khr_subgroups
16629long2 __ovld __conv sub_group_broadcast( long2 value, uint index );
16630long3 __ovld __conv sub_group_broadcast( long3 value, uint index );
16631long4 __ovld __conv sub_group_broadcast( long4 value, uint index );
16632long8 __ovld __conv sub_group_broadcast( long8 value, uint index );
16633long16 __ovld __conv sub_group_broadcast( long16 value, uint index );
16634
16635// scalar ulong broadcast is part of cl_khr_subgroups
16636ulong2 __ovld __conv sub_group_broadcast( ulong2 value, uint index );
16637ulong3 __ovld __conv sub_group_broadcast( ulong3 value, uint index );
16638ulong4 __ovld __conv sub_group_broadcast( ulong4 value, uint index );
16639ulong8 __ovld __conv sub_group_broadcast( ulong8 value, uint index );
16640ulong16 __ovld __conv sub_group_broadcast( ulong16 value, uint index );
16641
16642// scalar float broadcast is part of cl_khr_subgroups
16643float2 __ovld __conv sub_group_broadcast( float2 value, uint index );
16644float3 __ovld __conv sub_group_broadcast( float3 value, uint index );
16645float4 __ovld __conv sub_group_broadcast( float4 value, uint index );
16646float8 __ovld __conv sub_group_broadcast( float8 value, uint index );
16647float16 __ovld __conv sub_group_broadcast( float16 value, uint index );
16648
16649char __ovld __conv sub_group_reduce_add( char value );
16650uchar __ovld __conv sub_group_reduce_add( uchar value );
16651short __ovld __conv sub_group_reduce_add( short value );
16652ushort __ovld __conv sub_group_reduce_add( ushort value );
16653
16654char __ovld __conv sub_group_reduce_min( char value );
16655uchar __ovld __conv sub_group_reduce_min( uchar value );
16656short __ovld __conv sub_group_reduce_min( short value );
16657ushort __ovld __conv sub_group_reduce_min( ushort value );
16658
16659char __ovld __conv sub_group_reduce_max( char value );
16660uchar __ovld __conv sub_group_reduce_max( uchar value );
16661short __ovld __conv sub_group_reduce_max( short value );
16662ushort __ovld __conv sub_group_reduce_max( ushort value );
16663
16664char __ovld __conv sub_group_scan_inclusive_add( char value );
16665uchar __ovld __conv sub_group_scan_inclusive_add( uchar value );
16666short __ovld __conv sub_group_scan_inclusive_add( short value );
16667ushort __ovld __conv sub_group_scan_inclusive_add( ushort value );
16668
16669char __ovld __conv sub_group_scan_inclusive_min( char value );
16670uchar __ovld __conv sub_group_scan_inclusive_min( uchar value );
16671short __ovld __conv sub_group_scan_inclusive_min( short value );
16672ushort __ovld __conv sub_group_scan_inclusive_min( ushort value );
16673
16674char __ovld __conv sub_group_scan_inclusive_max( char value );
16675uchar __ovld __conv sub_group_scan_inclusive_max( uchar value );
16676short __ovld __conv sub_group_scan_inclusive_max( short value );
16677ushort __ovld __conv sub_group_scan_inclusive_max( ushort value );
16678
16679char __ovld __conv sub_group_scan_exclusive_add( char value );
16680uchar __ovld __conv sub_group_scan_exclusive_add( uchar value );
16681short __ovld __conv sub_group_scan_exclusive_add( short value );
16682ushort __ovld __conv sub_group_scan_exclusive_add( ushort value );
16683
16684char __ovld __conv sub_group_scan_exclusive_min( char value );
16685uchar __ovld __conv sub_group_scan_exclusive_min( uchar value );
16686short __ovld __conv sub_group_scan_exclusive_min( short value );
16687ushort __ovld __conv sub_group_scan_exclusive_min( ushort value );
16688
16689char __ovld __conv sub_group_scan_exclusive_max( char value );
16690uchar __ovld __conv sub_group_scan_exclusive_max( uchar value );
16691short __ovld __conv sub_group_scan_exclusive_max( short value );
16692ushort __ovld __conv sub_group_scan_exclusive_max( ushort value );
16693
16694#if defined(cl_khr_fp16)
16695// scalar half broadcast is part of cl_khr_subgroups
16696half2 __ovld __conv sub_group_broadcast( half2 value, uint index );
16697half3 __ovld __conv sub_group_broadcast( half3 value, uint index );
16698half4 __ovld __conv sub_group_broadcast( half4 value, uint index );
16699half8 __ovld __conv sub_group_broadcast( half8 value, uint index );
16700half16 __ovld __conv sub_group_broadcast( half16 value, uint index );
16701#endif // cl_khr_fp16
16702
16703#if defined(cl_khr_fp64)
16704// scalar double broadcast is part of cl_khr_subgroups
16705double2 __ovld __conv sub_group_broadcast( double2 value, uint index );
16706double3 __ovld __conv sub_group_broadcast( double3 value, uint index );
16707double4 __ovld __conv sub_group_broadcast( double4 value, uint index );
16708double8 __ovld __conv sub_group_broadcast( double8 value, uint index );
16709double16 __ovld __conv sub_group_broadcast( double16 value, uint index );
16710#endif // cl_khr_fp64
16711
16712#endif // cl_khr_subgroup_extended_types
16713
16714#if defined(cl_khr_subgroup_non_uniform_vote)
16715int __ovld sub_group_elect(void);
16716int __ovld sub_group_non_uniform_all( int predicate );
16717int __ovld sub_group_non_uniform_any( int predicate );
16718
16719int __ovld sub_group_non_uniform_all_equal( char value );
16720int __ovld sub_group_non_uniform_all_equal( uchar value );
16721int __ovld sub_group_non_uniform_all_equal( short value );
16722int __ovld sub_group_non_uniform_all_equal( ushort value );
16723int __ovld sub_group_non_uniform_all_equal( int value );
16724int __ovld sub_group_non_uniform_all_equal( uint value );
16725int __ovld sub_group_non_uniform_all_equal( long value );
16726int __ovld sub_group_non_uniform_all_equal( ulong value );
16727int __ovld sub_group_non_uniform_all_equal( float value );
16728
16729#if defined(cl_khr_fp16)
16730int __ovld sub_group_non_uniform_all_equal( half value );
16731#endif // cl_khr_fp16
16732
16733#if defined(cl_khr_fp64)
16734int __ovld sub_group_non_uniform_all_equal( double value );
16735#endif // cl_khr_fp64
16736
16737#endif // cl_khr_subgroup_non_uniform_vote
16738
16739#if defined(cl_khr_subgroup_ballot)
16740char __ovld sub_group_non_uniform_broadcast( char value, uint index );
16741char2 __ovld sub_group_non_uniform_broadcast( char2 value, uint index );
16742char3 __ovld sub_group_non_uniform_broadcast( char3 value, uint index );
16743char4 __ovld sub_group_non_uniform_broadcast( char4 value, uint index );
16744char8 __ovld sub_group_non_uniform_broadcast( char8 value, uint index );
16745char16 __ovld sub_group_non_uniform_broadcast( char16 value, uint index );
16746
16747uchar __ovld sub_group_non_uniform_broadcast( uchar value, uint index );
16748uchar2 __ovld sub_group_non_uniform_broadcast( uchar2 value, uint index );
16749uchar3 __ovld sub_group_non_uniform_broadcast( uchar3 value, uint index );
16750uchar4 __ovld sub_group_non_uniform_broadcast( uchar4 value, uint index );
16751uchar8 __ovld sub_group_non_uniform_broadcast( uchar8 value, uint index );
16752uchar16 __ovld sub_group_non_uniform_broadcast( uchar16 value, uint index );
16753
16754short __ovld sub_group_non_uniform_broadcast( short value, uint index );
16755short2 __ovld sub_group_non_uniform_broadcast( short2 value, uint index );
16756short3 __ovld sub_group_non_uniform_broadcast( short3 value, uint index );
16757short4 __ovld sub_group_non_uniform_broadcast( short4 value, uint index );
16758short8 __ovld sub_group_non_uniform_broadcast( short8 value, uint index );
16759short16 __ovld sub_group_non_uniform_broadcast( short16 value, uint index );
16760
16761ushort __ovld sub_group_non_uniform_broadcast( ushort value, uint index );
16762ushort2 __ovld sub_group_non_uniform_broadcast( ushort2 value, uint index );
16763ushort3 __ovld sub_group_non_uniform_broadcast( ushort3 value, uint index );
16764ushort4 __ovld sub_group_non_uniform_broadcast( ushort4 value, uint index );
16765ushort8 __ovld sub_group_non_uniform_broadcast( ushort8 value, uint index );
16766ushort16 __ovld sub_group_non_uniform_broadcast( ushort16 value, uint index );
16767
16768int __ovld sub_group_non_uniform_broadcast( int value, uint index );
16769int2 __ovld sub_group_non_uniform_broadcast( int2 value, uint index );
16770int3 __ovld sub_group_non_uniform_broadcast( int3 value, uint index );
16771int4 __ovld sub_group_non_uniform_broadcast( int4 value, uint index );
16772int8 __ovld sub_group_non_uniform_broadcast( int8 value, uint index );
16773int16 __ovld sub_group_non_uniform_broadcast( int16 value, uint index );
16774
16775uint __ovld sub_group_non_uniform_broadcast( uint value, uint index );
16776uint2 __ovld sub_group_non_uniform_broadcast( uint2 value, uint index );
16777uint3 __ovld sub_group_non_uniform_broadcast( uint3 value, uint index );
16778uint4 __ovld sub_group_non_uniform_broadcast( uint4 value, uint index );
16779uint8 __ovld sub_group_non_uniform_broadcast( uint8 value, uint index );
16780uint16 __ovld sub_group_non_uniform_broadcast( uint16 value, uint index );
16781
16782long __ovld sub_group_non_uniform_broadcast( long value, uint index );
16783long2 __ovld sub_group_non_uniform_broadcast( long2 value, uint index );
16784long3 __ovld sub_group_non_uniform_broadcast( long3 value, uint index );
16785long4 __ovld sub_group_non_uniform_broadcast( long4 value, uint index );
16786long8 __ovld sub_group_non_uniform_broadcast( long8 value, uint index );
16787long16 __ovld sub_group_non_uniform_broadcast( long16 value, uint index );
16788
16789ulong __ovld sub_group_non_uniform_broadcast( ulong value, uint index );
16790ulong2 __ovld sub_group_non_uniform_broadcast( ulong2 value, uint index );
16791ulong3 __ovld sub_group_non_uniform_broadcast( ulong3 value, uint index );
16792ulong4 __ovld sub_group_non_uniform_broadcast( ulong4 value, uint index );
16793ulong8 __ovld sub_group_non_uniform_broadcast( ulong8 value, uint index );
16794ulong16 __ovld sub_group_non_uniform_broadcast( ulong16 value, uint index );
16795
16796float __ovld sub_group_non_uniform_broadcast( float value, uint index );
16797float2 __ovld sub_group_non_uniform_broadcast( float2 value, uint index );
16798float3 __ovld sub_group_non_uniform_broadcast( float3 value, uint index );
16799float4 __ovld sub_group_non_uniform_broadcast( float4 value, uint index );
16800float8 __ovld sub_group_non_uniform_broadcast( float8 value, uint index );
16801float16 __ovld sub_group_non_uniform_broadcast( float16 value, uint index );
16802
16803char __ovld sub_group_broadcast_first( char value );
16804uchar __ovld sub_group_broadcast_first( uchar value );
16805short __ovld sub_group_broadcast_first( short value );
16806ushort __ovld sub_group_broadcast_first( ushort value );
16807int __ovld sub_group_broadcast_first( int value );
16808uint __ovld sub_group_broadcast_first( uint value );
16809long __ovld sub_group_broadcast_first( long value );
16810ulong __ovld sub_group_broadcast_first( ulong value );
16811float __ovld sub_group_broadcast_first( float value );
16812
16813uint4 __ovld sub_group_ballot( int predicate );
16814int __ovld __cnfn sub_group_inverse_ballot( uint4 value );
16815int __ovld __cnfn sub_group_ballot_bit_extract( uint4 value, uint index );
16816uint __ovld __cnfn sub_group_ballot_bit_count( uint4 value );
16817
16818uint __ovld sub_group_ballot_inclusive_scan( uint4 value );
16819uint __ovld sub_group_ballot_exclusive_scan( uint4 value );
16820uint __ovld sub_group_ballot_find_lsb( uint4 value );
16821uint __ovld sub_group_ballot_find_msb( uint4 value );
16822
16823uint4 __ovld __cnfn get_sub_group_eq_mask(void);
16824uint4 __ovld __cnfn get_sub_group_ge_mask(void);
16825uint4 __ovld __cnfn get_sub_group_gt_mask(void);
16826uint4 __ovld __cnfn get_sub_group_le_mask(void);
16827uint4 __ovld __cnfn get_sub_group_lt_mask(void);
16828
16829#if defined(cl_khr_fp16)
16830half __ovld sub_group_non_uniform_broadcast( half value, uint index );
16831half2 __ovld sub_group_non_uniform_broadcast( half2 value, uint index );
16832half3 __ovld sub_group_non_uniform_broadcast( half3 value, uint index );
16833half4 __ovld sub_group_non_uniform_broadcast( half4 value, uint index );
16834half8 __ovld sub_group_non_uniform_broadcast( half8 value, uint index );
16835half16 __ovld sub_group_non_uniform_broadcast( half16 value, uint index );
16836
16837half __ovld sub_group_broadcast_first( half value );
16838#endif // cl_khr_fp16
16839
16840#if defined(cl_khr_fp64)
16841double __ovld sub_group_non_uniform_broadcast( double value, uint index );
16842double2 __ovld sub_group_non_uniform_broadcast( double2 value, uint index );
16843double3 __ovld sub_group_non_uniform_broadcast( double3 value, uint index );
16844double4 __ovld sub_group_non_uniform_broadcast( double4 value, uint index );
16845double8 __ovld sub_group_non_uniform_broadcast( double8 value, uint index );
16846double16 __ovld sub_group_non_uniform_broadcast( double16 value, uint index );
16847
16848double __ovld sub_group_broadcast_first( double value );
16849#endif // cl_khr_fp64
16850
16851#endif // cl_khr_subgroup_ballot
16852
16853#if defined(cl_khr_subgroup_non_uniform_arithmetic)
16854char __ovld sub_group_non_uniform_reduce_add( char value );
16855uchar __ovld sub_group_non_uniform_reduce_add( uchar value );
16856short __ovld sub_group_non_uniform_reduce_add( short value );
16857ushort __ovld sub_group_non_uniform_reduce_add( ushort value );
16858int __ovld sub_group_non_uniform_reduce_add( int value );
16859uint __ovld sub_group_non_uniform_reduce_add( uint value );
16860long __ovld sub_group_non_uniform_reduce_add( long value );
16861ulong __ovld sub_group_non_uniform_reduce_add( ulong value );
16862float __ovld sub_group_non_uniform_reduce_add( float value );
16863
16864char __ovld sub_group_non_uniform_reduce_mul( char value );
16865uchar __ovld sub_group_non_uniform_reduce_mul( uchar value );
16866short __ovld sub_group_non_uniform_reduce_mul( short value );
16867ushort __ovld sub_group_non_uniform_reduce_mul( ushort value );
16868int __ovld sub_group_non_uniform_reduce_mul( int value );
16869uint __ovld sub_group_non_uniform_reduce_mul( uint value );
16870long __ovld sub_group_non_uniform_reduce_mul( long value );
16871ulong __ovld sub_group_non_uniform_reduce_mul( ulong value );
16872float __ovld sub_group_non_uniform_reduce_mul( float value );
16873
16874char __ovld sub_group_non_uniform_reduce_min( char value );
16875uchar __ovld sub_group_non_uniform_reduce_min( uchar value );
16876short __ovld sub_group_non_uniform_reduce_min( short value );
16877ushort __ovld sub_group_non_uniform_reduce_min( ushort value );
16878int __ovld sub_group_non_uniform_reduce_min( int value );
16879uint __ovld sub_group_non_uniform_reduce_min( uint value );
16880long __ovld sub_group_non_uniform_reduce_min( long value );
16881ulong __ovld sub_group_non_uniform_reduce_min( ulong value );
16882float __ovld sub_group_non_uniform_reduce_min( float value );
16883
16884char __ovld sub_group_non_uniform_reduce_max( char value );
16885uchar __ovld sub_group_non_uniform_reduce_max( uchar value );
16886short __ovld sub_group_non_uniform_reduce_max( short value );
16887ushort __ovld sub_group_non_uniform_reduce_max( ushort value );
16888int __ovld sub_group_non_uniform_reduce_max( int value );
16889uint __ovld sub_group_non_uniform_reduce_max( uint value );
16890long __ovld sub_group_non_uniform_reduce_max( long value );
16891ulong __ovld sub_group_non_uniform_reduce_max( ulong value );
16892float __ovld sub_group_non_uniform_reduce_max( float value );
16893
16894char __ovld sub_group_non_uniform_scan_inclusive_add( char value );
16895uchar __ovld sub_group_non_uniform_scan_inclusive_add( uchar value );
16896short __ovld sub_group_non_uniform_scan_inclusive_add( short value );
16897ushort __ovld sub_group_non_uniform_scan_inclusive_add( ushort value );
16898int __ovld sub_group_non_uniform_scan_inclusive_add( int value );
16899uint __ovld sub_group_non_uniform_scan_inclusive_add( uint value );
16900long __ovld sub_group_non_uniform_scan_inclusive_add( long value );
16901ulong __ovld sub_group_non_uniform_scan_inclusive_add( ulong value );
16902float __ovld sub_group_non_uniform_scan_inclusive_add( float value );
16903
16904char __ovld sub_group_non_uniform_scan_inclusive_mul( char value );
16905uchar __ovld sub_group_non_uniform_scan_inclusive_mul( uchar value );
16906short __ovld sub_group_non_uniform_scan_inclusive_mul( short value );
16907ushort __ovld sub_group_non_uniform_scan_inclusive_mul( ushort value );
16908int __ovld sub_group_non_uniform_scan_inclusive_mul( int value );
16909uint __ovld sub_group_non_uniform_scan_inclusive_mul( uint value );
16910long __ovld sub_group_non_uniform_scan_inclusive_mul( long value );
16911ulong __ovld sub_group_non_uniform_scan_inclusive_mul( ulong value );
16912float __ovld sub_group_non_uniform_scan_inclusive_mul( float value );
16913
16914char __ovld sub_group_non_uniform_scan_inclusive_min( char value );
16915uchar __ovld sub_group_non_uniform_scan_inclusive_min( uchar value );
16916short __ovld sub_group_non_uniform_scan_inclusive_min( short value );
16917ushort __ovld sub_group_non_uniform_scan_inclusive_min( ushort value );
16918int __ovld sub_group_non_uniform_scan_inclusive_min( int value );
16919uint __ovld sub_group_non_uniform_scan_inclusive_min( uint value );
16920long __ovld sub_group_non_uniform_scan_inclusive_min( long value );
16921ulong __ovld sub_group_non_uniform_scan_inclusive_min( ulong value );
16922float __ovld sub_group_non_uniform_scan_inclusive_min( float value );
16923
16924char __ovld sub_group_non_uniform_scan_inclusive_max( char value );
16925uchar __ovld sub_group_non_uniform_scan_inclusive_max( uchar value );
16926short __ovld sub_group_non_uniform_scan_inclusive_max( short value );
16927ushort __ovld sub_group_non_uniform_scan_inclusive_max( ushort value );
16928int __ovld sub_group_non_uniform_scan_inclusive_max( int value );
16929uint __ovld sub_group_non_uniform_scan_inclusive_max( uint value );
16930long __ovld sub_group_non_uniform_scan_inclusive_max( long value );
16931ulong __ovld sub_group_non_uniform_scan_inclusive_max( ulong value );
16932float __ovld sub_group_non_uniform_scan_inclusive_max( float value );
16933
16934char __ovld sub_group_non_uniform_scan_exclusive_add( char value );
16935uchar __ovld sub_group_non_uniform_scan_exclusive_add( uchar value );
16936short __ovld sub_group_non_uniform_scan_exclusive_add( short value );
16937ushort __ovld sub_group_non_uniform_scan_exclusive_add( ushort value );
16938int __ovld sub_group_non_uniform_scan_exclusive_add( int value );
16939uint __ovld sub_group_non_uniform_scan_exclusive_add( uint value );
16940long __ovld sub_group_non_uniform_scan_exclusive_add( long value );
16941ulong __ovld sub_group_non_uniform_scan_exclusive_add( ulong value );
16942float __ovld sub_group_non_uniform_scan_exclusive_add( float value );
16943
16944char __ovld sub_group_non_uniform_scan_exclusive_mul( char value );
16945uchar __ovld sub_group_non_uniform_scan_exclusive_mul( uchar value );
16946short __ovld sub_group_non_uniform_scan_exclusive_mul( short value );
16947ushort __ovld sub_group_non_uniform_scan_exclusive_mul( ushort value );
16948int __ovld sub_group_non_uniform_scan_exclusive_mul( int value );
16949uint __ovld sub_group_non_uniform_scan_exclusive_mul( uint value );
16950long __ovld sub_group_non_uniform_scan_exclusive_mul( long value );
16951ulong __ovld sub_group_non_uniform_scan_exclusive_mul( ulong value );
16952float __ovld sub_group_non_uniform_scan_exclusive_mul( float value );
16953
16954char __ovld sub_group_non_uniform_scan_exclusive_min( char value );
16955uchar __ovld sub_group_non_uniform_scan_exclusive_min( uchar value );
16956short __ovld sub_group_non_uniform_scan_exclusive_min( short value );
16957ushort __ovld sub_group_non_uniform_scan_exclusive_min( ushort value );
16958int __ovld sub_group_non_uniform_scan_exclusive_min( int value );
16959uint __ovld sub_group_non_uniform_scan_exclusive_min( uint value );
16960long __ovld sub_group_non_uniform_scan_exclusive_min( long value );
16961ulong __ovld sub_group_non_uniform_scan_exclusive_min( ulong value );
16962float __ovld sub_group_non_uniform_scan_exclusive_min( float value );
16963
16964char __ovld sub_group_non_uniform_scan_exclusive_max( char value );
16965uchar __ovld sub_group_non_uniform_scan_exclusive_max( uchar value );
16966short __ovld sub_group_non_uniform_scan_exclusive_max( short value );
16967ushort __ovld sub_group_non_uniform_scan_exclusive_max( ushort value );
16968int __ovld sub_group_non_uniform_scan_exclusive_max( int value );
16969uint __ovld sub_group_non_uniform_scan_exclusive_max( uint value );
16970long __ovld sub_group_non_uniform_scan_exclusive_max( long value );
16971ulong __ovld sub_group_non_uniform_scan_exclusive_max( ulong value );
16972float __ovld sub_group_non_uniform_scan_exclusive_max( float value );
16973
16974char __ovld sub_group_non_uniform_reduce_and( char value );
16975uchar __ovld sub_group_non_uniform_reduce_and( uchar value );
16976short __ovld sub_group_non_uniform_reduce_and( short value );
16977ushort __ovld sub_group_non_uniform_reduce_and( ushort value );
16978int __ovld sub_group_non_uniform_reduce_and( int value );
16979uint __ovld sub_group_non_uniform_reduce_and( uint value );
16980long __ovld sub_group_non_uniform_reduce_and( long value );
16981ulong __ovld sub_group_non_uniform_reduce_and( ulong value );
16982
16983char __ovld sub_group_non_uniform_reduce_or( char value );
16984uchar __ovld sub_group_non_uniform_reduce_or( uchar value );
16985short __ovld sub_group_non_uniform_reduce_or( short value );
16986ushort __ovld sub_group_non_uniform_reduce_or( ushort value );
16987int __ovld sub_group_non_uniform_reduce_or( int value );
16988uint __ovld sub_group_non_uniform_reduce_or( uint value );
16989long __ovld sub_group_non_uniform_reduce_or( long value );
16990ulong __ovld sub_group_non_uniform_reduce_or( ulong value );
16991
16992char __ovld sub_group_non_uniform_reduce_xor( char value );
16993uchar __ovld sub_group_non_uniform_reduce_xor( uchar value );
16994short __ovld sub_group_non_uniform_reduce_xor( short value );
16995ushort __ovld sub_group_non_uniform_reduce_xor( ushort value );
16996int __ovld sub_group_non_uniform_reduce_xor( int value );
16997uint __ovld sub_group_non_uniform_reduce_xor( uint value );
16998long __ovld sub_group_non_uniform_reduce_xor( long value );
16999ulong __ovld sub_group_non_uniform_reduce_xor( ulong value );
17000
17001char __ovld sub_group_non_uniform_scan_inclusive_and( char value );
17002uchar __ovld sub_group_non_uniform_scan_inclusive_and( uchar value );
17003short __ovld sub_group_non_uniform_scan_inclusive_and( short value );
17004ushort __ovld sub_group_non_uniform_scan_inclusive_and( ushort value );
17005int __ovld sub_group_non_uniform_scan_inclusive_and( int value );
17006uint __ovld sub_group_non_uniform_scan_inclusive_and( uint value );
17007long __ovld sub_group_non_uniform_scan_inclusive_and( long value );
17008ulong __ovld sub_group_non_uniform_scan_inclusive_and( ulong value );
17009
17010char __ovld sub_group_non_uniform_scan_inclusive_or( char value );
17011uchar __ovld sub_group_non_uniform_scan_inclusive_or( uchar value );
17012short __ovld sub_group_non_uniform_scan_inclusive_or( short value );
17013ushort __ovld sub_group_non_uniform_scan_inclusive_or( ushort value );
17014int __ovld sub_group_non_uniform_scan_inclusive_or( int value );
17015uint __ovld sub_group_non_uniform_scan_inclusive_or( uint value );
17016long __ovld sub_group_non_uniform_scan_inclusive_or( long value );
17017ulong __ovld sub_group_non_uniform_scan_inclusive_or( ulong value );
17018
17019char __ovld sub_group_non_uniform_scan_inclusive_xor( char value );
17020uchar __ovld sub_group_non_uniform_scan_inclusive_xor( uchar value );
17021short __ovld sub_group_non_uniform_scan_inclusive_xor( short value );
17022ushort __ovld sub_group_non_uniform_scan_inclusive_xor( ushort value );
17023int __ovld sub_group_non_uniform_scan_inclusive_xor( int value );
17024uint __ovld sub_group_non_uniform_scan_inclusive_xor( uint value );
17025long __ovld sub_group_non_uniform_scan_inclusive_xor( long value );
17026ulong __ovld sub_group_non_uniform_scan_inclusive_xor( ulong value );
17027
17028char __ovld sub_group_non_uniform_scan_exclusive_and( char value );
17029uchar __ovld sub_group_non_uniform_scan_exclusive_and( uchar value );
17030short __ovld sub_group_non_uniform_scan_exclusive_and( short value );
17031ushort __ovld sub_group_non_uniform_scan_exclusive_and( ushort value );
17032int __ovld sub_group_non_uniform_scan_exclusive_and( int value );
17033uint __ovld sub_group_non_uniform_scan_exclusive_and( uint value );
17034long __ovld sub_group_non_uniform_scan_exclusive_and( long value );
17035ulong __ovld sub_group_non_uniform_scan_exclusive_and( ulong value );
17036
17037char __ovld sub_group_non_uniform_scan_exclusive_or( char value );
17038uchar __ovld sub_group_non_uniform_scan_exclusive_or( uchar value );
17039short __ovld sub_group_non_uniform_scan_exclusive_or( short value );
17040ushort __ovld sub_group_non_uniform_scan_exclusive_or( ushort value );
17041int __ovld sub_group_non_uniform_scan_exclusive_or( int value );
17042uint __ovld sub_group_non_uniform_scan_exclusive_or( uint value );
17043long __ovld sub_group_non_uniform_scan_exclusive_or( long value );
17044ulong __ovld sub_group_non_uniform_scan_exclusive_or( ulong value );
17045
17046char __ovld sub_group_non_uniform_scan_exclusive_xor( char value );
17047uchar __ovld sub_group_non_uniform_scan_exclusive_xor( uchar value );
17048short __ovld sub_group_non_uniform_scan_exclusive_xor( short value );
17049ushort __ovld sub_group_non_uniform_scan_exclusive_xor( ushort value );
17050int __ovld sub_group_non_uniform_scan_exclusive_xor( int value );
17051uint __ovld sub_group_non_uniform_scan_exclusive_xor( uint value );
17052long __ovld sub_group_non_uniform_scan_exclusive_xor( long value );
17053ulong __ovld sub_group_non_uniform_scan_exclusive_xor( ulong value );
17054
17055int __ovld sub_group_non_uniform_reduce_logical_and( int predicate );
17056int __ovld sub_group_non_uniform_reduce_logical_or( int predicate );
17057int __ovld sub_group_non_uniform_reduce_logical_xor( int predicate );
17058
17059int __ovld sub_group_non_uniform_scan_inclusive_logical_and( int predicate );
17060int __ovld sub_group_non_uniform_scan_inclusive_logical_or( int predicate );
17061int __ovld sub_group_non_uniform_scan_inclusive_logical_xor( int predicate );
17062
17063int __ovld sub_group_non_uniform_scan_exclusive_logical_and( int predicate );
17064int __ovld sub_group_non_uniform_scan_exclusive_logical_or( int predicate );
17065int __ovld sub_group_non_uniform_scan_exclusive_logical_xor( int predicate );
17066
17067#if defined(cl_khr_fp16)
17068half __ovld sub_group_non_uniform_reduce_add( half value );
17069half __ovld sub_group_non_uniform_reduce_mul( half value );
17070half __ovld sub_group_non_uniform_reduce_min( half value );
17071half __ovld sub_group_non_uniform_reduce_max( half value );
17072half __ovld sub_group_non_uniform_scan_inclusive_add( half value );
17073half __ovld sub_group_non_uniform_scan_inclusive_mul( half value );
17074half __ovld sub_group_non_uniform_scan_inclusive_min( half value );
17075half __ovld sub_group_non_uniform_scan_inclusive_max( half value );
17076half __ovld sub_group_non_uniform_scan_exclusive_add( half value );
17077half __ovld sub_group_non_uniform_scan_exclusive_mul( half value );
17078half __ovld sub_group_non_uniform_scan_exclusive_min( half value );
17079half __ovld sub_group_non_uniform_scan_exclusive_max( half value );
17080#endif // cl_khr_fp16
17081
17082#if defined(cl_khr_fp64)
17083double __ovld sub_group_non_uniform_reduce_add( double value );
17084double __ovld sub_group_non_uniform_reduce_mul( double value );
17085double __ovld sub_group_non_uniform_reduce_min( double value );
17086double __ovld sub_group_non_uniform_reduce_max( double value );
17087double __ovld sub_group_non_uniform_scan_inclusive_add( double value );
17088double __ovld sub_group_non_uniform_scan_inclusive_mul( double value );
17089double __ovld sub_group_non_uniform_scan_inclusive_min( double value );
17090double __ovld sub_group_non_uniform_scan_inclusive_max( double value );
17091double __ovld sub_group_non_uniform_scan_exclusive_add( double value );
17092double __ovld sub_group_non_uniform_scan_exclusive_mul( double value );
17093double __ovld sub_group_non_uniform_scan_exclusive_min( double value );
17094double __ovld sub_group_non_uniform_scan_exclusive_max( double value );
17095#endif // cl_khr_fp64
17096
17097#endif // cl_khr_subgroup_non_uniform_arithmetic
17098
17099#if defined(cl_khr_subgroup_shuffle)
17100char __ovld sub_group_shuffle( char value, uint index );
17101uchar __ovld sub_group_shuffle( uchar value, uint index );
17102short __ovld sub_group_shuffle( short value, uint index );
17103ushort __ovld sub_group_shuffle( ushort value, uint index );
17104int __ovld sub_group_shuffle( int value, uint index );
17105uint __ovld sub_group_shuffle( uint value, uint index );
17106long __ovld sub_group_shuffle( long value, uint index );
17107ulong __ovld sub_group_shuffle( ulong value, uint index );
17108float __ovld sub_group_shuffle( float value, uint index );
17109
17110char __ovld sub_group_shuffle_xor( char value, uint mask );
17111uchar __ovld sub_group_shuffle_xor( uchar value, uint mask );
17112short __ovld sub_group_shuffle_xor( short value, uint mask );
17113ushort __ovld sub_group_shuffle_xor( ushort value, uint mask );
17114int __ovld sub_group_shuffle_xor( int value, uint mask );
17115uint __ovld sub_group_shuffle_xor( uint value, uint mask );
17116long __ovld sub_group_shuffle_xor( long value, uint mask );
17117ulong __ovld sub_group_shuffle_xor( ulong value, uint mask );
17118float __ovld sub_group_shuffle_xor( float value, uint mask );
17119
17120#if defined(cl_khr_fp16)
17121half __ovld sub_group_shuffle( half value, uint index );
17122half __ovld sub_group_shuffle_xor( half value, uint mask );
17123#endif // cl_khr_fp16
17124
17125#if defined(cl_khr_fp64)
17126double __ovld sub_group_shuffle( double value, uint index );
17127double __ovld sub_group_shuffle_xor( double value, uint mask );
17128#endif // cl_khr_fp64
17129
17130#endif // cl_khr_subgroup_shuffle
17131
17132#if defined(cl_khr_subgroup_shuffle_relative)
17133char __ovld sub_group_shuffle_up( char value, uint delta );
17134uchar __ovld sub_group_shuffle_up( uchar value, uint delta );
17135short __ovld sub_group_shuffle_up( short value, uint delta );
17136ushort __ovld sub_group_shuffle_up( ushort value, uint delta );
17137int __ovld sub_group_shuffle_up( int value, uint delta );
17138uint __ovld sub_group_shuffle_up( uint value, uint delta );
17139long __ovld sub_group_shuffle_up( long value, uint delta );
17140ulong __ovld sub_group_shuffle_up( ulong value, uint delta );
17141float __ovld sub_group_shuffle_up( float value, uint delta );
17142
17143char __ovld sub_group_shuffle_down( char value, uint delta );
17144uchar __ovld sub_group_shuffle_down( uchar value, uint delta );
17145short __ovld sub_group_shuffle_down( short value, uint delta );
17146ushort __ovld sub_group_shuffle_down( ushort value, uint delta );
17147int __ovld sub_group_shuffle_down( int value, uint delta );
17148uint __ovld sub_group_shuffle_down( uint value, uint delta );
17149long __ovld sub_group_shuffle_down( long value, uint delta );
17150ulong __ovld sub_group_shuffle_down( ulong value, uint delta );
17151float __ovld sub_group_shuffle_down( float value, uint delta );
17152
17153#if defined(cl_khr_fp16)
17154half __ovld sub_group_shuffle_up( half value, uint delta );
17155half __ovld sub_group_shuffle_down( half value, uint delta );
17156#endif // cl_khr_fp16
17157
17158#if defined(cl_khr_fp64)
17159double __ovld sub_group_shuffle_up( double value, uint delta );
17160double __ovld sub_group_shuffle_down( double value, uint delta );
17161#endif // cl_khr_fp64
17162
17163#endif // cl_khr_subgroup_shuffle_relative
17164
17165#if defined(cl_khr_subgroup_clustered_reduce)
17166char __ovld sub_group_clustered_reduce_add( char value, uint clustersize );
17167uchar __ovld sub_group_clustered_reduce_add( uchar value, uint clustersize );
17168short __ovld sub_group_clustered_reduce_add( short value, uint clustersize );
17169ushort __ovld sub_group_clustered_reduce_add( ushort value, uint clustersize );
17170int __ovld sub_group_clustered_reduce_add( int value, uint clustersize );
17171uint __ovld sub_group_clustered_reduce_add( uint value, uint clustersize );
17172long __ovld sub_group_clustered_reduce_add( long value, uint clustersize );
17173ulong __ovld sub_group_clustered_reduce_add( ulong value, uint clustersize );
17174float __ovld sub_group_clustered_reduce_add( float value, uint clustersize );
17175
17176char __ovld sub_group_clustered_reduce_mul( char value, uint clustersize );
17177uchar __ovld sub_group_clustered_reduce_mul( uchar value, uint clustersize );
17178short __ovld sub_group_clustered_reduce_mul( short value, uint clustersize );
17179ushort __ovld sub_group_clustered_reduce_mul( ushort value, uint clustersize );
17180int __ovld sub_group_clustered_reduce_mul( int value, uint clustersize );
17181uint __ovld sub_group_clustered_reduce_mul( uint value, uint clustersize );
17182long __ovld sub_group_clustered_reduce_mul( long value, uint clustersize );
17183ulong __ovld sub_group_clustered_reduce_mul( ulong value, uint clustersize );
17184float __ovld sub_group_clustered_reduce_mul( float value, uint clustersize );
17185
17186char __ovld sub_group_clustered_reduce_min( char value, uint clustersize );
17187uchar __ovld sub_group_clustered_reduce_min( uchar value, uint clustersize );
17188short __ovld sub_group_clustered_reduce_min( short value, uint clustersize );
17189ushort __ovld sub_group_clustered_reduce_min( ushort value, uint clustersize );
17190int __ovld sub_group_clustered_reduce_min( int value, uint clustersize );
17191uint __ovld sub_group_clustered_reduce_min( uint value, uint clustersize );
17192long __ovld sub_group_clustered_reduce_min( long value, uint clustersize );
17193ulong __ovld sub_group_clustered_reduce_min( ulong value, uint clustersize );
17194float __ovld sub_group_clustered_reduce_min( float value, uint clustersize );
17195
17196char __ovld sub_group_clustered_reduce_max( char value, uint clustersize );
17197uchar __ovld sub_group_clustered_reduce_max( uchar value, uint clustersize );
17198short __ovld sub_group_clustered_reduce_max( short value, uint clustersize );
17199ushort __ovld sub_group_clustered_reduce_max( ushort value, uint clustersize );
17200int __ovld sub_group_clustered_reduce_max( int value, uint clustersize );
17201uint __ovld sub_group_clustered_reduce_max( uint value, uint clustersize );
17202long __ovld sub_group_clustered_reduce_max( long value, uint clustersize );
17203ulong __ovld sub_group_clustered_reduce_max( ulong value, uint clustersize );
17204float __ovld sub_group_clustered_reduce_max( float value, uint clustersize );
17205
17206char __ovld sub_group_clustered_reduce_and( char value, uint clustersize );
17207uchar __ovld sub_group_clustered_reduce_and( uchar value, uint clustersize );
17208short __ovld sub_group_clustered_reduce_and( short value, uint clustersize );
17209ushort __ovld sub_group_clustered_reduce_and( ushort value, uint clustersize );
17210int __ovld sub_group_clustered_reduce_and( int value, uint clustersize );
17211uint __ovld sub_group_clustered_reduce_and( uint value, uint clustersize );
17212long __ovld sub_group_clustered_reduce_and( long value, uint clustersize );
17213ulong __ovld sub_group_clustered_reduce_and( ulong value, uint clustersize );
17214
17215char __ovld sub_group_clustered_reduce_or( char value, uint clustersize );
17216uchar __ovld sub_group_clustered_reduce_or( uchar value, uint clustersize );
17217short __ovld sub_group_clustered_reduce_or( short value, uint clustersize );
17218ushort __ovld sub_group_clustered_reduce_or( ushort value, uint clustersize );
17219int __ovld sub_group_clustered_reduce_or( int value, uint clustersize );
17220uint __ovld sub_group_clustered_reduce_or( uint value, uint clustersize );
17221long __ovld sub_group_clustered_reduce_or( long value, uint clustersize );
17222ulong __ovld sub_group_clustered_reduce_or( ulong value, uint clustersize );
17223
17224char __ovld sub_group_clustered_reduce_xor( char value, uint clustersize );
17225uchar __ovld sub_group_clustered_reduce_xor( uchar value, uint clustersize );
17226short __ovld sub_group_clustered_reduce_xor( short value, uint clustersize );
17227ushort __ovld sub_group_clustered_reduce_xor( ushort value, uint clustersize );
17228int __ovld sub_group_clustered_reduce_xor( int value, uint clustersize );
17229uint __ovld sub_group_clustered_reduce_xor( uint value, uint clustersize );
17230long __ovld sub_group_clustered_reduce_xor( long value, uint clustersize );
17231ulong __ovld sub_group_clustered_reduce_xor( ulong value, uint clustersize );
17232
17233int __ovld sub_group_clustered_reduce_logical_and( int predicate, uint clustersize );
17234int __ovld sub_group_clustered_reduce_logical_or( int predicate, uint clustersize );
17235int __ovld sub_group_clustered_reduce_logical_xor( int predicate, uint clustersize );
17236
17237#if defined(cl_khr_fp16)
17238half __ovld sub_group_clustered_reduce_add( half value, uint clustersize );
17239half __ovld sub_group_clustered_reduce_mul( half value, uint clustersize );
17240half __ovld sub_group_clustered_reduce_min( half value, uint clustersize );
17241half __ovld sub_group_clustered_reduce_max( half value, uint clustersize );
17242#endif // cl_khr_fp16
17243
17244#if defined(cl_khr_fp64)
17245double __ovld sub_group_clustered_reduce_add( double value, uint clustersize );
17246double __ovld sub_group_clustered_reduce_mul( double value, uint clustersize );
17247double __ovld sub_group_clustered_reduce_min( double value, uint clustersize );
17248double __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
17249#endif // cl_khr_fp64
17250
17251#endif // cl_khr_subgroup_clustered_reduce
17252
Pirama Arumuga Nainar494f6452021-12-02 10:42:14 -080017253#if defined(cl_khr_extended_bit_ops)
17254char __ovld __cnfn bitfield_insert(char, char, uint, uint);
17255uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint);
17256short __ovld __cnfn bitfield_insert(short, short, uint, uint);
17257ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint);
17258int __ovld __cnfn bitfield_insert(int, int, uint, uint);
17259uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint);
17260long __ovld __cnfn bitfield_insert(long, long, uint, uint);
17261ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint);
17262char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint);
17263uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint);
17264short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint);
17265ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint);
17266int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint);
17267uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint);
17268long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint);
17269ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint);
17270char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint);
17271uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint);
17272short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint);
17273ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint);
17274int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint);
17275uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint);
17276long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint);
17277ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint);
17278char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint);
17279uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint);
17280short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint);
17281ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint);
17282int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint);
17283uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint);
17284long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint);
17285ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint);
17286char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint);
17287uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint);
17288short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint);
17289ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint);
17290int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint);
17291uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint);
17292long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint);
17293ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint);
17294char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint);
17295uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint);
17296short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint);
17297ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint);
17298int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint);
17299uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint);
17300long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint);
17301ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint);
17302
17303char __ovld __cnfn bitfield_extract_signed(char, uint, uint);
17304short __ovld __cnfn bitfield_extract_signed(short, uint, uint);
17305int __ovld __cnfn bitfield_extract_signed(int, uint, uint);
17306long __ovld __cnfn bitfield_extract_signed(long, uint, uint);
17307char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint);
17308short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint);
17309int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint);
17310long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint);
17311char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint);
17312short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint);
17313int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint);
17314long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint);
17315char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint);
17316short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint);
17317int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint);
17318long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint);
17319char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint);
17320short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint);
17321int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint);
17322long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint);
17323char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint);
17324short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint);
17325int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint);
17326long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint);
17327
17328char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint);
17329short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint);
17330int __ovld __cnfn bitfield_extract_signed(uint, uint, uint);
17331long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint);
17332char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint);
17333short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint);
17334int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint);
17335long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint);
17336char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint);
17337short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint);
17338int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint);
17339long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint);
17340char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint);
17341short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint);
17342int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint);
17343long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint);
17344char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint);
17345short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint);
17346int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint);
17347long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint);
17348char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint);
17349short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint);
17350int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint);
17351long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint);
17352
17353uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint);
17354ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint);
17355uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint);
17356ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint);
17357uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint);
17358ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint);
17359uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint);
17360ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint);
17361uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint);
17362ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint);
17363uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint);
17364ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint);
17365uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint);
17366ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint);
17367uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint);
17368ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint);
17369uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint);
17370ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint);
17371uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint);
17372ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint);
17373uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint);
17374ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint);
17375uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint);
17376ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint);
17377
17378uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint);
17379ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint);
17380uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint);
17381ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint);
17382uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint);
17383ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint);
17384uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint);
17385ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint);
17386uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint);
17387ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint);
17388uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint);
17389ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint);
17390uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint);
17391ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint);
17392uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint);
17393ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint);
17394uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint);
17395ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint);
17396uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint);
17397ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint);
17398uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint);
17399ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint);
17400uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint);
17401ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint);
17402
17403char __ovld __cnfn bit_reverse(char);
17404uchar __ovld __cnfn bit_reverse(uchar);
17405short __ovld __cnfn bit_reverse(short);
17406ushort __ovld __cnfn bit_reverse(ushort);
17407int __ovld __cnfn bit_reverse(int);
17408uint __ovld __cnfn bit_reverse(uint);
17409long __ovld __cnfn bit_reverse(long);
17410ulong __ovld __cnfn bit_reverse(ulong);
17411char2 __ovld __cnfn bit_reverse(char2);
17412uchar2 __ovld __cnfn bit_reverse(uchar2);
17413short2 __ovld __cnfn bit_reverse(short2);
17414ushort2 __ovld __cnfn bit_reverse(ushort2);
17415int2 __ovld __cnfn bit_reverse(int2);
17416uint2 __ovld __cnfn bit_reverse(uint2);
17417long2 __ovld __cnfn bit_reverse(long2);
17418ulong2 __ovld __cnfn bit_reverse(ulong2);
17419char3 __ovld __cnfn bit_reverse(char3);
17420uchar3 __ovld __cnfn bit_reverse(uchar3);
17421short3 __ovld __cnfn bit_reverse(short3);
17422ushort3 __ovld __cnfn bit_reverse(ushort3);
17423int3 __ovld __cnfn bit_reverse(int3);
17424uint3 __ovld __cnfn bit_reverse(uint3);
17425long3 __ovld __cnfn bit_reverse(long3);
17426ulong3 __ovld __cnfn bit_reverse(ulong3);
17427char4 __ovld __cnfn bit_reverse(char4);
17428uchar4 __ovld __cnfn bit_reverse(uchar4);
17429short4 __ovld __cnfn bit_reverse(short4);
17430ushort4 __ovld __cnfn bit_reverse(ushort4);
17431int4 __ovld __cnfn bit_reverse(int4);
17432uint4 __ovld __cnfn bit_reverse(uint4);
17433long4 __ovld __cnfn bit_reverse(long4);
17434ulong4 __ovld __cnfn bit_reverse(ulong4);
17435char8 __ovld __cnfn bit_reverse(char8);
17436uchar8 __ovld __cnfn bit_reverse(uchar8);
17437short8 __ovld __cnfn bit_reverse(short8);
17438ushort8 __ovld __cnfn bit_reverse(ushort8);
17439int8 __ovld __cnfn bit_reverse(int8);
17440uint8 __ovld __cnfn bit_reverse(uint8);
17441long8 __ovld __cnfn bit_reverse(long8);
17442ulong8 __ovld __cnfn bit_reverse(ulong8);
17443char16 __ovld __cnfn bit_reverse(char16);
17444uchar16 __ovld __cnfn bit_reverse(uchar16);
17445short16 __ovld __cnfn bit_reverse(short16);
17446ushort16 __ovld __cnfn bit_reverse(ushort16);
17447int16 __ovld __cnfn bit_reverse(int16);
17448uint16 __ovld __cnfn bit_reverse(uint16);
17449long16 __ovld __cnfn bit_reverse(long16);
17450ulong16 __ovld __cnfn bit_reverse(ulong16);
17451#endif // cl_khr_extended_bit_ops
17452
17453#if defined(__opencl_c_integer_dot_product_input_4x8bit)
17454uint __ovld __cnfn dot(uchar4, uchar4);
17455int __ovld __cnfn dot(char4, char4);
17456int __ovld __cnfn dot(uchar4, char4);
17457int __ovld __cnfn dot(char4, uchar4);
17458
17459uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint);
17460int __ovld __cnfn dot_acc_sat(char4, char4, int);
17461int __ovld __cnfn dot_acc_sat(uchar4, char4, int);
17462int __ovld __cnfn dot_acc_sat(char4, uchar4, int);
17463#endif // __opencl_c_integer_dot_product_input_4x8bit
17464
17465#if defined(__opencl_c_integer_dot_product_input_4x8bit_packed)
17466uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint);
17467int __ovld __cnfn dot_4x8packed_ss_int(uint, uint);
17468int __ovld __cnfn dot_4x8packed_us_int(uint, uint);
17469int __ovld __cnfn dot_4x8packed_su_int(uint, uint);
17470
17471uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint);
17472int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int);
17473int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int);
17474int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int);
17475#endif // __opencl_c_integer_dot_product_input_4x8bit_packed
17476
Logan Chien55afb0a2018-10-15 10:42:14 +080017477#if defined(cl_intel_subgroups)
17478// Intel-Specific Sub Group Functions
17479float __ovld __conv intel_sub_group_shuffle( float x, uint c );
17480float2 __ovld __conv intel_sub_group_shuffle( float2 x, uint c );
17481float3 __ovld __conv intel_sub_group_shuffle( float3 x, uint c );
17482float4 __ovld __conv intel_sub_group_shuffle( float4 x, uint c );
17483float8 __ovld __conv intel_sub_group_shuffle( float8 x, uint c );
17484float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c );
17485
17486int __ovld __conv intel_sub_group_shuffle( int x, uint c );
17487int2 __ovld __conv intel_sub_group_shuffle( int2 x, uint c );
17488int3 __ovld __conv intel_sub_group_shuffle( int3 x, uint c );
17489int4 __ovld __conv intel_sub_group_shuffle( int4 x, uint c );
17490int8 __ovld __conv intel_sub_group_shuffle( int8 x, uint c );
17491int16 __ovld __conv intel_sub_group_shuffle( int16 x, uint c );
17492
17493uint __ovld __conv intel_sub_group_shuffle( uint x, uint c );
17494uint2 __ovld __conv intel_sub_group_shuffle( uint2 x, uint c );
17495uint3 __ovld __conv intel_sub_group_shuffle( uint3 x, uint c );
17496uint4 __ovld __conv intel_sub_group_shuffle( uint4 x, uint c );
17497uint8 __ovld __conv intel_sub_group_shuffle( uint8 x, uint c );
17498uint16 __ovld __conv intel_sub_group_shuffle( uint16 x, uint c );
17499
17500long __ovld __conv intel_sub_group_shuffle( long x, uint c );
17501ulong __ovld __conv intel_sub_group_shuffle( ulong x, uint c );
17502
17503float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint c );
17504float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c );
17505float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c );
17506float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c );
17507float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c );
17508float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c );
17509
17510int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint c );
17511int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c );
17512int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c );
17513int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c );
17514int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c );
17515int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c );
17516
17517uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint c );
17518uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c );
17519uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c );
17520uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c );
17521uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c );
17522uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c );
17523
17524long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c );
17525ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c );
17526
17527float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint c );
17528float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c );
17529float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c );
17530float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c );
17531float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c );
17532float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c );
17533
17534int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint c );
17535int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c );
17536int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c );
17537int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c );
17538int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c );
17539int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c );
17540
17541uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint c );
17542uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c );
17543uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c );
17544uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c );
17545uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c );
17546uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c );
17547
17548long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c );
17549ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c );
17550
17551float __ovld __conv intel_sub_group_shuffle_xor( float x, uint c );
17552float2 __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c );
17553float3 __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c );
17554float4 __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c );
17555float8 __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c );
17556float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c );
17557
17558int __ovld __conv intel_sub_group_shuffle_xor( int x, uint c );
17559int2 __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c );
17560int3 __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c );
17561int4 __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c );
17562int8 __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c );
17563int16 __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c );
17564
17565uint __ovld __conv intel_sub_group_shuffle_xor( uint x, uint c );
17566uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c );
17567uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c );
17568uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c );
17569uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c );
17570uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
17571
17572long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
17573ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
17574
17575uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
17576uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
17577uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
17578uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
17579
Logan Chienbedbf4f2020-01-06 19:35:19 -080017580#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017581uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
17582uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
17583uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
17584uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017585#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017586
17587uint __ovld __conv intel_sub_group_block_read( const __global uint* p );
17588uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p );
17589uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p );
17590uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p );
17591
17592void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
17593void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
17594void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
17595void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
17596
Logan Chienbedbf4f2020-01-06 19:35:19 -080017597#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017598void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
17599void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
17600void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
17601void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017602#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017603
17604void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
17605void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
17606void __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data );
17607void __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data );
17608
17609#ifdef cl_khr_fp16
17610half __ovld __conv intel_sub_group_shuffle( half x, uint c );
17611half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c );
17612half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c );
17613half __ovld __conv intel_sub_group_shuffle_xor( half x, uint c );
17614#endif
17615
17616#if defined(cl_khr_fp64)
17617double __ovld __conv intel_sub_group_shuffle( double x, uint c );
17618double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c );
17619double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c );
17620double __ovld __conv intel_sub_group_shuffle_xor( double x, uint c );
17621#endif
17622
17623#endif //cl_intel_subgroups
17624
17625#if defined(cl_intel_subgroups_short)
17626short __ovld __conv intel_sub_group_broadcast( short x, uint sub_group_local_id );
17627short2 __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id );
17628short3 __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id );
17629short4 __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id );
17630short8 __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id );
17631
17632ushort __ovld __conv intel_sub_group_broadcast( ushort x, uint sub_group_local_id );
17633ushort2 __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id );
17634ushort3 __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id );
17635ushort4 __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id );
17636ushort8 __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id );
17637
17638short __ovld __conv intel_sub_group_shuffle( short x, uint c );
17639short2 __ovld __conv intel_sub_group_shuffle( short2 x, uint c );
17640short3 __ovld __conv intel_sub_group_shuffle( short3 x, uint c );
17641short4 __ovld __conv intel_sub_group_shuffle( short4 x, uint c );
17642short8 __ovld __conv intel_sub_group_shuffle( short8 x, uint c );
17643short16 __ovld __conv intel_sub_group_shuffle( short16 x, uint c);
17644
17645ushort __ovld __conv intel_sub_group_shuffle( ushort x, uint c );
17646ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 x, uint c );
17647ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 x, uint c );
17648ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 x, uint c );
17649ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 x, uint c );
17650ushort16 __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c );
17651
17652short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint c );
17653short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint c );
17654short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint c );
17655short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint c );
17656short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint c );
17657short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c );
17658
17659ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint c );
17660ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint c );
17661ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint c );
17662ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint c );
17663ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint c );
17664ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c );
17665
17666short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint c );
17667short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint c );
17668short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint c );
17669short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint c );
17670short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint c );
17671short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c );
17672
17673ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint c );
17674ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint c );
17675ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint c );
17676ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint c );
17677ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint c );
17678ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c );
17679
17680short __ovld __conv intel_sub_group_shuffle_xor( short x, uint c );
17681short2 __ovld __conv intel_sub_group_shuffle_xor( short2 x, uint c );
17682short3 __ovld __conv intel_sub_group_shuffle_xor( short3 x, uint c );
17683short4 __ovld __conv intel_sub_group_shuffle_xor( short4 x, uint c );
17684short8 __ovld __conv intel_sub_group_shuffle_xor( short8 x, uint c );
17685short16 __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c );
17686
17687ushort __ovld __conv intel_sub_group_shuffle_xor( ushort x, uint c );
17688ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 x, uint c );
17689ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 x, uint c );
17690ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 x, uint c );
17691ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 x, uint c );
17692ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c );
17693
17694short __ovld __conv intel_sub_group_reduce_add( short x );
17695ushort __ovld __conv intel_sub_group_reduce_add( ushort x );
17696short __ovld __conv intel_sub_group_reduce_min( short x );
17697ushort __ovld __conv intel_sub_group_reduce_min( ushort x );
17698short __ovld __conv intel_sub_group_reduce_max( short x );
17699ushort __ovld __conv intel_sub_group_reduce_max( ushort x );
17700
17701short __ovld __conv intel_sub_group_scan_exclusive_add( short x );
17702ushort __ovld __conv intel_sub_group_scan_exclusive_add( ushort x );
17703short __ovld __conv intel_sub_group_scan_exclusive_min( short x );
17704ushort __ovld __conv intel_sub_group_scan_exclusive_min( ushort x );
17705short __ovld __conv intel_sub_group_scan_exclusive_max( short x );
17706ushort __ovld __conv intel_sub_group_scan_exclusive_max( ushort x );
17707
17708short __ovld __conv intel_sub_group_scan_inclusive_add( short x );
17709ushort __ovld __conv intel_sub_group_scan_inclusive_add( ushort x );
17710short __ovld __conv intel_sub_group_scan_inclusive_min( short x );
17711ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x );
17712short __ovld __conv intel_sub_group_scan_inclusive_max( short x );
17713ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x );
17714
17715uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
17716uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
17717uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
17718uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
17719
Logan Chienbedbf4f2020-01-06 19:35:19 -080017720#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017721uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
17722uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
17723uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
17724uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
Logan Chienbedbf4f2020-01-06 19:35:19 -080017725#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017726
17727uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
17728uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
17729uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
17730uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
17731
17732void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
17733void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
17734void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
17735void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data );
17736
Logan Chienbedbf4f2020-01-06 19:35:19 -080017737#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017738void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
17739void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
17740void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
17741void __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 -080017742#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017743
17744void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
17745void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
17746void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
17747void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
17748
17749ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
17750ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
17751ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
17752ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
17753
Logan Chienbedbf4f2020-01-06 19:35:19 -080017754#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017755ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
17756ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
17757ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
17758ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017759#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017760
17761ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p );
17762ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
17763ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
17764ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
17765
17766void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data);
17767void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
17768void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
17769void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data);
17770
Logan Chienbedbf4f2020-01-06 19:35:19 -080017771#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017772void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data);
17773void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
17774void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
17775void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
Logan Chienbedbf4f2020-01-06 19:35:19 -080017776#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
Logan Chien55afb0a2018-10-15 10:42:14 +080017777
17778void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data );
17779void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
17780void __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data );
17781void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
17782#endif // cl_intel_subgroups_short
17783
Logan Chiendbcf4122019-03-21 10:50:25 +080017784#ifdef cl_intel_device_side_avc_motion_estimation
17785#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
17786
Logan Chiendbcf4122019-03-21 10:50:25 +080017787// MCE built-in functions
17788uchar __ovld
17789intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty(
17790 uchar slice_type, uchar qp);
17791ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty(
17792 uchar slice_type, uchar qp);
17793uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty(
17794 uchar slice_type, uchar qp);
17795uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty(
17796 uchar slice_type, uchar qp);
17797uint2 __ovld
17798intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table(
17799 uchar slice_type, uchar qp);
17800uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty(
17801 uchar slice_type, uchar qp);
17802
17803uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table();
17804uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table();
17805uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table();
17806uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty();
17807uchar __ovld
17808intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty();
17809
17810intel_sub_group_avc_mce_payload_t __ovld
17811intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty(
17812 uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload);
17813intel_sub_group_avc_mce_payload_t __ovld
17814intel_sub_group_avc_mce_set_inter_shape_penalty(
17815 ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload);
17816intel_sub_group_avc_mce_payload_t __ovld
17817intel_sub_group_avc_mce_set_inter_direction_penalty(
17818 uchar direction_cost, intel_sub_group_avc_mce_payload_t payload);
17819intel_sub_group_avc_mce_payload_t __ovld
17820intel_sub_group_avc_mce_set_motion_vector_cost_function(
17821 ulong packed_cost_center_delta, uint2 packed_cost_table,
17822 uchar cost_precision, intel_sub_group_avc_mce_payload_t payload);
17823intel_sub_group_avc_mce_payload_t __ovld
17824intel_sub_group_avc_mce_set_ac_only_haar(
17825 intel_sub_group_avc_mce_payload_t payload);
17826intel_sub_group_avc_mce_payload_t __ovld
17827intel_sub_group_avc_mce_set_source_interlaced_field_polarity(
17828 uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload);
17829intel_sub_group_avc_mce_payload_t __ovld
17830intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity(
17831 uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload);
17832intel_sub_group_avc_mce_payload_t __ovld
17833intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities(
17834 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
17835 intel_sub_group_avc_mce_payload_t payload);
17836
17837ulong __ovld intel_sub_group_avc_mce_get_motion_vectors(
17838 intel_sub_group_avc_mce_result_t result);
17839ushort __ovld intel_sub_group_avc_mce_get_inter_distortions(
17840 intel_sub_group_avc_mce_result_t result);
17841ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion(
17842 intel_sub_group_avc_mce_result_t result);
17843uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape(
17844 intel_sub_group_avc_mce_result_t result);
17845uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes(
17846 intel_sub_group_avc_mce_result_t result);
17847uchar __ovld intel_sub_group_avc_mce_get_inter_directions(
17848 intel_sub_group_avc_mce_result_t result);
17849uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count(
17850 intel_sub_group_avc_mce_result_t result);
17851uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids(
17852 intel_sub_group_avc_mce_result_t result);
17853uchar __ovld
17854intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities(
17855 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
17856 intel_sub_group_avc_mce_result_t result);
17857
17858// IME built-in functions
17859intel_sub_group_avc_ime_payload_t __ovld
17860intel_sub_group_avc_ime_initialize(
17861 ushort2 src_coord, uchar partition_mask, uchar sad_adjustment);
17862intel_sub_group_avc_ime_payload_t __ovld
17863intel_sub_group_avc_ime_set_single_reference(
17864 short2 ref_offset, uchar search_window_config,
17865 intel_sub_group_avc_ime_payload_t payload);
17866intel_sub_group_avc_ime_payload_t __ovld
17867intel_sub_group_avc_ime_set_dual_reference(
17868 short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config,
17869 intel_sub_group_avc_ime_payload_t payload);
17870intel_sub_group_avc_ime_payload_t __ovld
17871intel_sub_group_avc_ime_set_max_motion_vector_count(
17872 uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload);
17873intel_sub_group_avc_ime_payload_t __ovld
17874intel_sub_group_avc_ime_set_unidirectional_mix_disable(
17875 intel_sub_group_avc_ime_payload_t payload);
17876intel_sub_group_avc_ime_payload_t __ovld
17877intel_sub_group_avc_ime_set_early_search_termination_threshold(
17878 uchar threshold, intel_sub_group_avc_ime_payload_t payload);
17879intel_sub_group_avc_ime_payload_t __ovld
17880intel_sub_group_avc_ime_set_weighted_sad(
17881 uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload);
17882
17883__attribute__((deprecated("If you use the latest Intel driver, please use "
17884 "intel_sub_group_avc_ime_ref_window_size instead",
17885 "intel_sub_group_avc_ime_ref_window_size")))
17886ushort2 __ovld
17887intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref);
17888ushort2 __ovld intel_sub_group_avc_ime_ref_window_size(
17889 uchar search_window_config, char dual_ref);
17890short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
17891 short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
17892 ushort2 image_size);
17893
17894intel_sub_group_avc_ime_result_t __ovld
17895intel_sub_group_avc_ime_evaluate_with_single_reference(
17896 read_only image2d_t src_image, read_only image2d_t ref_image,
17897 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
17898intel_sub_group_avc_ime_result_t __ovld
17899intel_sub_group_avc_ime_evaluate_with_dual_reference(
17900 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17901 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17902 intel_sub_group_avc_ime_payload_t payload);
17903intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
17904intel_sub_group_avc_ime_evaluate_with_single_reference_streamout(
17905 read_only image2d_t src_image, read_only image2d_t ref_image,
17906 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
17907intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
17908intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout(
17909 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17910 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17911 intel_sub_group_avc_ime_payload_t payload);
17912intel_sub_group_avc_ime_result_t __ovld
17913intel_sub_group_avc_ime_evaluate_with_single_reference_streamin(
17914 read_only image2d_t src_image, read_only image2d_t ref_image,
17915 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
17916 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
17917intel_sub_group_avc_ime_result_t __ovld
17918intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin(
17919 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17920 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17921 intel_sub_group_avc_ime_payload_t payload,
17922 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
17923intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
17924intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout(
17925 read_only image2d_t src_image, read_only image2d_t ref_image,
17926 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
17927 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
17928intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
17929intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
17930 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
17931 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
17932 intel_sub_group_avc_ime_payload_t payload,
17933 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
17934
17935intel_sub_group_avc_ime_single_reference_streamin_t __ovld
17936intel_sub_group_avc_ime_get_single_reference_streamin(
17937 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
17938intel_sub_group_avc_ime_dual_reference_streamin_t __ovld
17939intel_sub_group_avc_ime_get_dual_reference_streamin(
17940 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
17941intel_sub_group_avc_ime_result_t __ovld
17942intel_sub_group_avc_ime_strip_single_reference_streamout(
17943 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
17944intel_sub_group_avc_ime_result_t __ovld
17945intel_sub_group_avc_ime_strip_dual_reference_streamout(
17946 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
17947
17948uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
17949 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
17950 uchar major_shape);
17951ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
17952 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
17953 uchar major_shape);
17954uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
17955 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
17956 uchar major_shape);
17957uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
17958 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
17959 uchar major_shape, uchar direction);
17960ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
17961 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
17962 uchar major_shape, uchar direction);
17963uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
17964 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
17965 uchar major_shape, uchar direction);
17966
17967uchar __ovld intel_sub_group_avc_ime_get_border_reached(
17968 uchar image_select, intel_sub_group_avc_ime_result_t result);
17969uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication(
17970 intel_sub_group_avc_ime_result_t result);
17971uchar __ovld
17972intel_sub_group_avc_ime_get_unidirectional_early_search_termination(
17973 intel_sub_group_avc_ime_result_t result);
17974uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector(
17975 intel_sub_group_avc_ime_result_t result);
17976ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion(
17977 intel_sub_group_avc_ime_result_t result);
17978
17979// REF built-in functions
17980intel_sub_group_avc_ref_payload_t __ovld
17981intel_sub_group_avc_fme_initialize(
17982 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
17983 uchar minor_shapes, uchar directions, uchar pixel_resolution,
17984 uchar sad_adjustment);
17985intel_sub_group_avc_ref_payload_t __ovld
17986intel_sub_group_avc_bme_initialize(
17987 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
17988 uchar minor_shapes, uchar directions, uchar pixel_resolution,
17989 uchar bidirectional_weight, uchar sad_adjustment);
17990
17991intel_sub_group_avc_ref_payload_t __ovld
17992intel_sub_group_avc_ref_set_bidirectional_mix_disable(
17993 intel_sub_group_avc_ref_payload_t payload);
17994intel_sub_group_avc_ref_payload_t __ovld
17995intel_sub_group_avc_ref_set_bilinear_filter_enable(
17996 intel_sub_group_avc_ref_payload_t payload);
17997
17998intel_sub_group_avc_ref_result_t __ovld
17999intel_sub_group_avc_ref_evaluate_with_single_reference(
18000 read_only image2d_t src_image, read_only image2d_t ref_image,
18001 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
18002intel_sub_group_avc_ref_result_t __ovld
18003intel_sub_group_avc_ref_evaluate_with_dual_reference(
18004 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
18005 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
18006 intel_sub_group_avc_ref_payload_t payload);
18007intel_sub_group_avc_ref_result_t __ovld
18008intel_sub_group_avc_ref_evaluate_with_multi_reference(
18009 read_only image2d_t src_image, uint packed_reference_ids,
18010 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
18011intel_sub_group_avc_ref_result_t __ovld
18012intel_sub_group_avc_ref_evaluate_with_multi_reference(
18013 read_only image2d_t src_image, uint packed_reference_ids,
18014 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
18015 intel_sub_group_avc_ref_payload_t payload);
18016
18017// SIC built-in functions
18018intel_sub_group_avc_sic_payload_t __ovld
18019intel_sub_group_avc_sic_initialize(
18020 ushort2 src_coord);
18021intel_sub_group_avc_sic_payload_t __ovld
18022intel_sub_group_avc_sic_configure_skc(
18023 uint skip_block_partition_type, uint skip_motion_vector_mask,
18024 ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment,
18025 intel_sub_group_avc_sic_payload_t payload);
18026intel_sub_group_avc_sic_payload_t __ovld
18027intel_sub_group_avc_sic_configure_ipe(
18028 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
18029 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
18030 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
18031 uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload);
18032intel_sub_group_avc_sic_payload_t __ovld
18033intel_sub_group_avc_sic_configure_ipe(
18034 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
18035 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
18036 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
18037 ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel,
18038 ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment,
18039 intel_sub_group_avc_sic_payload_t payload);
18040uint __ovld
18041intel_sub_group_avc_sic_get_motion_vector_mask(
18042 uint skip_block_partition_type, uchar direction);
18043
18044intel_sub_group_avc_sic_payload_t __ovld
18045intel_sub_group_avc_sic_set_intra_luma_shape_penalty(
18046 uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
18047intel_sub_group_avc_sic_payload_t __ovld
18048intel_sub_group_avc_sic_set_intra_luma_mode_cost_function(
18049 uchar luma_mode_penalty, uint luma_packed_neighbor_modes,
18050 uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload);
18051intel_sub_group_avc_sic_payload_t __ovld
18052intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function(
18053 uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload);
18054
18055intel_sub_group_avc_sic_payload_t __ovld
18056intel_sub_group_avc_sic_set_skc_bilinear_filter_enable(
18057 intel_sub_group_avc_sic_payload_t payload);
18058intel_sub_group_avc_sic_payload_t __ovld
18059intel_sub_group_avc_sic_set_skc_forward_transform_enable(
18060 ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload);
18061intel_sub_group_avc_sic_payload_t __ovld
18062intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
18063 uchar block_based_skip_type,
18064 intel_sub_group_avc_sic_payload_t payload);
18065
18066intel_sub_group_avc_sic_result_t __ovld
18067intel_sub_group_avc_sic_evaluate_ipe(
18068 read_only image2d_t src_image, sampler_t vme_media_sampler,
18069 intel_sub_group_avc_sic_payload_t payload);
18070intel_sub_group_avc_sic_result_t __ovld
18071intel_sub_group_avc_sic_evaluate_with_single_reference(
18072 read_only image2d_t src_image, read_only image2d_t ref_image,
18073 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
18074intel_sub_group_avc_sic_result_t __ovld
18075intel_sub_group_avc_sic_evaluate_with_dual_reference(
18076 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
18077 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
18078 intel_sub_group_avc_sic_payload_t payload);
18079intel_sub_group_avc_sic_result_t __ovld
18080intel_sub_group_avc_sic_evaluate_with_multi_reference(
18081 read_only image2d_t src_image, uint packed_reference_ids,
18082 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
18083intel_sub_group_avc_sic_result_t __ovld
18084intel_sub_group_avc_sic_evaluate_with_multi_reference(
18085 read_only image2d_t src_image, uint packed_reference_ids,
18086 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
18087 intel_sub_group_avc_sic_payload_t payload);
18088
18089uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
18090 intel_sub_group_avc_sic_result_t result);
18091ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion(
18092 intel_sub_group_avc_sic_result_t result);
18093ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion(
18094 intel_sub_group_avc_sic_result_t result);
18095ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes(
18096 intel_sub_group_avc_sic_result_t result);
18097uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode(
18098 intel_sub_group_avc_sic_result_t result);
18099uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold(
18100 intel_sub_group_avc_sic_result_t result);
18101ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold(
18102 intel_sub_group_avc_sic_result_t result);
18103ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads(
18104 intel_sub_group_avc_sic_result_t result);
18105
18106// Wrappers
18107intel_sub_group_avc_ime_payload_t __ovld
18108intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty(
18109 uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload);
18110intel_sub_group_avc_ref_payload_t __ovld
18111intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty(
18112 uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload);
18113intel_sub_group_avc_sic_payload_t __ovld
18114intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty(
18115 uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload);
18116
18117intel_sub_group_avc_ime_payload_t __ovld
18118intel_sub_group_avc_ime_set_inter_shape_penalty(
18119 ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload);
18120intel_sub_group_avc_ref_payload_t __ovld
18121intel_sub_group_avc_ref_set_inter_shape_penalty(
18122 ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload);
18123intel_sub_group_avc_sic_payload_t __ovld
18124intel_sub_group_avc_sic_set_inter_shape_penalty(
18125 ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
18126
18127intel_sub_group_avc_ime_payload_t __ovld
18128intel_sub_group_avc_ime_set_inter_direction_penalty(
18129 uchar direction_cost, intel_sub_group_avc_ime_payload_t payload);
18130intel_sub_group_avc_ref_payload_t __ovld
18131intel_sub_group_avc_ref_set_inter_direction_penalty(
18132 uchar direction_cost, intel_sub_group_avc_ref_payload_t payload);
18133intel_sub_group_avc_sic_payload_t __ovld
18134intel_sub_group_avc_sic_set_inter_direction_penalty(
18135 uchar direction_cost, intel_sub_group_avc_sic_payload_t payload);
18136
18137intel_sub_group_avc_ime_payload_t __ovld
18138intel_sub_group_avc_ime_set_motion_vector_cost_function(
18139 ulong packed_cost_center_delta, uint2 packed_cost_table,
18140 uchar cost_precision, intel_sub_group_avc_ime_payload_t payload);
18141intel_sub_group_avc_ref_payload_t __ovld
18142intel_sub_group_avc_ref_set_motion_vector_cost_function(
18143 ulong packed_cost_center_delta, uint2 packed_cost_table,
18144 uchar cost_precision, intel_sub_group_avc_ref_payload_t payload);
18145intel_sub_group_avc_sic_payload_t __ovld
18146intel_sub_group_avc_sic_set_motion_vector_cost_function(
18147 ulong packed_cost_center_delta, uint2 packed_cost_table,
18148 uchar cost_precision, intel_sub_group_avc_sic_payload_t payload);
18149
18150intel_sub_group_avc_ime_payload_t __ovld
18151intel_sub_group_avc_ime_set_source_interlaced_field_polarity(
18152 uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload);
18153intel_sub_group_avc_ref_payload_t __ovld
18154intel_sub_group_avc_ref_set_source_interlaced_field_polarity(
18155 uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload);
18156intel_sub_group_avc_sic_payload_t __ovld
18157intel_sub_group_avc_sic_set_source_interlaced_field_polarity(
18158 uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload);
18159
18160intel_sub_group_avc_ime_payload_t __ovld
18161intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity(
18162 uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload);
18163intel_sub_group_avc_ref_payload_t __ovld
18164intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity(
18165 uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload);
18166intel_sub_group_avc_sic_payload_t __ovld
18167intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity(
18168 uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload);
18169intel_sub_group_avc_ime_payload_t __ovld
18170intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities(
18171 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
18172 intel_sub_group_avc_ime_payload_t payload);
18173intel_sub_group_avc_ref_payload_t __ovld
18174intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities(
18175 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
18176 intel_sub_group_avc_ref_payload_t payload);
18177intel_sub_group_avc_sic_payload_t __ovld
18178intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities(
18179 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
18180 intel_sub_group_avc_sic_payload_t payload);
18181
18182intel_sub_group_avc_ime_payload_t __ovld
18183intel_sub_group_avc_ime_set_ac_only_haar(
18184 intel_sub_group_avc_ime_payload_t payload);
18185intel_sub_group_avc_ref_payload_t __ovld
18186intel_sub_group_avc_ref_set_ac_only_haar(
18187 intel_sub_group_avc_ref_payload_t payload);
18188intel_sub_group_avc_sic_payload_t __ovld
18189intel_sub_group_avc_sic_set_ac_only_haar(
18190 intel_sub_group_avc_sic_payload_t payload);
18191
18192ulong __ovld intel_sub_group_avc_ime_get_motion_vectors(
18193 intel_sub_group_avc_ime_result_t result);
18194ulong __ovld intel_sub_group_avc_ref_get_motion_vectors(
18195 intel_sub_group_avc_ref_result_t result);
18196
18197ushort __ovld intel_sub_group_avc_ime_get_inter_distortions(
18198 intel_sub_group_avc_ime_result_t result);
18199ushort __ovld intel_sub_group_avc_ref_get_inter_distortions(
18200 intel_sub_group_avc_ref_result_t result);
18201ushort __ovld intel_sub_group_avc_sic_get_inter_distortions(
18202 intel_sub_group_avc_sic_result_t result);
18203
18204ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion(
18205 intel_sub_group_avc_ime_result_t result);
18206ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion(
18207 intel_sub_group_avc_ref_result_t result);
18208
18209uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape(
18210 intel_sub_group_avc_ime_result_t result);
18211uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape(
18212 intel_sub_group_avc_ref_result_t result);
18213uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes(
18214 intel_sub_group_avc_ime_result_t result);
18215uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes(
18216 intel_sub_group_avc_ref_result_t result);
18217
18218uchar __ovld intel_sub_group_avc_ime_get_inter_directions(
18219 intel_sub_group_avc_ime_result_t result);
18220uchar __ovld intel_sub_group_avc_ref_get_inter_directions(
18221 intel_sub_group_avc_ref_result_t result);
18222
18223uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count(
18224 intel_sub_group_avc_ime_result_t result);
18225uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count(
18226 intel_sub_group_avc_ref_result_t result);
18227
18228uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids(
18229 intel_sub_group_avc_ime_result_t result);
18230uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids(
18231 intel_sub_group_avc_ref_result_t result);
18232
18233uchar __ovld
18234intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities(
18235 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
18236 intel_sub_group_avc_ime_result_t result);
18237uchar __ovld
18238intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities(
18239 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
18240 intel_sub_group_avc_ref_result_t result);
18241
18242// Type conversion functions
18243intel_sub_group_avc_mce_payload_t __ovld
18244intel_sub_group_avc_ime_convert_to_mce_payload(
18245 intel_sub_group_avc_ime_payload_t payload);
18246intel_sub_group_avc_ime_payload_t __ovld
18247intel_sub_group_avc_mce_convert_to_ime_payload(
18248 intel_sub_group_avc_mce_payload_t payload);
18249intel_sub_group_avc_mce_payload_t __ovld
18250intel_sub_group_avc_ref_convert_to_mce_payload(
18251 intel_sub_group_avc_ref_payload_t payload);
18252intel_sub_group_avc_ref_payload_t __ovld
18253intel_sub_group_avc_mce_convert_to_ref_payload(
18254 intel_sub_group_avc_mce_payload_t payload);
18255intel_sub_group_avc_mce_payload_t __ovld
18256intel_sub_group_avc_sic_convert_to_mce_payload(
18257 intel_sub_group_avc_sic_payload_t payload);
18258intel_sub_group_avc_sic_payload_t __ovld
18259intel_sub_group_avc_mce_convert_to_sic_payload(
18260 intel_sub_group_avc_mce_payload_t payload);
18261
18262intel_sub_group_avc_mce_result_t __ovld
18263intel_sub_group_avc_ime_convert_to_mce_result(
18264 intel_sub_group_avc_ime_result_t result);
18265intel_sub_group_avc_ime_result_t __ovld
18266intel_sub_group_avc_mce_convert_to_ime_result(
18267 intel_sub_group_avc_mce_result_t result);
18268intel_sub_group_avc_mce_result_t __ovld
18269intel_sub_group_avc_ref_convert_to_mce_result(
18270 intel_sub_group_avc_ref_result_t result);
18271intel_sub_group_avc_ref_result_t __ovld
18272intel_sub_group_avc_mce_convert_to_ref_result(
18273 intel_sub_group_avc_mce_result_t result);
18274intel_sub_group_avc_mce_result_t __ovld
18275intel_sub_group_avc_sic_convert_to_mce_result(
18276 intel_sub_group_avc_sic_result_t result);
18277intel_sub_group_avc_sic_result_t __ovld
18278intel_sub_group_avc_mce_convert_to_sic_result(
18279 intel_sub_group_avc_mce_result_t result);
18280#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end
18281#endif // cl_intel_device_side_avc_motion_estimation
18282
Logan Chien55afb0a2018-10-15 10:42:14 +080018283#ifdef cl_amd_media_ops
18284uint __ovld amd_bitalign(uint a, uint b, uint c);
18285uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
18286uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
18287uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
18288uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
18289uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
18290
18291uint __ovld amd_bytealign(uint a, uint b, uint c);
18292uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
18293uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
18294uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
18295uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
18296uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
18297
18298uint __ovld amd_lerp(uint a, uint b, uint c);
18299uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
18300uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
18301uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
18302uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
18303uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
18304
18305uint __ovld amd_pack(float4 v);
18306
18307uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
18308
18309uint __ovld amd_sadhi(uint a, uint b, uint c);
18310uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
18311uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
18312uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
18313uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
18314uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
18315
18316uint __ovld amd_sad(uint a, uint b, uint c);
18317uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
18318uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
18319uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
18320uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
18321uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
18322
18323float __ovld amd_unpack0(uint a);
18324float2 __ovld amd_unpack0(uint2 a);
18325float3 __ovld amd_unpack0(uint3 a);
18326float4 __ovld amd_unpack0(uint4 a);
18327float8 __ovld amd_unpack0(uint8 a);
18328float16 __ovld amd_unpack0(uint16 a);
18329
18330float __ovld amd_unpack1(uint a);
18331float2 __ovld amd_unpack1(uint2 a);
18332float3 __ovld amd_unpack1(uint3 a);
18333float4 __ovld amd_unpack1(uint4 a);
18334float8 __ovld amd_unpack1(uint8 a);
18335float16 __ovld amd_unpack1(uint16 a);
18336
18337float __ovld amd_unpack2(uint a);
18338float2 __ovld amd_unpack2(uint2 a);
18339float3 __ovld amd_unpack2(uint3 a);
18340float4 __ovld amd_unpack2(uint4 a);
18341float8 __ovld amd_unpack2(uint8 a);
18342float16 __ovld amd_unpack2(uint16 a);
18343
18344float __ovld amd_unpack3(uint a);
18345float2 __ovld amd_unpack3(uint2 a);
18346float3 __ovld amd_unpack3(uint3 a);
18347float4 __ovld amd_unpack3(uint4 a);
18348float8 __ovld amd_unpack3(uint8 a);
18349float16 __ovld amd_unpack3(uint16 a);
18350#endif // cl_amd_media_ops
18351
18352#ifdef cl_amd_media_ops2
18353int __ovld amd_bfe(int src0, uint src1, uint src2);
18354int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
18355int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
18356int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
18357int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
18358int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
18359
18360uint __ovld amd_bfe(uint src0, uint src1, uint src2);
18361uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
18362uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
18363uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
18364uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
18365uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
18366
18367uint __ovld amd_bfm(uint src0, uint src1);
18368uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
18369uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
18370uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
18371uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
18372uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
18373
18374float __ovld amd_max3(float src0, float src1, float src2);
18375float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
18376float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
18377float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
18378float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
18379float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
18380
18381int __ovld amd_max3(int src0, int src1, int src2);
18382int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
18383int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
18384int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
18385int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
18386int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
18387
18388uint __ovld amd_max3(uint src0, uint src1, uint src2);
18389uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
18390uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
18391uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
18392uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
18393uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
18394
18395float __ovld amd_median3(float src0, float src1, float src2);
18396float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
18397float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
18398float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
18399float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
18400float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
18401
18402int __ovld amd_median3(int src0, int src1, int src2);
18403int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
18404int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
18405int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
18406int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
18407int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
18408
18409uint __ovld amd_median3(uint src0, uint src1, uint src2);
18410uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
18411uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
18412uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
18413uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
18414uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
18415
18416float __ovld amd_min3(float src0, float src1, float src);
18417float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
18418float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
18419float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
18420float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
18421float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
18422
18423int __ovld amd_min3(int src0, int src1, int src2);
18424int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
18425int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
18426int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
18427int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
18428int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
18429
18430uint __ovld amd_min3(uint src0, uint src1, uint src2);
18431uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
18432uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
18433uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
18434uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
18435uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
18436
18437ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
18438ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
18439ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
18440ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
18441ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
18442ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
18443
18444ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
18445ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
18446ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
18447ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
18448ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
18449ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
18450
18451uint __ovld amd_msad(uint src0, uint src1, uint src2);
18452uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
18453uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
18454uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
18455uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
18456uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
18457
18458uint __ovld amd_sadd(uint src0, uint src1, uint src2);
18459uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
18460uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
18461uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
18462uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
18463uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
18464
18465uint __ovld amd_sadw(uint src0, uint src1, uint src2);
18466uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
18467uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
18468uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
18469uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
18470uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
18471#endif // cl_amd_media_ops2
18472
Logan Chiendf4f7662019-09-04 16:45:23 -070018473#if defined(cl_arm_integer_dot_product_int8)
Logan Chiendf4f7662019-09-04 16:45:23 -070018474uint __ovld arm_dot(uchar4 a, uchar4 b);
18475int __ovld arm_dot(char4 a, char4 b);
Logan Chiendf4f7662019-09-04 16:45:23 -070018476#endif // defined(cl_arm_integer_dot_product_int8)
18477
18478#if defined(cl_arm_integer_dot_product_accumulate_int8)
Logan Chiendf4f7662019-09-04 16:45:23 -070018479uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c);
18480int __ovld arm_dot_acc(char4 a, char4 b, int c);
Logan Chiendf4f7662019-09-04 16:45:23 -070018481#endif // defined(cl_arm_integer_dot_product_accumulate_int8)
18482
18483#if defined(cl_arm_integer_dot_product_accumulate_int16)
Logan Chiendf4f7662019-09-04 16:45:23 -070018484uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c);
18485int __ovld arm_dot_acc(short2 a, short2 b, int c);
Logan Chiendf4f7662019-09-04 16:45:23 -070018486#endif // defined(cl_arm_integer_dot_product_accumulate_int16)
18487
18488#if defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
Logan Chiendf4f7662019-09-04 16:45:23 -070018489uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c);
18490int __ovld arm_dot_acc_sat(char4 a, char4 b, int c);
Logan Chiendf4f7662019-09-04 16:45:23 -070018491#endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
18492
Logan Chien2833ffb2018-10-09 10:03:24 +080018493// Disable any extensions we may have enabled previously.
18494#pragma OPENCL EXTENSION all : disable
18495
18496#undef __cnfn
18497#undef __ovld
18498#endif //_OPENCL_H_