ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
opencl-c.h
Go to the documentation of this file.
1//===--- opencl-c.h - OpenCL C language builtin function header -----------===//
2//
3// 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
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef _OPENCL_H_
10#define _OPENCL_H_
11
12#include "opencl-c-base.h"
13
14#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15#ifndef cl_khr_depth_images
16#define cl_khr_depth_images
17#endif //cl_khr_depth_images
18#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
19
20#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
26#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
27#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
28#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
29#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
30
31#define __ovld __attribute__((overloadable))
32#define __conv __attribute__((convergent))
33
34// Optimizations
35#define __purefn __attribute__((pure))
36#define __cnfn __attribute__((const))
37
38
39// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
40
221
4175ushort16 __ovld __cnfn convert_ushort16(ushort16);
4632
4633// Conversions with double data type parameters or return value.
4634
4635#ifdef cl_khr_fp64
4636char __ovld __cnfn convert_char(double);
4637char __ovld __cnfn convert_char_rte(double);
4638char __ovld __cnfn convert_char_rtn(double);
4639char __ovld __cnfn convert_char_rtp(double);
4640char __ovld __cnfn convert_char_rtz(double);
4641char __ovld __cnfn convert_char_sat(double);
4646char2 __ovld __cnfn convert_char2(double2);
4647char2 __ovld __cnfn convert_char2_rte(double2);
4648char2 __ovld __cnfn convert_char2_rtn(double2);
4649char2 __ovld __cnfn convert_char2_rtp(double2);
4650char2 __ovld __cnfn convert_char2_rtz(double2);
4651char2 __ovld __cnfn convert_char2_sat(double2);
4652char2 __ovld __cnfn convert_char2_sat_rte(double2);
4653char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4654char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4655char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4656char3 __ovld __cnfn convert_char3(double3);
4657char3 __ovld __cnfn convert_char3_rte(double3);
4658char3 __ovld __cnfn convert_char3_rtn(double3);
4659char3 __ovld __cnfn convert_char3_rtp(double3);
4660char3 __ovld __cnfn convert_char3_rtz(double3);
4661char3 __ovld __cnfn convert_char3_sat(double3);
4662char3 __ovld __cnfn convert_char3_sat_rte(double3);
4663char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4664char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4665char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4666char4 __ovld __cnfn convert_char4(double4);
4667char4 __ovld __cnfn convert_char4_rte(double4);
4668char4 __ovld __cnfn convert_char4_rtn(double4);
4669char4 __ovld __cnfn convert_char4_rtp(double4);
4670char4 __ovld __cnfn convert_char4_rtz(double4);
4671char4 __ovld __cnfn convert_char4_sat(double4);
4672char4 __ovld __cnfn convert_char4_sat_rte(double4);
4673char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4674char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4675char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4676char8 __ovld __cnfn convert_char8(double8);
4677char8 __ovld __cnfn convert_char8_rte(double8);
4678char8 __ovld __cnfn convert_char8_rtn(double8);
4679char8 __ovld __cnfn convert_char8_rtp(double8);
4680char8 __ovld __cnfn convert_char8_rtz(double8);
4681char8 __ovld __cnfn convert_char8_sat(double8);
4682char8 __ovld __cnfn convert_char8_sat_rte(double8);
4683char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4684char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4685char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4686char16 __ovld __cnfn convert_char16(double16);
4687char16 __ovld __cnfn convert_char16_rte(double16);
4688char16 __ovld __cnfn convert_char16_rtn(double16);
4689char16 __ovld __cnfn convert_char16_rtp(double16);
4690char16 __ovld __cnfn convert_char16_rtz(double16);
4691char16 __ovld __cnfn convert_char16_sat(double16);
4692char16 __ovld __cnfn convert_char16_sat_rte(double16);
4693char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4694char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4695char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4696
4707uchar2 __ovld __cnfn convert_uchar2(double2);
4708uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4709uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4710uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4711uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4712uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4713uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4714uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4715uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4716uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4717uchar3 __ovld __cnfn convert_uchar3(double3);
4718uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4719uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4720uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4721uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4722uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4723uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4724uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4725uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4726uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4727uchar4 __ovld __cnfn convert_uchar4(double4);
4728uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4729uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4730uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4731uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4732uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4733uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4734uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4735uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4736uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4737uchar8 __ovld __cnfn convert_uchar8(double8);
4738uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4739uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4740uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4741uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4742uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4743uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4744uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4745uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4746uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4747uchar16 __ovld __cnfn convert_uchar16(double16);
4748uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4749uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4750uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4751uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4752uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4753uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4754uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4755uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4756uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
4757
4758short __ovld __cnfn convert_short(double);
4759short __ovld __cnfn convert_short_rte(double);
4760short __ovld __cnfn convert_short_rtn(double);
4761short __ovld __cnfn convert_short_rtp(double);
4762short __ovld __cnfn convert_short_rtz(double);
4763short __ovld __cnfn convert_short_sat(double);
4764short __ovld __cnfn convert_short_sat_rte(double);
4765short __ovld __cnfn convert_short_sat_rtn(double);
4766short __ovld __cnfn convert_short_sat_rtp(double);
4767short __ovld __cnfn convert_short_sat_rtz(double);
4768short2 __ovld __cnfn convert_short2(double2);
4769short2 __ovld __cnfn convert_short2_rte(double2);
4770short2 __ovld __cnfn convert_short2_rtn(double2);
4771short2 __ovld __cnfn convert_short2_rtp(double2);
4772short2 __ovld __cnfn convert_short2_rtz(double2);
4773short2 __ovld __cnfn convert_short2_sat(double2);
4774short2 __ovld __cnfn convert_short2_sat_rte(double2);
4775short2 __ovld __cnfn convert_short2_sat_rtn(double2);
4776short2 __ovld __cnfn convert_short2_sat_rtp(double2);
4777short2 __ovld __cnfn convert_short2_sat_rtz(double2);
4778short3 __ovld __cnfn convert_short3(double3);
4779short3 __ovld __cnfn convert_short3_rte(double3);
4780short3 __ovld __cnfn convert_short3_rtn(double3);
4781short3 __ovld __cnfn convert_short3_rtp(double3);
4782short3 __ovld __cnfn convert_short3_rtz(double3);
4783short3 __ovld __cnfn convert_short3_sat(double3);
4784short3 __ovld __cnfn convert_short3_sat_rte(double3);
4785short3 __ovld __cnfn convert_short3_sat_rtn(double3);
4786short3 __ovld __cnfn convert_short3_sat_rtp(double3);
4787short3 __ovld __cnfn convert_short3_sat_rtz(double3);
4788short4 __ovld __cnfn convert_short4(double4);
4789short4 __ovld __cnfn convert_short4_rte(double4);
4790short4 __ovld __cnfn convert_short4_rtn(double4);
4791short4 __ovld __cnfn convert_short4_rtp(double4);
4792short4 __ovld __cnfn convert_short4_rtz(double4);
4793short4 __ovld __cnfn convert_short4_sat(double4);
4794short4 __ovld __cnfn convert_short4_sat_rte(double4);
4795short4 __ovld __cnfn convert_short4_sat_rtn(double4);
4796short4 __ovld __cnfn convert_short4_sat_rtp(double4);
4797short4 __ovld __cnfn convert_short4_sat_rtz(double4);
4798short8 __ovld __cnfn convert_short8(double8);
4799short8 __ovld __cnfn convert_short8_rte(double8);
4800short8 __ovld __cnfn convert_short8_rtn(double8);
4801short8 __ovld __cnfn convert_short8_rtp(double8);
4802short8 __ovld __cnfn convert_short8_rtz(double8);
4803short8 __ovld __cnfn convert_short8_sat(double8);
4804short8 __ovld __cnfn convert_short8_sat_rte(double8);
4805short8 __ovld __cnfn convert_short8_sat_rtn(double8);
4806short8 __ovld __cnfn convert_short8_sat_rtp(double8);
4807short8 __ovld __cnfn convert_short8_sat_rtz(double8);
4808short16 __ovld __cnfn convert_short16(double16);
4809short16 __ovld __cnfn convert_short16_rte(double16);
4810short16 __ovld __cnfn convert_short16_rtn(double16);
4811short16 __ovld __cnfn convert_short16_rtp(double16);
4812short16 __ovld __cnfn convert_short16_rtz(double16);
4813short16 __ovld __cnfn convert_short16_sat(double16);
4814short16 __ovld __cnfn convert_short16_sat_rte(double16);
4815short16 __ovld __cnfn convert_short16_sat_rtn(double16);
4816short16 __ovld __cnfn convert_short16_sat_rtp(double16);
4817short16 __ovld __cnfn convert_short16_sat_rtz(double16);
4818
4829ushort2 __ovld __cnfn convert_ushort2(double2);
4830ushort2 __ovld __cnfn convert_ushort2_rte(double2);
4831ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
4832ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
4833ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
4834ushort2 __ovld __cnfn convert_ushort2_sat(double2);
4835ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
4836ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
4837ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
4838ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
4839ushort3 __ovld __cnfn convert_ushort3(double3);
4840ushort3 __ovld __cnfn convert_ushort3_rte(double3);
4841ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
4842ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
4843ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
4844ushort3 __ovld __cnfn convert_ushort3_sat(double3);
4845ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
4846ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
4847ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
4848ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
4849ushort4 __ovld __cnfn convert_ushort4(double4);
4850ushort4 __ovld __cnfn convert_ushort4_rte(double4);
4851ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
4852ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
4853ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
4854ushort4 __ovld __cnfn convert_ushort4_sat(double4);
4855ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
4856ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
4857ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
4858ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
4859ushort8 __ovld __cnfn convert_ushort8(double8);
4860ushort8 __ovld __cnfn convert_ushort8_rte(double8);
4861ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
4862ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
4863ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
4864ushort8 __ovld __cnfn convert_ushort8_sat(double8);
4865ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
4866ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
4867ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
4868ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
4869ushort16 __ovld __cnfn convert_ushort16(double16);
4870ushort16 __ovld __cnfn convert_ushort16_rte(double16);
4871ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
4872ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
4873ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
4874ushort16 __ovld __cnfn convert_ushort16_sat(double16);
4875ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
4876ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
4877ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
4878ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
4879
4880int __ovld __cnfn convert_int(double);
4881int __ovld __cnfn convert_int_rte(double);
4882int __ovld __cnfn convert_int_rtn(double);
4883int __ovld __cnfn convert_int_rtp(double);
4884int __ovld __cnfn convert_int_rtz(double);
4885int __ovld __cnfn convert_int_sat(double);
4890int2 __ovld __cnfn convert_int2(double2);
4891int2 __ovld __cnfn convert_int2_rte(double2);
4892int2 __ovld __cnfn convert_int2_rtn(double2);
4893int2 __ovld __cnfn convert_int2_rtp(double2);
4894int2 __ovld __cnfn convert_int2_rtz(double2);
4895int2 __ovld __cnfn convert_int2_sat(double2);
4896int2 __ovld __cnfn convert_int2_sat_rte(double2);
4897int2 __ovld __cnfn convert_int2_sat_rtn(double2);
4898int2 __ovld __cnfn convert_int2_sat_rtp(double2);
4899int2 __ovld __cnfn convert_int2_sat_rtz(double2);
4900int3 __ovld __cnfn convert_int3(double3);
4901int3 __ovld __cnfn convert_int3_rte(double3);
4902int3 __ovld __cnfn convert_int3_rtn(double3);
4903int3 __ovld __cnfn convert_int3_rtp(double3);
4904int3 __ovld __cnfn convert_int3_rtz(double3);
4905int3 __ovld __cnfn convert_int3_sat(double3);
4906int3 __ovld __cnfn convert_int3_sat_rte(double3);
4907int3 __ovld __cnfn convert_int3_sat_rtn(double3);
4908int3 __ovld __cnfn convert_int3_sat_rtp(double3);
4909int3 __ovld __cnfn convert_int3_sat_rtz(double3);
4910int4 __ovld __cnfn convert_int4(double4);
4911int4 __ovld __cnfn convert_int4_rte(double4);
4912int4 __ovld __cnfn convert_int4_rtn(double4);
4913int4 __ovld __cnfn convert_int4_rtp(double4);
4914int4 __ovld __cnfn convert_int4_rtz(double4);
4915int4 __ovld __cnfn convert_int4_sat(double4);
4916int4 __ovld __cnfn convert_int4_sat_rte(double4);
4917int4 __ovld __cnfn convert_int4_sat_rtn(double4);
4918int4 __ovld __cnfn convert_int4_sat_rtp(double4);
4919int4 __ovld __cnfn convert_int4_sat_rtz(double4);
4940
4951uint2 __ovld __cnfn convert_uint2(double2);
4952uint2 __ovld __cnfn convert_uint2_rte(double2);
4953uint2 __ovld __cnfn convert_uint2_rtn(double2);
4954uint2 __ovld __cnfn convert_uint2_rtp(double2);
4955uint2 __ovld __cnfn convert_uint2_rtz(double2);
4956uint2 __ovld __cnfn convert_uint2_sat(double2);
4957uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
4958uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
4959uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
4960uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
4961uint3 __ovld __cnfn convert_uint3(double3);
4962uint3 __ovld __cnfn convert_uint3_rte(double3);
4963uint3 __ovld __cnfn convert_uint3_rtn(double3);
4964uint3 __ovld __cnfn convert_uint3_rtp(double3);
4965uint3 __ovld __cnfn convert_uint3_rtz(double3);
4966uint3 __ovld __cnfn convert_uint3_sat(double3);
4967uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
4968uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
4969uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
4970uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
4971uint4 __ovld __cnfn convert_uint4(double4);
4972uint4 __ovld __cnfn convert_uint4_rte(double4);
4973uint4 __ovld __cnfn convert_uint4_rtn(double4);
4974uint4 __ovld __cnfn convert_uint4_rtp(double4);
4975uint4 __ovld __cnfn convert_uint4_rtz(double4);
4976uint4 __ovld __cnfn convert_uint4_sat(double4);
4977uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
4978uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
4979uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
4980uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
5001
5002long __ovld __cnfn convert_long(double);
5003long __ovld __cnfn convert_long_rte(double);
5004long __ovld __cnfn convert_long_rtn(double);
5005long __ovld __cnfn convert_long_rtp(double);
5006long __ovld __cnfn convert_long_rtz(double);
5007long __ovld __cnfn convert_long_sat(double);
5012long2 __ovld __cnfn convert_long2(double2);
5013long2 __ovld __cnfn convert_long2_rte(double2);
5014long2 __ovld __cnfn convert_long2_rtn(double2);
5015long2 __ovld __cnfn convert_long2_rtp(double2);
5016long2 __ovld __cnfn convert_long2_rtz(double2);
5017long2 __ovld __cnfn convert_long2_sat(double2);
5018long2 __ovld __cnfn convert_long2_sat_rte(double2);
5019long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5020long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5021long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5022long3 __ovld __cnfn convert_long3(double3);
5023long3 __ovld __cnfn convert_long3_rte(double3);
5024long3 __ovld __cnfn convert_long3_rtn(double3);
5025long3 __ovld __cnfn convert_long3_rtp(double3);
5026long3 __ovld __cnfn convert_long3_rtz(double3);
5027long3 __ovld __cnfn convert_long3_sat(double3);
5028long3 __ovld __cnfn convert_long3_sat_rte(double3);
5029long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5030long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5031long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5032long4 __ovld __cnfn convert_long4(double4);
5033long4 __ovld __cnfn convert_long4_rte(double4);
5034long4 __ovld __cnfn convert_long4_rtn(double4);
5035long4 __ovld __cnfn convert_long4_rtp(double4);
5036long4 __ovld __cnfn convert_long4_rtz(double4);
5037long4 __ovld __cnfn convert_long4_sat(double4);
5038long4 __ovld __cnfn convert_long4_sat_rte(double4);
5039long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5040long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5041long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5042long8 __ovld __cnfn convert_long8(double8);
5043long8 __ovld __cnfn convert_long8_rte(double8);
5044long8 __ovld __cnfn convert_long8_rtn(double8);
5045long8 __ovld __cnfn convert_long8_rtp(double8);
5046long8 __ovld __cnfn convert_long8_rtz(double8);
5047long8 __ovld __cnfn convert_long8_sat(double8);
5048long8 __ovld __cnfn convert_long8_sat_rte(double8);
5049long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5050long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5051long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5052long16 __ovld __cnfn convert_long16(double16);
5053long16 __ovld __cnfn convert_long16_rte(double16);
5054long16 __ovld __cnfn convert_long16_rtn(double16);
5055long16 __ovld __cnfn convert_long16_rtp(double16);
5056long16 __ovld __cnfn convert_long16_rtz(double16);
5057long16 __ovld __cnfn convert_long16_sat(double16);
5058long16 __ovld __cnfn convert_long16_sat_rte(double16);
5059long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5060long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5061long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5062
5073ulong2 __ovld __cnfn convert_ulong2(double2);
5074ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5075ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5076ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5077ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5078ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5079ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5080ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5081ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5082ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5083ulong3 __ovld __cnfn convert_ulong3(double3);
5084ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5085ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5086ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5087ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5088ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5089ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5090ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5091ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5092ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5093ulong4 __ovld __cnfn convert_ulong4(double4);
5094ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5095ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5096ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5097ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5098ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5099ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5100ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5101ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5102ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5103ulong8 __ovld __cnfn convert_ulong8(double8);
5104ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5105ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5106ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5107ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5108ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5109ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5110ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5111ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5112ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5113ulong16 __ovld __cnfn convert_ulong16(double16);
5114ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5115ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5116ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5117ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5118ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5119ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5120ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5121ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5122ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5123
5124float __ovld __cnfn convert_float(double);
5125float __ovld __cnfn convert_float_rte(double);
5126float __ovld __cnfn convert_float_rtn(double);
5127float __ovld __cnfn convert_float_rtp(double);
5128float __ovld __cnfn convert_float_rtz(double);
5129float2 __ovld __cnfn convert_float2(double2);
5130float2 __ovld __cnfn convert_float2_rte(double2);
5131float2 __ovld __cnfn convert_float2_rtn(double2);
5132float2 __ovld __cnfn convert_float2_rtp(double2);
5133float2 __ovld __cnfn convert_float2_rtz(double2);
5134float3 __ovld __cnfn convert_float3(double3);
5135float3 __ovld __cnfn convert_float3_rte(double3);
5136float3 __ovld __cnfn convert_float3_rtn(double3);
5137float3 __ovld __cnfn convert_float3_rtp(double3);
5138float3 __ovld __cnfn convert_float3_rtz(double3);
5139float4 __ovld __cnfn convert_float4(double4);
5140float4 __ovld __cnfn convert_float4_rte(double4);
5141float4 __ovld __cnfn convert_float4_rtn(double4);
5142float4 __ovld __cnfn convert_float4_rtp(double4);
5143float4 __ovld __cnfn convert_float4_rtz(double4);
5144float8 __ovld __cnfn convert_float8(double8);
5145float8 __ovld __cnfn convert_float8_rte(double8);
5146float8 __ovld __cnfn convert_float8_rtn(double8);
5147float8 __ovld __cnfn convert_float8_rtp(double8);
5148float8 __ovld __cnfn convert_float8_rtz(double8);
5149float16 __ovld __cnfn convert_float16(double16);
5150float16 __ovld __cnfn convert_float16_rte(double16);
5151float16 __ovld __cnfn convert_float16_rtn(double16);
5152float16 __ovld __cnfn convert_float16_rtp(double16);
5153float16 __ovld __cnfn convert_float16_rtz(double16);
5154
5155double __ovld __cnfn convert_double(char);
5156double __ovld __cnfn convert_double(double);
5157double __ovld __cnfn convert_double(float);
5158double __ovld __cnfn convert_double(int);
5159double __ovld __cnfn convert_double(long);
5160double __ovld __cnfn convert_double(short);
5161double __ovld __cnfn convert_double(uchar);
5162double __ovld __cnfn convert_double(uint);
5163double __ovld __cnfn convert_double(ulong);
5164double __ovld __cnfn convert_double(ushort);
5165double __ovld __cnfn convert_double_rte(char);
5166double __ovld __cnfn convert_double_rte(double);
5167double __ovld __cnfn convert_double_rte(float);
5168double __ovld __cnfn convert_double_rte(int);
5169double __ovld __cnfn convert_double_rte(long);
5170double __ovld __cnfn convert_double_rte(short);
5171double __ovld __cnfn convert_double_rte(uchar);
5172double __ovld __cnfn convert_double_rte(uint);
5173double __ovld __cnfn convert_double_rte(ulong);
5174double __ovld __cnfn convert_double_rte(ushort);
5175double __ovld __cnfn convert_double_rtn(char);
5176double __ovld __cnfn convert_double_rtn(double);
5177double __ovld __cnfn convert_double_rtn(float);
5178double __ovld __cnfn convert_double_rtn(int);
5179double __ovld __cnfn convert_double_rtn(long);
5180double __ovld __cnfn convert_double_rtn(short);
5181double __ovld __cnfn convert_double_rtn(uchar);
5182double __ovld __cnfn convert_double_rtn(uint);
5183double __ovld __cnfn convert_double_rtn(ulong);
5184double __ovld __cnfn convert_double_rtn(ushort);
5185double __ovld __cnfn convert_double_rtp(char);
5186double __ovld __cnfn convert_double_rtp(double);
5187double __ovld __cnfn convert_double_rtp(float);
5188double __ovld __cnfn convert_double_rtp(int);
5189double __ovld __cnfn convert_double_rtp(long);
5190double __ovld __cnfn convert_double_rtp(short);
5191double __ovld __cnfn convert_double_rtp(uchar);
5192double __ovld __cnfn convert_double_rtp(uint);
5193double __ovld __cnfn convert_double_rtp(ulong);
5194double __ovld __cnfn convert_double_rtp(ushort);
5195double __ovld __cnfn convert_double_rtz(char);
5196double __ovld __cnfn convert_double_rtz(double);
5197double __ovld __cnfn convert_double_rtz(float);
5198double __ovld __cnfn convert_double_rtz(int);
5199double __ovld __cnfn convert_double_rtz(long);
5200double __ovld __cnfn convert_double_rtz(short);
5201double __ovld __cnfn convert_double_rtz(uchar);
5202double __ovld __cnfn convert_double_rtz(uint);
5203double __ovld __cnfn convert_double_rtz(ulong);
5204double __ovld __cnfn convert_double_rtz(ushort);
5205double2 __ovld __cnfn convert_double2(char2);
5206double2 __ovld __cnfn convert_double2(double2);
5207double2 __ovld __cnfn convert_double2(float2);
5208double2 __ovld __cnfn convert_double2(int2);
5209double2 __ovld __cnfn convert_double2(long2);
5210double2 __ovld __cnfn convert_double2(short2);
5211double2 __ovld __cnfn convert_double2(uchar2);
5212double2 __ovld __cnfn convert_double2(uint2);
5213double2 __ovld __cnfn convert_double2(ulong2);
5214double2 __ovld __cnfn convert_double2(ushort2);
5215double2 __ovld __cnfn convert_double2_rte(char2);
5216double2 __ovld __cnfn convert_double2_rte(double2);
5217double2 __ovld __cnfn convert_double2_rte(float2);
5218double2 __ovld __cnfn convert_double2_rte(int2);
5219double2 __ovld __cnfn convert_double2_rte(long2);
5220double2 __ovld __cnfn convert_double2_rte(short2);
5221double2 __ovld __cnfn convert_double2_rte(uchar2);
5222double2 __ovld __cnfn convert_double2_rte(uint2);
5223double2 __ovld __cnfn convert_double2_rte(ulong2);
5224double2 __ovld __cnfn convert_double2_rte(ushort2);
5225double2 __ovld __cnfn convert_double2_rtn(char2);
5226double2 __ovld __cnfn convert_double2_rtn(double2);
5227double2 __ovld __cnfn convert_double2_rtn(float2);
5228double2 __ovld __cnfn convert_double2_rtn(int2);
5229double2 __ovld __cnfn convert_double2_rtn(long2);
5230double2 __ovld __cnfn convert_double2_rtn(short2);
5231double2 __ovld __cnfn convert_double2_rtn(uchar2);
5232double2 __ovld __cnfn convert_double2_rtn(uint2);
5233double2 __ovld __cnfn convert_double2_rtn(ulong2);
5234double2 __ovld __cnfn convert_double2_rtn(ushort2);
5235double2 __ovld __cnfn convert_double2_rtp(char2);
5236double2 __ovld __cnfn convert_double2_rtp(double2);
5237double2 __ovld __cnfn convert_double2_rtp(float2);
5238double2 __ovld __cnfn convert_double2_rtp(int2);
5239double2 __ovld __cnfn convert_double2_rtp(long2);
5240double2 __ovld __cnfn convert_double2_rtp(short2);
5241double2 __ovld __cnfn convert_double2_rtp(uchar2);
5242double2 __ovld __cnfn convert_double2_rtp(uint2);
5243double2 __ovld __cnfn convert_double2_rtp(ulong2);
5244double2 __ovld __cnfn convert_double2_rtp(ushort2);
5245double2 __ovld __cnfn convert_double2_rtz(char2);
5246double2 __ovld __cnfn convert_double2_rtz(double2);
5247double2 __ovld __cnfn convert_double2_rtz(float2);
5248double2 __ovld __cnfn convert_double2_rtz(int2);
5249double2 __ovld __cnfn convert_double2_rtz(long2);
5250double2 __ovld __cnfn convert_double2_rtz(short2);
5251double2 __ovld __cnfn convert_double2_rtz(uchar2);
5252double2 __ovld __cnfn convert_double2_rtz(uint2);
5253double2 __ovld __cnfn convert_double2_rtz(ulong2);
5254double2 __ovld __cnfn convert_double2_rtz(ushort2);
5255double3 __ovld __cnfn convert_double3(char3);
5256double3 __ovld __cnfn convert_double3(double3);
5257double3 __ovld __cnfn convert_double3(float3);
5258double3 __ovld __cnfn convert_double3(int3);
5259double3 __ovld __cnfn convert_double3(long3);
5260double3 __ovld __cnfn convert_double3(short3);
5261double3 __ovld __cnfn convert_double3(uchar3);
5262double3 __ovld __cnfn convert_double3(uint3);
5263double3 __ovld __cnfn convert_double3(ulong3);
5264double3 __ovld __cnfn convert_double3(ushort3);
5265double3 __ovld __cnfn convert_double3_rte(char3);
5266double3 __ovld __cnfn convert_double3_rte(double3);
5267double3 __ovld __cnfn convert_double3_rte(float3);
5268double3 __ovld __cnfn convert_double3_rte(int3);
5269double3 __ovld __cnfn convert_double3_rte(long3);
5270double3 __ovld __cnfn convert_double3_rte(short3);
5271double3 __ovld __cnfn convert_double3_rte(uchar3);
5272double3 __ovld __cnfn convert_double3_rte(uint3);
5273double3 __ovld __cnfn convert_double3_rte(ulong3);
5274double3 __ovld __cnfn convert_double3_rte(ushort3);
5275double3 __ovld __cnfn convert_double3_rtn(char3);
5276double3 __ovld __cnfn convert_double3_rtn(double3);
5277double3 __ovld __cnfn convert_double3_rtn(float3);
5278double3 __ovld __cnfn convert_double3_rtn(int3);
5279double3 __ovld __cnfn convert_double3_rtn(long3);
5280double3 __ovld __cnfn convert_double3_rtn(short3);
5281double3 __ovld __cnfn convert_double3_rtn(uchar3);
5282double3 __ovld __cnfn convert_double3_rtn(uint3);
5283double3 __ovld __cnfn convert_double3_rtn(ulong3);
5284double3 __ovld __cnfn convert_double3_rtn(ushort3);
5285double3 __ovld __cnfn convert_double3_rtp(char3);
5286double3 __ovld __cnfn convert_double3_rtp(double3);
5287double3 __ovld __cnfn convert_double3_rtp(float3);
5288double3 __ovld __cnfn convert_double3_rtp(int3);
5289double3 __ovld __cnfn convert_double3_rtp(long3);
5290double3 __ovld __cnfn convert_double3_rtp(short3);
5291double3 __ovld __cnfn convert_double3_rtp(uchar3);
5292double3 __ovld __cnfn convert_double3_rtp(uint3);
5293double3 __ovld __cnfn convert_double3_rtp(ulong3);
5294double3 __ovld __cnfn convert_double3_rtp(ushort3);
5295double3 __ovld __cnfn convert_double3_rtz(char3);
5296double3 __ovld __cnfn convert_double3_rtz(double3);
5297double3 __ovld __cnfn convert_double3_rtz(float3);
5298double3 __ovld __cnfn convert_double3_rtz(int3);
5299double3 __ovld __cnfn convert_double3_rtz(long3);
5300double3 __ovld __cnfn convert_double3_rtz(short3);
5301double3 __ovld __cnfn convert_double3_rtz(uchar3);
5302double3 __ovld __cnfn convert_double3_rtz(uint3);
5303double3 __ovld __cnfn convert_double3_rtz(ulong3);
5304double3 __ovld __cnfn convert_double3_rtz(ushort3);
5305double4 __ovld __cnfn convert_double4(char4);
5306double4 __ovld __cnfn convert_double4(double4);
5307double4 __ovld __cnfn convert_double4(float4);
5308double4 __ovld __cnfn convert_double4(int4);
5309double4 __ovld __cnfn convert_double4(long4);
5310double4 __ovld __cnfn convert_double4(short4);
5311double4 __ovld __cnfn convert_double4(uchar4);
5312double4 __ovld __cnfn convert_double4(uint4);
5313double4 __ovld __cnfn convert_double4(ulong4);
5314double4 __ovld __cnfn convert_double4(ushort4);
5315double4 __ovld __cnfn convert_double4_rte(char4);
5316double4 __ovld __cnfn convert_double4_rte(double4);
5317double4 __ovld __cnfn convert_double4_rte(float4);
5318double4 __ovld __cnfn convert_double4_rte(int4);
5319double4 __ovld __cnfn convert_double4_rte(long4);
5320double4 __ovld __cnfn convert_double4_rte(short4);
5321double4 __ovld __cnfn convert_double4_rte(uchar4);
5322double4 __ovld __cnfn convert_double4_rte(uint4);
5323double4 __ovld __cnfn convert_double4_rte(ulong4);
5324double4 __ovld __cnfn convert_double4_rte(ushort4);
5325double4 __ovld __cnfn convert_double4_rtn(char4);
5326double4 __ovld __cnfn convert_double4_rtn(double4);
5327double4 __ovld __cnfn convert_double4_rtn(float4);
5328double4 __ovld __cnfn convert_double4_rtn(int4);
5329double4 __ovld __cnfn convert_double4_rtn(long4);
5330double4 __ovld __cnfn convert_double4_rtn(short4);
5331double4 __ovld __cnfn convert_double4_rtn(uchar4);
5332double4 __ovld __cnfn convert_double4_rtn(uint4);
5333double4 __ovld __cnfn convert_double4_rtn(ulong4);
5334double4 __ovld __cnfn convert_double4_rtn(ushort4);
5335double4 __ovld __cnfn convert_double4_rtp(char4);
5336double4 __ovld __cnfn convert_double4_rtp(double4);
5337double4 __ovld __cnfn convert_double4_rtp(float4);
5338double4 __ovld __cnfn convert_double4_rtp(int4);
5339double4 __ovld __cnfn convert_double4_rtp(long4);
5340double4 __ovld __cnfn convert_double4_rtp(short4);
5341double4 __ovld __cnfn convert_double4_rtp(uchar4);
5342double4 __ovld __cnfn convert_double4_rtp(uint4);
5343double4 __ovld __cnfn convert_double4_rtp(ulong4);
5344double4 __ovld __cnfn convert_double4_rtp(ushort4);
5345double4 __ovld __cnfn convert_double4_rtz(char4);
5346double4 __ovld __cnfn convert_double4_rtz(double4);
5347double4 __ovld __cnfn convert_double4_rtz(float4);
5348double4 __ovld __cnfn convert_double4_rtz(int4);
5349double4 __ovld __cnfn convert_double4_rtz(long4);
5350double4 __ovld __cnfn convert_double4_rtz(short4);
5351double4 __ovld __cnfn convert_double4_rtz(uchar4);
5352double4 __ovld __cnfn convert_double4_rtz(uint4);
5353double4 __ovld __cnfn convert_double4_rtz(ulong4);
5354double4 __ovld __cnfn convert_double4_rtz(ushort4);
5355double8 __ovld __cnfn convert_double8(char8);
5356double8 __ovld __cnfn convert_double8(double8);
5357double8 __ovld __cnfn convert_double8(float8);
5358double8 __ovld __cnfn convert_double8(int8);
5359double8 __ovld __cnfn convert_double8(long8);
5360double8 __ovld __cnfn convert_double8(short8);
5361double8 __ovld __cnfn convert_double8(uchar8);
5362double8 __ovld __cnfn convert_double8(uint8);
5363double8 __ovld __cnfn convert_double8(ulong8);
5364double8 __ovld __cnfn convert_double8(ushort8);
5365double8 __ovld __cnfn convert_double8_rte(char8);
5366double8 __ovld __cnfn convert_double8_rte(double8);
5367double8 __ovld __cnfn convert_double8_rte(float8);
5368double8 __ovld __cnfn convert_double8_rte(int8);
5369double8 __ovld __cnfn convert_double8_rte(long8);
5370double8 __ovld __cnfn convert_double8_rte(short8);
5371double8 __ovld __cnfn convert_double8_rte(uchar8);
5372double8 __ovld __cnfn convert_double8_rte(uint8);
5373double8 __ovld __cnfn convert_double8_rte(ulong8);
5374double8 __ovld __cnfn convert_double8_rte(ushort8);
5375double8 __ovld __cnfn convert_double8_rtn(char8);
5376double8 __ovld __cnfn convert_double8_rtn(double8);
5377double8 __ovld __cnfn convert_double8_rtn(float8);
5378double8 __ovld __cnfn convert_double8_rtn(int8);
5379double8 __ovld __cnfn convert_double8_rtn(long8);
5380double8 __ovld __cnfn convert_double8_rtn(short8);
5381double8 __ovld __cnfn convert_double8_rtn(uchar8);
5382double8 __ovld __cnfn convert_double8_rtn(uint8);
5383double8 __ovld __cnfn convert_double8_rtn(ulong8);
5384double8 __ovld __cnfn convert_double8_rtn(ushort8);
5385double8 __ovld __cnfn convert_double8_rtp(char8);
5386double8 __ovld __cnfn convert_double8_rtp(double8);
5387double8 __ovld __cnfn convert_double8_rtp(float8);
5388double8 __ovld __cnfn convert_double8_rtp(int8);
5389double8 __ovld __cnfn convert_double8_rtp(long8);
5390double8 __ovld __cnfn convert_double8_rtp(short8);
5391double8 __ovld __cnfn convert_double8_rtp(uchar8);
5392double8 __ovld __cnfn convert_double8_rtp(uint8);
5393double8 __ovld __cnfn convert_double8_rtp(ulong8);
5394double8 __ovld __cnfn convert_double8_rtp(ushort8);
5395double8 __ovld __cnfn convert_double8_rtz(char8);
5396double8 __ovld __cnfn convert_double8_rtz(double8);
5397double8 __ovld __cnfn convert_double8_rtz(float8);
5398double8 __ovld __cnfn convert_double8_rtz(int8);
5399double8 __ovld __cnfn convert_double8_rtz(long8);
5400double8 __ovld __cnfn convert_double8_rtz(short8);
5401double8 __ovld __cnfn convert_double8_rtz(uchar8);
5402double8 __ovld __cnfn convert_double8_rtz(uint8);
5403double8 __ovld __cnfn convert_double8_rtz(ulong8);
5404double8 __ovld __cnfn convert_double8_rtz(ushort8);
5405double16 __ovld __cnfn convert_double16(char16);
5406double16 __ovld __cnfn convert_double16(double16);
5407double16 __ovld __cnfn convert_double16(float16);
5408double16 __ovld __cnfn convert_double16(int16);
5409double16 __ovld __cnfn convert_double16(long16);
5410double16 __ovld __cnfn convert_double16(short16);
5411double16 __ovld __cnfn convert_double16(uchar16);
5412double16 __ovld __cnfn convert_double16(uint16);
5413double16 __ovld __cnfn convert_double16(ulong16);
5414double16 __ovld __cnfn convert_double16(ushort16);
5415double16 __ovld __cnfn convert_double16_rte(char16);
5416double16 __ovld __cnfn convert_double16_rte(double16);
5417double16 __ovld __cnfn convert_double16_rte(float16);
5418double16 __ovld __cnfn convert_double16_rte(int16);
5419double16 __ovld __cnfn convert_double16_rte(long16);
5420double16 __ovld __cnfn convert_double16_rte(short16);
5421double16 __ovld __cnfn convert_double16_rte(uchar16);
5422double16 __ovld __cnfn convert_double16_rte(uint16);
5423double16 __ovld __cnfn convert_double16_rte(ulong16);
5424double16 __ovld __cnfn convert_double16_rte(ushort16);
5425double16 __ovld __cnfn convert_double16_rtn(char16);
5426double16 __ovld __cnfn convert_double16_rtn(double16);
5427double16 __ovld __cnfn convert_double16_rtn(float16);
5428double16 __ovld __cnfn convert_double16_rtn(int16);
5429double16 __ovld __cnfn convert_double16_rtn(long16);
5430double16 __ovld __cnfn convert_double16_rtn(short16);
5431double16 __ovld __cnfn convert_double16_rtn(uchar16);
5432double16 __ovld __cnfn convert_double16_rtn(uint16);
5433double16 __ovld __cnfn convert_double16_rtn(ulong16);
5434double16 __ovld __cnfn convert_double16_rtn(ushort16);
5435double16 __ovld __cnfn convert_double16_rtp(char16);
5436double16 __ovld __cnfn convert_double16_rtp(double16);
5437double16 __ovld __cnfn convert_double16_rtp(float16);
5438double16 __ovld __cnfn convert_double16_rtp(int16);
5439double16 __ovld __cnfn convert_double16_rtp(long16);
5440double16 __ovld __cnfn convert_double16_rtp(short16);
5441double16 __ovld __cnfn convert_double16_rtp(uchar16);
5442double16 __ovld __cnfn convert_double16_rtp(uint16);
5443double16 __ovld __cnfn convert_double16_rtp(ulong16);
5444double16 __ovld __cnfn convert_double16_rtp(ushort16);
5445double16 __ovld __cnfn convert_double16_rtz(char16);
5446double16 __ovld __cnfn convert_double16_rtz(double16);
5447double16 __ovld __cnfn convert_double16_rtz(float16);
5448double16 __ovld __cnfn convert_double16_rtz(int16);
5449double16 __ovld __cnfn convert_double16_rtz(long16);
5450double16 __ovld __cnfn convert_double16_rtz(short16);
5451double16 __ovld __cnfn convert_double16_rtz(uchar16);
5452double16 __ovld __cnfn convert_double16_rtz(uint16);
5453double16 __ovld __cnfn convert_double16_rtz(ulong16);
5454double16 __ovld __cnfn convert_double16_rtz(ushort16);
5455#endif //cl_khr_fp64
5456
5457#ifdef cl_khr_fp16
5458// Convert half types to non-double types.
5469uchar2 __ovld __cnfn convert_uchar2(half2);
5470uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5471uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5472uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5473uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5474uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5479uchar3 __ovld __cnfn convert_uchar3(half3);
5480uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5481uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5482uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5483uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5484uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5489uchar4 __ovld __cnfn convert_uchar4(half4);
5490uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5491uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5492uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5493uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5494uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5499uchar8 __ovld __cnfn convert_uchar8(half8);
5500uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5501uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5502uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5503uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5504uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5509uchar16 __ovld __cnfn convert_uchar16(half16);
5510uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5511uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5512uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5513uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5514uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5515uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5516uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5517uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5518uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5529ushort2 __ovld __cnfn convert_ushort2(half2);
5530ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5531ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5532ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5533ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5534ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5539ushort3 __ovld __cnfn convert_ushort3(half3);
5540ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5541ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5542ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5543ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5544ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5549ushort4 __ovld __cnfn convert_ushort4(half4);
5550ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5551ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5552ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5553ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5554ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5559ushort8 __ovld __cnfn convert_ushort8(half8);
5560ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5561ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5562ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5563ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5564ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5569ushort16 __ovld __cnfn convert_ushort16(half16);
5570ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5571ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5572ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5573ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5574ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5575ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5576ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5577ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5578ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5589uint2 __ovld __cnfn convert_uint2(half2);
5590uint2 __ovld __cnfn convert_uint2_rte(half2);
5591uint2 __ovld __cnfn convert_uint2_rtp(half2);
5592uint2 __ovld __cnfn convert_uint2_rtn(half2);
5593uint2 __ovld __cnfn convert_uint2_rtz(half2);
5594uint2 __ovld __cnfn convert_uint2_sat(half2);
5599uint3 __ovld __cnfn convert_uint3(half3);
5600uint3 __ovld __cnfn convert_uint3_rte(half3);
5601uint3 __ovld __cnfn convert_uint3_rtp(half3);
5602uint3 __ovld __cnfn convert_uint3_rtn(half3);
5603uint3 __ovld __cnfn convert_uint3_rtz(half3);
5604uint3 __ovld __cnfn convert_uint3_sat(half3);
5609uint4 __ovld __cnfn convert_uint4(half4);
5610uint4 __ovld __cnfn convert_uint4_rte(half4);
5611uint4 __ovld __cnfn convert_uint4_rtp(half4);
5612uint4 __ovld __cnfn convert_uint4_rtn(half4);
5613uint4 __ovld __cnfn convert_uint4_rtz(half4);
5614uint4 __ovld __cnfn convert_uint4_sat(half4);
5649ulong2 __ovld __cnfn convert_ulong2(half2);
5650ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5651ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5652ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5653ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5654ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5659ulong3 __ovld __cnfn convert_ulong3(half3);
5660ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5661ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5662ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5663ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5664ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5669ulong4 __ovld __cnfn convert_ulong4(half4);
5670ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5671ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5672ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5673ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5674ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5679ulong8 __ovld __cnfn convert_ulong8(half8);
5680ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5681ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5682ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5683ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5684ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5689ulong16 __ovld __cnfn convert_ulong16(half16);
5690ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5691ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5692ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5693ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5694ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5695ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5696ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5697ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5698ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5699char __ovld __cnfn convert_char(half);
5700char __ovld __cnfn convert_char_rte(half);
5701char __ovld __cnfn convert_char_rtp(half);
5702char __ovld __cnfn convert_char_rtn(half);
5703char __ovld __cnfn convert_char_rtz(half);
5704char __ovld __cnfn convert_char_sat(half);
5709char2 __ovld __cnfn convert_char2(half2);
5710char2 __ovld __cnfn convert_char2_rte(half2);
5711char2 __ovld __cnfn convert_char2_rtp(half2);
5712char2 __ovld __cnfn convert_char2_rtn(half2);
5713char2 __ovld __cnfn convert_char2_rtz(half2);
5714char2 __ovld __cnfn convert_char2_sat(half2);
5719char3 __ovld __cnfn convert_char3(half3);
5720char3 __ovld __cnfn convert_char3_rte(half3);
5721char3 __ovld __cnfn convert_char3_rtp(half3);
5722char3 __ovld __cnfn convert_char3_rtn(half3);
5723char3 __ovld __cnfn convert_char3_rtz(half3);
5724char3 __ovld __cnfn convert_char3_sat(half3);
5729char4 __ovld __cnfn convert_char4(half4);
5730char4 __ovld __cnfn convert_char4_rte(half4);
5731char4 __ovld __cnfn convert_char4_rtp(half4);
5732char4 __ovld __cnfn convert_char4_rtn(half4);
5733char4 __ovld __cnfn convert_char4_rtz(half4);
5734char4 __ovld __cnfn convert_char4_sat(half4);
5739char8 __ovld __cnfn convert_char8(half8);
5740char8 __ovld __cnfn convert_char8_rte(half8);
5741char8 __ovld __cnfn convert_char8_rtp(half8);
5742char8 __ovld __cnfn convert_char8_rtn(half8);
5743char8 __ovld __cnfn convert_char8_rtz(half8);
5744char8 __ovld __cnfn convert_char8_sat(half8);
5749char16 __ovld __cnfn convert_char16(half16);
5750char16 __ovld __cnfn convert_char16_rte(half16);
5751char16 __ovld __cnfn convert_char16_rtp(half16);
5752char16 __ovld __cnfn convert_char16_rtn(half16);
5753char16 __ovld __cnfn convert_char16_rtz(half16);
5754char16 __ovld __cnfn convert_char16_sat(half16);
5755char16 __ovld __cnfn convert_char16_sat_rte(half16);
5756char16 __ovld __cnfn convert_char16_sat_rtp(half16);
5757char16 __ovld __cnfn convert_char16_sat_rtn(half16);
5758char16 __ovld __cnfn convert_char16_sat_rtz(half16);
5759short __ovld __cnfn convert_short(half);
5760short __ovld __cnfn convert_short_rte(half);
5761short __ovld __cnfn convert_short_rtp(half);
5762short __ovld __cnfn convert_short_rtn(half);
5763short __ovld __cnfn convert_short_rtz(half);
5764short __ovld __cnfn convert_short_sat(half);
5769short2 __ovld __cnfn convert_short2(half2);
5770short2 __ovld __cnfn convert_short2_rte(half2);
5771short2 __ovld __cnfn convert_short2_rtp(half2);
5772short2 __ovld __cnfn convert_short2_rtn(half2);
5773short2 __ovld __cnfn convert_short2_rtz(half2);
5774short2 __ovld __cnfn convert_short2_sat(half2);
5779short3 __ovld __cnfn convert_short3(half3);
5780short3 __ovld __cnfn convert_short3_rte(half3);
5781short3 __ovld __cnfn convert_short3_rtp(half3);
5782short3 __ovld __cnfn convert_short3_rtn(half3);
5783short3 __ovld __cnfn convert_short3_rtz(half3);
5784short3 __ovld __cnfn convert_short3_sat(half3);
5789short4 __ovld __cnfn convert_short4(half4);
5790short4 __ovld __cnfn convert_short4_rte(half4);
5791short4 __ovld __cnfn convert_short4_rtp(half4);
5792short4 __ovld __cnfn convert_short4_rtn(half4);
5793short4 __ovld __cnfn convert_short4_rtz(half4);
5794short4 __ovld __cnfn convert_short4_sat(half4);
5799short8 __ovld __cnfn convert_short8(half8);
5800short8 __ovld __cnfn convert_short8_rte(half8);
5801short8 __ovld __cnfn convert_short8_rtp(half8);
5802short8 __ovld __cnfn convert_short8_rtn(half8);
5803short8 __ovld __cnfn convert_short8_rtz(half8);
5804short8 __ovld __cnfn convert_short8_sat(half8);
5809short16 __ovld __cnfn convert_short16(half16);
5810short16 __ovld __cnfn convert_short16_rte(half16);
5811short16 __ovld __cnfn convert_short16_rtp(half16);
5812short16 __ovld __cnfn convert_short16_rtn(half16);
5813short16 __ovld __cnfn convert_short16_rtz(half16);
5814short16 __ovld __cnfn convert_short16_sat(half16);
5815short16 __ovld __cnfn convert_short16_sat_rte(half16);
5816short16 __ovld __cnfn convert_short16_sat_rtp(half16);
5817short16 __ovld __cnfn convert_short16_sat_rtn(half16);
5818short16 __ovld __cnfn convert_short16_sat_rtz(half16);
5819int __ovld __cnfn convert_int(half);
5820int __ovld __cnfn convert_int_rte(half);
5821int __ovld __cnfn convert_int_rtp(half);
5822int __ovld __cnfn convert_int_rtn(half);
5823int __ovld __cnfn convert_int_rtz(half);
5824int __ovld __cnfn convert_int_sat(half);
5829int2 __ovld __cnfn convert_int2(half2);
5830int2 __ovld __cnfn convert_int2_rte(half2);
5831int2 __ovld __cnfn convert_int2_rtp(half2);
5832int2 __ovld __cnfn convert_int2_rtn(half2);
5833int2 __ovld __cnfn convert_int2_rtz(half2);
5834int2 __ovld __cnfn convert_int2_sat(half2);
5839int3 __ovld __cnfn convert_int3(half3);
5840int3 __ovld __cnfn convert_int3_rte(half3);
5841int3 __ovld __cnfn convert_int3_rtp(half3);
5842int3 __ovld __cnfn convert_int3_rtn(half3);
5843int3 __ovld __cnfn convert_int3_rtz(half3);
5844int3 __ovld __cnfn convert_int3_sat(half3);
5849int4 __ovld __cnfn convert_int4(half4);
5850int4 __ovld __cnfn convert_int4_rte(half4);
5851int4 __ovld __cnfn convert_int4_rtp(half4);
5852int4 __ovld __cnfn convert_int4_rtn(half4);
5853int4 __ovld __cnfn convert_int4_rtz(half4);
5854int4 __ovld __cnfn convert_int4_sat(half4);
5879long __ovld __cnfn convert_long(half);
5880long __ovld __cnfn convert_long_rte(half);
5881long __ovld __cnfn convert_long_rtp(half);
5882long __ovld __cnfn convert_long_rtn(half);
5883long __ovld __cnfn convert_long_rtz(half);
5884long __ovld __cnfn convert_long_sat(half);
5889long2 __ovld __cnfn convert_long2(half2);
5890long2 __ovld __cnfn convert_long2_rte(half2);
5891long2 __ovld __cnfn convert_long2_rtp(half2);
5892long2 __ovld __cnfn convert_long2_rtn(half2);
5893long2 __ovld __cnfn convert_long2_rtz(half2);
5894long2 __ovld __cnfn convert_long2_sat(half2);
5899long3 __ovld __cnfn convert_long3(half3);
5900long3 __ovld __cnfn convert_long3_rte(half3);
5901long3 __ovld __cnfn convert_long3_rtp(half3);
5902long3 __ovld __cnfn convert_long3_rtn(half3);
5903long3 __ovld __cnfn convert_long3_rtz(half3);
5904long3 __ovld __cnfn convert_long3_sat(half3);
5909long4 __ovld __cnfn convert_long4(half4);
5910long4 __ovld __cnfn convert_long4_rte(half4);
5911long4 __ovld __cnfn convert_long4_rtp(half4);
5912long4 __ovld __cnfn convert_long4_rtn(half4);
5913long4 __ovld __cnfn convert_long4_rtz(half4);
5914long4 __ovld __cnfn convert_long4_sat(half4);
5919long8 __ovld __cnfn convert_long8(half8);
5920long8 __ovld __cnfn convert_long8_rte(half8);
5921long8 __ovld __cnfn convert_long8_rtp(half8);
5922long8 __ovld __cnfn convert_long8_rtn(half8);
5923long8 __ovld __cnfn convert_long8_rtz(half8);
5924long8 __ovld __cnfn convert_long8_sat(half8);
5929long16 __ovld __cnfn convert_long16(half16);
5930long16 __ovld __cnfn convert_long16_rte(half16);
5931long16 __ovld __cnfn convert_long16_rtp(half16);
5932long16 __ovld __cnfn convert_long16_rtn(half16);
5933long16 __ovld __cnfn convert_long16_rtz(half16);
5934long16 __ovld __cnfn convert_long16_sat(half16);
5935long16 __ovld __cnfn convert_long16_sat_rte(half16);
5936long16 __ovld __cnfn convert_long16_sat_rtp(half16);
5937long16 __ovld __cnfn convert_long16_sat_rtn(half16);
5938long16 __ovld __cnfn convert_long16_sat_rtz(half16);
5939float __ovld __cnfn convert_float(half);
5940float __ovld __cnfn convert_float_rte(half);
5941float __ovld __cnfn convert_float_rtp(half);
5942float __ovld __cnfn convert_float_rtn(half);
5943float __ovld __cnfn convert_float_rtz(half);
5944float2 __ovld __cnfn convert_float2(half2);
5945float2 __ovld __cnfn convert_float2_rte(half2);
5946float2 __ovld __cnfn convert_float2_rtp(half2);
5947float2 __ovld __cnfn convert_float2_rtn(half2);
5948float2 __ovld __cnfn convert_float2_rtz(half2);
5949float3 __ovld __cnfn convert_float3(half3);
5950float3 __ovld __cnfn convert_float3_rte(half3);
5951float3 __ovld __cnfn convert_float3_rtp(half3);
5952float3 __ovld __cnfn convert_float3_rtn(half3);
5953float3 __ovld __cnfn convert_float3_rtz(half3);
5954float4 __ovld __cnfn convert_float4(half4);
5955float4 __ovld __cnfn convert_float4_rte(half4);
5956float4 __ovld __cnfn convert_float4_rtp(half4);
5957float4 __ovld __cnfn convert_float4_rtn(half4);
5958float4 __ovld __cnfn convert_float4_rtz(half4);
5959float8 __ovld __cnfn convert_float8(half8);
5960float8 __ovld __cnfn convert_float8_rte(half8);
5961float8 __ovld __cnfn convert_float8_rtp(half8);
5962float8 __ovld __cnfn convert_float8_rtn(half8);
5963float8 __ovld __cnfn convert_float8_rtz(half8);
5964float16 __ovld __cnfn convert_float16(half16);
5965float16 __ovld __cnfn convert_float16_rte(half16);
5966float16 __ovld __cnfn convert_float16_rtp(half16);
5967float16 __ovld __cnfn convert_float16_rtn(half16);
5968float16 __ovld __cnfn convert_float16_rtz(half16);
5969
5970// Convert non-double types to half types.
5971half __ovld __cnfn convert_half(uchar);
5972half __ovld __cnfn convert_half(ushort);
5973half __ovld __cnfn convert_half(uint);
5974half __ovld __cnfn convert_half(ulong);
5975half __ovld __cnfn convert_half(char);
5976half __ovld __cnfn convert_half(short);
5977half __ovld __cnfn convert_half(int);
5978half __ovld __cnfn convert_half(long);
5979half __ovld __cnfn convert_half(float);
5980half __ovld __cnfn convert_half(half);
5981half __ovld __cnfn convert_half_rte(uchar);
5982half __ovld __cnfn convert_half_rte(ushort);
5983half __ovld __cnfn convert_half_rte(uint);
5984half __ovld __cnfn convert_half_rte(ulong);
5985half __ovld __cnfn convert_half_rte(char);
5986half __ovld __cnfn convert_half_rte(short);
5987half __ovld __cnfn convert_half_rte(int);
5988half __ovld __cnfn convert_half_rte(long);
5989half __ovld __cnfn convert_half_rte(float);
5990half __ovld __cnfn convert_half_rte(half);
5991half __ovld __cnfn convert_half_rtp(uchar);
5992half __ovld __cnfn convert_half_rtp(ushort);
5993half __ovld __cnfn convert_half_rtp(uint);
5994half __ovld __cnfn convert_half_rtp(ulong);
5995half __ovld __cnfn convert_half_rtp(char);
5996half __ovld __cnfn convert_half_rtp(short);
5997half __ovld __cnfn convert_half_rtp(int);
5998half __ovld __cnfn convert_half_rtp(long);
5999half __ovld __cnfn convert_half_rtp(float);
6000half __ovld __cnfn convert_half_rtp(half);
6001half __ovld __cnfn convert_half_rtn(uchar);
6002half __ovld __cnfn convert_half_rtn(ushort);
6003half __ovld __cnfn convert_half_rtn(uint);
6004half __ovld __cnfn convert_half_rtn(ulong);
6005half __ovld __cnfn convert_half_rtn(char);
6006half __ovld __cnfn convert_half_rtn(short);
6007half __ovld __cnfn convert_half_rtn(int);
6008half __ovld __cnfn convert_half_rtn(long);
6009half __ovld __cnfn convert_half_rtn(float);
6010half __ovld __cnfn convert_half_rtn(half);
6011half __ovld __cnfn convert_half_rtz(uchar);
6012half __ovld __cnfn convert_half_rtz(ushort);
6013half __ovld __cnfn convert_half_rtz(uint);
6014half __ovld __cnfn convert_half_rtz(ulong);
6015half __ovld __cnfn convert_half_rtz(char);
6016half __ovld __cnfn convert_half_rtz(short);
6017half __ovld __cnfn convert_half_rtz(int);
6018half __ovld __cnfn convert_half_rtz(long);
6019half __ovld __cnfn convert_half_rtz(float);
6020half __ovld __cnfn convert_half_rtz(half);
6021half2 __ovld __cnfn convert_half2(char2);
6022half2 __ovld __cnfn convert_half2(uchar2);
6023half2 __ovld __cnfn convert_half2(short2);
6024half2 __ovld __cnfn convert_half2(ushort2);
6025half2 __ovld __cnfn convert_half2(int2);
6026half2 __ovld __cnfn convert_half2(uint2);
6027half2 __ovld __cnfn convert_half2(long2);
6028half2 __ovld __cnfn convert_half2(ulong2);
6029half2 __ovld __cnfn convert_half2(float2);
6030half2 __ovld __cnfn convert_half2(half2);
6031half2 __ovld __cnfn convert_half2_rte(char2);
6032half2 __ovld __cnfn convert_half2_rte(uchar2);
6033half2 __ovld __cnfn convert_half2_rte(short2);
6034half2 __ovld __cnfn convert_half2_rte(ushort2);
6035half2 __ovld __cnfn convert_half2_rte(int2);
6036half2 __ovld __cnfn convert_half2_rte(uint2);
6037half2 __ovld __cnfn convert_half2_rte(long2);
6038half2 __ovld __cnfn convert_half2_rte(ulong2);
6039half2 __ovld __cnfn convert_half2_rte(float2);
6040half2 __ovld __cnfn convert_half2_rte(half2);
6041half2 __ovld __cnfn convert_half2_rtp(char2);
6042half2 __ovld __cnfn convert_half2_rtp(uchar2);
6043half2 __ovld __cnfn convert_half2_rtp(short2);
6044half2 __ovld __cnfn convert_half2_rtp(ushort2);
6045half2 __ovld __cnfn convert_half2_rtp(int2);
6046half2 __ovld __cnfn convert_half2_rtp(uint2);
6047half2 __ovld __cnfn convert_half2_rtp(long2);
6048half2 __ovld __cnfn convert_half2_rtp(ulong2);
6049half2 __ovld __cnfn convert_half2_rtp(float2);
6050half2 __ovld __cnfn convert_half2_rtp(half2);
6051half2 __ovld __cnfn convert_half2_rtn(char2);
6052half2 __ovld __cnfn convert_half2_rtn(uchar2);
6053half2 __ovld __cnfn convert_half2_rtn(short2);
6054half2 __ovld __cnfn convert_half2_rtn(ushort2);
6055half2 __ovld __cnfn convert_half2_rtn(int2);
6056half2 __ovld __cnfn convert_half2_rtn(uint2);
6057half2 __ovld __cnfn convert_half2_rtn(long2);
6058half2 __ovld __cnfn convert_half2_rtn(ulong2);
6059half2 __ovld __cnfn convert_half2_rtn(float2);
6060half2 __ovld __cnfn convert_half2_rtn(half2);
6061half2 __ovld __cnfn convert_half2_rtz(char2);
6062half2 __ovld __cnfn convert_half2_rtz(uchar2);
6063half2 __ovld __cnfn convert_half2_rtz(short2);
6064half2 __ovld __cnfn convert_half2_rtz(ushort2);
6065half2 __ovld __cnfn convert_half2_rtz(int2);
6066half2 __ovld __cnfn convert_half2_rtz(uint2);
6067half2 __ovld __cnfn convert_half2_rtz(long2);
6068half2 __ovld __cnfn convert_half2_rtz(ulong2);
6069half2 __ovld __cnfn convert_half2_rtz(float2);
6070half2 __ovld __cnfn convert_half2_rtz(half2);
6071half3 __ovld __cnfn convert_half3(char3);
6072half3 __ovld __cnfn convert_half3(uchar3);
6073half3 __ovld __cnfn convert_half3(short3);
6074half3 __ovld __cnfn convert_half3(ushort3);
6075half3 __ovld __cnfn convert_half3(int3);
6076half3 __ovld __cnfn convert_half3(uint3);
6077half3 __ovld __cnfn convert_half3(long3);
6078half3 __ovld __cnfn convert_half3(ulong3);
6079half3 __ovld __cnfn convert_half3(float3);
6080half3 __ovld __cnfn convert_half3(half3);
6081half3 __ovld __cnfn convert_half3_rte(char3);
6082half3 __ovld __cnfn convert_half3_rte(uchar3);
6083half3 __ovld __cnfn convert_half3_rte(short3);
6084half3 __ovld __cnfn convert_half3_rte(ushort3);
6085half3 __ovld __cnfn convert_half3_rte(int3);
6086half3 __ovld __cnfn convert_half3_rte(uint3);
6087half3 __ovld __cnfn convert_half3_rte(long3);
6088half3 __ovld __cnfn convert_half3_rte(ulong3);
6089half3 __ovld __cnfn convert_half3_rte(float3);
6090half3 __ovld __cnfn convert_half3_rte(half3);
6091half3 __ovld __cnfn convert_half3_rtp(char3);
6092half3 __ovld __cnfn convert_half3_rtp(uchar3);
6093half3 __ovld __cnfn convert_half3_rtp(short3);
6094half3 __ovld __cnfn convert_half3_rtp(ushort3);
6095half3 __ovld __cnfn convert_half3_rtp(int3);
6096half3 __ovld __cnfn convert_half3_rtp(uint3);
6097half3 __ovld __cnfn convert_half3_rtp(long3);
6098half3 __ovld __cnfn convert_half3_rtp(ulong3);
6099half3 __ovld __cnfn convert_half3_rtp(float3);
6100half3 __ovld __cnfn convert_half3_rtp(half3);
6101half3 __ovld __cnfn convert_half3_rtn(char3);
6102half3 __ovld __cnfn convert_half3_rtn(uchar3);
6103half3 __ovld __cnfn convert_half3_rtn(short3);
6104half3 __ovld __cnfn convert_half3_rtn(ushort3);
6105half3 __ovld __cnfn convert_half3_rtn(int3);
6106half3 __ovld __cnfn convert_half3_rtn(uint3);
6107half3 __ovld __cnfn convert_half3_rtn(long3);
6108half3 __ovld __cnfn convert_half3_rtn(ulong3);
6109half3 __ovld __cnfn convert_half3_rtn(float3);
6110half3 __ovld __cnfn convert_half3_rtn(half3);
6111half3 __ovld __cnfn convert_half3_rtz(char3);
6112half3 __ovld __cnfn convert_half3_rtz(uchar3);
6113half3 __ovld __cnfn convert_half3_rtz(short3);
6114half3 __ovld __cnfn convert_half3_rtz(ushort3);
6115half3 __ovld __cnfn convert_half3_rtz(int3);
6116half3 __ovld __cnfn convert_half3_rtz(uint3);
6117half3 __ovld __cnfn convert_half3_rtz(long3);
6118half3 __ovld __cnfn convert_half3_rtz(ulong3);
6119half3 __ovld __cnfn convert_half3_rtz(float3);
6120half3 __ovld __cnfn convert_half3_rtz(half3);
6121half4 __ovld __cnfn convert_half4(char4);
6122half4 __ovld __cnfn convert_half4(uchar4);
6123half4 __ovld __cnfn convert_half4(short4);
6124half4 __ovld __cnfn convert_half4(ushort4);
6125half4 __ovld __cnfn convert_half4(int4);
6126half4 __ovld __cnfn convert_half4(uint4);
6127half4 __ovld __cnfn convert_half4(long4);
6128half4 __ovld __cnfn convert_half4(ulong4);
6129half4 __ovld __cnfn convert_half4(float4);
6130half4 __ovld __cnfn convert_half4(half4);
6131half4 __ovld __cnfn convert_half4_rte(char4);
6132half4 __ovld __cnfn convert_half4_rte(uchar4);
6133half4 __ovld __cnfn convert_half4_rte(short4);
6134half4 __ovld __cnfn convert_half4_rte(ushort4);
6135half4 __ovld __cnfn convert_half4_rte(int4);
6136half4 __ovld __cnfn convert_half4_rte(uint4);
6137half4 __ovld __cnfn convert_half4_rte(long4);
6138half4 __ovld __cnfn convert_half4_rte(ulong4);
6139half4 __ovld __cnfn convert_half4_rte(float4);
6140half4 __ovld __cnfn convert_half4_rte(half4);
6141half4 __ovld __cnfn convert_half4_rtp(char4);
6142half4 __ovld __cnfn convert_half4_rtp(uchar4);
6143half4 __ovld __cnfn convert_half4_rtp(short4);
6144half4 __ovld __cnfn convert_half4_rtp(ushort4);
6145half4 __ovld __cnfn convert_half4_rtp(int4);
6146half4 __ovld __cnfn convert_half4_rtp(uint4);
6147half4 __ovld __cnfn convert_half4_rtp(long4);
6148half4 __ovld __cnfn convert_half4_rtp(ulong4);
6149half4 __ovld __cnfn convert_half4_rtp(float4);
6150half4 __ovld __cnfn convert_half4_rtp(half4);
6151half4 __ovld __cnfn convert_half4_rtn(char4);
6152half4 __ovld __cnfn convert_half4_rtn(uchar4);
6153half4 __ovld __cnfn convert_half4_rtn(short4);
6154half4 __ovld __cnfn convert_half4_rtn(ushort4);
6155half4 __ovld __cnfn convert_half4_rtn(int4);
6156half4 __ovld __cnfn convert_half4_rtn(uint4);
6157half4 __ovld __cnfn convert_half4_rtn(long4);
6158half4 __ovld __cnfn convert_half4_rtn(ulong4);
6159half4 __ovld __cnfn convert_half4_rtn(float4);
6160half4 __ovld __cnfn convert_half4_rtn(half4);
6161half4 __ovld __cnfn convert_half4_rtz(char4);
6162half4 __ovld __cnfn convert_half4_rtz(uchar4);
6163half4 __ovld __cnfn convert_half4_rtz(short4);
6164half4 __ovld __cnfn convert_half4_rtz(ushort4);
6165half4 __ovld __cnfn convert_half4_rtz(int4);
6166half4 __ovld __cnfn convert_half4_rtz(uint4);
6167half4 __ovld __cnfn convert_half4_rtz(long4);
6168half4 __ovld __cnfn convert_half4_rtz(ulong4);
6169half4 __ovld __cnfn convert_half4_rtz(float4);
6170half4 __ovld __cnfn convert_half4_rtz(half4);
6171half8 __ovld __cnfn convert_half8(char8);
6172half8 __ovld __cnfn convert_half8(uchar8);
6173half8 __ovld __cnfn convert_half8(short8);
6174half8 __ovld __cnfn convert_half8(ushort8);
6175half8 __ovld __cnfn convert_half8(int8);
6176half8 __ovld __cnfn convert_half8(uint8);
6177half8 __ovld __cnfn convert_half8(long8);
6178half8 __ovld __cnfn convert_half8(ulong8);
6179half8 __ovld __cnfn convert_half8(float8);
6180half8 __ovld __cnfn convert_half8(half8);
6181half8 __ovld __cnfn convert_half8_rte(char8);
6182half8 __ovld __cnfn convert_half8_rte(uchar8);
6183half8 __ovld __cnfn convert_half8_rte(short8);
6184half8 __ovld __cnfn convert_half8_rte(ushort8);
6185half8 __ovld __cnfn convert_half8_rte(int8);
6186half8 __ovld __cnfn convert_half8_rte(uint8);
6187half8 __ovld __cnfn convert_half8_rte(long8);
6188half8 __ovld __cnfn convert_half8_rte(ulong8);
6189half8 __ovld __cnfn convert_half8_rte(float8);
6190half8 __ovld __cnfn convert_half8_rte(half8);
6191half8 __ovld __cnfn convert_half8_rtp(char8);
6192half8 __ovld __cnfn convert_half8_rtp(uchar8);
6193half8 __ovld __cnfn convert_half8_rtp(short8);
6194half8 __ovld __cnfn convert_half8_rtp(ushort8);
6195half8 __ovld __cnfn convert_half8_rtp(int8);
6196half8 __ovld __cnfn convert_half8_rtp(uint8);
6197half8 __ovld __cnfn convert_half8_rtp(long8);
6198half8 __ovld __cnfn convert_half8_rtp(ulong8);
6199half8 __ovld __cnfn convert_half8_rtp(float8);
6200half8 __ovld __cnfn convert_half8_rtp(half8);
6201half8 __ovld __cnfn convert_half8_rtn(char8);
6202half8 __ovld __cnfn convert_half8_rtn(uchar8);
6203half8 __ovld __cnfn convert_half8_rtn(short8);
6204half8 __ovld __cnfn convert_half8_rtn(ushort8);
6205half8 __ovld __cnfn convert_half8_rtn(int8);
6206half8 __ovld __cnfn convert_half8_rtn(uint8);
6207half8 __ovld __cnfn convert_half8_rtn(long8);
6208half8 __ovld __cnfn convert_half8_rtn(ulong8);
6209half8 __ovld __cnfn convert_half8_rtn(float8);
6210half8 __ovld __cnfn convert_half8_rtn(half8);
6211half8 __ovld __cnfn convert_half8_rtz(char8);
6212half8 __ovld __cnfn convert_half8_rtz(uchar8);
6213half8 __ovld __cnfn convert_half8_rtz(short8);
6214half8 __ovld __cnfn convert_half8_rtz(ushort8);
6215half8 __ovld __cnfn convert_half8_rtz(int8);
6216half8 __ovld __cnfn convert_half8_rtz(uint8);
6217half8 __ovld __cnfn convert_half8_rtz(long8);
6218half8 __ovld __cnfn convert_half8_rtz(ulong8);
6219half8 __ovld __cnfn convert_half8_rtz(float8);
6220half8 __ovld __cnfn convert_half8_rtz(half8);
6221half16 __ovld __cnfn convert_half16(char16);
6222half16 __ovld __cnfn convert_half16(uchar16);
6223half16 __ovld __cnfn convert_half16(short16);
6224half16 __ovld __cnfn convert_half16(ushort16);
6225half16 __ovld __cnfn convert_half16(int16);
6226half16 __ovld __cnfn convert_half16(uint16);
6227half16 __ovld __cnfn convert_half16(long16);
6228half16 __ovld __cnfn convert_half16(ulong16);
6229half16 __ovld __cnfn convert_half16(float16);
6230half16 __ovld __cnfn convert_half16(half16);
6231half16 __ovld __cnfn convert_half16_rte(char16);
6232half16 __ovld __cnfn convert_half16_rte(uchar16);
6233half16 __ovld __cnfn convert_half16_rte(short16);
6234half16 __ovld __cnfn convert_half16_rte(ushort16);
6235half16 __ovld __cnfn convert_half16_rte(int16);
6236half16 __ovld __cnfn convert_half16_rte(uint16);
6237half16 __ovld __cnfn convert_half16_rte(long16);
6238half16 __ovld __cnfn convert_half16_rte(ulong16);
6239half16 __ovld __cnfn convert_half16_rte(float16);
6240half16 __ovld __cnfn convert_half16_rte(half16);
6241half16 __ovld __cnfn convert_half16_rtp(char16);
6242half16 __ovld __cnfn convert_half16_rtp(uchar16);
6243half16 __ovld __cnfn convert_half16_rtp(short16);
6244half16 __ovld __cnfn convert_half16_rtp(ushort16);
6245half16 __ovld __cnfn convert_half16_rtp(int16);
6246half16 __ovld __cnfn convert_half16_rtp(uint16);
6247half16 __ovld __cnfn convert_half16_rtp(long16);
6248half16 __ovld __cnfn convert_half16_rtp(ulong16);
6249half16 __ovld __cnfn convert_half16_rtp(float16);
6250half16 __ovld __cnfn convert_half16_rtp(half16);
6251half16 __ovld __cnfn convert_half16_rtn(char16);
6252half16 __ovld __cnfn convert_half16_rtn(uchar16);
6253half16 __ovld __cnfn convert_half16_rtn(short16);
6254half16 __ovld __cnfn convert_half16_rtn(ushort16);
6255half16 __ovld __cnfn convert_half16_rtn(int16);
6256half16 __ovld __cnfn convert_half16_rtn(uint16);
6257half16 __ovld __cnfn convert_half16_rtn(long16);
6258half16 __ovld __cnfn convert_half16_rtn(ulong16);
6259half16 __ovld __cnfn convert_half16_rtn(float16);
6260half16 __ovld __cnfn convert_half16_rtn(half16);
6261half16 __ovld __cnfn convert_half16_rtz(char16);
6262half16 __ovld __cnfn convert_half16_rtz(uchar16);
6263half16 __ovld __cnfn convert_half16_rtz(short16);
6264half16 __ovld __cnfn convert_half16_rtz(ushort16);
6265half16 __ovld __cnfn convert_half16_rtz(int16);
6266half16 __ovld __cnfn convert_half16_rtz(uint16);
6267half16 __ovld __cnfn convert_half16_rtz(long16);
6268half16 __ovld __cnfn convert_half16_rtz(ulong16);
6269half16 __ovld __cnfn convert_half16_rtz(float16);
6270half16 __ovld __cnfn convert_half16_rtz(half16);
6271
6272// Convert half types to double types.
6273#ifdef cl_khr_fp64
6274double __ovld __cnfn convert_double(half);
6275double __ovld __cnfn convert_double_rte(half);
6276double __ovld __cnfn convert_double_rtp(half);
6277double __ovld __cnfn convert_double_rtn(half);
6278double __ovld __cnfn convert_double_rtz(half);
6279double2 __ovld __cnfn convert_double2(half2);
6280double2 __ovld __cnfn convert_double2_rte(half2);
6281double2 __ovld __cnfn convert_double2_rtp(half2);
6282double2 __ovld __cnfn convert_double2_rtn(half2);
6283double2 __ovld __cnfn convert_double2_rtz(half2);
6284double3 __ovld __cnfn convert_double3(half3);
6285double3 __ovld __cnfn convert_double3_rte(half3);
6286double3 __ovld __cnfn convert_double3_rtp(half3);
6287double3 __ovld __cnfn convert_double3_rtn(half3);
6288double3 __ovld __cnfn convert_double3_rtz(half3);
6289double4 __ovld __cnfn convert_double4(half4);
6290double4 __ovld __cnfn convert_double4_rte(half4);
6291double4 __ovld __cnfn convert_double4_rtp(half4);
6292double4 __ovld __cnfn convert_double4_rtn(half4);
6293double4 __ovld __cnfn convert_double4_rtz(half4);
6294double8 __ovld __cnfn convert_double8(half8);
6295double8 __ovld __cnfn convert_double8_rte(half8);
6296double8 __ovld __cnfn convert_double8_rtp(half8);
6297double8 __ovld __cnfn convert_double8_rtn(half8);
6298double8 __ovld __cnfn convert_double8_rtz(half8);
6299double16 __ovld __cnfn convert_double16(half16);
6300double16 __ovld __cnfn convert_double16_rte(half16);
6301double16 __ovld __cnfn convert_double16_rtp(half16);
6302double16 __ovld __cnfn convert_double16_rtn(half16);
6303double16 __ovld __cnfn convert_double16_rtz(half16);
6304
6305// Convert double types to half types.
6306half __ovld __cnfn convert_half(double);
6307half __ovld __cnfn convert_half_rte(double);
6308half __ovld __cnfn convert_half_rtp(double);
6309half __ovld __cnfn convert_half_rtn(double);
6310half __ovld __cnfn convert_half_rtz(double);
6311half2 __ovld __cnfn convert_half2(double2);
6312half2 __ovld __cnfn convert_half2_rte(double2);
6313half2 __ovld __cnfn convert_half2_rtp(double2);
6314half2 __ovld __cnfn convert_half2_rtn(double2);
6315half2 __ovld __cnfn convert_half2_rtz(double2);
6316half3 __ovld __cnfn convert_half3(double3);
6317half3 __ovld __cnfn convert_half3_rte(double3);
6318half3 __ovld __cnfn convert_half3_rtp(double3);
6319half3 __ovld __cnfn convert_half3_rtn(double3);
6320half3 __ovld __cnfn convert_half3_rtz(double3);
6321half4 __ovld __cnfn convert_half4(double4);
6322half4 __ovld __cnfn convert_half4_rte(double4);
6323half4 __ovld __cnfn convert_half4_rtp(double4);
6324half4 __ovld __cnfn convert_half4_rtn(double4);
6325half4 __ovld __cnfn convert_half4_rtz(double4);
6326half8 __ovld __cnfn convert_half8(double8);
6327half8 __ovld __cnfn convert_half8_rte(double8);
6328half8 __ovld __cnfn convert_half8_rtp(double8);
6329half8 __ovld __cnfn convert_half8_rtn(double8);
6330half8 __ovld __cnfn convert_half8_rtz(double8);
6331half16 __ovld __cnfn convert_half16(double16);
6332half16 __ovld __cnfn convert_half16_rte(double16);
6333half16 __ovld __cnfn convert_half16_rtp(double16);
6334half16 __ovld __cnfn convert_half16_rtn(double16);
6335half16 __ovld __cnfn convert_half16_rtz(double16);
6336#endif //cl_khr_fp64
6337
6338#endif // cl_khr_fp16
6339
6344#define as_char(x) __builtin_astype((x), char)
6345#define as_char2(x) __builtin_astype((x), char2)
6346#define as_char3(x) __builtin_astype((x), char3)
6347#define as_char4(x) __builtin_astype((x), char4)
6348#define as_char8(x) __builtin_astype((x), char8)
6349#define as_char16(x) __builtin_astype((x), char16)
6350
6351#define as_uchar(x) __builtin_astype((x), uchar)
6352#define as_uchar2(x) __builtin_astype((x), uchar2)
6353#define as_uchar3(x) __builtin_astype((x), uchar3)
6354#define as_uchar4(x) __builtin_astype((x), uchar4)
6355#define as_uchar8(x) __builtin_astype((x), uchar8)
6356#define as_uchar16(x) __builtin_astype((x), uchar16)
6357
6358#define as_short(x) __builtin_astype((x), short)
6359#define as_short2(x) __builtin_astype((x), short2)
6360#define as_short3(x) __builtin_astype((x), short3)
6361#define as_short4(x) __builtin_astype((x), short4)
6362#define as_short8(x) __builtin_astype((x), short8)
6363#define as_short16(x) __builtin_astype((x), short16)
6364
6365#define as_ushort(x) __builtin_astype((x), ushort)
6366#define as_ushort2(x) __builtin_astype((x), ushort2)
6367#define as_ushort3(x) __builtin_astype((x), ushort3)
6368#define as_ushort4(x) __builtin_astype((x), ushort4)
6369#define as_ushort8(x) __builtin_astype((x), ushort8)
6370#define as_ushort16(x) __builtin_astype((x), ushort16)
6371
6372#define as_int(x) __builtin_astype((x), int)
6373#define as_int2(x) __builtin_astype((x), int2)
6374#define as_int3(x) __builtin_astype((x), int3)
6375#define as_int4(x) __builtin_astype((x), int4)
6376#define as_int8(x) __builtin_astype((x), int8)
6377#define as_int16(x) __builtin_astype((x), int16)
6378
6379#define as_uint(x) __builtin_astype((x), uint)
6380#define as_uint2(x) __builtin_astype((x), uint2)
6381#define as_uint3(x) __builtin_astype((x), uint3)
6382#define as_uint4(x) __builtin_astype((x), uint4)
6383#define as_uint8(x) __builtin_astype((x), uint8)
6384#define as_uint16(x) __builtin_astype((x), uint16)
6385
6386#define as_long(x) __builtin_astype((x), long)
6387#define as_long2(x) __builtin_astype((x), long2)
6388#define as_long3(x) __builtin_astype((x), long3)
6389#define as_long4(x) __builtin_astype((x), long4)
6390#define as_long8(x) __builtin_astype((x), long8)
6391#define as_long16(x) __builtin_astype((x), long16)
6392
6393#define as_ulong(x) __builtin_astype((x), ulong)
6394#define as_ulong2(x) __builtin_astype((x), ulong2)
6395#define as_ulong3(x) __builtin_astype((x), ulong3)
6396#define as_ulong4(x) __builtin_astype((x), ulong4)
6397#define as_ulong8(x) __builtin_astype((x), ulong8)
6398#define as_ulong16(x) __builtin_astype((x), ulong16)
6399
6400#define as_float(x) __builtin_astype((x), float)
6401#define as_float2(x) __builtin_astype((x), float2)
6402#define as_float3(x) __builtin_astype((x), float3)
6403#define as_float4(x) __builtin_astype((x), float4)
6404#define as_float8(x) __builtin_astype((x), float8)
6405#define as_float16(x) __builtin_astype((x), float16)
6406
6407#ifdef cl_khr_fp64
6408#define as_double(x) __builtin_astype((x), double)
6409#define as_double2(x) __builtin_astype((x), double2)
6410#define as_double3(x) __builtin_astype((x), double3)
6411#define as_double4(x) __builtin_astype((x), double4)
6412#define as_double8(x) __builtin_astype((x), double8)
6413#define as_double16(x) __builtin_astype((x), double16)
6414#endif //cl_khr_fp64
6415
6416#ifdef cl_khr_fp16
6417#define as_half(x) __builtin_astype((x), half)
6418#define as_half2(x) __builtin_astype((x), half2)
6419#define as_half3(x) __builtin_astype((x), half3)
6420#define as_half4(x) __builtin_astype((x), half4)
6421#define as_half8(x) __builtin_astype((x), half8)
6422#define as_half16(x) __builtin_astype((x), half16)
6423#endif //cl_khr_fp16
6424
6425// OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers
6426
6427#define __kernel_exec(X, typen) __kernel \
6428 __attribute__((work_group_size_hint(X, 1, 1))) \
6429 __attribute__((vec_type_hint(typen)))
6430
6431#define kernel_exec(X, typen) __kernel \
6432 __attribute__((work_group_size_hint(X, 1, 1))) \
6433 __attribute__((vec_type_hint(typen)))
6434
6435// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6436
6444
6455
6466
6480
6490
6500
6509
6519
6520#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
6524#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
6525
6526// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
6527
6531float __ovld __cnfn acos(float);
6532float2 __ovld __cnfn acos(float2);
6533float3 __ovld __cnfn acos(float3);
6534float4 __ovld __cnfn acos(float4);
6535float8 __ovld __cnfn acos(float8);
6536float16 __ovld __cnfn acos(float16);
6537#ifdef cl_khr_fp64
6538double __ovld __cnfn acos(double);
6539double2 __ovld __cnfn acos(double2);
6540double3 __ovld __cnfn acos(double3);
6541double4 __ovld __cnfn acos(double4);
6542double8 __ovld __cnfn acos(double8);
6543double16 __ovld __cnfn acos(double16);
6544#endif //cl_khr_fp64
6545#ifdef cl_khr_fp16
6546half __ovld __cnfn acos(half);
6547half2 __ovld __cnfn acos(half2);
6548half3 __ovld __cnfn acos(half3);
6549half4 __ovld __cnfn acos(half4);
6550half8 __ovld __cnfn acos(half8);
6551half16 __ovld __cnfn acos(half16);
6552#endif //cl_khr_fp16
6553
6557float __ovld __cnfn acosh(float);
6558float2 __ovld __cnfn acosh(float2);
6559float3 __ovld __cnfn acosh(float3);
6560float4 __ovld __cnfn acosh(float4);
6561float8 __ovld __cnfn acosh(float8);
6562float16 __ovld __cnfn acosh(float16);
6563#ifdef cl_khr_fp64
6564double __ovld __cnfn acosh(double);
6565double2 __ovld __cnfn acosh(double2);
6566double3 __ovld __cnfn acosh(double3);
6567double4 __ovld __cnfn acosh(double4);
6568double8 __ovld __cnfn acosh(double8);
6569double16 __ovld __cnfn acosh(double16);
6570#endif //cl_khr_fp64
6571#ifdef cl_khr_fp16
6572half __ovld __cnfn acosh(half);
6573half2 __ovld __cnfn acosh(half2);
6574half3 __ovld __cnfn acosh(half3);
6575half4 __ovld __cnfn acosh(half4);
6576half8 __ovld __cnfn acosh(half8);
6577half16 __ovld __cnfn acosh(half16);
6578#endif //cl_khr_fp16
6579
6583float __ovld __cnfn acospi(float x);
6584float2 __ovld __cnfn acospi(float2 x);
6585float3 __ovld __cnfn acospi(float3 x);
6586float4 __ovld __cnfn acospi(float4 x);
6587float8 __ovld __cnfn acospi(float8 x);
6588float16 __ovld __cnfn acospi(float16 x);
6589#ifdef cl_khr_fp64
6590double __ovld __cnfn acospi(double x);
6591double2 __ovld __cnfn acospi(double2 x);
6592double3 __ovld __cnfn acospi(double3 x);
6593double4 __ovld __cnfn acospi(double4 x);
6594double8 __ovld __cnfn acospi(double8 x);
6595double16 __ovld __cnfn acospi(double16 x);
6596#endif //cl_khr_fp64
6597#ifdef cl_khr_fp16
6598half __ovld __cnfn acospi(half x);
6599half2 __ovld __cnfn acospi(half2 x);
6600half3 __ovld __cnfn acospi(half3 x);
6601half4 __ovld __cnfn acospi(half4 x);
6602half8 __ovld __cnfn acospi(half8 x);
6603half16 __ovld __cnfn acospi(half16 x);
6604#endif //cl_khr_fp16
6605
6609float __ovld __cnfn asin(float);
6610float2 __ovld __cnfn asin(float2);
6611float3 __ovld __cnfn asin(float3);
6612float4 __ovld __cnfn asin(float4);
6613float8 __ovld __cnfn asin(float8);
6614float16 __ovld __cnfn asin(float16);
6615#ifdef cl_khr_fp64
6616double __ovld __cnfn asin(double);
6617double2 __ovld __cnfn asin(double2);
6618double3 __ovld __cnfn asin(double3);
6619double4 __ovld __cnfn asin(double4);
6620double8 __ovld __cnfn asin(double8);
6621double16 __ovld __cnfn asin(double16);
6622#endif //cl_khr_fp64
6623#ifdef cl_khr_fp16
6624half __ovld __cnfn asin(half);
6625half2 __ovld __cnfn asin(half2);
6626half3 __ovld __cnfn asin(half3);
6627half4 __ovld __cnfn asin(half4);
6628half8 __ovld __cnfn asin(half8);
6629half16 __ovld __cnfn asin(half16);
6630#endif //cl_khr_fp16
6631
6635float __ovld __cnfn asinh(float);
6636float2 __ovld __cnfn asinh(float2);
6637float3 __ovld __cnfn asinh(float3);
6638float4 __ovld __cnfn asinh(float4);
6639float8 __ovld __cnfn asinh(float8);
6640float16 __ovld __cnfn asinh(float16);
6641#ifdef cl_khr_fp64
6642double __ovld __cnfn asinh(double);
6643double2 __ovld __cnfn asinh(double2);
6644double3 __ovld __cnfn asinh(double3);
6645double4 __ovld __cnfn asinh(double4);
6646double8 __ovld __cnfn asinh(double8);
6647double16 __ovld __cnfn asinh(double16);
6648#endif //cl_khr_fp64
6649#ifdef cl_khr_fp16
6650half __ovld __cnfn asinh(half);
6651half2 __ovld __cnfn asinh(half2);
6652half3 __ovld __cnfn asinh(half3);
6653half4 __ovld __cnfn asinh(half4);
6654half8 __ovld __cnfn asinh(half8);
6655half16 __ovld __cnfn asinh(half16);
6656#endif //cl_khr_fp16
6657
6661float __ovld __cnfn asinpi(float x);
6662float2 __ovld __cnfn asinpi(float2 x);
6663float3 __ovld __cnfn asinpi(float3 x);
6664float4 __ovld __cnfn asinpi(float4 x);
6665float8 __ovld __cnfn asinpi(float8 x);
6666float16 __ovld __cnfn asinpi(float16 x);
6667#ifdef cl_khr_fp64
6668double __ovld __cnfn asinpi(double x);
6669double2 __ovld __cnfn asinpi(double2 x);
6670double3 __ovld __cnfn asinpi(double3 x);
6671double4 __ovld __cnfn asinpi(double4 x);
6672double8 __ovld __cnfn asinpi(double8 x);
6673double16 __ovld __cnfn asinpi(double16 x);
6674#endif //cl_khr_fp64
6675#ifdef cl_khr_fp16
6676half __ovld __cnfn asinpi(half x);
6677half2 __ovld __cnfn asinpi(half2 x);
6678half3 __ovld __cnfn asinpi(half3 x);
6679half4 __ovld __cnfn asinpi(half4 x);
6680half8 __ovld __cnfn asinpi(half8 x);
6681half16 __ovld __cnfn asinpi(half16 x);
6682#endif //cl_khr_fp16
6683
6687float __ovld __cnfn atan(float y_over_x);
6688float2 __ovld __cnfn atan(float2 y_over_x);
6689float3 __ovld __cnfn atan(float3 y_over_x);
6690float4 __ovld __cnfn atan(float4 y_over_x);
6691float8 __ovld __cnfn atan(float8 y_over_x);
6692float16 __ovld __cnfn atan(float16 y_over_x);
6693#ifdef cl_khr_fp64
6694double __ovld __cnfn atan(double y_over_x);
6695double2 __ovld __cnfn atan(double2 y_over_x);
6696double3 __ovld __cnfn atan(double3 y_over_x);
6697double4 __ovld __cnfn atan(double4 y_over_x);
6698double8 __ovld __cnfn atan(double8 y_over_x);
6699double16 __ovld __cnfn atan(double16 y_over_x);
6700#endif //cl_khr_fp64
6701#ifdef cl_khr_fp16
6702half __ovld __cnfn atan(half y_over_x);
6703half2 __ovld __cnfn atan(half2 y_over_x);
6704half3 __ovld __cnfn atan(half3 y_over_x);
6705half4 __ovld __cnfn atan(half4 y_over_x);
6706half8 __ovld __cnfn atan(half8 y_over_x);
6707half16 __ovld __cnfn atan(half16 y_over_x);
6708#endif //cl_khr_fp16
6709
6713float __ovld __cnfn atan2(float y, float x);
6714float2 __ovld __cnfn atan2(float2 y, float2 x);
6715float3 __ovld __cnfn atan2(float3 y, float3 x);
6716float4 __ovld __cnfn atan2(float4 y, float4 x);
6717float8 __ovld __cnfn atan2(float8 y, float8 x);
6718float16 __ovld __cnfn atan2(float16 y, float16 x);
6719#ifdef cl_khr_fp64
6720double __ovld __cnfn atan2(double y, double x);
6721double2 __ovld __cnfn atan2(double2 y, double2 x);
6722double3 __ovld __cnfn atan2(double3 y, double3 x);
6723double4 __ovld __cnfn atan2(double4 y, double4 x);
6724double8 __ovld __cnfn atan2(double8 y, double8 x);
6725double16 __ovld __cnfn atan2(double16 y, double16 x);
6726#endif //cl_khr_fp64
6727#ifdef cl_khr_fp16
6728half __ovld __cnfn atan2(half y, half x);
6729half2 __ovld __cnfn atan2(half2 y, half2 x);
6730half3 __ovld __cnfn atan2(half3 y, half3 x);
6731half4 __ovld __cnfn atan2(half4 y, half4 x);
6732half8 __ovld __cnfn atan2(half8 y, half8 x);
6733half16 __ovld __cnfn atan2(half16 y, half16 x);
6734#endif //cl_khr_fp16
6735
6739float __ovld __cnfn atanh(float);
6740float2 __ovld __cnfn atanh(float2);
6741float3 __ovld __cnfn atanh(float3);
6742float4 __ovld __cnfn atanh(float4);
6743float8 __ovld __cnfn atanh(float8);
6744float16 __ovld __cnfn atanh(float16);
6745#ifdef cl_khr_fp64
6746double __ovld __cnfn atanh(double);
6747double2 __ovld __cnfn atanh(double2);
6748double3 __ovld __cnfn atanh(double3);
6749double4 __ovld __cnfn atanh(double4);
6750double8 __ovld __cnfn atanh(double8);
6751double16 __ovld __cnfn atanh(double16);
6752#endif //cl_khr_fp64
6753#ifdef cl_khr_fp16
6754half __ovld __cnfn atanh(half);
6755half2 __ovld __cnfn atanh(half2);
6756half3 __ovld __cnfn atanh(half3);
6757half4 __ovld __cnfn atanh(half4);
6758half8 __ovld __cnfn atanh(half8);
6759half16 __ovld __cnfn atanh(half16);
6760#endif //cl_khr_fp16
6761
6765float __ovld __cnfn atanpi(float x);
6766float2 __ovld __cnfn atanpi(float2 x);
6767float3 __ovld __cnfn atanpi(float3 x);
6768float4 __ovld __cnfn atanpi(float4 x);
6769float8 __ovld __cnfn atanpi(float8 x);
6770float16 __ovld __cnfn atanpi(float16 x);
6771#ifdef cl_khr_fp64
6772double __ovld __cnfn atanpi(double x);
6773double2 __ovld __cnfn atanpi(double2 x);
6774double3 __ovld __cnfn atanpi(double3 x);
6775double4 __ovld __cnfn atanpi(double4 x);
6776double8 __ovld __cnfn atanpi(double8 x);
6777double16 __ovld __cnfn atanpi(double16 x);
6778#endif //cl_khr_fp64
6779#ifdef cl_khr_fp16
6780half __ovld __cnfn atanpi(half x);
6781half2 __ovld __cnfn atanpi(half2 x);
6782half3 __ovld __cnfn atanpi(half3 x);
6783half4 __ovld __cnfn atanpi(half4 x);
6784half8 __ovld __cnfn atanpi(half8 x);
6785half16 __ovld __cnfn atanpi(half16 x);
6786#endif //cl_khr_fp16
6787
6791float __ovld __cnfn atan2pi(float y, float x);
6792float2 __ovld __cnfn atan2pi(float2 y, float2 x);
6793float3 __ovld __cnfn atan2pi(float3 y, float3 x);
6794float4 __ovld __cnfn atan2pi(float4 y, float4 x);
6795float8 __ovld __cnfn atan2pi(float8 y, float8 x);
6796float16 __ovld __cnfn atan2pi(float16 y, float16 x);
6797#ifdef cl_khr_fp64
6798double __ovld __cnfn atan2pi(double y, double x);
6799double2 __ovld __cnfn atan2pi(double2 y, double2 x);
6800double3 __ovld __cnfn atan2pi(double3 y, double3 x);
6801double4 __ovld __cnfn atan2pi(double4 y, double4 x);
6802double8 __ovld __cnfn atan2pi(double8 y, double8 x);
6803double16 __ovld __cnfn atan2pi(double16 y, double16 x);
6804#endif //cl_khr_fp64
6805#ifdef cl_khr_fp16
6806half __ovld __cnfn atan2pi(half y, half x);
6807half2 __ovld __cnfn atan2pi(half2 y, half2 x);
6808half3 __ovld __cnfn atan2pi(half3 y, half3 x);
6809half4 __ovld __cnfn atan2pi(half4 y, half4 x);
6810half8 __ovld __cnfn atan2pi(half8 y, half8 x);
6811half16 __ovld __cnfn atan2pi(half16 y, half16 x);
6812#endif //cl_khr_fp16
6813
6817float __ovld __cnfn cbrt(float);
6818float2 __ovld __cnfn cbrt(float2);
6819float3 __ovld __cnfn cbrt(float3);
6820float4 __ovld __cnfn cbrt(float4);
6821float8 __ovld __cnfn cbrt(float8);
6822float16 __ovld __cnfn cbrt(float16);
6823#ifdef cl_khr_fp64
6824double __ovld __cnfn cbrt(double);
6825double2 __ovld __cnfn cbrt(double2);
6826double3 __ovld __cnfn cbrt(double3);
6827double4 __ovld __cnfn cbrt(double4);
6828double8 __ovld __cnfn cbrt(double8);
6829double16 __ovld __cnfn cbrt(double16);
6830#endif //cl_khr_fp64
6831#ifdef cl_khr_fp16
6832half __ovld __cnfn cbrt(half);
6833half2 __ovld __cnfn cbrt(half2);
6834half3 __ovld __cnfn cbrt(half3);
6835half4 __ovld __cnfn cbrt(half4);
6836half8 __ovld __cnfn cbrt(half8);
6837half16 __ovld __cnfn cbrt(half16);
6838#endif //cl_khr_fp16
6839
6844float __ovld __cnfn ceil(float);
6845float2 __ovld __cnfn ceil(float2);
6846float3 __ovld __cnfn ceil(float3);
6847float4 __ovld __cnfn ceil(float4);
6848float8 __ovld __cnfn ceil(float8);
6849float16 __ovld __cnfn ceil(float16);
6850#ifdef cl_khr_fp64
6851double __ovld __cnfn ceil(double);
6852double2 __ovld __cnfn ceil(double2);
6853double3 __ovld __cnfn ceil(double3);
6854double4 __ovld __cnfn ceil(double4);
6855double8 __ovld __cnfn ceil(double8);
6856double16 __ovld __cnfn ceil(double16);
6857#endif //cl_khr_fp64
6858#ifdef cl_khr_fp16
6859half __ovld __cnfn ceil(half);
6860half2 __ovld __cnfn ceil(half2);
6861half3 __ovld __cnfn ceil(half3);
6862half4 __ovld __cnfn ceil(half4);
6863half8 __ovld __cnfn ceil(half8);
6864half16 __ovld __cnfn ceil(half16);
6865#endif //cl_khr_fp16
6866
6870float __ovld __cnfn copysign(float x, float y);
6871float2 __ovld __cnfn copysign(float2 x, float2 y);
6872float3 __ovld __cnfn copysign(float3 x, float3 y);
6873float4 __ovld __cnfn copysign(float4 x, float4 y);
6874float8 __ovld __cnfn copysign(float8 x, float8 y);
6875float16 __ovld __cnfn copysign(float16 x, float16 y);
6876#ifdef cl_khr_fp64
6877double __ovld __cnfn copysign(double x, double y);
6878double2 __ovld __cnfn copysign(double2 x, double2 y);
6879double3 __ovld __cnfn copysign(double3 x, double3 y);
6880double4 __ovld __cnfn copysign(double4 x, double4 y);
6881double8 __ovld __cnfn copysign(double8 x, double8 y);
6882double16 __ovld __cnfn copysign(double16 x, double16 y);
6883#endif //cl_khr_fp64
6884#ifdef cl_khr_fp16
6885half __ovld __cnfn copysign(half x, half y);
6886half2 __ovld __cnfn copysign(half2 x, half2 y);
6887half3 __ovld __cnfn copysign(half3 x, half3 y);
6888half4 __ovld __cnfn copysign(half4 x, half4 y);
6889half8 __ovld __cnfn copysign(half8 x, half8 y);
6890half16 __ovld __cnfn copysign(half16 x, half16 y);
6891#endif //cl_khr_fp16
6892
6896float __ovld __cnfn cos(float);
6897float2 __ovld __cnfn cos(float2);
6898float3 __ovld __cnfn cos(float3);
6899float4 __ovld __cnfn cos(float4);
6900float8 __ovld __cnfn cos(float8);
6901float16 __ovld __cnfn cos(float16);
6902#ifdef cl_khr_fp64
6903double __ovld __cnfn cos(double);
6904double2 __ovld __cnfn cos(double2);
6905double3 __ovld __cnfn cos(double3);
6906double4 __ovld __cnfn cos(double4);
6907double8 __ovld __cnfn cos(double8);
6908double16 __ovld __cnfn cos(double16);
6909#endif //cl_khr_fp64
6910#ifdef cl_khr_fp16
6911half __ovld __cnfn cos(half);
6912half2 __ovld __cnfn cos(half2);
6913half3 __ovld __cnfn cos(half3);
6914half4 __ovld __cnfn cos(half4);
6915half8 __ovld __cnfn cos(half8);
6916half16 __ovld __cnfn cos(half16);
6917#endif //cl_khr_fp16
6918
6922float __ovld __cnfn cosh(float);
6923float2 __ovld __cnfn cosh(float2);
6924float3 __ovld __cnfn cosh(float3);
6925float4 __ovld __cnfn cosh(float4);
6926float8 __ovld __cnfn cosh(float8);
6927float16 __ovld __cnfn cosh(float16);
6928#ifdef cl_khr_fp64
6929double __ovld __cnfn cosh(double);
6930double2 __ovld __cnfn cosh(double2);
6931double3 __ovld __cnfn cosh(double3);
6932double4 __ovld __cnfn cosh(double4);
6933double8 __ovld __cnfn cosh(double8);
6934double16 __ovld __cnfn cosh(double16);
6935#endif //cl_khr_fp64
6936#ifdef cl_khr_fp16
6937half __ovld __cnfn cosh(half);
6938half2 __ovld __cnfn cosh(half2);
6939half3 __ovld __cnfn cosh(half3);
6940half4 __ovld __cnfn cosh(half4);
6941half8 __ovld __cnfn cosh(half8);
6942half16 __ovld __cnfn cosh(half16);
6943#endif //cl_khr_fp16
6944
6948float __ovld __cnfn cospi(float x);
6949float2 __ovld __cnfn cospi(float2 x);
6950float3 __ovld __cnfn cospi(float3 x);
6951float4 __ovld __cnfn cospi(float4 x);
6952float8 __ovld __cnfn cospi(float8 x);
6953float16 __ovld __cnfn cospi(float16 x);
6954#ifdef cl_khr_fp64
6955double __ovld __cnfn cospi(double x);
6956double2 __ovld __cnfn cospi(double2 x);
6957double3 __ovld __cnfn cospi(double3 x);
6958double4 __ovld __cnfn cospi(double4 x);
6959double8 __ovld __cnfn cospi(double8 x);
6960double16 __ovld __cnfn cospi(double16 x);
6961#endif //cl_khr_fp64
6962#ifdef cl_khr_fp16
6963half __ovld __cnfn cospi(half x);
6964half2 __ovld __cnfn cospi(half2 x);
6965half3 __ovld __cnfn cospi(half3 x);
6966half4 __ovld __cnfn cospi(half4 x);
6967half8 __ovld __cnfn cospi(half8 x);
6968half16 __ovld __cnfn cospi(half16 x);
6969#endif //cl_khr_fp16
6970
6974float __ovld __cnfn erfc(float);
6975float2 __ovld __cnfn erfc(float2);
6976float3 __ovld __cnfn erfc(float3);
6977float4 __ovld __cnfn erfc(float4);
6978float8 __ovld __cnfn erfc(float8);
6979float16 __ovld __cnfn erfc(float16);
6980#ifdef cl_khr_fp64
6981double __ovld __cnfn erfc(double);
6982double2 __ovld __cnfn erfc(double2);
6983double3 __ovld __cnfn erfc(double3);
6984double4 __ovld __cnfn erfc(double4);
6985double8 __ovld __cnfn erfc(double8);
6986double16 __ovld __cnfn erfc(double16);
6987#endif //cl_khr_fp64
6988#ifdef cl_khr_fp16
6989half __ovld __cnfn erfc(half);
6990half2 __ovld __cnfn erfc(half2);
6991half3 __ovld __cnfn erfc(half3);
6992half4 __ovld __cnfn erfc(half4);
6993half8 __ovld __cnfn erfc(half8);
6994half16 __ovld __cnfn erfc(half16);
6995#endif //cl_khr_fp16
6996
7001float __ovld __cnfn erf(float);
7002float2 __ovld __cnfn erf(float2);
7003float3 __ovld __cnfn erf(float3);
7004float4 __ovld __cnfn erf(float4);
7005float8 __ovld __cnfn erf(float8);
7006float16 __ovld __cnfn erf(float16);
7007#ifdef cl_khr_fp64
7008double __ovld __cnfn erf(double);
7009double2 __ovld __cnfn erf(double2);
7010double3 __ovld __cnfn erf(double3);
7011double4 __ovld __cnfn erf(double4);
7012double8 __ovld __cnfn erf(double8);
7013double16 __ovld __cnfn erf(double16);
7014#endif //cl_khr_fp64
7015#ifdef cl_khr_fp16
7016half __ovld __cnfn erf(half);
7017half2 __ovld __cnfn erf(half2);
7018half3 __ovld __cnfn erf(half3);
7019half4 __ovld __cnfn erf(half4);
7020half8 __ovld __cnfn erf(half8);
7021half16 __ovld __cnfn erf(half16);
7022#endif //cl_khr_fp16
7023
7027float __ovld __cnfn exp(float x);
7028float2 __ovld __cnfn exp(float2 x);
7029float3 __ovld __cnfn exp(float3 x);
7030float4 __ovld __cnfn exp(float4 x);
7031float8 __ovld __cnfn exp(float8 x);
7032float16 __ovld __cnfn exp(float16 x);
7033#ifdef cl_khr_fp64
7034double __ovld __cnfn exp(double x);
7035double2 __ovld __cnfn exp(double2 x);
7036double3 __ovld __cnfn exp(double3 x);
7037double4 __ovld __cnfn exp(double4 x);
7038double8 __ovld __cnfn exp(double8 x);
7039double16 __ovld __cnfn exp(double16 x);
7040#endif //cl_khr_fp64
7041#ifdef cl_khr_fp16
7042half __ovld __cnfn exp(half x);
7043half2 __ovld __cnfn exp(half2 x);
7044half3 __ovld __cnfn exp(half3 x);
7045half4 __ovld __cnfn exp(half4 x);
7046half8 __ovld __cnfn exp(half8 x);
7047half16 __ovld __cnfn exp(half16 x);
7048#endif //cl_khr_fp16
7049
7053float __ovld __cnfn exp2(float);
7054float2 __ovld __cnfn exp2(float2);
7055float3 __ovld __cnfn exp2(float3);
7056float4 __ovld __cnfn exp2(float4);
7057float8 __ovld __cnfn exp2(float8);
7058float16 __ovld __cnfn exp2(float16);
7059#ifdef cl_khr_fp64
7060double __ovld __cnfn exp2(double);
7061double2 __ovld __cnfn exp2(double2);
7062double3 __ovld __cnfn exp2(double3);
7063double4 __ovld __cnfn exp2(double4);
7064double8 __ovld __cnfn exp2(double8);
7065double16 __ovld __cnfn exp2(double16);
7066#endif //cl_khr_fp64
7067#ifdef cl_khr_fp16
7068half __ovld __cnfn exp2(half);
7069half2 __ovld __cnfn exp2(half2);
7070half3 __ovld __cnfn exp2(half3);
7071half4 __ovld __cnfn exp2(half4);
7072half8 __ovld __cnfn exp2(half8);
7073half16 __ovld __cnfn exp2(half16);
7074#endif //cl_khr_fp16
7075
7079float __ovld __cnfn exp10(float);
7080float2 __ovld __cnfn exp10(float2);
7081float3 __ovld __cnfn exp10(float3);
7082float4 __ovld __cnfn exp10(float4);
7083float8 __ovld __cnfn exp10(float8);
7084float16 __ovld __cnfn exp10(float16);
7085#ifdef cl_khr_fp64
7086double __ovld __cnfn exp10(double);
7087double2 __ovld __cnfn exp10(double2);
7088double3 __ovld __cnfn exp10(double3);
7089double4 __ovld __cnfn exp10(double4);
7090double8 __ovld __cnfn exp10(double8);
7091double16 __ovld __cnfn exp10(double16);
7092#endif //cl_khr_fp64
7093#ifdef cl_khr_fp16
7094half __ovld __cnfn exp10(half);
7095half2 __ovld __cnfn exp10(half2);
7096half3 __ovld __cnfn exp10(half3);
7097half4 __ovld __cnfn exp10(half4);
7098half8 __ovld __cnfn exp10(half8);
7099half16 __ovld __cnfn exp10(half16);
7100#endif //cl_khr_fp16
7101
7105float __ovld __cnfn expm1(float x);
7106float2 __ovld __cnfn expm1(float2 x);
7107float3 __ovld __cnfn expm1(float3 x);
7108float4 __ovld __cnfn expm1(float4 x);
7109float8 __ovld __cnfn expm1(float8 x);
7110float16 __ovld __cnfn expm1(float16 x);
7111#ifdef cl_khr_fp64
7112double __ovld __cnfn expm1(double x);
7113double2 __ovld __cnfn expm1(double2 x);
7114double3 __ovld __cnfn expm1(double3 x);
7115double4 __ovld __cnfn expm1(double4 x);
7116double8 __ovld __cnfn expm1(double8 x);
7117double16 __ovld __cnfn expm1(double16 x);
7118#endif //cl_khr_fp64
7119#ifdef cl_khr_fp16
7120half __ovld __cnfn expm1(half x);
7121half2 __ovld __cnfn expm1(half2 x);
7122half3 __ovld __cnfn expm1(half3 x);
7123half4 __ovld __cnfn expm1(half4 x);
7124half8 __ovld __cnfn expm1(half8 x);
7125half16 __ovld __cnfn expm1(half16 x);
7126#endif //cl_khr_fp16
7127
7131float __ovld __cnfn fabs(float);
7132float2 __ovld __cnfn fabs(float2);
7133float3 __ovld __cnfn fabs(float3);
7134float4 __ovld __cnfn fabs(float4);
7135float8 __ovld __cnfn fabs(float8);
7136float16 __ovld __cnfn fabs(float16);
7137#ifdef cl_khr_fp64
7138double __ovld __cnfn fabs(double);
7139double2 __ovld __cnfn fabs(double2);
7140double3 __ovld __cnfn fabs(double3);
7141double4 __ovld __cnfn fabs(double4);
7142double8 __ovld __cnfn fabs(double8);
7143double16 __ovld __cnfn fabs(double16);
7144#endif //cl_khr_fp64
7145#ifdef cl_khr_fp16
7146half __ovld __cnfn fabs(half);
7147half2 __ovld __cnfn fabs(half2);
7148half3 __ovld __cnfn fabs(half3);
7149half4 __ovld __cnfn fabs(half4);
7150half8 __ovld __cnfn fabs(half8);
7151half16 __ovld __cnfn fabs(half16);
7152#endif //cl_khr_fp16
7153
7157float __ovld __cnfn fdim(float x, float y);
7158float2 __ovld __cnfn fdim(float2 x, float2 y);
7159float3 __ovld __cnfn fdim(float3 x, float3 y);
7160float4 __ovld __cnfn fdim(float4 x, float4 y);
7161float8 __ovld __cnfn fdim(float8 x, float8 y);
7162float16 __ovld __cnfn fdim(float16 x, float16 y);
7163#ifdef cl_khr_fp64
7164double __ovld __cnfn fdim(double x, double y);
7165double2 __ovld __cnfn fdim(double2 x, double2 y);
7166double3 __ovld __cnfn fdim(double3 x, double3 y);
7167double4 __ovld __cnfn fdim(double4 x, double4 y);
7168double8 __ovld __cnfn fdim(double8 x, double8 y);
7169double16 __ovld __cnfn fdim(double16 x, double16 y);
7170#endif //cl_khr_fp64
7171#ifdef cl_khr_fp16
7172half __ovld __cnfn fdim(half x, half y);
7173half2 __ovld __cnfn fdim(half2 x, half2 y);
7174half3 __ovld __cnfn fdim(half3 x, half3 y);
7175half4 __ovld __cnfn fdim(half4 x, half4 y);
7176half8 __ovld __cnfn fdim(half8 x, half8 y);
7177half16 __ovld __cnfn fdim(half16 x, half16 y);
7178#endif //cl_khr_fp16
7179
7184float __ovld __cnfn floor(float);
7185float2 __ovld __cnfn floor(float2);
7186float3 __ovld __cnfn floor(float3);
7187float4 __ovld __cnfn floor(float4);
7188float8 __ovld __cnfn floor(float8);
7189float16 __ovld __cnfn floor(float16);
7190#ifdef cl_khr_fp64
7191double __ovld __cnfn floor(double);
7192double2 __ovld __cnfn floor(double2);
7193double3 __ovld __cnfn floor(double3);
7194double4 __ovld __cnfn floor(double4);
7195double8 __ovld __cnfn floor(double8);
7196double16 __ovld __cnfn floor(double16);
7197#endif //cl_khr_fp64
7198#ifdef cl_khr_fp16
7199half __ovld __cnfn floor(half);
7200half2 __ovld __cnfn floor(half2);
7201half3 __ovld __cnfn floor(half3);
7202half4 __ovld __cnfn floor(half4);
7203half8 __ovld __cnfn floor(half8);
7204half16 __ovld __cnfn floor(half16);
7205#endif //cl_khr_fp16
7206
7214float __ovld __cnfn fma(float a, float b, float c);
7215float2 __ovld __cnfn fma(float2 a, float2 b, float2 c);
7216float3 __ovld __cnfn fma(float3 a, float3 b, float3 c);
7217float4 __ovld __cnfn fma(float4 a, float4 b, float4 c);
7218float8 __ovld __cnfn fma(float8 a, float8 b, float8 c);
7219float16 __ovld __cnfn fma(float16 a, float16 b, float16 c);
7220#ifdef cl_khr_fp64
7221double __ovld __cnfn fma(double a, double b, double c);
7222double2 __ovld __cnfn fma(double2 a, double2 b, double2 c);
7223double3 __ovld __cnfn fma(double3 a, double3 b, double3 c);
7224double4 __ovld __cnfn fma(double4 a, double4 b, double4 c);
7225double8 __ovld __cnfn fma(double8 a, double8 b, double8 c);
7226double16 __ovld __cnfn fma(double16 a, double16 b, double16 c);
7227#endif //cl_khr_fp64
7228#ifdef cl_khr_fp16
7229half __ovld __cnfn fma(half a, half b, half c);
7230half2 __ovld __cnfn fma(half2 a, half2 b, half2 c);
7231half3 __ovld __cnfn fma(half3 a, half3 b, half3 c);
7232half4 __ovld __cnfn fma(half4 a, half4 b, half4 c);
7233half8 __ovld __cnfn fma(half8 a, half8 b, half8 c);
7234half16 __ovld __cnfn fma(half16 a, half16 b, half16 c);
7235#endif //cl_khr_fp16
7236
7243float __ovld __cnfn fmax(float x, float y);
7244float2 __ovld __cnfn fmax(float2 x, float2 y);
7245float3 __ovld __cnfn fmax(float3 x, float3 y);
7246float4 __ovld __cnfn fmax(float4 x, float4 y);
7247float8 __ovld __cnfn fmax(float8 x, float8 y);
7248float16 __ovld __cnfn fmax(float16 x, float16 y);
7249float2 __ovld __cnfn fmax(float2 x, float y);
7250float3 __ovld __cnfn fmax(float3 x, float y);
7251float4 __ovld __cnfn fmax(float4 x, float y);
7252float8 __ovld __cnfn fmax(float8 x, float y);
7253float16 __ovld __cnfn fmax(float16 x, float y);
7254#ifdef cl_khr_fp64
7255double __ovld __cnfn fmax(double x, double y);
7256double2 __ovld __cnfn fmax(double2 x, double2 y);
7257double3 __ovld __cnfn fmax(double3 x, double3 y);
7258double4 __ovld __cnfn fmax(double4 x, double4 y);
7259double8 __ovld __cnfn fmax(double8 x, double8 y);
7260double16 __ovld __cnfn fmax(double16 x, double16 y);
7261double2 __ovld __cnfn fmax(double2 x, double y);
7262double3 __ovld __cnfn fmax(double3 x, double y);
7263double4 __ovld __cnfn fmax(double4 x, double y);
7264double8 __ovld __cnfn fmax(double8 x, double y);
7265double16 __ovld __cnfn fmax(double16 x, double y);
7266#endif //cl_khr_fp64
7267#ifdef cl_khr_fp16
7268half __ovld __cnfn fmax(half x, half y);
7269half2 __ovld __cnfn fmax(half2 x, half2 y);
7270half3 __ovld __cnfn fmax(half3 x, half3 y);
7271half4 __ovld __cnfn fmax(half4 x, half4 y);
7272half8 __ovld __cnfn fmax(half8 x, half8 y);
7273half16 __ovld __cnfn fmax(half16 x, half16 y);
7274half2 __ovld __cnfn fmax(half2 x, half y);
7275half3 __ovld __cnfn fmax(half3 x, half y);
7276half4 __ovld __cnfn fmax(half4 x, half y);
7277half8 __ovld __cnfn fmax(half8 x, half y);
7278half16 __ovld __cnfn fmax(half16 x, half y);
7279#endif //cl_khr_fp16
7280
7287float __ovld __cnfn fmin(float x, float y);
7288float2 __ovld __cnfn fmin(float2 x, float2 y);
7289float3 __ovld __cnfn fmin(float3 x, float3 y);
7290float4 __ovld __cnfn fmin(float4 x, float4 y);
7291float8 __ovld __cnfn fmin(float8 x, float8 y);
7292float16 __ovld __cnfn fmin(float16 x, float16 y);
7293float2 __ovld __cnfn fmin(float2 x, float y);
7294float3 __ovld __cnfn fmin(float3 x, float y);
7295float4 __ovld __cnfn fmin(float4 x, float y);
7296float8 __ovld __cnfn fmin(float8 x, float y);
7297float16 __ovld __cnfn fmin(float16 x, float y);
7298#ifdef cl_khr_fp64
7299double __ovld __cnfn fmin(double x, double y);
7300double2 __ovld __cnfn fmin(double2 x, double2 y);
7301double3 __ovld __cnfn fmin(double3 x, double3 y);
7302double4 __ovld __cnfn fmin(double4 x, double4 y);
7303double8 __ovld __cnfn fmin(double8 x, double8 y);
7304double16 __ovld __cnfn fmin(double16 x, double16 y);
7305double2 __ovld __cnfn fmin(double2 x, double y);
7306double3 __ovld __cnfn fmin(double3 x, double y);
7307double4 __ovld __cnfn fmin(double4 x, double y);
7308double8 __ovld __cnfn fmin(double8 x, double y);
7309double16 __ovld __cnfn fmin(double16 x, double y);
7310#endif //cl_khr_fp64
7311#ifdef cl_khr_fp16
7312half __ovld __cnfn fmin(half x, half y);
7313half2 __ovld __cnfn fmin(half2 x, half2 y);
7314half3 __ovld __cnfn fmin(half3 x, half3 y);
7315half4 __ovld __cnfn fmin(half4 x, half4 y);
7316half8 __ovld __cnfn fmin(half8 x, half8 y);
7317half16 __ovld __cnfn fmin(half16 x, half16 y);
7318half2 __ovld __cnfn fmin(half2 x, half y);
7319half3 __ovld __cnfn fmin(half3 x, half y);
7320half4 __ovld __cnfn fmin(half4 x, half y);
7321half8 __ovld __cnfn fmin(half8 x, half y);
7322half16 __ovld __cnfn fmin(half16 x, half y);
7323#endif //cl_khr_fp16
7324
7328float __ovld __cnfn fmod(float x, float y);
7329float2 __ovld __cnfn fmod(float2 x, float2 y);
7330float3 __ovld __cnfn fmod(float3 x, float3 y);
7331float4 __ovld __cnfn fmod(float4 x, float4 y);
7332float8 __ovld __cnfn fmod(float8 x, float8 y);
7333float16 __ovld __cnfn fmod(float16 x, float16 y);
7334#ifdef cl_khr_fp64
7335double __ovld __cnfn fmod(double x, double y);
7336double2 __ovld __cnfn fmod(double2 x, double2 y);
7337double3 __ovld __cnfn fmod(double3 x, double3 y);
7338double4 __ovld __cnfn fmod(double4 x, double4 y);
7339double8 __ovld __cnfn fmod(double8 x, double8 y);
7340double16 __ovld __cnfn fmod(double16 x, double16 y);
7341#endif //cl_khr_fp64
7342#ifdef cl_khr_fp16
7343half __ovld __cnfn fmod(half x, half y);
7344half2 __ovld __cnfn fmod(half2 x, half2 y);
7345half3 __ovld __cnfn fmod(half3 x, half3 y);
7346half4 __ovld __cnfn fmod(half4 x, half4 y);
7347half8 __ovld __cnfn fmod(half8 x, half8 y);
7348half16 __ovld __cnfn fmod(half16 x, half16 y);
7349#endif //cl_khr_fp16
7350
7355#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7356float __ovld fract(float x, float *iptr);
7357float2 __ovld fract(float2 x, float2 *iptr);
7358float3 __ovld fract(float3 x, float3 *iptr);
7359float4 __ovld fract(float4 x, float4 *iptr);
7360float8 __ovld fract(float8 x, float8 *iptr);
7361float16 __ovld fract(float16 x, float16 *iptr);
7362#ifdef cl_khr_fp64
7363double __ovld fract(double x, double *iptr);
7364double2 __ovld fract(double2 x, double2 *iptr);
7365double3 __ovld fract(double3 x, double3 *iptr);
7366double4 __ovld fract(double4 x, double4 *iptr);
7367double8 __ovld fract(double8 x, double8 *iptr);
7368double16 __ovld fract(double16 x, double16 *iptr);
7369#endif //cl_khr_fp64
7370#ifdef cl_khr_fp16
7371half __ovld fract(half x, half *iptr);
7372half2 __ovld fract(half2 x, half2 *iptr);
7373half3 __ovld fract(half3 x, half3 *iptr);
7374half4 __ovld fract(half4 x, half4 *iptr);
7375half8 __ovld fract(half8 x, half8 *iptr);
7376half16 __ovld fract(half16 x, half16 *iptr);
7377#endif //cl_khr_fp16
7378#else
7379float __ovld fract(float x, __global float *iptr);
7380float2 __ovld fract(float2 x, __global float2 *iptr);
7381float3 __ovld fract(float3 x, __global float3 *iptr);
7382float4 __ovld fract(float4 x, __global float4 *iptr);
7383float8 __ovld fract(float8 x, __global float8 *iptr);
7384float16 __ovld fract(float16 x, __global float16 *iptr);
7385float __ovld fract(float x, __local float *iptr);
7386float2 __ovld fract(float2 x, __local float2 *iptr);
7387float3 __ovld fract(float3 x, __local float3 *iptr);
7388float4 __ovld fract(float4 x, __local float4 *iptr);
7389float8 __ovld fract(float8 x, __local float8 *iptr);
7390float16 __ovld fract(float16 x, __local float16 *iptr);
7391float __ovld fract(float x, __private float *iptr);
7392float2 __ovld fract(float2 x, __private float2 *iptr);
7393float3 __ovld fract(float3 x, __private float3 *iptr);
7394float4 __ovld fract(float4 x, __private float4 *iptr);
7395float8 __ovld fract(float8 x, __private float8 *iptr);
7396float16 __ovld fract(float16 x, __private float16 *iptr);
7397#ifdef cl_khr_fp64
7398double __ovld fract(double x, __global double *iptr);
7399double2 __ovld fract(double2 x, __global double2 *iptr);
7400double3 __ovld fract(double3 x, __global double3 *iptr);
7401double4 __ovld fract(double4 x, __global double4 *iptr);
7402double8 __ovld fract(double8 x, __global double8 *iptr);
7403double16 __ovld fract(double16 x, __global double16 *iptr);
7404double __ovld fract(double x, __local double *iptr);
7405double2 __ovld fract(double2 x, __local double2 *iptr);
7406double3 __ovld fract(double3 x, __local double3 *iptr);
7407double4 __ovld fract(double4 x, __local double4 *iptr);
7408double8 __ovld fract(double8 x, __local double8 *iptr);
7409double16 __ovld fract(double16 x, __local double16 *iptr);
7410double __ovld fract(double x, __private double *iptr);
7411double2 __ovld fract(double2 x, __private double2 *iptr);
7412double3 __ovld fract(double3 x, __private double3 *iptr);
7413double4 __ovld fract(double4 x, __private double4 *iptr);
7414double8 __ovld fract(double8 x, __private double8 *iptr);
7415double16 __ovld fract(double16 x, __private double16 *iptr);
7416#endif //cl_khr_fp64
7417#ifdef cl_khr_fp16
7418half __ovld fract(half x, __global half *iptr);
7419half2 __ovld fract(half2 x, __global half2 *iptr);
7420half3 __ovld fract(half3 x, __global half3 *iptr);
7421half4 __ovld fract(half4 x, __global half4 *iptr);
7422half8 __ovld fract(half8 x, __global half8 *iptr);
7423half16 __ovld fract(half16 x, __global half16 *iptr);
7424half __ovld fract(half x, __local half *iptr);
7425half2 __ovld fract(half2 x, __local half2 *iptr);
7426half3 __ovld fract(half3 x, __local half3 *iptr);
7427half4 __ovld fract(half4 x, __local half4 *iptr);
7428half8 __ovld fract(half8 x, __local half8 *iptr);
7429half16 __ovld fract(half16 x, __local half16 *iptr);
7430half __ovld fract(half x, __private half *iptr);
7431half2 __ovld fract(half2 x, __private half2 *iptr);
7432half3 __ovld fract(half3 x, __private half3 *iptr);
7433half4 __ovld fract(half4 x, __private half4 *iptr);
7434half8 __ovld fract(half8 x, __private half8 *iptr);
7435half16 __ovld fract(half16 x, __private half16 *iptr);
7436#endif //cl_khr_fp16
7437#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7438
7445#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7446float __ovld frexp(float x, int *exp);
7447float2 __ovld frexp(float2 x, int2 *exp);
7448float3 __ovld frexp(float3 x, int3 *exp);
7449float4 __ovld frexp(float4 x, int4 *exp);
7450float8 __ovld frexp(float8 x, int8 *exp);
7451float16 __ovld frexp(float16 x, int16 *exp);
7452#ifdef cl_khr_fp64
7453double __ovld frexp(double x, int *exp);
7454double2 __ovld frexp(double2 x, int2 *exp);
7455double3 __ovld frexp(double3 x, int3 *exp);
7456double4 __ovld frexp(double4 x, int4 *exp);
7457double8 __ovld frexp(double8 x, int8 *exp);
7458double16 __ovld frexp(double16 x, int16 *exp);
7459#endif //cl_khr_fp64
7460#ifdef cl_khr_fp16
7461half __ovld frexp(half x, int *exp);
7462half2 __ovld frexp(half2 x, int2 *exp);
7463half3 __ovld frexp(half3 x, int3 *exp);
7464half4 __ovld frexp(half4 x, int4 *exp);
7465half8 __ovld frexp(half8 x, int8 *exp);
7466half16 __ovld frexp(half16 x, int16 *exp);
7467#endif //cl_khr_fp16
7468#else
7469float __ovld frexp(float x, __global int *exp);
7470float2 __ovld frexp(float2 x, __global int2 *exp);
7471float3 __ovld frexp(float3 x, __global int3 *exp);
7472float4 __ovld frexp(float4 x, __global int4 *exp);
7473float8 __ovld frexp(float8 x, __global int8 *exp);
7474float16 __ovld frexp(float16 x, __global int16 *exp);
7475float __ovld frexp(float x, __local int *exp);
7476float2 __ovld frexp(float2 x, __local int2 *exp);
7477float3 __ovld frexp(float3 x, __local int3 *exp);
7478float4 __ovld frexp(float4 x, __local int4 *exp);
7479float8 __ovld frexp(float8 x, __local int8 *exp);
7480float16 __ovld frexp(float16 x, __local int16 *exp);
7481float __ovld frexp(float x, __private int *exp);
7482float2 __ovld frexp(float2 x, __private int2 *exp);
7483float3 __ovld frexp(float3 x, __private int3 *exp);
7484float4 __ovld frexp(float4 x, __private int4 *exp);
7485float8 __ovld frexp(float8 x, __private int8 *exp);
7486float16 __ovld frexp(float16 x, __private int16 *exp);
7487#ifdef cl_khr_fp64
7488double __ovld frexp(double x, __global int *exp);
7489double2 __ovld frexp(double2 x, __global int2 *exp);
7490double3 __ovld frexp(double3 x, __global int3 *exp);
7491double4 __ovld frexp(double4 x, __global int4 *exp);
7492double8 __ovld frexp(double8 x, __global int8 *exp);
7493double16 __ovld frexp(double16 x, __global int16 *exp);
7494double __ovld frexp(double x, __local int *exp);
7495double2 __ovld frexp(double2 x, __local int2 *exp);
7496double3 __ovld frexp(double3 x, __local int3 *exp);
7497double4 __ovld frexp(double4 x, __local int4 *exp);
7498double8 __ovld frexp(double8 x, __local int8 *exp);
7499double16 __ovld frexp(double16 x, __local int16 *exp);
7500double __ovld frexp(double x, __private int *exp);
7501double2 __ovld frexp(double2 x, __private int2 *exp);
7502double3 __ovld frexp(double3 x, __private int3 *exp);
7503double4 __ovld frexp(double4 x, __private int4 *exp);
7504double8 __ovld frexp(double8 x, __private int8 *exp);
7505double16 __ovld frexp(double16 x, __private int16 *exp);
7506#endif //cl_khr_fp64
7507#ifdef cl_khr_fp16
7508half __ovld frexp(half x, __global int *exp);
7509half2 __ovld frexp(half2 x, __global int2 *exp);
7510half3 __ovld frexp(half3 x, __global int3 *exp);
7511half4 __ovld frexp(half4 x, __global int4 *exp);
7512half8 __ovld frexp(half8 x, __global int8 *exp);
7513half16 __ovld frexp(half16 x, __global int16 *exp);
7514half __ovld frexp(half x, __local int *exp);
7515half2 __ovld frexp(half2 x, __local int2 *exp);
7516half3 __ovld frexp(half3 x, __local int3 *exp);
7517half4 __ovld frexp(half4 x, __local int4 *exp);
7518half8 __ovld frexp(half8 x, __local int8 *exp);
7519half16 __ovld frexp(half16 x, __local int16 *exp);
7520half __ovld frexp(half x, __private int *exp);
7521half2 __ovld frexp(half2 x, __private int2 *exp);
7522half3 __ovld frexp(half3 x, __private int3 *exp);
7523half4 __ovld frexp(half4 x, __private int4 *exp);
7524half8 __ovld frexp(half8 x, __private int8 *exp);
7525half16 __ovld frexp(half16 x, __private int16 *exp);
7526#endif //cl_khr_fp16
7527#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7528
7533float __ovld __cnfn hypot(float x, float y);
7534float2 __ovld __cnfn hypot(float2 x, float2 y);
7535float3 __ovld __cnfn hypot(float3 x, float3 y);
7536float4 __ovld __cnfn hypot(float4 x, float4 y);
7537float8 __ovld __cnfn hypot(float8 x, float8 y);
7538float16 __ovld __cnfn hypot(float16 x, float16 y);
7539#ifdef cl_khr_fp64
7540double __ovld __cnfn hypot(double x, double y);
7541double2 __ovld __cnfn hypot(double2 x, double2 y);
7542double3 __ovld __cnfn hypot(double3 x, double3 y);
7543double4 __ovld __cnfn hypot(double4 x, double4 y);
7544double8 __ovld __cnfn hypot(double8 x, double8 y);
7545double16 __ovld __cnfn hypot(double16 x, double16 y);
7546#endif //cl_khr_fp64
7547#ifdef cl_khr_fp16
7548half __ovld __cnfn hypot(half x, half y);
7549half2 __ovld __cnfn hypot(half2 x, half2 y);
7550half3 __ovld __cnfn hypot(half3 x, half3 y);
7551half4 __ovld __cnfn hypot(half4 x, half4 y);
7552half8 __ovld __cnfn hypot(half8 x, half8 y);
7553half16 __ovld __cnfn hypot(half16 x, half16 y);
7554#endif //cl_khr_fp16
7555
7559int __ovld __cnfn ilogb(float x);
7560int2 __ovld __cnfn ilogb(float2 x);
7561int3 __ovld __cnfn ilogb(float3 x);
7562int4 __ovld __cnfn ilogb(float4 x);
7565#ifdef cl_khr_fp64
7566int __ovld __cnfn ilogb(double x);
7567int2 __ovld __cnfn ilogb(double2 x);
7568int3 __ovld __cnfn ilogb(double3 x);
7569int4 __ovld __cnfn ilogb(double4 x);
7570int8 __ovld __cnfn ilogb(double8 x);
7571int16 __ovld __cnfn ilogb(double16 x);
7572#endif //cl_khr_fp64
7573#ifdef cl_khr_fp16
7574int __ovld __cnfn ilogb(half x);
7575int2 __ovld __cnfn ilogb(half2 x);
7576int3 __ovld __cnfn ilogb(half3 x);
7577int4 __ovld __cnfn ilogb(half4 x);
7578int8 __ovld __cnfn ilogb(half8 x);
7579int16 __ovld __cnfn ilogb(half16 x);
7580#endif //cl_khr_fp16
7581
7585float __ovld __cnfn ldexp(float x, int n);
7586float2 __ovld __cnfn ldexp(float2 x, int2 n);
7587float3 __ovld __cnfn ldexp(float3 x, int3 n);
7588float4 __ovld __cnfn ldexp(float4 x, int4 n);
7589float8 __ovld __cnfn ldexp(float8 x, int8 n);
7590float16 __ovld __cnfn ldexp(float16 x, int16 n);
7591float2 __ovld __cnfn ldexp(float2 x, int n);
7592float3 __ovld __cnfn ldexp(float3 x, int n);
7593float4 __ovld __cnfn ldexp(float4 x, int n);
7594float8 __ovld __cnfn ldexp(float8 x, int n);
7595float16 __ovld __cnfn ldexp(float16 x, int n);
7596#ifdef cl_khr_fp64
7597double __ovld __cnfn ldexp(double x, int n);
7598double2 __ovld __cnfn ldexp(double2 x, int2 n);
7599double3 __ovld __cnfn ldexp(double3 x, int3 n);
7600double4 __ovld __cnfn ldexp(double4 x, int4 n);
7601double8 __ovld __cnfn ldexp(double8 x, int8 n);
7602double16 __ovld __cnfn ldexp(double16 x, int16 n);
7603double2 __ovld __cnfn ldexp(double2 x, int n);
7604double3 __ovld __cnfn ldexp(double3 x, int n);
7605double4 __ovld __cnfn ldexp(double4 x, int n);
7606double8 __ovld __cnfn ldexp(double8 x, int n);
7607double16 __ovld __cnfn ldexp(double16 x, int n);
7608#endif //cl_khr_fp64
7609#ifdef cl_khr_fp16
7610half __ovld __cnfn ldexp(half x, int n);
7611half2 __ovld __cnfn ldexp(half2 x, int2 n);
7612half3 __ovld __cnfn ldexp(half3 x, int3 n);
7613half4 __ovld __cnfn ldexp(half4 x, int4 n);
7614half8 __ovld __cnfn ldexp(half8 x, int8 n);
7615half16 __ovld __cnfn ldexp(half16 x, int16 n);
7616half2 __ovld __cnfn ldexp(half2 x, int n);
7617half3 __ovld __cnfn ldexp(half3 x, int n);
7618half4 __ovld __cnfn ldexp(half4 x, int n);
7619half8 __ovld __cnfn ldexp(half8 x, int n);
7620half16 __ovld __cnfn ldexp(half16 x, int n);
7621#endif //cl_khr_fp16
7622
7629float __ovld __cnfn lgamma(float x);
7630float2 __ovld __cnfn lgamma(float2 x);
7631float3 __ovld __cnfn lgamma(float3 x);
7632float4 __ovld __cnfn lgamma(float4 x);
7633float8 __ovld __cnfn lgamma(float8 x);
7634float16 __ovld __cnfn lgamma(float16 x);
7635#ifdef cl_khr_fp64
7636double __ovld __cnfn lgamma(double x);
7637double2 __ovld __cnfn lgamma(double2 x);
7638double3 __ovld __cnfn lgamma(double3 x);
7639double4 __ovld __cnfn lgamma(double4 x);
7640double8 __ovld __cnfn lgamma(double8 x);
7641double16 __ovld __cnfn lgamma(double16 x);
7642#endif //cl_khr_fp64
7643#ifdef cl_khr_fp16
7644half __ovld __cnfn lgamma(half x);
7645half2 __ovld __cnfn lgamma(half2 x);
7646half3 __ovld __cnfn lgamma(half3 x);
7647half4 __ovld __cnfn lgamma(half4 x);
7648half8 __ovld __cnfn lgamma(half8 x);
7649half16 __ovld __cnfn lgamma(half16 x);
7650#endif //cl_khr_fp16
7651
7652#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7653float __ovld lgamma_r(float x, int *signp);
7654float2 __ovld lgamma_r(float2 x, int2 *signp);
7655float3 __ovld lgamma_r(float3 x, int3 *signp);
7656float4 __ovld lgamma_r(float4 x, int4 *signp);
7657float8 __ovld lgamma_r(float8 x, int8 *signp);
7658float16 __ovld lgamma_r(float16 x, int16 *signp);
7659#ifdef cl_khr_fp64
7660double __ovld lgamma_r(double x, int *signp);
7661double2 __ovld lgamma_r(double2 x, int2 *signp);
7662double3 __ovld lgamma_r(double3 x, int3 *signp);
7663double4 __ovld lgamma_r(double4 x, int4 *signp);
7664double8 __ovld lgamma_r(double8 x, int8 *signp);
7665double16 __ovld lgamma_r(double16 x, int16 *signp);
7666#endif //cl_khr_fp64
7667#ifdef cl_khr_fp16
7668half __ovld lgamma_r(half x, int *signp);
7669half2 __ovld lgamma_r(half2 x, int2 *signp);
7670half3 __ovld lgamma_r(half3 x, int3 *signp);
7671half4 __ovld lgamma_r(half4 x, int4 *signp);
7672half8 __ovld lgamma_r(half8 x, int8 *signp);
7673half16 __ovld lgamma_r(half16 x, int16 *signp);
7674#endif //cl_khr_fp16
7675#else
7676float __ovld lgamma_r(float x, __global int *signp);
7677float2 __ovld lgamma_r(float2 x, __global int2 *signp);
7678float3 __ovld lgamma_r(float3 x, __global int3 *signp);
7679float4 __ovld lgamma_r(float4 x, __global int4 *signp);
7680float8 __ovld lgamma_r(float8 x, __global int8 *signp);
7681float16 __ovld lgamma_r(float16 x, __global int16 *signp);
7682float __ovld lgamma_r(float x, __local int *signp);
7683float2 __ovld lgamma_r(float2 x, __local int2 *signp);
7684float3 __ovld lgamma_r(float3 x, __local int3 *signp);
7685float4 __ovld lgamma_r(float4 x, __local int4 *signp);
7686float8 __ovld lgamma_r(float8 x, __local int8 *signp);
7687float16 __ovld lgamma_r(float16 x, __local int16 *signp);
7688float __ovld lgamma_r(float x, __private int *signp);
7689float2 __ovld lgamma_r(float2 x, __private int2 *signp);
7690float3 __ovld lgamma_r(float3 x, __private int3 *signp);
7691float4 __ovld lgamma_r(float4 x, __private int4 *signp);
7692float8 __ovld lgamma_r(float8 x, __private int8 *signp);
7693float16 __ovld lgamma_r(float16 x, __private int16 *signp);
7694#ifdef cl_khr_fp64
7695double __ovld lgamma_r(double x, __global int *signp);
7696double2 __ovld lgamma_r(double2 x, __global int2 *signp);
7697double3 __ovld lgamma_r(double3 x, __global int3 *signp);
7698double4 __ovld lgamma_r(double4 x, __global int4 *signp);
7699double8 __ovld lgamma_r(double8 x, __global int8 *signp);
7700double16 __ovld lgamma_r(double16 x, __global int16 *signp);
7701double __ovld lgamma_r(double x, __local int *signp);
7702double2 __ovld lgamma_r(double2 x, __local int2 *signp);
7703double3 __ovld lgamma_r(double3 x, __local int3 *signp);
7704double4 __ovld lgamma_r(double4 x, __local int4 *signp);
7705double8 __ovld lgamma_r(double8 x, __local int8 *signp);
7706double16 __ovld lgamma_r(double16 x, __local int16 *signp);
7707double __ovld lgamma_r(double x, __private int *signp);
7708double2 __ovld lgamma_r(double2 x, __private int2 *signp);
7709double3 __ovld lgamma_r(double3 x, __private int3 *signp);
7710double4 __ovld lgamma_r(double4 x, __private int4 *signp);
7711double8 __ovld lgamma_r(double8 x, __private int8 *signp);
7712double16 __ovld lgamma_r(double16 x, __private int16 *signp);
7713#endif //cl_khr_fp64
7714#ifdef cl_khr_fp16
7715half __ovld lgamma_r(half x, __global int *signp);
7716half2 __ovld lgamma_r(half2 x, __global int2 *signp);
7717half3 __ovld lgamma_r(half3 x, __global int3 *signp);
7718half4 __ovld lgamma_r(half4 x, __global int4 *signp);
7719half8 __ovld lgamma_r(half8 x, __global int8 *signp);
7720half16 __ovld lgamma_r(half16 x, __global int16 *signp);
7721half __ovld lgamma_r(half x, __local int *signp);
7722half2 __ovld lgamma_r(half2 x, __local int2 *signp);
7723half3 __ovld lgamma_r(half3 x, __local int3 *signp);
7724half4 __ovld lgamma_r(half4 x, __local int4 *signp);
7725half8 __ovld lgamma_r(half8 x, __local int8 *signp);
7726half16 __ovld lgamma_r(half16 x, __local int16 *signp);
7727half __ovld lgamma_r(half x, __private int *signp);
7728half2 __ovld lgamma_r(half2 x, __private int2 *signp);
7729half3 __ovld lgamma_r(half3 x, __private int3 *signp);
7730half4 __ovld lgamma_r(half4 x, __private int4 *signp);
7731half8 __ovld lgamma_r(half8 x, __private int8 *signp);
7732half16 __ovld lgamma_r(half16 x, __private int16 *signp);
7733#endif //cl_khr_fp16
7734#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7735
7739float __ovld __cnfn log(float);
7740float2 __ovld __cnfn log(float2);
7741float3 __ovld __cnfn log(float3);
7742float4 __ovld __cnfn log(float4);
7743float8 __ovld __cnfn log(float8);
7744float16 __ovld __cnfn log(float16);
7745#ifdef cl_khr_fp64
7746double __ovld __cnfn log(double);
7747double2 __ovld __cnfn log(double2);
7748double3 __ovld __cnfn log(double3);
7749double4 __ovld __cnfn log(double4);
7750double8 __ovld __cnfn log(double8);
7751double16 __ovld __cnfn log(double16);
7752#endif //cl_khr_fp64
7753#ifdef cl_khr_fp16
7754half __ovld __cnfn log(half);
7755half2 __ovld __cnfn log(half2);
7756half3 __ovld __cnfn log(half3);
7757half4 __ovld __cnfn log(half4);
7758half8 __ovld __cnfn log(half8);
7759half16 __ovld __cnfn log(half16);
7760#endif //cl_khr_fp16
7761
7765float __ovld __cnfn log2(float);
7766float2 __ovld __cnfn log2(float2);
7767float3 __ovld __cnfn log2(float3);
7768float4 __ovld __cnfn log2(float4);
7769float8 __ovld __cnfn log2(float8);
7770float16 __ovld __cnfn log2(float16);
7771#ifdef cl_khr_fp64
7772double __ovld __cnfn log2(double);
7773double2 __ovld __cnfn log2(double2);
7774double3 __ovld __cnfn log2(double3);
7775double4 __ovld __cnfn log2(double4);
7776double8 __ovld __cnfn log2(double8);
7777double16 __ovld __cnfn log2(double16);
7778#endif //cl_khr_fp64
7779#ifdef cl_khr_fp16
7780half __ovld __cnfn log2(half);
7781half2 __ovld __cnfn log2(half2);
7782half3 __ovld __cnfn log2(half3);
7783half4 __ovld __cnfn log2(half4);
7784half8 __ovld __cnfn log2(half8);
7785half16 __ovld __cnfn log2(half16);
7786#endif //cl_khr_fp16
7787
7791float __ovld __cnfn log10(float);
7792float2 __ovld __cnfn log10(float2);
7793float3 __ovld __cnfn log10(float3);
7794float4 __ovld __cnfn log10(float4);
7795float8 __ovld __cnfn log10(float8);
7796float16 __ovld __cnfn log10(float16);
7797#ifdef cl_khr_fp64
7798double __ovld __cnfn log10(double);
7799double2 __ovld __cnfn log10(double2);
7800double3 __ovld __cnfn log10(double3);
7801double4 __ovld __cnfn log10(double4);
7802double8 __ovld __cnfn log10(double8);
7803double16 __ovld __cnfn log10(double16);
7804#endif //cl_khr_fp64
7805#ifdef cl_khr_fp16
7806half __ovld __cnfn log10(half);
7807half2 __ovld __cnfn log10(half2);
7808half3 __ovld __cnfn log10(half3);
7809half4 __ovld __cnfn log10(half4);
7810half8 __ovld __cnfn log10(half8);
7811half16 __ovld __cnfn log10(half16);
7812#endif //cl_khr_fp16
7813
7817float __ovld __cnfn log1p(float x);
7818float2 __ovld __cnfn log1p(float2 x);
7819float3 __ovld __cnfn log1p(float3 x);
7820float4 __ovld __cnfn log1p(float4 x);
7821float8 __ovld __cnfn log1p(float8 x);
7822float16 __ovld __cnfn log1p(float16 x);
7823#ifdef cl_khr_fp64
7824double __ovld __cnfn log1p(double x);
7825double2 __ovld __cnfn log1p(double2 x);
7826double3 __ovld __cnfn log1p(double3 x);
7827double4 __ovld __cnfn log1p(double4 x);
7828double8 __ovld __cnfn log1p(double8 x);
7829double16 __ovld __cnfn log1p(double16 x);
7830#endif //cl_khr_fp64
7831#ifdef cl_khr_fp16
7832half __ovld __cnfn log1p(half x);
7833half2 __ovld __cnfn log1p(half2 x);
7834half3 __ovld __cnfn log1p(half3 x);
7835half4 __ovld __cnfn log1p(half4 x);
7836half8 __ovld __cnfn log1p(half8 x);
7837half16 __ovld __cnfn log1p(half16 x);
7838#endif //cl_khr_fp16
7839
7844float __ovld __cnfn logb(float x);
7845float2 __ovld __cnfn logb(float2 x);
7846float3 __ovld __cnfn logb(float3 x);
7847float4 __ovld __cnfn logb(float4 x);
7848float8 __ovld __cnfn logb(float8 x);
7849float16 __ovld __cnfn logb(float16 x);
7850#ifdef cl_khr_fp64
7851double __ovld __cnfn logb(double x);
7852double2 __ovld __cnfn logb(double2 x);
7853double3 __ovld __cnfn logb(double3 x);
7854double4 __ovld __cnfn logb(double4 x);
7855double8 __ovld __cnfn logb(double8 x);
7856double16 __ovld __cnfn logb(double16 x);
7857#endif //cl_khr_fp64
7858#ifdef cl_khr_fp16
7859half __ovld __cnfn logb(half x);
7860half2 __ovld __cnfn logb(half2 x);
7861half3 __ovld __cnfn logb(half3 x);
7862half4 __ovld __cnfn logb(half4 x);
7863half8 __ovld __cnfn logb(half8 x);
7864half16 __ovld __cnfn logb(half16 x);
7865#endif //cl_khr_fp16
7866
7874float __ovld __cnfn mad(float a, float b, float c);
7875float2 __ovld __cnfn mad(float2 a, float2 b, float2 c);
7876float3 __ovld __cnfn mad(float3 a, float3 b, float3 c);
7877float4 __ovld __cnfn mad(float4 a, float4 b, float4 c);
7878float8 __ovld __cnfn mad(float8 a, float8 b, float8 c);
7879float16 __ovld __cnfn mad(float16 a, float16 b, float16 c);
7880#ifdef cl_khr_fp64
7881double __ovld __cnfn mad(double a, double b, double c);
7882double2 __ovld __cnfn mad(double2 a, double2 b, double2 c);
7883double3 __ovld __cnfn mad(double3 a, double3 b, double3 c);
7884double4 __ovld __cnfn mad(double4 a, double4 b, double4 c);
7885double8 __ovld __cnfn mad(double8 a, double8 b, double8 c);
7886double16 __ovld __cnfn mad(double16 a, double16 b, double16 c);
7887#endif //cl_khr_fp64
7888#ifdef cl_khr_fp16
7889half __ovld __cnfn mad(half a, half b, half c);
7890half2 __ovld __cnfn mad(half2 a, half2 b, half2 c);
7891half3 __ovld __cnfn mad(half3 a, half3 b, half3 c);
7892half4 __ovld __cnfn mad(half4 a, half4 b, half4 c);
7893half8 __ovld __cnfn mad(half8 a, half8 b, half8 c);
7894half16 __ovld __cnfn mad(half16 a, half16 b, half16 c);
7895#endif //cl_khr_fp16
7896
7901float __ovld __cnfn maxmag(float x, float y);
7902float2 __ovld __cnfn maxmag(float2 x, float2 y);
7903float3 __ovld __cnfn maxmag(float3 x, float3 y);
7904float4 __ovld __cnfn maxmag(float4 x, float4 y);
7905float8 __ovld __cnfn maxmag(float8 x, float8 y);
7906float16 __ovld __cnfn maxmag(float16 x, float16 y);
7907#ifdef cl_khr_fp64
7908double __ovld __cnfn maxmag(double x, double y);
7909double2 __ovld __cnfn maxmag(double2 x, double2 y);
7910double3 __ovld __cnfn maxmag(double3 x, double3 y);
7911double4 __ovld __cnfn maxmag(double4 x, double4 y);
7912double8 __ovld __cnfn maxmag(double8 x, double8 y);
7913double16 __ovld __cnfn maxmag(double16 x, double16 y);
7914#endif //cl_khr_fp64
7915#ifdef cl_khr_fp16
7916half __ovld __cnfn maxmag(half x, half y);
7917half2 __ovld __cnfn maxmag(half2 x, half2 y);
7918half3 __ovld __cnfn maxmag(half3 x, half3 y);
7919half4 __ovld __cnfn maxmag(half4 x, half4 y);
7920half8 __ovld __cnfn maxmag(half8 x, half8 y);
7921half16 __ovld __cnfn maxmag(half16 x, half16 y);
7922#endif //cl_khr_fp16
7923
7928float __ovld __cnfn minmag(float x, float y);
7929float2 __ovld __cnfn minmag(float2 x, float2 y);
7930float3 __ovld __cnfn minmag(float3 x, float3 y);
7931float4 __ovld __cnfn minmag(float4 x, float4 y);
7932float8 __ovld __cnfn minmag(float8 x, float8 y);
7933float16 __ovld __cnfn minmag(float16 x, float16 y);
7934#ifdef cl_khr_fp64
7935double __ovld __cnfn minmag(double x, double y);
7936double2 __ovld __cnfn minmag(double2 x, double2 y);
7937double3 __ovld __cnfn minmag(double3 x, double3 y);
7938double4 __ovld __cnfn minmag(double4 x, double4 y);
7939double8 __ovld __cnfn minmag(double8 x, double8 y);
7940double16 __ovld __cnfn minmag(double16 x, double16 y);
7941#endif //cl_khr_fp64
7942#ifdef cl_khr_fp16
7943half __ovld __cnfn minmag(half x, half y);
7944half2 __ovld __cnfn minmag(half2 x, half2 y);
7945half3 __ovld __cnfn minmag(half3 x, half3 y);
7946half4 __ovld __cnfn minmag(half4 x, half4 y);
7947half8 __ovld __cnfn minmag(half8 x, half8 y);
7948half16 __ovld __cnfn minmag(half16 x, half16 y);
7949#endif //cl_khr_fp16
7950
7958#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
7959float __ovld modf(float x, float *iptr);
7960float2 __ovld modf(float2 x, float2 *iptr);
7961float3 __ovld modf(float3 x, float3 *iptr);
7962float4 __ovld modf(float4 x, float4 *iptr);
7963float8 __ovld modf(float8 x, float8 *iptr);
7964float16 __ovld modf(float16 x, float16 *iptr);
7965#ifdef cl_khr_fp64
7966double __ovld modf(double x, double *iptr);
7967double2 __ovld modf(double2 x, double2 *iptr);
7968double3 __ovld modf(double3 x, double3 *iptr);
7969double4 __ovld modf(double4 x, double4 *iptr);
7970double8 __ovld modf(double8 x, double8 *iptr);
7971double16 __ovld modf(double16 x, double16 *iptr);
7972#endif //cl_khr_fp64
7973#ifdef cl_khr_fp16
7974half __ovld modf(half x, half *iptr);
7975half2 __ovld modf(half2 x, half2 *iptr);
7976half3 __ovld modf(half3 x, half3 *iptr);
7977half4 __ovld modf(half4 x, half4 *iptr);
7978half8 __ovld modf(half8 x, half8 *iptr);
7979half16 __ovld modf(half16 x, half16 *iptr);
7980#endif //cl_khr_fp16
7981#else
7982float __ovld modf(float x, __global float *iptr);
7983float2 __ovld modf(float2 x, __global float2 *iptr);
7984float3 __ovld modf(float3 x, __global float3 *iptr);
7985float4 __ovld modf(float4 x, __global float4 *iptr);
7986float8 __ovld modf(float8 x, __global float8 *iptr);
7987float16 __ovld modf(float16 x, __global float16 *iptr);
7988float __ovld modf(float x, __local float *iptr);
7989float2 __ovld modf(float2 x, __local float2 *iptr);
7990float3 __ovld modf(float3 x, __local float3 *iptr);
7991float4 __ovld modf(float4 x, __local float4 *iptr);
7992float8 __ovld modf(float8 x, __local float8 *iptr);
7993float16 __ovld modf(float16 x, __local float16 *iptr);
7994float __ovld modf(float x, __private float *iptr);
7995float2 __ovld modf(float2 x, __private float2 *iptr);
7996float3 __ovld modf(float3 x, __private float3 *iptr);
7997float4 __ovld modf(float4 x, __private float4 *iptr);
7998float8 __ovld modf(float8 x, __private float8 *iptr);
7999float16 __ovld modf(float16 x, __private float16 *iptr);
8000#ifdef cl_khr_fp64
8001double __ovld modf(double x, __global double *iptr);
8002double2 __ovld modf(double2 x, __global double2 *iptr);
8003double3 __ovld modf(double3 x, __global double3 *iptr);
8004double4 __ovld modf(double4 x, __global double4 *iptr);
8005double8 __ovld modf(double8 x, __global double8 *iptr);
8006double16 __ovld modf(double16 x, __global double16 *iptr);
8007double __ovld modf(double x, __local double *iptr);
8008double2 __ovld modf(double2 x, __local double2 *iptr);
8009double3 __ovld modf(double3 x, __local double3 *iptr);
8010double4 __ovld modf(double4 x, __local double4 *iptr);
8011double8 __ovld modf(double8 x, __local double8 *iptr);
8012double16 __ovld modf(double16 x, __local double16 *iptr);
8013double __ovld modf(double x, __private double *iptr);
8014double2 __ovld modf(double2 x, __private double2 *iptr);
8015double3 __ovld modf(double3 x, __private double3 *iptr);
8016double4 __ovld modf(double4 x, __private double4 *iptr);
8017double8 __ovld modf(double8 x, __private double8 *iptr);
8018double16 __ovld modf(double16 x, __private double16 *iptr);
8019#endif //cl_khr_fp64
8020#ifdef cl_khr_fp16
8021half __ovld modf(half x, __global half *iptr);
8022half2 __ovld modf(half2 x, __global half2 *iptr);
8023half3 __ovld modf(half3 x, __global half3 *iptr);
8024half4 __ovld modf(half4 x, __global half4 *iptr);
8025half8 __ovld modf(half8 x, __global half8 *iptr);
8026half16 __ovld modf(half16 x, __global half16 *iptr);
8027half __ovld modf(half x, __local half *iptr);
8028half2 __ovld modf(half2 x, __local half2 *iptr);
8029half3 __ovld modf(half3 x, __local half3 *iptr);
8030half4 __ovld modf(half4 x, __local half4 *iptr);
8031half8 __ovld modf(half8 x, __local half8 *iptr);
8032half16 __ovld modf(half16 x, __local half16 *iptr);
8033half __ovld modf(half x, __private half *iptr);
8034half2 __ovld modf(half2 x, __private half2 *iptr);
8035half3 __ovld modf(half3 x, __private half3 *iptr);
8036half4 __ovld modf(half4 x, __private half4 *iptr);
8037half8 __ovld modf(half8 x, __private half8 *iptr);
8038half16 __ovld modf(half16 x, __private half16 *iptr);
8039#endif //cl_khr_fp16
8040#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8041
8046float __ovld __cnfn nan(uint nancode);
8047float2 __ovld __cnfn nan(uint2 nancode);
8048float3 __ovld __cnfn nan(uint3 nancode);
8049float4 __ovld __cnfn nan(uint4 nancode);
8050float8 __ovld __cnfn nan(uint8 nancode);
8051float16 __ovld __cnfn nan(uint16 nancode);
8052#ifdef cl_khr_fp64
8053double __ovld __cnfn nan(ulong nancode);
8054double2 __ovld __cnfn nan(ulong2 nancode);
8055double3 __ovld __cnfn nan(ulong3 nancode);
8056double4 __ovld __cnfn nan(ulong4 nancode);
8057double8 __ovld __cnfn nan(ulong8 nancode);
8058double16 __ovld __cnfn nan(ulong16 nancode);
8059#endif //cl_khr_fp64
8060#ifdef cl_khr_fp16
8061half __ovld __cnfn nan(ushort nancode);
8062half2 __ovld __cnfn nan(ushort2 nancode);
8063half3 __ovld __cnfn nan(ushort3 nancode);
8064half4 __ovld __cnfn nan(ushort4 nancode);
8065half8 __ovld __cnfn nan(ushort8 nancode);
8066half16 __ovld __cnfn nan(ushort16 nancode);
8067#endif //cl_khr_fp16
8068
8076float __ovld __cnfn nextafter(float x, float y);
8077float2 __ovld __cnfn nextafter(float2 x, float2 y);
8078float3 __ovld __cnfn nextafter(float3 x, float3 y);
8079float4 __ovld __cnfn nextafter(float4 x, float4 y);
8080float8 __ovld __cnfn nextafter(float8 x, float8 y);
8081float16 __ovld __cnfn nextafter(float16 x, float16 y);
8082#ifdef cl_khr_fp64
8083double __ovld __cnfn nextafter(double x, double y);
8084double2 __ovld __cnfn nextafter(double2 x, double2 y);
8085double3 __ovld __cnfn nextafter(double3 x, double3 y);
8086double4 __ovld __cnfn nextafter(double4 x, double4 y);
8087double8 __ovld __cnfn nextafter(double8 x, double8 y);
8088double16 __ovld __cnfn nextafter(double16 x, double16 y);
8089#endif //cl_khr_fp64
8090#ifdef cl_khr_fp16
8091half __ovld __cnfn nextafter(half x, half y);
8092half2 __ovld __cnfn nextafter(half2 x, half2 y);
8093half3 __ovld __cnfn nextafter(half3 x, half3 y);
8094half4 __ovld __cnfn nextafter(half4 x, half4 y);
8095half8 __ovld __cnfn nextafter(half8 x, half8 y);
8096half16 __ovld __cnfn nextafter(half16 x, half16 y);
8097#endif //cl_khr_fp16
8098
8102float __ovld __cnfn pow(float x, float y);
8103float2 __ovld __cnfn pow(float2 x, float2 y);
8104float3 __ovld __cnfn pow(float3 x, float3 y);
8105float4 __ovld __cnfn pow(float4 x, float4 y);
8106float8 __ovld __cnfn pow(float8 x, float8 y);
8107float16 __ovld __cnfn pow(float16 x, float16 y);
8108#ifdef cl_khr_fp64
8109double __ovld __cnfn pow(double x, double y);
8110double2 __ovld __cnfn pow(double2 x, double2 y);
8111double3 __ovld __cnfn pow(double3 x, double3 y);
8112double4 __ovld __cnfn pow(double4 x, double4 y);
8113double8 __ovld __cnfn pow(double8 x, double8 y);
8114double16 __ovld __cnfn pow(double16 x, double16 y);
8115#endif //cl_khr_fp64
8116#ifdef cl_khr_fp16
8117half __ovld __cnfn pow(half x, half y);
8118half2 __ovld __cnfn pow(half2 x, half2 y);
8119half3 __ovld __cnfn pow(half3 x, half3 y);
8120half4 __ovld __cnfn pow(half4 x, half4 y);
8121half8 __ovld __cnfn pow(half8 x, half8 y);
8122half16 __ovld __cnfn pow(half16 x, half16 y);
8123#endif //cl_khr_fp16
8124
8128float __ovld __cnfn pown(float x, int y);
8129float2 __ovld __cnfn pown(float2 x, int2 y);
8130float3 __ovld __cnfn pown(float3 x, int3 y);
8131float4 __ovld __cnfn pown(float4 x, int4 y);
8132float8 __ovld __cnfn pown(float8 x, int8 y);
8133float16 __ovld __cnfn pown(float16 x, int16 y);
8134#ifdef cl_khr_fp64
8135double __ovld __cnfn pown(double x, int y);
8136double2 __ovld __cnfn pown(double2 x, int2 y);
8137double3 __ovld __cnfn pown(double3 x, int3 y);
8138double4 __ovld __cnfn pown(double4 x, int4 y);
8139double8 __ovld __cnfn pown(double8 x, int8 y);
8140double16 __ovld __cnfn pown(double16 x, int16 y);
8141#endif //cl_khr_fp64
8142#ifdef cl_khr_fp16
8143half __ovld __cnfn pown(half x, int y);
8144half2 __ovld __cnfn pown(half2 x, int2 y);
8145half3 __ovld __cnfn pown(half3 x, int3 y);
8146half4 __ovld __cnfn pown(half4 x, int4 y);
8147half8 __ovld __cnfn pown(half8 x, int8 y);
8148half16 __ovld __cnfn pown(half16 x, int16 y);
8149#endif //cl_khr_fp16
8150
8154float __ovld __cnfn powr(float x, float y);
8155float2 __ovld __cnfn powr(float2 x, float2 y);
8156float3 __ovld __cnfn powr(float3 x, float3 y);
8157float4 __ovld __cnfn powr(float4 x, float4 y);
8158float8 __ovld __cnfn powr(float8 x, float8 y);
8159float16 __ovld __cnfn powr(float16 x, float16 y);
8160#ifdef cl_khr_fp64
8161double __ovld __cnfn powr(double x, double y);
8162double2 __ovld __cnfn powr(double2 x, double2 y);
8163double3 __ovld __cnfn powr(double3 x, double3 y);
8164double4 __ovld __cnfn powr(double4 x, double4 y);
8165double8 __ovld __cnfn powr(double8 x, double8 y);
8166double16 __ovld __cnfn powr(double16 x, double16 y);
8167#endif //cl_khr_fp64
8168#ifdef cl_khr_fp16
8169half __ovld __cnfn powr(half x, half y);
8170half2 __ovld __cnfn powr(half2 x, half2 y);
8171half3 __ovld __cnfn powr(half3 x, half3 y);
8172half4 __ovld __cnfn powr(half4 x, half4 y);
8173half8 __ovld __cnfn powr(half8 x, half8 y);
8174half16 __ovld __cnfn powr(half16 x, half16 y);
8175#endif //cl_khr_fp16
8176
8183float __ovld __cnfn remainder(float x, float y);
8184float2 __ovld __cnfn remainder(float2 x, float2 y);
8185float3 __ovld __cnfn remainder(float3 x, float3 y);
8186float4 __ovld __cnfn remainder(float4 x, float4 y);
8187float8 __ovld __cnfn remainder(float8 x, float8 y);
8188float16 __ovld __cnfn remainder(float16 x, float16 y);
8189#ifdef cl_khr_fp64
8190double __ovld __cnfn remainder(double x, double y);
8191double2 __ovld __cnfn remainder(double2 x, double2 y);
8192double3 __ovld __cnfn remainder(double3 x, double3 y);
8193double4 __ovld __cnfn remainder(double4 x, double4 y);
8194double8 __ovld __cnfn remainder(double8 x, double8 y);
8195double16 __ovld __cnfn remainder(double16 x, double16 y);
8196#endif //cl_khr_fp64
8197#ifdef cl_khr_fp16
8198half __ovld __cnfn remainder(half x, half y);
8199half2 __ovld __cnfn remainder(half2 x, half2 y);
8200half3 __ovld __cnfn remainder(half3 x, half3 y);
8201half4 __ovld __cnfn remainder(half4 x, half4 y);
8202half8 __ovld __cnfn remainder(half8 x, half8 y);
8203half16 __ovld __cnfn remainder(half16 x, half16 y);
8204#endif //cl_khr_fp16
8205
8218#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8219float __ovld remquo(float x, float y, int *quo);
8220float2 __ovld remquo(float2 x, float2 y, int2 *quo);
8221float3 __ovld remquo(float3 x, float3 y, int3 *quo);
8222float4 __ovld remquo(float4 x, float4 y, int4 *quo);
8223float8 __ovld remquo(float8 x, float8 y, int8 *quo);
8224float16 __ovld remquo(float16 x, float16 y, int16 *quo);
8225#ifdef cl_khr_fp64
8226double __ovld remquo(double x, double y, int *quo);
8227double2 __ovld remquo(double2 x, double2 y, int2 *quo);
8228double3 __ovld remquo(double3 x, double3 y, int3 *quo);
8229double4 __ovld remquo(double4 x, double4 y, int4 *quo);
8230double8 __ovld remquo(double8 x, double8 y, int8 *quo);
8231double16 __ovld remquo(double16 x, double16 y, int16 *quo);
8232#endif //cl_khr_fp64
8233#ifdef cl_khr_fp16
8234half __ovld remquo(half x, half y, int *quo);
8235half2 __ovld remquo(half2 x, half2 y, int2 *quo);
8236half3 __ovld remquo(half3 x, half3 y, int3 *quo);
8237half4 __ovld remquo(half4 x, half4 y, int4 *quo);
8238half8 __ovld remquo(half8 x, half8 y, int8 *quo);
8239half16 __ovld remquo(half16 x, half16 y, int16 *quo);
8240
8241#endif //cl_khr_fp16
8242#else
8243float __ovld remquo(float x, float y, __global int *quo);
8244float2 __ovld remquo(float2 x, float2 y, __global int2 *quo);
8245float3 __ovld remquo(float3 x, float3 y, __global int3 *quo);
8246float4 __ovld remquo(float4 x, float4 y, __global int4 *quo);
8247float8 __ovld remquo(float8 x, float8 y, __global int8 *quo);
8248float16 __ovld remquo(float16 x, float16 y, __global int16 *quo);
8249float __ovld remquo(float x, float y, __local int *quo);
8250float2 __ovld remquo(float2 x, float2 y, __local int2 *quo);
8251float3 __ovld remquo(float3 x, float3 y, __local int3 *quo);
8252float4 __ovld remquo(float4 x, float4 y, __local int4 *quo);
8253float8 __ovld remquo(float8 x, float8 y, __local int8 *quo);
8254float16 __ovld remquo(float16 x, float16 y, __local int16 *quo);
8255float __ovld remquo(float x, float y, __private int *quo);
8256float2 __ovld remquo(float2 x, float2 y, __private int2 *quo);
8257float3 __ovld remquo(float3 x, float3 y, __private int3 *quo);
8258float4 __ovld remquo(float4 x, float4 y, __private int4 *quo);
8259float8 __ovld remquo(float8 x, float8 y, __private int8 *quo);
8260float16 __ovld remquo(float16 x, float16 y, __private int16 *quo);
8261#ifdef cl_khr_fp64
8262double __ovld remquo(double x, double y, __global int *quo);
8263double2 __ovld remquo(double2 x, double2 y, __global int2 *quo);
8264double3 __ovld remquo(double3 x, double3 y, __global int3 *quo);
8265double4 __ovld remquo(double4 x, double4 y, __global int4 *quo);
8266double8 __ovld remquo(double8 x, double8 y, __global int8 *quo);
8267double16 __ovld remquo(double16 x, double16 y, __global int16 *quo);
8268double __ovld remquo(double x, double y, __local int *quo);
8269double2 __ovld remquo(double2 x, double2 y, __local int2 *quo);
8270double3 __ovld remquo(double3 x, double3 y, __local int3 *quo);
8271double4 __ovld remquo(double4 x, double4 y, __local int4 *quo);
8272double8 __ovld remquo(double8 x, double8 y, __local int8 *quo);
8273double16 __ovld remquo(double16 x, double16 y, __local int16 *quo);
8274double __ovld remquo(double x, double y, __private int *quo);
8275double2 __ovld remquo(double2 x, double2 y, __private int2 *quo);
8276double3 __ovld remquo(double3 x, double3 y, __private int3 *quo);
8277double4 __ovld remquo(double4 x, double4 y, __private int4 *quo);
8278double8 __ovld remquo(double8 x, double8 y, __private int8 *quo);
8279double16 __ovld remquo(double16 x, double16 y, __private int16 *quo);
8280#endif //cl_khr_fp64
8281#ifdef cl_khr_fp16
8282half __ovld remquo(half x, half y, __global int *quo);
8283half2 __ovld remquo(half2 x, half2 y, __global int2 *quo);
8284half3 __ovld remquo(half3 x, half3 y, __global int3 *quo);
8285half4 __ovld remquo(half4 x, half4 y, __global int4 *quo);
8286half8 __ovld remquo(half8 x, half8 y, __global int8 *quo);
8287half16 __ovld remquo(half16 x, half16 y, __global int16 *quo);
8288half __ovld remquo(half x, half y, __local int *quo);
8289half2 __ovld remquo(half2 x, half2 y, __local int2 *quo);
8290half3 __ovld remquo(half3 x, half3 y, __local int3 *quo);
8291half4 __ovld remquo(half4 x, half4 y, __local int4 *quo);
8292half8 __ovld remquo(half8 x, half8 y, __local int8 *quo);
8293half16 __ovld remquo(half16 x, half16 y, __local int16 *quo);
8294half __ovld remquo(half x, half y, __private int *quo);
8295half2 __ovld remquo(half2 x, half2 y, __private int2 *quo);
8296half3 __ovld remquo(half3 x, half3 y, __private int3 *quo);
8297half4 __ovld remquo(half4 x, half4 y, __private int4 *quo);
8298half8 __ovld remquo(half8 x, half8 y, __private int8 *quo);
8299half16 __ovld remquo(half16 x, half16 y, __private int16 *quo);
8300#endif //cl_khr_fp16
8301#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8308float __ovld __cnfn rint(float);
8309float2 __ovld __cnfn rint(float2);
8310float3 __ovld __cnfn rint(float3);
8311float4 __ovld __cnfn rint(float4);
8312float8 __ovld __cnfn rint(float8);
8313float16 __ovld __cnfn rint(float16);
8314#ifdef cl_khr_fp64
8315double __ovld __cnfn rint(double);
8316double2 __ovld __cnfn rint(double2);
8317double3 __ovld __cnfn rint(double3);
8318double4 __ovld __cnfn rint(double4);
8319double8 __ovld __cnfn rint(double8);
8320double16 __ovld __cnfn rint(double16);
8321#endif //cl_khr_fp64
8322#ifdef cl_khr_fp16
8323half __ovld __cnfn rint(half);
8324half2 __ovld __cnfn rint(half2);
8325half3 __ovld __cnfn rint(half3);
8326half4 __ovld __cnfn rint(half4);
8327half8 __ovld __cnfn rint(half8);
8328half16 __ovld __cnfn rint(half16);
8329#endif //cl_khr_fp16
8330
8334float __ovld __cnfn rootn(float x, int y);
8335float2 __ovld __cnfn rootn(float2 x, int2 y);
8336float3 __ovld __cnfn rootn(float3 x, int3 y);
8337float4 __ovld __cnfn rootn(float4 x, int4 y);
8338float8 __ovld __cnfn rootn(float8 x, int8 y);
8339float16 __ovld __cnfn rootn(float16 x, int16 y);
8340#ifdef cl_khr_fp64
8341double __ovld __cnfn rootn(double x, int y);
8342double2 __ovld __cnfn rootn(double2 x, int2 y);
8343double3 __ovld __cnfn rootn(double3 x, int3 y);
8344double4 __ovld __cnfn rootn(double4 x, int4 y);
8345double8 __ovld __cnfn rootn(double8 x, int8 y);
8346double16 __ovld __cnfn rootn(double16 x, int16 y);
8347#endif //cl_khr_fp64
8348#ifdef cl_khr_fp16
8349half __ovld __cnfn rootn(half x, int y);
8350half2 __ovld __cnfn rootn(half2 x, int2 y);
8351half3 __ovld __cnfn rootn(half3 x, int3 y);
8352half4 __ovld __cnfn rootn(half4 x, int4 y);
8353half8 __ovld __cnfn rootn(half8 x, int8 y);
8354half16 __ovld __cnfn rootn(half16 x, int16 y);
8355#endif //cl_khr_fp16
8356
8362float __ovld __cnfn round(float x);
8363float2 __ovld __cnfn round(float2 x);
8364float3 __ovld __cnfn round(float3 x);
8365float4 __ovld __cnfn round(float4 x);
8366float8 __ovld __cnfn round(float8 x);
8367float16 __ovld __cnfn round(float16 x);
8368#ifdef cl_khr_fp64
8369double __ovld __cnfn round(double x);
8370double2 __ovld __cnfn round(double2 x);
8371double3 __ovld __cnfn round(double3 x);
8372double4 __ovld __cnfn round(double4 x);
8373double8 __ovld __cnfn round(double8 x);
8374double16 __ovld __cnfn round(double16 x);
8375#endif //cl_khr_fp64
8376#ifdef cl_khr_fp16
8377half __ovld __cnfn round(half x);
8378half2 __ovld __cnfn round(half2 x);
8379half3 __ovld __cnfn round(half3 x);
8380half4 __ovld __cnfn round(half4 x);
8381half8 __ovld __cnfn round(half8 x);
8382half16 __ovld __cnfn round(half16 x);
8383#endif //cl_khr_fp16
8384
8388float __ovld __cnfn rsqrt(float);
8389float2 __ovld __cnfn rsqrt(float2);
8390float3 __ovld __cnfn rsqrt(float3);
8391float4 __ovld __cnfn rsqrt(float4);
8392float8 __ovld __cnfn rsqrt(float8);
8393float16 __ovld __cnfn rsqrt(float16);
8394#ifdef cl_khr_fp64
8395double __ovld __cnfn rsqrt(double);
8396double2 __ovld __cnfn rsqrt(double2);
8397double3 __ovld __cnfn rsqrt(double3);
8398double4 __ovld __cnfn rsqrt(double4);
8399double8 __ovld __cnfn rsqrt(double8);
8400double16 __ovld __cnfn rsqrt(double16);
8401#endif //cl_khr_fp64
8402#ifdef cl_khr_fp16
8403half __ovld __cnfn rsqrt(half);
8404half2 __ovld __cnfn rsqrt(half2);
8405half3 __ovld __cnfn rsqrt(half3);
8406half4 __ovld __cnfn rsqrt(half4);
8407half8 __ovld __cnfn rsqrt(half8);
8408half16 __ovld __cnfn rsqrt(half16);
8409#endif //cl_khr_fp16
8410
8414float __ovld __cnfn sin(float);
8415float2 __ovld __cnfn sin(float2);
8416float3 __ovld __cnfn sin(float3);
8417float4 __ovld __cnfn sin(float4);
8418float8 __ovld __cnfn sin(float8);
8419float16 __ovld __cnfn sin(float16);
8420#ifdef cl_khr_fp64
8421double __ovld __cnfn sin(double);
8422double2 __ovld __cnfn sin(double2);
8423double3 __ovld __cnfn sin(double3);
8424double4 __ovld __cnfn sin(double4);
8425double8 __ovld __cnfn sin(double8);
8426double16 __ovld __cnfn sin(double16);
8427#endif //cl_khr_fp64
8428#ifdef cl_khr_fp16
8429half __ovld __cnfn sin(half);
8430half2 __ovld __cnfn sin(half2);
8431half3 __ovld __cnfn sin(half3);
8432half4 __ovld __cnfn sin(half4);
8433half8 __ovld __cnfn sin(half8);
8434half16 __ovld __cnfn sin(half16);
8435#endif //cl_khr_fp16
8436
8442#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8443float __ovld sincos(float x, float *cosval);
8444float2 __ovld sincos(float2 x, float2 *cosval);
8445float3 __ovld sincos(float3 x, float3 *cosval);
8446float4 __ovld sincos(float4 x, float4 *cosval);
8447float8 __ovld sincos(float8 x, float8 *cosval);
8448float16 __ovld sincos(float16 x, float16 *cosval);
8449#ifdef cl_khr_fp64
8450double __ovld sincos(double x, double *cosval);
8451double2 __ovld sincos(double2 x, double2 *cosval);
8452double3 __ovld sincos(double3 x, double3 *cosval);
8453double4 __ovld sincos(double4 x, double4 *cosval);
8454double8 __ovld sincos(double8 x, double8 *cosval);
8455double16 __ovld sincos(double16 x, double16 *cosval);
8456#endif //cl_khr_fp64
8457#ifdef cl_khr_fp16
8458half __ovld sincos(half x, half *cosval);
8459half2 __ovld sincos(half2 x, half2 *cosval);
8460half3 __ovld sincos(half3 x, half3 *cosval);
8461half4 __ovld sincos(half4 x, half4 *cosval);
8462half8 __ovld sincos(half8 x, half8 *cosval);
8463half16 __ovld sincos(half16 x, half16 *cosval);
8464#endif //cl_khr_fp16
8465#else
8466float __ovld sincos(float x, __global float *cosval);
8467float2 __ovld sincos(float2 x, __global float2 *cosval);
8468float3 __ovld sincos(float3 x, __global float3 *cosval);
8469float4 __ovld sincos(float4 x, __global float4 *cosval);
8470float8 __ovld sincos(float8 x, __global float8 *cosval);
8471float16 __ovld sincos(float16 x, __global float16 *cosval);
8472float __ovld sincos(float x, __local float *cosval);
8473float2 __ovld sincos(float2 x, __local float2 *cosval);
8474float3 __ovld sincos(float3 x, __local float3 *cosval);
8475float4 __ovld sincos(float4 x, __local float4 *cosval);
8476float8 __ovld sincos(float8 x, __local float8 *cosval);
8477float16 __ovld sincos(float16 x, __local float16 *cosval);
8478float __ovld sincos(float x, __private float *cosval);
8479float2 __ovld sincos(float2 x, __private float2 *cosval);
8480float3 __ovld sincos(float3 x, __private float3 *cosval);
8481float4 __ovld sincos(float4 x, __private float4 *cosval);
8482float8 __ovld sincos(float8 x, __private float8 *cosval);
8483float16 __ovld sincos(float16 x, __private float16 *cosval);
8484#ifdef cl_khr_fp64
8485double __ovld sincos(double x, __global double *cosval);
8486double2 __ovld sincos(double2 x, __global double2 *cosval);
8487double3 __ovld sincos(double3 x, __global double3 *cosval);
8488double4 __ovld sincos(double4 x, __global double4 *cosval);
8489double8 __ovld sincos(double8 x, __global double8 *cosval);
8490double16 __ovld sincos(double16 x, __global double16 *cosval);
8491double __ovld sincos(double x, __local double *cosval);
8492double2 __ovld sincos(double2 x, __local double2 *cosval);
8493double3 __ovld sincos(double3 x, __local double3 *cosval);
8494double4 __ovld sincos(double4 x, __local double4 *cosval);
8495double8 __ovld sincos(double8 x, __local double8 *cosval);
8496double16 __ovld sincos(double16 x, __local double16 *cosval);
8497double __ovld sincos(double x, __private double *cosval);
8498double2 __ovld sincos(double2 x, __private double2 *cosval);
8499double3 __ovld sincos(double3 x, __private double3 *cosval);
8500double4 __ovld sincos(double4 x, __private double4 *cosval);
8501double8 __ovld sincos(double8 x, __private double8 *cosval);
8502double16 __ovld sincos(double16 x, __private double16 *cosval);
8503#endif //cl_khr_fp64
8504#ifdef cl_khr_fp16
8505half __ovld sincos(half x, __global half *cosval);
8506half2 __ovld sincos(half2 x, __global half2 *cosval);
8507half3 __ovld sincos(half3 x, __global half3 *cosval);
8508half4 __ovld sincos(half4 x, __global half4 *cosval);
8509half8 __ovld sincos(half8 x, __global half8 *cosval);
8510half16 __ovld sincos(half16 x, __global half16 *cosval);
8511half __ovld sincos(half x, __local half *cosval);
8512half2 __ovld sincos(half2 x, __local half2 *cosval);
8513half3 __ovld sincos(half3 x, __local half3 *cosval);
8514half4 __ovld sincos(half4 x, __local half4 *cosval);
8515half8 __ovld sincos(half8 x, __local half8 *cosval);
8516half16 __ovld sincos(half16 x, __local half16 *cosval);
8517half __ovld sincos(half x, __private half *cosval);
8518half2 __ovld sincos(half2 x, __private half2 *cosval);
8519half3 __ovld sincos(half3 x, __private half3 *cosval);
8520half4 __ovld sincos(half4 x, __private half4 *cosval);
8521half8 __ovld sincos(half8 x, __private half8 *cosval);
8522half16 __ovld sincos(half16 x, __private half16 *cosval);
8523#endif //cl_khr_fp16
8524#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
8525
8529float __ovld __cnfn sinh(float);
8530float2 __ovld __cnfn sinh(float2);
8531float3 __ovld __cnfn sinh(float3);
8532float4 __ovld __cnfn sinh(float4);
8533float8 __ovld __cnfn sinh(float8);
8534float16 __ovld __cnfn sinh(float16);
8535#ifdef cl_khr_fp64
8536double __ovld __cnfn sinh(double);
8537double2 __ovld __cnfn sinh(double2);
8538double3 __ovld __cnfn sinh(double3);
8539double4 __ovld __cnfn sinh(double4);
8540double8 __ovld __cnfn sinh(double8);
8541double16 __ovld __cnfn sinh(double16);
8542#endif //cl_khr_fp64
8543#ifdef cl_khr_fp16
8544half __ovld __cnfn sinh(half);
8545half2 __ovld __cnfn sinh(half2);
8546half3 __ovld __cnfn sinh(half3);
8547half4 __ovld __cnfn sinh(half4);
8548half8 __ovld __cnfn sinh(half8);
8549half16 __ovld __cnfn sinh(half16);
8550#endif //cl_khr_fp16
8551
8555float __ovld __cnfn sinpi(float x);
8556float2 __ovld __cnfn sinpi(float2 x);
8557float3 __ovld __cnfn sinpi(float3 x);
8558float4 __ovld __cnfn sinpi(float4 x);
8559float8 __ovld __cnfn sinpi(float8 x);
8560float16 __ovld __cnfn sinpi(float16 x);
8561#ifdef cl_khr_fp64
8562double __ovld __cnfn sinpi(double x);
8563double2 __ovld __cnfn sinpi(double2 x);
8564double3 __ovld __cnfn sinpi(double3 x);
8565double4 __ovld __cnfn sinpi(double4 x);
8566double8 __ovld __cnfn sinpi(double8 x);
8567double16 __ovld __cnfn sinpi(double16 x);
8568#endif //cl_khr_fp64
8569#ifdef cl_khr_fp16
8570half __ovld __cnfn sinpi(half x);
8571half2 __ovld __cnfn sinpi(half2 x);
8572half3 __ovld __cnfn sinpi(half3 x);
8573half4 __ovld __cnfn sinpi(half4 x);
8574half8 __ovld __cnfn sinpi(half8 x);
8575half16 __ovld __cnfn sinpi(half16 x);
8576#endif //cl_khr_fp16
8577
8581float __ovld __cnfn sqrt(float);
8582float2 __ovld __cnfn sqrt(float2);
8583float3 __ovld __cnfn sqrt(float3);
8584float4 __ovld __cnfn sqrt(float4);
8585float8 __ovld __cnfn sqrt(float8);
8586float16 __ovld __cnfn sqrt(float16);
8587#ifdef cl_khr_fp64
8588double __ovld __cnfn sqrt(double);
8589double2 __ovld __cnfn sqrt(double2);
8590double3 __ovld __cnfn sqrt(double3);
8591double4 __ovld __cnfn sqrt(double4);
8592double8 __ovld __cnfn sqrt(double8);
8593double16 __ovld __cnfn sqrt(double16);
8594#endif //cl_khr_fp64
8595#ifdef cl_khr_fp16
8596half __ovld __cnfn sqrt(half);
8597half2 __ovld __cnfn sqrt(half2);
8598half3 __ovld __cnfn sqrt(half3);
8599half4 __ovld __cnfn sqrt(half4);
8600half8 __ovld __cnfn sqrt(half8);
8601half16 __ovld __cnfn sqrt(half16);
8602#endif //cl_khr_fp16
8603
8607float __ovld __cnfn tan(float);
8608float2 __ovld __cnfn tan(float2);
8609float3 __ovld __cnfn tan(float3);
8610float4 __ovld __cnfn tan(float4);
8611float8 __ovld __cnfn tan(float8);
8612float16 __ovld __cnfn tan(float16);
8613#ifdef cl_khr_fp64
8614double __ovld __cnfn tan(double);
8615double2 __ovld __cnfn tan(double2);
8616double3 __ovld __cnfn tan(double3);
8617double4 __ovld __cnfn tan(double4);
8618double8 __ovld __cnfn tan(double8);
8619double16 __ovld __cnfn tan(double16);
8620#endif //cl_khr_fp64
8621#ifdef cl_khr_fp16
8622half __ovld __cnfn tan(half);
8623half2 __ovld __cnfn tan(half2);
8624half3 __ovld __cnfn tan(half3);
8625half4 __ovld __cnfn tan(half4);
8626half8 __ovld __cnfn tan(half8);
8627half16 __ovld __cnfn tan(half16);
8628#endif //cl_khr_fp16
8629
8633float __ovld __cnfn tanh(float);
8634float2 __ovld __cnfn tanh(float2);
8635float3 __ovld __cnfn tanh(float3);
8636float4 __ovld __cnfn tanh(float4);
8637float8 __ovld __cnfn tanh(float8);
8638float16 __ovld __cnfn tanh(float16);
8639#ifdef cl_khr_fp64
8640double __ovld __cnfn tanh(double);
8641double2 __ovld __cnfn tanh(double2);
8642double3 __ovld __cnfn tanh(double3);
8643double4 __ovld __cnfn tanh(double4);
8644double8 __ovld __cnfn tanh(double8);
8645double16 __ovld __cnfn tanh(double16);
8646#endif //cl_khr_fp64
8647#ifdef cl_khr_fp16
8648half __ovld __cnfn tanh(half);
8649half2 __ovld __cnfn tanh(half2);
8650half3 __ovld __cnfn tanh(half3);
8651half4 __ovld __cnfn tanh(half4);
8652half8 __ovld __cnfn tanh(half8);
8653half16 __ovld __cnfn tanh(half16);
8654#endif //cl_khr_fp16
8655
8659float __ovld __cnfn tanpi(float x);
8660float2 __ovld __cnfn tanpi(float2 x);
8661float3 __ovld __cnfn tanpi(float3 x);
8662float4 __ovld __cnfn tanpi(float4 x);
8663float8 __ovld __cnfn tanpi(float8 x);
8664float16 __ovld __cnfn tanpi(float16 x);
8665#ifdef cl_khr_fp64
8666double __ovld __cnfn tanpi(double x);
8667double2 __ovld __cnfn tanpi(double2 x);
8668double3 __ovld __cnfn tanpi(double3 x);
8669double4 __ovld __cnfn tanpi(double4 x);
8670double8 __ovld __cnfn tanpi(double8 x);
8671double16 __ovld __cnfn tanpi(double16 x);
8672#endif //cl_khr_fp64
8673#ifdef cl_khr_fp16
8674half __ovld __cnfn tanpi(half x);
8675half2 __ovld __cnfn tanpi(half2 x);
8676half3 __ovld __cnfn tanpi(half3 x);
8677half4 __ovld __cnfn tanpi(half4 x);
8678half8 __ovld __cnfn tanpi(half8 x);
8679half16 __ovld __cnfn tanpi(half16 x);
8680#endif //cl_khr_fp16
8681
8685float __ovld __cnfn tgamma(float);
8686float2 __ovld __cnfn tgamma(float2);
8687float3 __ovld __cnfn tgamma(float3);
8688float4 __ovld __cnfn tgamma(float4);
8689float8 __ovld __cnfn tgamma(float8);
8690float16 __ovld __cnfn tgamma(float16);
8691#ifdef cl_khr_fp64
8692double __ovld __cnfn tgamma(double);
8693double2 __ovld __cnfn tgamma(double2);
8694double3 __ovld __cnfn tgamma(double3);
8695double4 __ovld __cnfn tgamma(double4);
8696double8 __ovld __cnfn tgamma(double8);
8697double16 __ovld __cnfn tgamma(double16);
8698#endif //cl_khr_fp64
8699#ifdef cl_khr_fp16
8700half __ovld __cnfn tgamma(half);
8701half2 __ovld __cnfn tgamma(half2);
8702half3 __ovld __cnfn tgamma(half3);
8703half4 __ovld __cnfn tgamma(half4);
8704half8 __ovld __cnfn tgamma(half8);
8705half16 __ovld __cnfn tgamma(half16);
8706#endif //cl_khr_fp16
8707
8712float __ovld __cnfn trunc(float);
8713float2 __ovld __cnfn trunc(float2);
8714float3 __ovld __cnfn trunc(float3);
8715float4 __ovld __cnfn trunc(float4);
8716float8 __ovld __cnfn trunc(float8);
8717float16 __ovld __cnfn trunc(float16);
8718#ifdef cl_khr_fp64
8719double __ovld __cnfn trunc(double);
8720double2 __ovld __cnfn trunc(double2);
8721double3 __ovld __cnfn trunc(double3);
8722double4 __ovld __cnfn trunc(double4);
8723double8 __ovld __cnfn trunc(double8);
8724double16 __ovld __cnfn trunc(double16);
8725#endif //cl_khr_fp64
8726#ifdef cl_khr_fp16
8727half __ovld __cnfn trunc(half);
8728half2 __ovld __cnfn trunc(half2);
8729half3 __ovld __cnfn trunc(half3);
8730half4 __ovld __cnfn trunc(half4);
8731half8 __ovld __cnfn trunc(half8);
8732half16 __ovld __cnfn trunc(half16);
8733#endif //cl_khr_fp16
8734
8738float __ovld __cnfn half_cos(float x);
8739float2 __ovld __cnfn half_cos(float2 x);
8740float3 __ovld __cnfn half_cos(float3 x);
8741float4 __ovld __cnfn half_cos(float4 x);
8742float8 __ovld __cnfn half_cos(float8 x);
8743float16 __ovld __cnfn half_cos(float16 x);
8744
8748float __ovld __cnfn half_divide(float x, float y);
8749float2 __ovld __cnfn half_divide(float2 x, float2 y);
8750float3 __ovld __cnfn half_divide(float3 x, float3 y);
8751float4 __ovld __cnfn half_divide(float4 x, float4 y);
8752float8 __ovld __cnfn half_divide(float8 x, float8 y);
8753float16 __ovld __cnfn half_divide(float16 x, float16 y);
8754
8758float __ovld __cnfn half_exp(float x);
8759float2 __ovld __cnfn half_exp(float2 x);
8760float3 __ovld __cnfn half_exp(float3 x);
8761float4 __ovld __cnfn half_exp(float4 x);
8762float8 __ovld __cnfn half_exp(float8 x);
8763float16 __ovld __cnfn half_exp(float16 x);
8764
8768float __ovld __cnfn half_exp2(float x);
8769float2 __ovld __cnfn half_exp2(float2 x);
8770float3 __ovld __cnfn half_exp2(float3 x);
8771float4 __ovld __cnfn half_exp2(float4 x);
8772float8 __ovld __cnfn half_exp2(float8 x);
8773float16 __ovld __cnfn half_exp2(float16 x);
8774
8778float __ovld __cnfn half_exp10(float x);
8779float2 __ovld __cnfn half_exp10(float2 x);
8780float3 __ovld __cnfn half_exp10(float3 x);
8781float4 __ovld __cnfn half_exp10(float4 x);
8782float8 __ovld __cnfn half_exp10(float8 x);
8783float16 __ovld __cnfn half_exp10(float16 x);
8784
8788float __ovld __cnfn half_log(float x);
8789float2 __ovld __cnfn half_log(float2 x);
8790float3 __ovld __cnfn half_log(float3 x);
8791float4 __ovld __cnfn half_log(float4 x);
8792float8 __ovld __cnfn half_log(float8 x);
8793float16 __ovld __cnfn half_log(float16 x);
8794
8798float __ovld __cnfn half_log2(float x);
8799float2 __ovld __cnfn half_log2(float2 x);
8800float3 __ovld __cnfn half_log2(float3 x);
8801float4 __ovld __cnfn half_log2(float4 x);
8802float8 __ovld __cnfn half_log2(float8 x);
8803float16 __ovld __cnfn half_log2(float16 x);
8804
8808float __ovld __cnfn half_log10(float x);
8809float2 __ovld __cnfn half_log10(float2 x);
8810float3 __ovld __cnfn half_log10(float3 x);
8811float4 __ovld __cnfn half_log10(float4 x);
8812float8 __ovld __cnfn half_log10(float8 x);
8813float16 __ovld __cnfn half_log10(float16 x);
8814
8818float __ovld __cnfn half_powr(float x, float y);
8819float2 __ovld __cnfn half_powr(float2 x, float2 y);
8820float3 __ovld __cnfn half_powr(float3 x, float3 y);
8821float4 __ovld __cnfn half_powr(float4 x, float4 y);
8822float8 __ovld __cnfn half_powr(float8 x, float8 y);
8823float16 __ovld __cnfn half_powr(float16 x, float16 y);
8824
8828float __ovld __cnfn half_recip(float x);
8829float2 __ovld __cnfn half_recip(float2 x);
8830float3 __ovld __cnfn half_recip(float3 x);
8831float4 __ovld __cnfn half_recip(float4 x);
8832float8 __ovld __cnfn half_recip(float8 x);
8833float16 __ovld __cnfn half_recip(float16 x);
8834
8838float __ovld __cnfn half_rsqrt(float x);
8839float2 __ovld __cnfn half_rsqrt(float2 x);
8840float3 __ovld __cnfn half_rsqrt(float3 x);
8841float4 __ovld __cnfn half_rsqrt(float4 x);
8842float8 __ovld __cnfn half_rsqrt(float8 x);
8843float16 __ovld __cnfn half_rsqrt(float16 x);
8844
8848float __ovld __cnfn half_sin(float x);
8849float2 __ovld __cnfn half_sin(float2 x);
8850float3 __ovld __cnfn half_sin(float3 x);
8851float4 __ovld __cnfn half_sin(float4 x);
8852float8 __ovld __cnfn half_sin(float8 x);
8853float16 __ovld __cnfn half_sin(float16 x);
8854
8858float __ovld __cnfn half_sqrt(float x);
8859float2 __ovld __cnfn half_sqrt(float2 x);
8860float3 __ovld __cnfn half_sqrt(float3 x);
8861float4 __ovld __cnfn half_sqrt(float4 x);
8862float8 __ovld __cnfn half_sqrt(float8 x);
8863float16 __ovld __cnfn half_sqrt(float16 x);
8864
8868float __ovld __cnfn half_tan(float x);
8869float2 __ovld __cnfn half_tan(float2 x);
8870float3 __ovld __cnfn half_tan(float3 x);
8871float4 __ovld __cnfn half_tan(float4 x);
8872float8 __ovld __cnfn half_tan(float8 x);
8873float16 __ovld __cnfn half_tan(float16 x);
8874
8879float __ovld __cnfn native_cos(float x);
8880float2 __ovld __cnfn native_cos(float2 x);
8881float3 __ovld __cnfn native_cos(float3 x);
8882float4 __ovld __cnfn native_cos(float4 x);
8883float8 __ovld __cnfn native_cos(float8 x);
8884float16 __ovld __cnfn native_cos(float16 x);
8885
8890float __ovld __cnfn native_divide(float x, float y);
8891float2 __ovld __cnfn native_divide(float2 x, float2 y);
8892float3 __ovld __cnfn native_divide(float3 x, float3 y);
8893float4 __ovld __cnfn native_divide(float4 x, float4 y);
8894float8 __ovld __cnfn native_divide(float8 x, float8 y);
8895float16 __ovld __cnfn native_divide(float16 x, float16 y);
8896
8902float __ovld __cnfn native_exp(float x);
8903float2 __ovld __cnfn native_exp(float2 x);
8904float3 __ovld __cnfn native_exp(float3 x);
8905float4 __ovld __cnfn native_exp(float4 x);
8906float8 __ovld __cnfn native_exp(float8 x);
8907float16 __ovld __cnfn native_exp(float16 x);
8908
8915float2 __ovld __cnfn native_exp2(float2 x);
8916float3 __ovld __cnfn native_exp2(float3 x);
8917float4 __ovld __cnfn native_exp2(float4 x);
8918float8 __ovld __cnfn native_exp2(float8 x);
8919float16 __ovld __cnfn native_exp2(float16 x);
8920
8927float2 __ovld __cnfn native_exp10(float2 x);
8928float3 __ovld __cnfn native_exp10(float3 x);
8929float4 __ovld __cnfn native_exp10(float4 x);
8930float8 __ovld __cnfn native_exp10(float8 x);
8931float16 __ovld __cnfn native_exp10(float16 x);
8932
8938float __ovld __cnfn native_log(float x);
8939float2 __ovld __cnfn native_log(float2 x);
8940float3 __ovld __cnfn native_log(float3 x);
8941float4 __ovld __cnfn native_log(float4 x);
8942float8 __ovld __cnfn native_log(float8 x);
8943float16 __ovld __cnfn native_log(float16 x);
8944
8950float2 __ovld __cnfn native_log2(float2 x);
8951float3 __ovld __cnfn native_log2(float3 x);
8952float4 __ovld __cnfn native_log2(float4 x);
8953float8 __ovld __cnfn native_log2(float8 x);
8954float16 __ovld __cnfn native_log2(float16 x);
8955
8961float2 __ovld __cnfn native_log10(float2 x);
8962float3 __ovld __cnfn native_log10(float3 x);
8963float4 __ovld __cnfn native_log10(float4 x);
8964float8 __ovld __cnfn native_log10(float8 x);
8965float16 __ovld __cnfn native_log10(float16 x);
8966
8972float __ovld __cnfn native_powr(float x, float y);
8973float2 __ovld __cnfn native_powr(float2 x, float2 y);
8974float3 __ovld __cnfn native_powr(float3 x, float3 y);
8975float4 __ovld __cnfn native_powr(float4 x, float4 y);
8976float8 __ovld __cnfn native_powr(float8 x, float8 y);
8977float16 __ovld __cnfn native_powr(float16 x, float16 y);
8978
8984float2 __ovld __cnfn native_recip(float2 x);
8985float3 __ovld __cnfn native_recip(float3 x);
8986float4 __ovld __cnfn native_recip(float4 x);
8987float8 __ovld __cnfn native_recip(float8 x);
8988float16 __ovld __cnfn native_recip(float16 x);
8989
8995float2 __ovld __cnfn native_rsqrt(float2 x);
8996float3 __ovld __cnfn native_rsqrt(float3 x);
8997float4 __ovld __cnfn native_rsqrt(float4 x);
8998float8 __ovld __cnfn native_rsqrt(float8 x);
8999float16 __ovld __cnfn native_rsqrt(float16 x);
9000
9005float __ovld __cnfn native_sin(float x);
9006float2 __ovld __cnfn native_sin(float2 x);
9007float3 __ovld __cnfn native_sin(float3 x);
9008float4 __ovld __cnfn native_sin(float4 x);
9009float8 __ovld __cnfn native_sin(float8 x);
9010float16 __ovld __cnfn native_sin(float16 x);
9011
9017float2 __ovld __cnfn native_sqrt(float2 x);
9018float3 __ovld __cnfn native_sqrt(float3 x);
9019float4 __ovld __cnfn native_sqrt(float4 x);
9020float8 __ovld __cnfn native_sqrt(float8 x);
9021float16 __ovld __cnfn native_sqrt(float16 x);
9022
9027float __ovld __cnfn native_tan(float x);
9028float2 __ovld __cnfn native_tan(float2 x);
9029float3 __ovld __cnfn native_tan(float3 x);
9030float4 __ovld __cnfn native_tan(float4 x);
9031float8 __ovld __cnfn native_tan(float8 x);
9032float16 __ovld __cnfn native_tan(float16 x);
9033
9034// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
9035
9041uchar2 __ovld __cnfn abs(char2 x);
9042uchar2 __ovld __cnfn abs(uchar2 x);
9043uchar3 __ovld __cnfn abs(char3 x);
9044uchar3 __ovld __cnfn abs(uchar3 x);
9045uchar4 __ovld __cnfn abs(char4 x);
9046uchar4 __ovld __cnfn abs(uchar4 x);
9047uchar8 __ovld __cnfn abs(char8 x);
9048uchar8 __ovld __cnfn abs(uchar8 x);
9049uchar16 __ovld __cnfn abs(char16 x);
9050uchar16 __ovld __cnfn abs(uchar16 x);
9053ushort2 __ovld __cnfn abs(short2 x);
9054ushort2 __ovld __cnfn abs(ushort2 x);
9055ushort3 __ovld __cnfn abs(short3 x);
9056ushort3 __ovld __cnfn abs(ushort3 x);
9057ushort4 __ovld __cnfn abs(short4 x);
9058ushort4 __ovld __cnfn abs(ushort4 x);
9059ushort8 __ovld __cnfn abs(short8 x);
9060ushort8 __ovld __cnfn abs(ushort8 x);
9061ushort16 __ovld __cnfn abs(short16 x);
9062ushort16 __ovld __cnfn abs(ushort16 x);
9063uint __ovld __cnfn abs(int x);
9065uint2 __ovld __cnfn abs(int2 x);
9066uint2 __ovld __cnfn abs(uint2 x);
9067uint3 __ovld __cnfn abs(int3 x);
9068uint3 __ovld __cnfn abs(uint3 x);
9069uint4 __ovld __cnfn abs(int4 x);
9070uint4 __ovld __cnfn abs(uint4 x);
9075ulong __ovld __cnfn abs(long x);
9077ulong2 __ovld __cnfn abs(long2 x);
9078ulong2 __ovld __cnfn abs(ulong2 x);
9079ulong3 __ovld __cnfn abs(long3 x);
9080ulong3 __ovld __cnfn abs(ulong3 x);
9081ulong4 __ovld __cnfn abs(long4 x);
9082ulong4 __ovld __cnfn abs(ulong4 x);
9083ulong8 __ovld __cnfn abs(long8 x);
9084ulong8 __ovld __cnfn abs(ulong8 x);
9085ulong16 __ovld __cnfn abs(long16 x);
9086ulong16 __ovld __cnfn abs(ulong16 x);
9087
9091uchar __ovld __cnfn abs_diff(char x, char y);
9093uchar2 __ovld __cnfn abs_diff(char2 x, char2 y);
9094uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y);
9095uchar3 __ovld __cnfn abs_diff(char3 x, char3 y);
9096uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y);
9097uchar4 __ovld __cnfn abs_diff(char4 x, char4 y);
9098uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y);
9099uchar8 __ovld __cnfn abs_diff(char8 x, char8 y);
9100uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y);
9101uchar16 __ovld __cnfn abs_diff(char16 x, char16 y);
9102uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y);
9103ushort __ovld __cnfn abs_diff(short x, short y);
9105ushort2 __ovld __cnfn abs_diff(short2 x, short2 y);
9106ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y);
9107ushort3 __ovld __cnfn abs_diff(short3 x, short3 y);
9108ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y);
9109ushort4 __ovld __cnfn abs_diff(short4 x, short4 y);
9110ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y);
9111ushort8 __ovld __cnfn abs_diff(short8 x, short8 y);
9112ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y);
9113ushort16 __ovld __cnfn abs_diff(short16 x, short16 y);
9114ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y);
9117uint2 __ovld __cnfn abs_diff(int2 x, int2 y);
9118uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y);
9119uint3 __ovld __cnfn abs_diff(int3 x, int3 y);
9120uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y);
9121uint4 __ovld __cnfn abs_diff(int4 x, int4 y);
9122uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y);
9127ulong __ovld __cnfn abs_diff(long x, long y);
9129ulong2 __ovld __cnfn abs_diff(long2 x, long2 y);
9130ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y);
9131ulong3 __ovld __cnfn abs_diff(long3 x, long3 y);
9132ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y);
9133ulong4 __ovld __cnfn abs_diff(long4 x, long4 y);
9134ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y);
9135ulong8 __ovld __cnfn abs_diff(long8 x, long8 y);
9136ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y);
9137ulong16 __ovld __cnfn abs_diff(long16 x, long16 y);
9138ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y);
9139
9143char __ovld __cnfn add_sat(char x, char y);
9145char2 __ovld __cnfn add_sat(char2 x, char2 y);
9146uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y);
9147char3 __ovld __cnfn add_sat(char3 x, char3 y);
9148uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y);
9149char4 __ovld __cnfn add_sat(char4 x, char4 y);
9150uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y);
9151char8 __ovld __cnfn add_sat(char8 x, char8 y);
9152uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y);
9153char16 __ovld __cnfn add_sat(char16 x, char16 y);
9154uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y);
9155short __ovld __cnfn add_sat(short x, short y);
9157short2 __ovld __cnfn add_sat(short2 x, short2 y);
9158ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y);
9159short3 __ovld __cnfn add_sat(short3 x, short3 y);
9160ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y);
9161short4 __ovld __cnfn add_sat(short4 x, short4 y);
9162ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y);
9163short8 __ovld __cnfn add_sat(short8 x, short8 y);
9164ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y);
9165short16 __ovld __cnfn add_sat(short16 x, short16 y);
9166ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y);
9167int __ovld __cnfn add_sat(int x, int y);
9169int2 __ovld __cnfn add_sat(int2 x, int2 y);
9170uint2 __ovld __cnfn add_sat(uint2 x, uint2 y);
9171int3 __ovld __cnfn add_sat(int3 x, int3 y);
9172uint3 __ovld __cnfn add_sat(uint3 x, uint3 y);
9173int4 __ovld __cnfn add_sat(int4 x, int4 y);
9174uint4 __ovld __cnfn add_sat(uint4 x, uint4 y);
9179long __ovld __cnfn add_sat(long x, long y);
9181long2 __ovld __cnfn add_sat(long2 x, long2 y);
9182ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y);
9183long3 __ovld __cnfn add_sat(long3 x, long3 y);
9184ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y);
9185long4 __ovld __cnfn add_sat(long4 x, long4 y);
9186ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y);
9187long8 __ovld __cnfn add_sat(long8 x, long8 y);
9188ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y);
9189long16 __ovld __cnfn add_sat(long16 x, long16 y);
9190ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y);
9191
9196char __ovld __cnfn hadd(char x, char y);
9198char2 __ovld __cnfn hadd(char2 x, char2 y);
9199uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y);
9200char3 __ovld __cnfn hadd(char3 x, char3 y);
9201uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y);
9202char4 __ovld __cnfn hadd(char4 x, char4 y);
9203uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y);
9204char8 __ovld __cnfn hadd(char8 x, char8 y);
9205uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y);
9206char16 __ovld __cnfn hadd(char16 x, char16 y);
9207uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y);
9208short __ovld __cnfn hadd(short x, short y);
9210short2 __ovld __cnfn hadd(short2 x, short2 y);
9211ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y);
9212short3 __ovld __cnfn hadd(short3 x, short3 y);
9213ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y);
9214short4 __ovld __cnfn hadd(short4 x, short4 y);
9215ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y);
9216short8 __ovld __cnfn hadd(short8 x, short8 y);
9217ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y);
9218short16 __ovld __cnfn hadd(short16 x, short16 y);
9219ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y);
9220int __ovld __cnfn hadd(int x, int y);
9222int2 __ovld __cnfn hadd(int2 x, int2 y);
9223uint2 __ovld __cnfn hadd(uint2 x, uint2 y);
9224int3 __ovld __cnfn hadd(int3 x, int3 y);
9225uint3 __ovld __cnfn hadd(uint3 x, uint3 y);
9226int4 __ovld __cnfn hadd(int4 x, int4 y);
9227uint4 __ovld __cnfn hadd(uint4 x, uint4 y);
9232long __ovld __cnfn hadd(long x, long y);
9234long2 __ovld __cnfn hadd(long2 x, long2 y);
9235ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y);
9236long3 __ovld __cnfn hadd(long3 x, long3 y);
9237ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y);
9238long4 __ovld __cnfn hadd(long4 x, long4 y);
9239ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y);
9240long8 __ovld __cnfn hadd(long8 x, long8 y);
9241ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y);
9242long16 __ovld __cnfn hadd(long16 x, long16 y);
9243ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y);
9244
9249char __ovld __cnfn rhadd(char x, char y);
9251char2 __ovld __cnfn rhadd(char2 x, char2 y);
9252uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y);
9253char3 __ovld __cnfn rhadd(char3 x, char3 y);
9254uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y);
9255char4 __ovld __cnfn rhadd(char4 x, char4 y);
9256uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y);
9257char8 __ovld __cnfn rhadd(char8 x, char8 y);
9258uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y);
9259char16 __ovld __cnfn rhadd(char16 x, char16 y);
9260uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y);
9261short __ovld __cnfn rhadd(short x, short y);
9263short2 __ovld __cnfn rhadd(short2 x, short2 y);
9264ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y);
9265short3 __ovld __cnfn rhadd(short3 x, short3 y);
9266ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y);
9267short4 __ovld __cnfn rhadd(short4 x, short4 y);
9268ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y);
9269short8 __ovld __cnfn rhadd(short8 x, short8 y);
9270ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y);
9271short16 __ovld __cnfn rhadd(short16 x, short16 y);
9272ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y);
9273int __ovld __cnfn rhadd(int x, int y);
9275int2 __ovld __cnfn rhadd(int2 x, int2 y);
9276uint2 __ovld __cnfn rhadd(uint2 x, uint2 y);
9277int3 __ovld __cnfn rhadd(int3 x, int3 y);
9278uint3 __ovld __cnfn rhadd(uint3 x, uint3 y);
9279int4 __ovld __cnfn rhadd(int4 x, int4 y);
9280uint4 __ovld __cnfn rhadd(uint4 x, uint4 y);
9285long __ovld __cnfn rhadd(long x, long y);
9287long2 __ovld __cnfn rhadd(long2 x, long2 y);
9288ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y);
9289long3 __ovld __cnfn rhadd(long3 x, long3 y);
9290ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y);
9291long4 __ovld __cnfn rhadd(long4 x, long4 y);
9292ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y);
9293long8 __ovld __cnfn rhadd(long8 x, long8 y);
9294ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y);
9295long16 __ovld __cnfn rhadd(long16 x, long16 y);
9296ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y);
9297
9302char __ovld __cnfn clamp(char x, char minval, char maxval);
9304char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval);
9305uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval);
9306char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval);
9307uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval);
9308char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval);
9309uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval);
9310char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval);
9311uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval);
9312char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval);
9313uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval);
9314short __ovld __cnfn clamp(short x, short minval, short maxval);
9316short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval);
9317ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval);
9318short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval);
9319ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval);
9320short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval);
9321ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval);
9322short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval);
9323ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval);
9324short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval);
9325ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval);
9326int __ovld __cnfn clamp(int x, int minval, int maxval);
9327uint __ovld __cnfn clamp(uint x, uint minval, uint maxval);
9328int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval);
9329uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval);
9330int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval);
9331uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval);
9332int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval);
9333uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval);
9334int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval);
9338long __ovld __cnfn clamp(long x, long minval, long maxval);
9340long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval);
9341ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval);
9342long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval);
9343ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval);
9344long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval);
9345ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval);
9346long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval);
9347ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval);
9348long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval);
9349ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval);
9350char2 __ovld __cnfn clamp(char2 x, char minval, char maxval);
9351uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval);
9352char3 __ovld __cnfn clamp(char3 x, char minval, char maxval);
9353uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval);
9354char4 __ovld __cnfn clamp(char4 x, char minval, char maxval);
9355uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval);
9356char8 __ovld __cnfn clamp(char8 x, char minval, char maxval);
9357uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval);
9358char16 __ovld __cnfn clamp(char16 x, char minval, char maxval);
9359uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval);
9360short2 __ovld __cnfn clamp(short2 x, short minval, short maxval);
9361ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval);
9362short3 __ovld __cnfn clamp(short3 x, short minval, short maxval);
9363ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval);
9364short4 __ovld __cnfn clamp(short4 x, short minval, short maxval);
9365ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval);
9366short8 __ovld __cnfn clamp(short8 x, short minval, short maxval);
9367ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval);
9368short16 __ovld __cnfn clamp(short16 x, short minval, short maxval);
9369ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval);
9370int2 __ovld __cnfn clamp(int2 x, int minval, int maxval);
9371uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval);
9372int3 __ovld __cnfn clamp(int3 x, int minval, int maxval);
9373uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval);
9374int4 __ovld __cnfn clamp(int4 x, int minval, int maxval);
9375uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval);
9376int8 __ovld __cnfn clamp(int8 x, int minval, int maxval);
9378int16 __ovld __cnfn clamp(int16 x, int minval, int maxval);
9380long2 __ovld __cnfn clamp(long2 x, long minval, long maxval);
9381ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval);
9382long3 __ovld __cnfn clamp(long3 x, long minval, long maxval);
9383ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval);
9384long4 __ovld __cnfn clamp(long4 x, long minval, long maxval);
9385ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval);
9386long8 __ovld __cnfn clamp(long8 x, long minval, long maxval);
9387ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval);
9388long16 __ovld __cnfn clamp(long16 x, long minval, long maxval);
9389ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval);
9390
9395char __ovld __cnfn clz(char x);
9397char2 __ovld __cnfn clz(char2 x);
9398uchar2 __ovld __cnfn clz(uchar2 x);
9399char3 __ovld __cnfn clz(char3 x);
9400uchar3 __ovld __cnfn clz(uchar3 x);
9401char4 __ovld __cnfn clz(char4 x);
9402uchar4 __ovld __cnfn clz(uchar4 x);
9403char8 __ovld __cnfn clz(char8 x);
9404uchar8 __ovld __cnfn clz(uchar8 x);
9405char16 __ovld __cnfn clz(char16 x);
9406uchar16 __ovld __cnfn clz(uchar16 x);
9407short __ovld __cnfn clz(short x);
9409short2 __ovld __cnfn clz(short2 x);
9410ushort2 __ovld __cnfn clz(ushort2 x);
9411short3 __ovld __cnfn clz(short3 x);
9412ushort3 __ovld __cnfn clz(ushort3 x);
9413short4 __ovld __cnfn clz(short4 x);
9414ushort4 __ovld __cnfn clz(ushort4 x);
9415short8 __ovld __cnfn clz(short8 x);
9416ushort8 __ovld __cnfn clz(ushort8 x);
9417short16 __ovld __cnfn clz(short16 x);
9418ushort16 __ovld __cnfn clz(ushort16 x);
9419int __ovld __cnfn clz(int x);
9421int2 __ovld __cnfn clz(int2 x);
9422uint2 __ovld __cnfn clz(uint2 x);
9423int3 __ovld __cnfn clz(int3 x);
9424uint3 __ovld __cnfn clz(uint3 x);
9425int4 __ovld __cnfn clz(int4 x);
9426uint4 __ovld __cnfn clz(uint4 x);
9431long __ovld __cnfn clz(long x);
9433long2 __ovld __cnfn clz(long2 x);
9434ulong2 __ovld __cnfn clz(ulong2 x);
9435long3 __ovld __cnfn clz(long3 x);
9436ulong3 __ovld __cnfn clz(ulong3 x);
9437long4 __ovld __cnfn clz(long4 x);
9438ulong4 __ovld __cnfn clz(ulong4 x);
9439long8 __ovld __cnfn clz(long8 x);
9440ulong8 __ovld __cnfn clz(ulong8 x);
9441long16 __ovld __cnfn clz(long16 x);
9442ulong16 __ovld __cnfn clz(ulong16 x);
9443
9449#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9450char __ovld ctz(char x);
9452char2 __ovld ctz(char2 x);
9453uchar2 __ovld ctz(uchar2 x);
9454char3 __ovld ctz(char3 x);
9455uchar3 __ovld ctz(uchar3 x);
9456char4 __ovld ctz(char4 x);
9457uchar4 __ovld ctz(uchar4 x);
9458char8 __ovld ctz(char8 x);
9459uchar8 __ovld ctz(uchar8 x);
9460char16 __ovld ctz(char16 x);
9461uchar16 __ovld ctz(uchar16 x);
9462short __ovld ctz(short x);
9464short2 __ovld ctz(short2 x);
9465ushort2 __ovld ctz(ushort2 x);
9466short3 __ovld ctz(short3 x);
9467ushort3 __ovld ctz(ushort3 x);
9468short4 __ovld ctz(short4 x);
9469ushort4 __ovld ctz(ushort4 x);
9470short8 __ovld ctz(short8 x);
9471ushort8 __ovld ctz(ushort8 x);
9472short16 __ovld ctz(short16 x);
9473ushort16 __ovld ctz(ushort16 x);
9474int __ovld ctz(int x);
9476int2 __ovld ctz(int2 x);
9477uint2 __ovld ctz(uint2 x);
9478int3 __ovld ctz(int3 x);
9479uint3 __ovld ctz(uint3 x);
9480int4 __ovld ctz(int4 x);
9481uint4 __ovld ctz(uint4 x);
9486long __ovld ctz(long x);
9488long2 __ovld ctz(long2 x);
9489ulong2 __ovld ctz(ulong2 x);
9490long3 __ovld ctz(long3 x);
9491ulong3 __ovld ctz(ulong3 x);
9492long4 __ovld ctz(long4 x);
9493ulong4 __ovld ctz(ulong4 x);
9494long8 __ovld ctz(long8 x);
9495ulong8 __ovld ctz(ulong8 x);
9496long16 __ovld ctz(long16 x);
9497ulong16 __ovld ctz(ulong16 x);
9498#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9499
9503char __ovld __cnfn mad_hi(char a, char b, char c);
9505char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c);
9506uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c);
9507char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c);
9508uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c);
9509char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c);
9510uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c);
9511char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c);
9512uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c);
9513char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c);
9514uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c);
9515short __ovld __cnfn mad_hi(short a, short b, short c);
9517short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c);
9518ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c);
9519short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c);
9520ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c);
9521short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c);
9522ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c);
9523short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c);
9524ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c);
9525short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c);
9526ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c);
9527int __ovld __cnfn mad_hi(int a, int b, int c);
9529int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c);
9530uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c);
9531int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c);
9532uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c);
9533int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c);
9534uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c);
9539long __ovld __cnfn mad_hi(long a, long b, long c);
9541long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c);
9542ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c);
9543long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c);
9544ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c);
9545long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c);
9546ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c);
9547long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c);
9548ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c);
9549long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c);
9550ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c);
9551
9555char __ovld __cnfn mad_sat(char a, char b, char c);
9557char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c);
9558uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c);
9559char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c);
9560uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c);
9561char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c);
9562uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c);
9563char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c);
9564uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c);
9565char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c);
9566uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c);
9567short __ovld __cnfn mad_sat(short a, short b, short c);
9569short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c);
9570ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c);
9571short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c);
9572ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c);
9573short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c);
9574ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c);
9575short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c);
9576ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c);
9577short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c);
9578ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c);
9579int __ovld __cnfn mad_sat(int a, int b, int c);
9581int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c);
9582uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c);
9583int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c);
9584uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c);
9585int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c);
9586uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c);
9591long __ovld __cnfn mad_sat(long a, long b, long c);
9593long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c);
9594ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c);
9595long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c);
9596ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c);
9597long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c);
9598ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c);
9599long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c);
9600ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c);
9601long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c);
9602ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c);
9603
9607char __ovld __cnfn max(char x, char y);
9609char2 __ovld __cnfn max(char2 x, char2 y);
9610uchar2 __ovld __cnfn max(uchar2 x, uchar2 y);
9611char3 __ovld __cnfn max(char3 x, char3 y);
9612uchar3 __ovld __cnfn max(uchar3 x, uchar3 y);
9613char4 __ovld __cnfn max(char4 x, char4 y);
9614uchar4 __ovld __cnfn max(uchar4 x, uchar4 y);
9615char8 __ovld __cnfn max(char8 x, char8 y);
9616uchar8 __ovld __cnfn max(uchar8 x, uchar8 y);
9617char16 __ovld __cnfn max(char16 x, char16 y);
9618uchar16 __ovld __cnfn max(uchar16 x, uchar16 y);
9619short __ovld __cnfn max(short x, short y);
9621short2 __ovld __cnfn max(short2 x, short2 y);
9622ushort2 __ovld __cnfn max(ushort2 x, ushort2 y);
9623short3 __ovld __cnfn max(short3 x, short3 y);
9624ushort3 __ovld __cnfn max(ushort3 x, ushort3 y);
9625short4 __ovld __cnfn max(short4 x, short4 y);
9626ushort4 __ovld __cnfn max(ushort4 x, ushort4 y);
9627short8 __ovld __cnfn max(short8 x, short8 y);
9628ushort8 __ovld __cnfn max(ushort8 x, ushort8 y);
9629short16 __ovld __cnfn max(short16 x, short16 y);
9630ushort16 __ovld __cnfn max(ushort16 x, ushort16 y);
9631int __ovld __cnfn max(int x, int y);
9633int2 __ovld __cnfn max(int2 x, int2 y);
9634uint2 __ovld __cnfn max(uint2 x, uint2 y);
9635int3 __ovld __cnfn max(int3 x, int3 y);
9636uint3 __ovld __cnfn max(uint3 x, uint3 y);
9637int4 __ovld __cnfn max(int4 x, int4 y);
9638uint4 __ovld __cnfn max(uint4 x, uint4 y);
9643long __ovld __cnfn max(long x, long y);
9645long2 __ovld __cnfn max(long2 x, long2 y);
9646ulong2 __ovld __cnfn max(ulong2 x, ulong2 y);
9647long3 __ovld __cnfn max(long3 x, long3 y);
9648ulong3 __ovld __cnfn max(ulong3 x, ulong3 y);
9649long4 __ovld __cnfn max(long4 x, long4 y);
9650ulong4 __ovld __cnfn max(ulong4 x, ulong4 y);
9651long8 __ovld __cnfn max(long8 x, long8 y);
9652ulong8 __ovld __cnfn max(ulong8 x, ulong8 y);
9653long16 __ovld __cnfn max(long16 x, long16 y);
9654ulong16 __ovld __cnfn max(ulong16 x, ulong16 y);
9655char2 __ovld __cnfn max(char2 x, char y);
9656uchar2 __ovld __cnfn max(uchar2 x, uchar y);
9657char3 __ovld __cnfn max(char3 x, char y);
9658uchar3 __ovld __cnfn max(uchar3 x, uchar y);
9659char4 __ovld __cnfn max(char4 x, char y);
9660uchar4 __ovld __cnfn max(uchar4 x, uchar y);
9661char8 __ovld __cnfn max(char8 x, char y);
9662uchar8 __ovld __cnfn max(uchar8 x, uchar y);
9663char16 __ovld __cnfn max(char16 x, char y);
9664uchar16 __ovld __cnfn max(uchar16 x, uchar y);
9665short2 __ovld __cnfn max(short2 x, short y);
9666ushort2 __ovld __cnfn max(ushort2 x, ushort y);
9667short3 __ovld __cnfn max(short3 x, short y);
9668ushort3 __ovld __cnfn max(ushort3 x, ushort y);
9669short4 __ovld __cnfn max(short4 x, short y);
9670ushort4 __ovld __cnfn max(ushort4 x, ushort y);
9671short8 __ovld __cnfn max(short8 x, short y);
9672ushort8 __ovld __cnfn max(ushort8 x, ushort y);
9673short16 __ovld __cnfn max(short16 x, short y);
9674ushort16 __ovld __cnfn max(ushort16 x, ushort y);
9675int2 __ovld __cnfn max(int2 x, int y);
9676uint2 __ovld __cnfn max(uint2 x, uint y);
9677int3 __ovld __cnfn max(int3 x, int y);
9678uint3 __ovld __cnfn max(uint3 x, uint y);
9679int4 __ovld __cnfn max(int4 x, int y);
9680uint4 __ovld __cnfn max(uint4 x, uint y);
9685long2 __ovld __cnfn max(long2 x, long y);
9686ulong2 __ovld __cnfn max(ulong2 x, ulong y);
9687long3 __ovld __cnfn max(long3 x, long y);
9688ulong3 __ovld __cnfn max(ulong3 x, ulong y);
9689long4 __ovld __cnfn max(long4 x, long y);
9690ulong4 __ovld __cnfn max(ulong4 x, ulong y);
9691long8 __ovld __cnfn max(long8 x, long y);
9692ulong8 __ovld __cnfn max(ulong8 x, ulong y);
9693long16 __ovld __cnfn max(long16 x, long y);
9694ulong16 __ovld __cnfn max(ulong16 x, ulong y);
9695
9699char __ovld __cnfn min(char x, char y);
9701char2 __ovld __cnfn min(char2 x, char2 y);
9702uchar2 __ovld __cnfn min(uchar2 x, uchar2 y);
9703char3 __ovld __cnfn min(char3 x, char3 y);
9704uchar3 __ovld __cnfn min(uchar3 x, uchar3 y);
9705char4 __ovld __cnfn min(char4 x, char4 y);
9706uchar4 __ovld __cnfn min(uchar4 x, uchar4 y);
9707char8 __ovld __cnfn min(char8 x, char8 y);
9708uchar8 __ovld __cnfn min(uchar8 x, uchar8 y);
9709char16 __ovld __cnfn min(char16 x, char16 y);
9710uchar16 __ovld __cnfn min(uchar16 x, uchar16 y);
9711short __ovld __cnfn min(short x, short y);
9713short2 __ovld __cnfn min(short2 x, short2 y);
9714ushort2 __ovld __cnfn min(ushort2 x, ushort2 y);
9715short3 __ovld __cnfn min(short3 x, short3 y);
9716ushort3 __ovld __cnfn min(ushort3 x, ushort3 y);
9717short4 __ovld __cnfn min(short4 x, short4 y);
9718ushort4 __ovld __cnfn min(ushort4 x, ushort4 y);
9719short8 __ovld __cnfn min(short8 x, short8 y);
9720ushort8 __ovld __cnfn min(ushort8 x, ushort8 y);
9721short16 __ovld __cnfn min(short16 x, short16 y);
9722ushort16 __ovld __cnfn min(ushort16 x, ushort16 y);
9723int __ovld __cnfn min(int x, int y);
9725int2 __ovld __cnfn min(int2 x, int2 y);
9726uint2 __ovld __cnfn min(uint2 x, uint2 y);
9727int3 __ovld __cnfn min(int3 x, int3 y);
9728uint3 __ovld __cnfn min(uint3 x, uint3 y);
9729int4 __ovld __cnfn min(int4 x, int4 y);
9730uint4 __ovld __cnfn min(uint4 x, uint4 y);
9735long __ovld __cnfn min(long x, long y);
9737long2 __ovld __cnfn min(long2 x, long2 y);
9738ulong2 __ovld __cnfn min(ulong2 x, ulong2 y);
9739long3 __ovld __cnfn min(long3 x, long3 y);
9740ulong3 __ovld __cnfn min(ulong3 x, ulong3 y);
9741long4 __ovld __cnfn min(long4 x, long4 y);
9742ulong4 __ovld __cnfn min(ulong4 x, ulong4 y);
9743long8 __ovld __cnfn min(long8 x, long8 y);
9744ulong8 __ovld __cnfn min(ulong8 x, ulong8 y);
9745long16 __ovld __cnfn min(long16 x, long16 y);
9746ulong16 __ovld __cnfn min(ulong16 x, ulong16 y);
9747char2 __ovld __cnfn min(char2 x, char y);
9748uchar2 __ovld __cnfn min(uchar2 x, uchar y);
9749char3 __ovld __cnfn min(char3 x, char y);
9750uchar3 __ovld __cnfn min(uchar3 x, uchar y);
9751char4 __ovld __cnfn min(char4 x, char y);
9752uchar4 __ovld __cnfn min(uchar4 x, uchar y);
9753char8 __ovld __cnfn min(char8 x, char y);
9754uchar8 __ovld __cnfn min(uchar8 x, uchar y);
9755char16 __ovld __cnfn min(char16 x, char y);
9756uchar16 __ovld __cnfn min(uchar16 x, uchar y);
9757short2 __ovld __cnfn min(short2 x, short y);
9758ushort2 __ovld __cnfn min(ushort2 x, ushort y);
9759short3 __ovld __cnfn min(short3 x, short y);
9760ushort3 __ovld __cnfn min(ushort3 x, ushort y);
9761short4 __ovld __cnfn min(short4 x, short y);
9762ushort4 __ovld __cnfn min(ushort4 x, ushort y);
9763short8 __ovld __cnfn min(short8 x, short y);
9764ushort8 __ovld __cnfn min(ushort8 x, ushort y);
9765short16 __ovld __cnfn min(short16 x, short y);
9766ushort16 __ovld __cnfn min(ushort16 x, ushort y);
9767int2 __ovld __cnfn min(int2 x, int y);
9768uint2 __ovld __cnfn min(uint2 x, uint y);
9769int3 __ovld __cnfn min(int3 x, int y);
9770uint3 __ovld __cnfn min(uint3 x, uint y);
9771int4 __ovld __cnfn min(int4 x, int y);
9772uint4 __ovld __cnfn min(uint4 x, uint y);
9777long2 __ovld __cnfn min(long2 x, long y);
9778ulong2 __ovld __cnfn min(ulong2 x, ulong y);
9779long3 __ovld __cnfn min(long3 x, long y);
9780ulong3 __ovld __cnfn min(ulong3 x, ulong y);
9781long4 __ovld __cnfn min(long4 x, long y);
9782ulong4 __ovld __cnfn min(ulong4 x, ulong y);
9783long8 __ovld __cnfn min(long8 x, long y);
9784ulong8 __ovld __cnfn min(ulong8 x, ulong y);
9785long16 __ovld __cnfn min(long16 x, long y);
9786ulong16 __ovld __cnfn min(ulong16 x, ulong y);
9787
9792char __ovld __cnfn mul_hi(char x, char y);
9794char2 __ovld __cnfn mul_hi(char2 x, char2 y);
9795uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y);
9796char3 __ovld __cnfn mul_hi(char3 x, char3 y);
9797uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y);
9798char4 __ovld __cnfn mul_hi(char4 x, char4 y);
9799uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y);
9800char8 __ovld __cnfn mul_hi(char8 x, char8 y);
9801uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y);
9802char16 __ovld __cnfn mul_hi(char16 x, char16 y);
9803uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y);
9804short __ovld __cnfn mul_hi(short x, short y);
9806short2 __ovld __cnfn mul_hi(short2 x, short2 y);
9807ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y);
9808short3 __ovld __cnfn mul_hi(short3 x, short3 y);
9809ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y);
9810short4 __ovld __cnfn mul_hi(short4 x, short4 y);
9811ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y);
9812short8 __ovld __cnfn mul_hi(short8 x, short8 y);
9813ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y);
9814short16 __ovld __cnfn mul_hi(short16 x, short16 y);
9815ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y);
9816int __ovld __cnfn mul_hi(int x, int y);
9818int2 __ovld __cnfn mul_hi(int2 x, int2 y);
9819uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y);
9820int3 __ovld __cnfn mul_hi(int3 x, int3 y);
9821uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y);
9822int4 __ovld __cnfn mul_hi(int4 x, int4 y);
9823uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y);
9828long __ovld __cnfn mul_hi(long x, long y);
9830long2 __ovld __cnfn mul_hi(long2 x, long2 y);
9831ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y);
9832long3 __ovld __cnfn mul_hi(long3 x, long3 y);
9833ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y);
9834long4 __ovld __cnfn mul_hi(long4 x, long4 y);
9835ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y);
9836long8 __ovld __cnfn mul_hi(long8 x, long8 y);
9837ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y);
9838long16 __ovld __cnfn mul_hi(long16 x, long16 y);
9839ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y);
9840
9849char __ovld __cnfn rotate(char v, char i);
9851char2 __ovld __cnfn rotate(char2 v, char2 i);
9852uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i);
9853char3 __ovld __cnfn rotate(char3 v, char3 i);
9854uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i);
9855char4 __ovld __cnfn rotate(char4 v, char4 i);
9856uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i);
9857char8 __ovld __cnfn rotate(char8 v, char8 i);
9858uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i);
9859char16 __ovld __cnfn rotate(char16 v, char16 i);
9860uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i);
9861short __ovld __cnfn rotate(short v, short i);
9863short2 __ovld __cnfn rotate(short2 v, short2 i);
9864ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i);
9865short3 __ovld __cnfn rotate(short3 v, short3 i);
9866ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i);
9867short4 __ovld __cnfn rotate(short4 v, short4 i);
9868ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i);
9869short8 __ovld __cnfn rotate(short8 v, short8 i);
9870ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i);
9871short16 __ovld __cnfn rotate(short16 v, short16 i);
9872ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i);
9873int __ovld __cnfn rotate(int v, int i);
9875int2 __ovld __cnfn rotate(int2 v, int2 i);
9876uint2 __ovld __cnfn rotate(uint2 v, uint2 i);
9877int3 __ovld __cnfn rotate(int3 v, int3 i);
9878uint3 __ovld __cnfn rotate(uint3 v, uint3 i);
9879int4 __ovld __cnfn rotate(int4 v, int4 i);
9880uint4 __ovld __cnfn rotate(uint4 v, uint4 i);
9885long __ovld __cnfn rotate(long v, long i);
9887long2 __ovld __cnfn rotate(long2 v, long2 i);
9888ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i);
9889long3 __ovld __cnfn rotate(long3 v, long3 i);
9890ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i);
9891long4 __ovld __cnfn rotate(long4 v, long4 i);
9892ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i);
9893long8 __ovld __cnfn rotate(long8 v, long8 i);
9894ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i);
9895long16 __ovld __cnfn rotate(long16 v, long16 i);
9896ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i);
9897
9901char __ovld __cnfn sub_sat(char x, char y);
9903char2 __ovld __cnfn sub_sat(char2 x, char2 y);
9904uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y);
9905char3 __ovld __cnfn sub_sat(char3 x, char3 y);
9906uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y);
9907char4 __ovld __cnfn sub_sat(char4 x, char4 y);
9908uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y);
9909char8 __ovld __cnfn sub_sat(char8 x, char8 y);
9910uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y);
9911char16 __ovld __cnfn sub_sat(char16 x, char16 y);
9912uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y);
9913short __ovld __cnfn sub_sat(short x, short y);
9915short2 __ovld __cnfn sub_sat(short2 x, short2 y);
9916ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y);
9917short3 __ovld __cnfn sub_sat(short3 x, short3 y);
9918ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y);
9919short4 __ovld __cnfn sub_sat(short4 x, short4 y);
9920ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y);
9921short8 __ovld __cnfn sub_sat(short8 x, short8 y);
9922ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y);
9923short16 __ovld __cnfn sub_sat(short16 x, short16 y);
9924ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y);
9925int __ovld __cnfn sub_sat(int x, int y);
9927int2 __ovld __cnfn sub_sat(int2 x, int2 y);
9928uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y);
9929int3 __ovld __cnfn sub_sat(int3 x, int3 y);
9930uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y);
9931int4 __ovld __cnfn sub_sat(int4 x, int4 y);
9932uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y);
9937long __ovld __cnfn sub_sat(long x, long y);
9939long2 __ovld __cnfn sub_sat(long2 x, long2 y);
9940ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y);
9941long3 __ovld __cnfn sub_sat(long3 x, long3 y);
9942ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y);
9943long4 __ovld __cnfn sub_sat(long4 x, long4 y);
9944ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y);
9945long8 __ovld __cnfn sub_sat(long8 x, long8 y);
9946ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y);
9947long16 __ovld __cnfn sub_sat(long16 x, long16 y);
9948ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y);
9949
9954short __ovld __cnfn upsample(char hi, uchar lo);
9956short2 __ovld __cnfn upsample(char2 hi, uchar2 lo);
9957short3 __ovld __cnfn upsample(char3 hi, uchar3 lo);
9958short4 __ovld __cnfn upsample(char4 hi, uchar4 lo);
9959short8 __ovld __cnfn upsample(char8 hi, uchar8 lo);
9960short16 __ovld __cnfn upsample(char16 hi, uchar16 lo);
9961ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo);
9962ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo);
9963ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo);
9964ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo);
9965ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo);
9966
9971int __ovld __cnfn upsample(short hi, ushort lo);
9973int2 __ovld __cnfn upsample(short2 hi, ushort2 lo);
9974int3 __ovld __cnfn upsample(short3 hi, ushort3 lo);
9975int4 __ovld __cnfn upsample(short4 hi, ushort4 lo);
9976int8 __ovld __cnfn upsample(short8 hi, ushort8 lo);
9977int16 __ovld __cnfn upsample(short16 hi, ushort16 lo);
9978uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo);
9979uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo);
9980uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo);
9981uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo);
9982uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo);
9987long __ovld __cnfn upsample(int hi, uint lo);
9989long2 __ovld __cnfn upsample(int2 hi, uint2 lo);
9990long3 __ovld __cnfn upsample(int3 hi, uint3 lo);
9991long4 __ovld __cnfn upsample(int4 hi, uint4 lo);
9994ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo);
9995ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo);
9996ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo);
9999
10000/*
10001 * popcount(x): returns the number of set bit in x
10002 */
10005char2 __ovld __cnfn popcount(char2 x);
10006uchar2 __ovld __cnfn popcount(uchar2 x);
10007char3 __ovld __cnfn popcount(char3 x);
10008uchar3 __ovld __cnfn popcount(uchar3 x);
10009char4 __ovld __cnfn popcount(char4 x);
10010uchar4 __ovld __cnfn popcount(uchar4 x);
10011char8 __ovld __cnfn popcount(char8 x);
10012uchar8 __ovld __cnfn popcount(uchar8 x);
10013char16 __ovld __cnfn popcount(char16 x);
10014uchar16 __ovld __cnfn popcount(uchar16 x);
10015short __ovld __cnfn popcount(short x);
10017short2 __ovld __cnfn popcount(short2 x);
10018ushort2 __ovld __cnfn popcount(ushort2 x);
10019short3 __ovld __cnfn popcount(short3 x);
10020ushort3 __ovld __cnfn popcount(ushort3 x);
10021short4 __ovld __cnfn popcount(short4 x);
10022ushort4 __ovld __cnfn popcount(ushort4 x);
10023short8 __ovld __cnfn popcount(short8 x);
10024ushort8 __ovld __cnfn popcount(ushort8 x);
10025short16 __ovld __cnfn popcount(short16 x);
10026ushort16 __ovld __cnfn popcount(ushort16 x);
10030uint2 __ovld __cnfn popcount(uint2 x);
10032uint3 __ovld __cnfn popcount(uint3 x);
10034uint4 __ovld __cnfn popcount(uint4 x);
10041long2 __ovld __cnfn popcount(long2 x);
10042ulong2 __ovld __cnfn popcount(ulong2 x);
10043long3 __ovld __cnfn popcount(long3 x);
10044ulong3 __ovld __cnfn popcount(ulong3 x);
10045long4 __ovld __cnfn popcount(long4 x);
10046ulong4 __ovld __cnfn popcount(ulong4 x);
10047long8 __ovld __cnfn popcount(long8 x);
10048ulong8 __ovld __cnfn popcount(ulong8 x);
10049long16 __ovld __cnfn popcount(long16 x);
10050ulong16 __ovld __cnfn popcount(ulong16 x);
10051
10058int __ovld __cnfn mad24(int x, int y, int z);
10060int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z);
10061uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z);
10062int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z);
10063uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z);
10064int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z);
10065uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z);
10070
10081int __ovld __cnfn mul24(int x, int y);
10083int2 __ovld __cnfn mul24(int2 x, int2 y);
10084uint2 __ovld __cnfn mul24(uint2 x, uint2 y);
10085int3 __ovld __cnfn mul24(int3 x, int3 y);
10086uint3 __ovld __cnfn mul24(uint3 x, uint3 y);
10087int4 __ovld __cnfn mul24(int4 x, int4 y);
10088uint4 __ovld __cnfn mul24(uint4 x, uint4 y);
10093
10094// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
10095
10100float __ovld __cnfn clamp(float x, float minval, float maxval);
10101float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval);
10102float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval);
10103float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval);
10104float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval);
10105float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval);
10106float2 __ovld __cnfn clamp(float2 x, float minval, float maxval);
10107float3 __ovld __cnfn clamp(float3 x, float minval, float maxval);
10108float4 __ovld __cnfn clamp(float4 x, float minval, float maxval);
10109float8 __ovld __cnfn clamp(float8 x, float minval, float maxval);
10110float16 __ovld __cnfn clamp(float16 x, float minval, float maxval);
10111#ifdef cl_khr_fp64
10112double __ovld __cnfn clamp(double x, double minval, double maxval);
10113double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval);
10114double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval);
10115double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval);
10116double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval);
10117double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval);
10118double2 __ovld __cnfn clamp(double2 x, double minval, double maxval);
10119double3 __ovld __cnfn clamp(double3 x, double minval, double maxval);
10120double4 __ovld __cnfn clamp(double4 x, double minval, double maxval);
10121double8 __ovld __cnfn clamp(double8 x, double minval, double maxval);
10122double16 __ovld __cnfn clamp(double16 x, double minval, double maxval);
10123#endif //cl_khr_fp64
10124#ifdef cl_khr_fp16
10125half __ovld __cnfn clamp(half x, half minval, half maxval);
10126half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval);
10127half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval);
10128half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval);
10129half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval);
10130half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval);
10131half2 __ovld __cnfn clamp(half2 x, half minval, half maxval);
10132half3 __ovld __cnfn clamp(half3 x, half minval, half maxval);
10133half4 __ovld __cnfn clamp(half4 x, half minval, half maxval);
10134half8 __ovld __cnfn clamp(half8 x, half minval, half maxval);
10135half16 __ovld __cnfn clamp(half16 x, half minval, half maxval);
10136#endif //cl_khr_fp16
10137
10147float16 __ovld __cnfn degrees(float16 radians);
10148#ifdef cl_khr_fp64
10149double __ovld __cnfn degrees(double radians);
10150double2 __ovld __cnfn degrees(double2 radians);
10151double3 __ovld __cnfn degrees(double3 radians);
10152double4 __ovld __cnfn degrees(double4 radians);
10153double8 __ovld __cnfn degrees(double8 radians);
10154double16 __ovld __cnfn degrees(double16 radians);
10155#endif //cl_khr_fp64
10156#ifdef cl_khr_fp16
10157half __ovld __cnfn degrees(half radians);
10158half2 __ovld __cnfn degrees(half2 radians);
10159half3 __ovld __cnfn degrees(half3 radians);
10160half4 __ovld __cnfn degrees(half4 radians);
10161half8 __ovld __cnfn degrees(half8 radians);
10162half16 __ovld __cnfn degrees(half16 radians);
10163#endif //cl_khr_fp16
10164
10169float __ovld __cnfn max(float x, float y);
10170float2 __ovld __cnfn max(float2 x, float2 y);
10171float3 __ovld __cnfn max(float3 x, float3 y);
10172float4 __ovld __cnfn max(float4 x, float4 y);
10173float8 __ovld __cnfn max(float8 x, float8 y);
10174float16 __ovld __cnfn max(float16 x, float16 y);
10175float2 __ovld __cnfn max(float2 x, float y);
10176float3 __ovld __cnfn max(float3 x, float y);
10177float4 __ovld __cnfn max(float4 x, float y);
10178float8 __ovld __cnfn max(float8 x, float y);
10179float16 __ovld __cnfn max(float16 x, float y);
10180#ifdef cl_khr_fp64
10181double __ovld __cnfn max(double x, double y);
10182double2 __ovld __cnfn max(double2 x, double2 y);
10183double3 __ovld __cnfn max(double3 x, double3 y);
10184double4 __ovld __cnfn max(double4 x, double4 y);
10185double8 __ovld __cnfn max(double8 x, double8 y);
10186double16 __ovld __cnfn max(double16 x, double16 y);
10187double2 __ovld __cnfn max(double2 x, double y);
10188double3 __ovld __cnfn max(double3 x, double y);
10189double4 __ovld __cnfn max(double4 x, double y);
10190double8 __ovld __cnfn max(double8 x, double y);
10191double16 __ovld __cnfn max(double16 x, double y);
10192#endif //cl_khr_fp64
10193#ifdef cl_khr_fp16
10194half __ovld __cnfn max(half x, half y);
10195half2 __ovld __cnfn max(half2 x, half2 y);
10196half3 __ovld __cnfn max(half3 x, half3 y);
10197half4 __ovld __cnfn max(half4 x, half4 y);
10198half8 __ovld __cnfn max(half8 x, half8 y);
10199half16 __ovld __cnfn max(half16 x, half16 y);
10200half2 __ovld __cnfn max(half2 x, half y);
10201half3 __ovld __cnfn max(half3 x, half y);
10202half4 __ovld __cnfn max(half4 x, half y);
10203half8 __ovld __cnfn max(half8 x, half y);
10204half16 __ovld __cnfn max(half16 x, half y);
10205#endif //cl_khr_fp16
10206
10211float __ovld __cnfn min(float x, float y);
10212float2 __ovld __cnfn min(float2 x, float2 y);
10213float3 __ovld __cnfn min(float3 x, float3 y);
10214float4 __ovld __cnfn min(float4 x, float4 y);
10215float8 __ovld __cnfn min(float8 x, float8 y);
10216float16 __ovld __cnfn min(float16 x, float16 y);
10217float2 __ovld __cnfn min(float2 x, float y);
10218float3 __ovld __cnfn min(float3 x, float y);
10219float4 __ovld __cnfn min(float4 x, float y);
10220float8 __ovld __cnfn min(float8 x, float y);
10221float16 __ovld __cnfn min(float16 x, float y);
10222#ifdef cl_khr_fp64
10223double __ovld __cnfn min(double x, double y);
10224double2 __ovld __cnfn min(double2 x, double2 y);
10225double3 __ovld __cnfn min(double3 x, double3 y);
10226double4 __ovld __cnfn min(double4 x, double4 y);
10227double8 __ovld __cnfn min(double8 x, double8 y);
10228double16 __ovld __cnfn min(double16 x, double16 y);
10229double2 __ovld __cnfn min(double2 x, double y);
10230double3 __ovld __cnfn min(double3 x, double y);
10231double4 __ovld __cnfn min(double4 x, double y);
10232double8 __ovld __cnfn min(double8 x, double y);
10233double16 __ovld __cnfn min(double16 x, double y);
10234#endif //cl_khr_fp64
10235#ifdef cl_khr_fp16
10236half __ovld __cnfn min(half x, half y);
10237half2 __ovld __cnfn min(half2 x, half2 y);
10238half3 __ovld __cnfn min(half3 x, half3 y);
10239half4 __ovld __cnfn min(half4 x, half4 y);
10240half8 __ovld __cnfn min(half8 x, half8 y);
10241half16 __ovld __cnfn min(half16 x, half16 y);
10242half2 __ovld __cnfn min(half2 x, half y);
10243half3 __ovld __cnfn min(half3 x, half y);
10244half4 __ovld __cnfn min(half4 x, half y);
10245half8 __ovld __cnfn min(half8 x, half y);
10246half16 __ovld __cnfn min(half16 x, half y);
10247#endif //cl_khr_fp16
10248
10256float __ovld __cnfn mix(float x, float y, float a);
10257float2 __ovld __cnfn mix(float2 x, float2 y, float2 a);
10258float3 __ovld __cnfn mix(float3 x, float3 y, float3 a);
10259float4 __ovld __cnfn mix(float4 x, float4 y, float4 a);
10260float8 __ovld __cnfn mix(float8 x, float8 y, float8 a);
10261float16 __ovld __cnfn mix(float16 x, float16 y, float16 a);
10262float2 __ovld __cnfn mix(float2 x, float2 y, float a);
10263float3 __ovld __cnfn mix(float3 x, float3 y, float a);
10264float4 __ovld __cnfn mix(float4 x, float4 y, float a);
10265float8 __ovld __cnfn mix(float8 x, float8 y, float a);
10266float16 __ovld __cnfn mix(float16 x, float16 y, float a);
10267#ifdef cl_khr_fp64
10268double __ovld __cnfn mix(double x, double y, double a);
10269double2 __ovld __cnfn mix(double2 x, double2 y, double2 a);
10270double3 __ovld __cnfn mix(double3 x, double3 y, double3 a);
10271double4 __ovld __cnfn mix(double4 x, double4 y, double4 a);
10272double8 __ovld __cnfn mix(double8 x, double8 y, double8 a);
10273double16 __ovld __cnfn mix(double16 x, double16 y, double16 a);
10274double2 __ovld __cnfn mix(double2 x, double2 y, double a);
10275double3 __ovld __cnfn mix(double3 x, double3 y, double a);
10276double4 __ovld __cnfn mix(double4 x, double4 y, double a);
10277double8 __ovld __cnfn mix(double8 x, double8 y, double a);
10278double16 __ovld __cnfn mix(double16 x, double16 y, double a);
10279#endif //cl_khr_fp64
10280#ifdef cl_khr_fp16
10281half __ovld __cnfn mix(half x, half y, half a);
10282half2 __ovld __cnfn mix(half2 x, half2 y, half2 a);
10283half3 __ovld __cnfn mix(half3 x, half3 y, half3 a);
10284half4 __ovld __cnfn mix(half4 x, half4 y, half4 a);
10285half8 __ovld __cnfn mix(half8 x, half8 y, half8 a);
10286half16 __ovld __cnfn mix(half16 x, half16 y, half16 a);
10287half2 __ovld __cnfn mix(half2 x, half2 y, half a);
10288half3 __ovld __cnfn mix(half3 x, half3 y, half a);
10289half4 __ovld __cnfn mix(half4 x, half4 y, half a);
10290half8 __ovld __cnfn mix(half8 x, half8 y, half a);
10291half16 __ovld __cnfn mix(half16 x, half16 y, half a);
10292#endif //cl_khr_fp16
10293
10303float16 __ovld __cnfn radians(float16 degrees);
10304#ifdef cl_khr_fp64
10305double __ovld __cnfn radians(double degrees);
10306double2 __ovld __cnfn radians(double2 degrees);
10307double3 __ovld __cnfn radians(double3 degrees);
10308double4 __ovld __cnfn radians(double4 degrees);
10309double8 __ovld __cnfn radians(double8 degrees);
10310double16 __ovld __cnfn radians(double16 degrees);
10311#endif //cl_khr_fp64
10312#ifdef cl_khr_fp16
10313half __ovld __cnfn radians(half degrees);
10314half2 __ovld __cnfn radians(half2 degrees);
10315half3 __ovld __cnfn radians(half3 degrees);
10316half4 __ovld __cnfn radians(half4 degrees);
10317half8 __ovld __cnfn radians(half8 degrees);
10318half16 __ovld __cnfn radians(half16 degrees);
10319#endif //cl_khr_fp16
10320
10324float __ovld __cnfn step(float edge, float x);
10325float2 __ovld __cnfn step(float2 edge, float2 x);
10326float3 __ovld __cnfn step(float3 edge, float3 x);
10327float4 __ovld __cnfn step(float4 edge, float4 x);
10328float8 __ovld __cnfn step(float8 edge, float8 x);
10329float16 __ovld __cnfn step(float16 edge, float16 x);
10330float2 __ovld __cnfn step(float edge, float2 x);
10331float3 __ovld __cnfn step(float edge, float3 x);
10332float4 __ovld __cnfn step(float edge, float4 x);
10333float8 __ovld __cnfn step(float edge, float8 x);
10334float16 __ovld __cnfn step(float edge, float16 x);
10335#ifdef cl_khr_fp64
10336double __ovld __cnfn step(double edge, double x);
10337double2 __ovld __cnfn step(double2 edge, double2 x);
10338double3 __ovld __cnfn step(double3 edge, double3 x);
10339double4 __ovld __cnfn step(double4 edge, double4 x);
10340double8 __ovld __cnfn step(double8 edge, double8 x);
10341double16 __ovld __cnfn step(double16 edge, double16 x);
10342double2 __ovld __cnfn step(double edge, double2 x);
10343double3 __ovld __cnfn step(double edge, double3 x);
10344double4 __ovld __cnfn step(double edge, double4 x);
10345double8 __ovld __cnfn step(double edge, double8 x);
10346double16 __ovld __cnfn step(double edge, double16 x);
10347#endif //cl_khr_fp64
10348#ifdef cl_khr_fp16
10349half __ovld __cnfn step(half edge, half x);
10350half2 __ovld __cnfn step(half2 edge, half2 x);
10351half3 __ovld __cnfn step(half3 edge, half3 x);
10352half4 __ovld __cnfn step(half4 edge, half4 x);
10353half8 __ovld __cnfn step(half8 edge, half8 x);
10354half16 __ovld __cnfn step(half16 edge, half16 x);
10355half2 __ovld __cnfn step(half edge, half2 x);
10356half3 __ovld __cnfn step(half edge, half3 x);
10357half4 __ovld __cnfn step(half edge, half4 x);
10358half8 __ovld __cnfn step(half edge, half8 x);
10359half16 __ovld __cnfn step(half edge, half16 x);
10360#endif //cl_khr_fp16
10361
10375float __ovld __cnfn smoothstep(float edge0, float edge1, float x);
10376float2 __ovld __cnfn smoothstep(float2 edge0, float2 edge1, float2 x);
10377float3 __ovld __cnfn smoothstep(float3 edge0, float3 edge1, float3 x);
10378float4 __ovld __cnfn smoothstep(float4 edge0, float4 edge1, float4 x);
10379float8 __ovld __cnfn smoothstep(float8 edge0, float8 edge1, float8 x);
10380float16 __ovld __cnfn smoothstep(float16 edge0, float16 edge1, float16 x);
10381float2 __ovld __cnfn smoothstep(float edge0, float edge1, float2 x);
10382float3 __ovld __cnfn smoothstep(float edge0, float edge1, float3 x);
10383float4 __ovld __cnfn smoothstep(float edge0, float edge1, float4 x);
10384float8 __ovld __cnfn smoothstep(float edge0, float edge1, float8 x);
10385float16 __ovld __cnfn smoothstep(float edge0, float edge1, float16 x);
10386#ifdef cl_khr_fp64
10387double __ovld __cnfn smoothstep(double edge0, double edge1, double x);
10388double2 __ovld __cnfn smoothstep(double2 edge0, double2 edge1, double2 x);
10389double3 __ovld __cnfn smoothstep(double3 edge0, double3 edge1, double3 x);
10390double4 __ovld __cnfn smoothstep(double4 edge0, double4 edge1, double4 x);
10391double8 __ovld __cnfn smoothstep(double8 edge0, double8 edge1, double8 x);
10392double16 __ovld __cnfn smoothstep(double16 edge0, double16 edge1, double16 x);
10393double2 __ovld __cnfn smoothstep(double edge0, double edge1, double2 x);
10394double3 __ovld __cnfn smoothstep(double edge0, double edge1, double3 x);
10395double4 __ovld __cnfn smoothstep(double edge0, double edge1, double4 x);
10396double8 __ovld __cnfn smoothstep(double edge0, double edge1, double8 x);
10397double16 __ovld __cnfn smoothstep(double edge0, double edge1, double16 x);
10398#endif //cl_khr_fp64
10399#ifdef cl_khr_fp16
10400half __ovld __cnfn smoothstep(half edge0, half edge1, half x);
10401half2 __ovld __cnfn smoothstep(half2 edge0, half2 edge1, half2 x);
10402half3 __ovld __cnfn smoothstep(half3 edge0, half3 edge1, half3 x);
10403half4 __ovld __cnfn smoothstep(half4 edge0, half4 edge1, half4 x);
10404half8 __ovld __cnfn smoothstep(half8 edge0, half8 edge1, half8 x);
10405half16 __ovld __cnfn smoothstep(half16 edge0, half16 edge1, half16 x);
10406half2 __ovld __cnfn smoothstep(half edge0, half edge1, half2 x);
10407half3 __ovld __cnfn smoothstep(half edge0, half edge1, half3 x);
10408half4 __ovld __cnfn smoothstep(half edge0, half edge1, half4 x);
10409half8 __ovld __cnfn smoothstep(half edge0, half edge1, half8 x);
10410half16 __ovld __cnfn smoothstep(half edge0, half edge1, half16 x);
10411#endif //cl_khr_fp16
10412
10417float __ovld __cnfn sign(float x);
10418float2 __ovld __cnfn sign(float2 x);
10419float3 __ovld __cnfn sign(float3 x);
10420float4 __ovld __cnfn sign(float4 x);
10421float8 __ovld __cnfn sign(float8 x);
10422float16 __ovld __cnfn sign(float16 x);
10423#ifdef cl_khr_fp64
10424double __ovld __cnfn sign(double x);
10425double2 __ovld __cnfn sign(double2 x);
10426double3 __ovld __cnfn sign(double3 x);
10427double4 __ovld __cnfn sign(double4 x);
10428double8 __ovld __cnfn sign(double8 x);
10429double16 __ovld __cnfn sign(double16 x);
10430#endif //cl_khr_fp64
10431#ifdef cl_khr_fp16
10432half __ovld __cnfn sign(half x);
10433half2 __ovld __cnfn sign(half2 x);
10434half3 __ovld __cnfn sign(half3 x);
10435half4 __ovld __cnfn sign(half4 x);
10436half8 __ovld __cnfn sign(half8 x);
10437half16 __ovld __cnfn sign(half16 x);
10438#endif //cl_khr_fp16
10439
10440// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
10441
10446float4 __ovld __cnfn cross(float4 p0, float4 p1);
10447float3 __ovld __cnfn cross(float3 p0, float3 p1);
10448#ifdef cl_khr_fp64
10449double4 __ovld __cnfn cross(double4 p0, double4 p1);
10450double3 __ovld __cnfn cross(double3 p0, double3 p1);
10451#endif //cl_khr_fp64
10452#ifdef cl_khr_fp16
10453half4 __ovld __cnfn cross(half4 p0, half4 p1);
10454half3 __ovld __cnfn cross(half3 p0, half3 p1);
10455#endif //cl_khr_fp16
10456
10460float __ovld __cnfn dot(float p0, float p1);
10461float __ovld __cnfn dot(float2 p0, float2 p1);
10462float __ovld __cnfn dot(float3 p0, float3 p1);
10463float __ovld __cnfn dot(float4 p0, float4 p1);
10464#ifdef cl_khr_fp64
10465double __ovld __cnfn dot(double p0, double p1);
10466double __ovld __cnfn dot(double2 p0, double2 p1);
10467double __ovld __cnfn dot(double3 p0, double3 p1);
10468double __ovld __cnfn dot(double4 p0, double4 p1);
10469#endif //cl_khr_fp64
10470#ifdef cl_khr_fp16
10471half __ovld __cnfn dot(half p0, half p1);
10472half __ovld __cnfn dot(half2 p0, half2 p1);
10473half __ovld __cnfn dot(half3 p0, half3 p1);
10474half __ovld __cnfn dot(half4 p0, half4 p1);
10475#endif //cl_khr_fp16
10476
10481float __ovld __cnfn distance(float p0, float p1);
10482float __ovld __cnfn distance(float2 p0, float2 p1);
10483float __ovld __cnfn distance(float3 p0, float3 p1);
10484float __ovld __cnfn distance(float4 p0, float4 p1);
10485#ifdef cl_khr_fp64
10486double __ovld __cnfn distance(double p0, double p1);
10487double __ovld __cnfn distance(double2 p0, double2 p1);
10488double __ovld __cnfn distance(double3 p0, double3 p1);
10489double __ovld __cnfn distance(double4 p0, double4 p1);
10490#endif //cl_khr_fp64
10491#ifdef cl_khr_fp16
10492half __ovld __cnfn distance(half p0, half p1);
10493half __ovld __cnfn distance(half2 p0, half2 p1);
10494half __ovld __cnfn distance(half3 p0, half3 p1);
10495half __ovld __cnfn distance(half4 p0, half4 p1);
10496#endif //cl_khr_fp16
10497
10502float __ovld __cnfn length(float p);
10503float __ovld __cnfn length(float2 p);
10504float __ovld __cnfn length(float3 p);
10505float __ovld __cnfn length(float4 p);
10506#ifdef cl_khr_fp64
10507double __ovld __cnfn length(double p);
10508double __ovld __cnfn length(double2 p);
10509double __ovld __cnfn length(double3 p);
10510double __ovld __cnfn length(double4 p);
10511#endif //cl_khr_fp64
10512#ifdef cl_khr_fp16
10513half __ovld __cnfn length(half p);
10514half __ovld __cnfn length(half2 p);
10515half __ovld __cnfn length(half3 p);
10516half __ovld __cnfn length(half4 p);
10517#endif //cl_khr_fp16
10518
10523float __ovld __cnfn normalize(float p);
10524float2 __ovld __cnfn normalize(float2 p);
10525float3 __ovld __cnfn normalize(float3 p);
10526float4 __ovld __cnfn normalize(float4 p);
10527#ifdef cl_khr_fp64
10528double __ovld __cnfn normalize(double p);
10529double2 __ovld __cnfn normalize(double2 p);
10530double3 __ovld __cnfn normalize(double3 p);
10531double4 __ovld __cnfn normalize(double4 p);
10532#endif //cl_khr_fp64
10533#ifdef cl_khr_fp16
10534half __ovld __cnfn normalize(half p);
10535half2 __ovld __cnfn normalize(half2 p);
10536half3 __ovld __cnfn normalize(half3 p);
10537half4 __ovld __cnfn normalize(half4 p);
10538#endif //cl_khr_fp16
10539
10543float __ovld __cnfn fast_distance(float p0, float p1);
10544float __ovld __cnfn fast_distance(float2 p0, float2 p1);
10545float __ovld __cnfn fast_distance(float3 p0, float3 p1);
10546float __ovld __cnfn fast_distance(float4 p0, float4 p1);
10547#ifdef cl_khr_fp16
10548half __ovld __cnfn fast_distance(half p0, half p1);
10549half __ovld __cnfn fast_distance(half2 p0, half2 p1);
10550half __ovld __cnfn fast_distance(half3 p0, half3 p1);
10551half __ovld __cnfn fast_distance(half4 p0, half4 p1);
10552#endif //cl_khr_fp16
10553
10559float __ovld __cnfn fast_length(float2 p);
10560float __ovld __cnfn fast_length(float3 p);
10561float __ovld __cnfn fast_length(float4 p);
10562#ifdef cl_khr_fp16
10563half __ovld __cnfn fast_length(half p);
10564half __ovld __cnfn fast_length(half2 p);
10565half __ovld __cnfn fast_length(half3 p);
10566half __ovld __cnfn fast_length(half4 p);
10567#endif //cl_khr_fp16
10568
10594#ifdef cl_khr_fp16
10595half __ovld __cnfn fast_normalize(half p);
10596half2 __ovld __cnfn fast_normalize(half2 p);
10597half3 __ovld __cnfn fast_normalize(half3 p);
10598half4 __ovld __cnfn fast_normalize(half4 p);
10599#endif //cl_khr_fp16
10600
10601// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
10602
10607int __ovld __cnfn isequal(float x, float y);
10608int2 __ovld __cnfn isequal(float2 x, float2 y);
10609int3 __ovld __cnfn isequal(float3 x, float3 y);
10610int4 __ovld __cnfn isequal(float4 x, float4 y);
10611int8 __ovld __cnfn isequal(float8 x, float8 y);
10612int16 __ovld __cnfn isequal(float16 x, float16 y);
10613#ifdef cl_khr_fp64
10614int __ovld __cnfn isequal(double x, double y);
10615long2 __ovld __cnfn isequal(double2 x, double2 y);
10616long3 __ovld __cnfn isequal(double3 x, double3 y);
10617long4 __ovld __cnfn isequal(double4 x, double4 y);
10618long8 __ovld __cnfn isequal(double8 x, double8 y);
10619long16 __ovld __cnfn isequal(double16 x, double16 y);
10620#endif //cl_khr_fp64
10621#ifdef cl_khr_fp16
10622int __ovld __cnfn isequal(half x, half y);
10623short2 __ovld __cnfn isequal(half2 x, half2 y);
10624short3 __ovld __cnfn isequal(half3 x, half3 y);
10625short4 __ovld __cnfn isequal(half4 x, half4 y);
10626short8 __ovld __cnfn isequal(half8 x, half8 y);
10627short16 __ovld __cnfn isequal(half16 x, half16 y);
10628#endif //cl_khr_fp16
10629
10633int __ovld __cnfn isnotequal(float x, float y);
10634int2 __ovld __cnfn isnotequal(float2 x, float2 y);
10635int3 __ovld __cnfn isnotequal(float3 x, float3 y);
10636int4 __ovld __cnfn isnotequal(float4 x, float4 y);
10637int8 __ovld __cnfn isnotequal(float8 x, float8 y);
10638int16 __ovld __cnfn isnotequal(float16 x, float16 y);
10639#ifdef cl_khr_fp64
10640int __ovld __cnfn isnotequal(double x, double y);
10641long2 __ovld __cnfn isnotequal(double2 x, double2 y);
10642long3 __ovld __cnfn isnotequal(double3 x, double3 y);
10643long4 __ovld __cnfn isnotequal(double4 x, double4 y);
10644long8 __ovld __cnfn isnotequal(double8 x, double8 y);
10645long16 __ovld __cnfn isnotequal(double16 x, double16 y);
10646#endif //cl_khr_fp64
10647#ifdef cl_khr_fp16
10648int __ovld __cnfn isnotequal(half x, half y);
10649short2 __ovld __cnfn isnotequal(half2 x, half2 y);
10650short3 __ovld __cnfn isnotequal(half3 x, half3 y);
10651short4 __ovld __cnfn isnotequal(half4 x, half4 y);
10652short8 __ovld __cnfn isnotequal(half8 x, half8 y);
10653short16 __ovld __cnfn isnotequal(half16 x, half16 y);
10654#endif //cl_khr_fp16
10655
10659int __ovld __cnfn isgreater(float x, float y);
10660int2 __ovld __cnfn isgreater(float2 x, float2 y);
10661int3 __ovld __cnfn isgreater(float3 x, float3 y);
10662int4 __ovld __cnfn isgreater(float4 x, float4 y);
10663int8 __ovld __cnfn isgreater(float8 x, float8 y);
10664int16 __ovld __cnfn isgreater(float16 x, float16 y);
10665#ifdef cl_khr_fp64
10666int __ovld __cnfn isgreater(double x, double y);
10667long2 __ovld __cnfn isgreater(double2 x, double2 y);
10668long3 __ovld __cnfn isgreater(double3 x, double3 y);
10669long4 __ovld __cnfn isgreater(double4 x, double4 y);
10670long8 __ovld __cnfn isgreater(double8 x, double8 y);
10671long16 __ovld __cnfn isgreater(double16 x, double16 y);
10672#endif //cl_khr_fp64
10673#ifdef cl_khr_fp16
10674int __ovld __cnfn isgreater(half x, half y);
10675short2 __ovld __cnfn isgreater(half2 x, half2 y);
10676short3 __ovld __cnfn isgreater(half3 x, half3 y);
10677short4 __ovld __cnfn isgreater(half4 x, half4 y);
10678short8 __ovld __cnfn isgreater(half8 x, half8 y);
10679short16 __ovld __cnfn isgreater(half16 x, half16 y);
10680#endif //cl_khr_fp16
10681
10685int __ovld __cnfn isgreaterequal(float x, float y);
10686int2 __ovld __cnfn isgreaterequal(float2 x, float2 y);
10687int3 __ovld __cnfn isgreaterequal(float3 x, float3 y);
10688int4 __ovld __cnfn isgreaterequal(float4 x, float4 y);
10689int8 __ovld __cnfn isgreaterequal(float8 x, float8 y);
10690int16 __ovld __cnfn isgreaterequal(float16 x, float16 y);
10691#ifdef cl_khr_fp64
10692int __ovld __cnfn isgreaterequal(double x, double y);
10693long2 __ovld __cnfn isgreaterequal(double2 x, double2 y);
10694long3 __ovld __cnfn isgreaterequal(double3 x, double3 y);
10695long4 __ovld __cnfn isgreaterequal(double4 x, double4 y);
10696long8 __ovld __cnfn isgreaterequal(double8 x, double8 y);
10697long16 __ovld __cnfn isgreaterequal(double16 x, double16 y);
10698#endif //cl_khr_fp64
10699#ifdef cl_khr_fp16
10700int __ovld __cnfn isgreaterequal(half x, half y);
10701short2 __ovld __cnfn isgreaterequal(half2 x, half2 y);
10702short3 __ovld __cnfn isgreaterequal(half3 x, half3 y);
10703short4 __ovld __cnfn isgreaterequal(half4 x, half4 y);
10704short8 __ovld __cnfn isgreaterequal(half8 x, half8 y);
10705short16 __ovld __cnfn isgreaterequal(half16 x, half16 y);
10706#endif //cl_khr_fp16
10707
10711int __ovld __cnfn isless(float x, float y);
10712int2 __ovld __cnfn isless(float2 x, float2 y);
10713int3 __ovld __cnfn isless(float3 x, float3 y);
10714int4 __ovld __cnfn isless(float4 x, float4 y);
10715int8 __ovld __cnfn isless(float8 x, float8 y);
10716int16 __ovld __cnfn isless(float16 x, float16 y);
10717#ifdef cl_khr_fp64
10718int __ovld __cnfn isless(double x, double y);
10719long2 __ovld __cnfn isless(double2 x, double2 y);
10720long3 __ovld __cnfn isless(double3 x, double3 y);
10721long4 __ovld __cnfn isless(double4 x, double4 y);
10722long8 __ovld __cnfn isless(double8 x, double8 y);
10723long16 __ovld __cnfn isless(double16 x, double16 y);
10724#endif //cl_khr_fp64
10725#ifdef cl_khr_fp16
10726int __ovld __cnfn isless(half x, half y);
10727short2 __ovld __cnfn isless(half2 x, half2 y);
10728short3 __ovld __cnfn isless(half3 x, half3 y);
10729short4 __ovld __cnfn isless(half4 x, half4 y);
10730short8 __ovld __cnfn isless(half8 x, half8 y);
10731short16 __ovld __cnfn isless(half16 x, half16 y);
10732#endif //cl_khr_fp16
10733
10737int __ovld __cnfn islessequal(float x, float y);
10738int2 __ovld __cnfn islessequal(float2 x, float2 y);
10739int3 __ovld __cnfn islessequal(float3 x, float3 y);
10740int4 __ovld __cnfn islessequal(float4 x, float4 y);
10741int8 __ovld __cnfn islessequal(float8 x, float8 y);
10742int16 __ovld __cnfn islessequal(float16 x, float16 y);
10743#ifdef cl_khr_fp64
10744int __ovld __cnfn islessequal(double x, double y);
10745long2 __ovld __cnfn islessequal(double2 x, double2 y);
10746long3 __ovld __cnfn islessequal(double3 x, double3 y);
10747long4 __ovld __cnfn islessequal(double4 x, double4 y);
10748long8 __ovld __cnfn islessequal(double8 x, double8 y);
10749long16 __ovld __cnfn islessequal(double16 x, double16 y);
10750#endif //cl_khr_fp64
10751#ifdef cl_khr_fp16
10752int __ovld __cnfn islessequal(half x, half y);
10753short2 __ovld __cnfn islessequal(half2 x, half2 y);
10754short3 __ovld __cnfn islessequal(half3 x, half3 y);
10755short4 __ovld __cnfn islessequal(half4 x, half4 y);
10756short8 __ovld __cnfn islessequal(half8 x, half8 y);
10757short16 __ovld __cnfn islessequal(half16 x, half16 y);
10758#endif //cl_khr_fp16
10759
10764int __ovld __cnfn islessgreater(float x, float y);
10765int2 __ovld __cnfn islessgreater(float2 x, float2 y);
10766int3 __ovld __cnfn islessgreater(float3 x, float3 y);
10767int4 __ovld __cnfn islessgreater(float4 x, float4 y);
10768int8 __ovld __cnfn islessgreater(float8 x, float8 y);
10769int16 __ovld __cnfn islessgreater(float16 x, float16 y);
10770#ifdef cl_khr_fp64
10771int __ovld __cnfn islessgreater(double x, double y);
10772long2 __ovld __cnfn islessgreater(double2 x, double2 y);
10773long3 __ovld __cnfn islessgreater(double3 x, double3 y);
10774long4 __ovld __cnfn islessgreater(double4 x, double4 y);
10775long8 __ovld __cnfn islessgreater(double8 x, double8 y);
10776long16 __ovld __cnfn islessgreater(double16 x, double16 y);
10777#endif //cl_khr_fp64
10778#ifdef cl_khr_fp16
10779int __ovld __cnfn islessgreater(half x, half y);
10780short2 __ovld __cnfn islessgreater(half2 x, half2 y);
10781short3 __ovld __cnfn islessgreater(half3 x, half3 y);
10782short4 __ovld __cnfn islessgreater(half4 x, half4 y);
10783short8 __ovld __cnfn islessgreater(half8 x, half8 y);
10784short16 __ovld __cnfn islessgreater(half16 x, half16 y);
10785#endif //cl_khr_fp16
10786
10790int __ovld __cnfn isfinite(float);
10796#ifdef cl_khr_fp64
10797int __ovld __cnfn isfinite(double);
10798long2 __ovld __cnfn isfinite(double2);
10799long3 __ovld __cnfn isfinite(double3);
10800long4 __ovld __cnfn isfinite(double4);
10801long8 __ovld __cnfn isfinite(double8);
10802long16 __ovld __cnfn isfinite(double16);
10803#endif //cl_khr_fp64
10804#ifdef cl_khr_fp16
10805int __ovld __cnfn isfinite(half);
10806short2 __ovld __cnfn isfinite(half2);
10807short3 __ovld __cnfn isfinite(half3);
10808short4 __ovld __cnfn isfinite(half4);
10809short8 __ovld __cnfn isfinite(half8);
10810short16 __ovld __cnfn isfinite(half16);
10811#endif //cl_khr_fp16
10812
10816int __ovld __cnfn isinf(float);
10817int2 __ovld __cnfn isinf(float2);
10818int3 __ovld __cnfn isinf(float3);
10819int4 __ovld __cnfn isinf(float4);
10822#ifdef cl_khr_fp64
10823int __ovld __cnfn isinf(double);
10824long2 __ovld __cnfn isinf(double2);
10825long3 __ovld __cnfn isinf(double3);
10826long4 __ovld __cnfn isinf(double4);
10827long8 __ovld __cnfn isinf(double8);
10828long16 __ovld __cnfn isinf(double16);
10829#endif //cl_khr_fp64
10830#ifdef cl_khr_fp16
10831int __ovld __cnfn isinf(half);
10832short2 __ovld __cnfn isinf(half2);
10833short3 __ovld __cnfn isinf(half3);
10834short4 __ovld __cnfn isinf(half4);
10835short8 __ovld __cnfn isinf(half8);
10836short16 __ovld __cnfn isinf(half16);
10837#endif //cl_khr_fp16
10838
10842int __ovld __cnfn isnan(float);
10843int2 __ovld __cnfn isnan(float2);
10844int3 __ovld __cnfn isnan(float3);
10845int4 __ovld __cnfn isnan(float4);
10848#ifdef cl_khr_fp64
10849int __ovld __cnfn isnan(double);
10850long2 __ovld __cnfn isnan(double2);
10851long3 __ovld __cnfn isnan(double3);
10852long4 __ovld __cnfn isnan(double4);
10853long8 __ovld __cnfn isnan(double8);
10854long16 __ovld __cnfn isnan(double16);
10855#endif //cl_khr_fp64
10856#ifdef cl_khr_fp16
10857int __ovld __cnfn isnan(half);
10858short2 __ovld __cnfn isnan(half2);
10859short3 __ovld __cnfn isnan(half3);
10860short4 __ovld __cnfn isnan(half4);
10861short8 __ovld __cnfn isnan(half8);
10862short16 __ovld __cnfn isnan(half16);
10863#endif //cl_khr_fp16
10864
10868int __ovld __cnfn isnormal(float);
10874#ifdef cl_khr_fp64
10875int __ovld __cnfn isnormal(double);
10876long2 __ovld __cnfn isnormal(double2);
10877long3 __ovld __cnfn isnormal(double3);
10878long4 __ovld __cnfn isnormal(double4);
10879long8 __ovld __cnfn isnormal(double8);
10880long16 __ovld __cnfn isnormal(double16);
10881#endif //cl_khr_fp64
10882#ifdef cl_khr_fp16
10883int __ovld __cnfn isnormal(half);
10884short2 __ovld __cnfn isnormal(half2);
10885short3 __ovld __cnfn isnormal(half3);
10886short4 __ovld __cnfn isnormal(half4);
10887short8 __ovld __cnfn isnormal(half8);
10888short16 __ovld __cnfn isnormal(half16);
10889#endif //cl_khr_fp16
10890
10896int __ovld __cnfn isordered(float x, float y);
10897int2 __ovld __cnfn isordered(float2 x, float2 y);
10898int3 __ovld __cnfn isordered(float3 x, float3 y);
10899int4 __ovld __cnfn isordered(float4 x, float4 y);
10900int8 __ovld __cnfn isordered(float8 x, float8 y);
10901int16 __ovld __cnfn isordered(float16 x, float16 y);
10902#ifdef cl_khr_fp64
10903int __ovld __cnfn isordered(double x, double y);
10904long2 __ovld __cnfn isordered(double2 x, double2 y);
10905long3 __ovld __cnfn isordered(double3 x, double3 y);
10906long4 __ovld __cnfn isordered(double4 x, double4 y);
10907long8 __ovld __cnfn isordered(double8 x, double8 y);
10908long16 __ovld __cnfn isordered(double16 x, double16 y);
10909#endif //cl_khr_fp64
10910#ifdef cl_khr_fp16
10911int __ovld __cnfn isordered(half x, half y);
10912short2 __ovld __cnfn isordered(half2 x, half2 y);
10913short3 __ovld __cnfn isordered(half3 x, half3 y);
10914short4 __ovld __cnfn isordered(half4 x, half4 y);
10915short8 __ovld __cnfn isordered(half8 x, half8 y);
10916short16 __ovld __cnfn isordered(half16 x, half16 y);
10917#endif //cl_khr_fp16
10918
10924int __ovld __cnfn isunordered(float x, float y);
10925int2 __ovld __cnfn isunordered(float2 x, float2 y);
10926int3 __ovld __cnfn isunordered(float3 x, float3 y);
10927int4 __ovld __cnfn isunordered(float4 x, float4 y);
10928int8 __ovld __cnfn isunordered(float8 x, float8 y);
10929int16 __ovld __cnfn isunordered(float16 x, float16 y);
10930#ifdef cl_khr_fp64
10931int __ovld __cnfn isunordered(double x, double y);
10932long2 __ovld __cnfn isunordered(double2 x, double2 y);
10933long3 __ovld __cnfn isunordered(double3 x, double3 y);
10934long4 __ovld __cnfn isunordered(double4 x, double4 y);
10935long8 __ovld __cnfn isunordered(double8 x, double8 y);
10936long16 __ovld __cnfn isunordered(double16 x, double16 y);
10937#endif //cl_khr_fp64
10938#ifdef cl_khr_fp16
10939int __ovld __cnfn isunordered(half x, half y);
10940short2 __ovld __cnfn isunordered(half2 x, half2 y);
10941short3 __ovld __cnfn isunordered(half3 x, half3 y);
10942short4 __ovld __cnfn isunordered(half4 x, half4 y);
10943short8 __ovld __cnfn isunordered(half8 x, half8 y);
10944short16 __ovld __cnfn isunordered(half16 x, half16 y);
10945#endif //cl_khr_fp16
10946
10954int __ovld __cnfn signbit(float);
10955int2 __ovld __cnfn signbit(float2);
10956int3 __ovld __cnfn signbit(float3);
10957int4 __ovld __cnfn signbit(float4);
10960#ifdef cl_khr_fp64
10961int __ovld __cnfn signbit(double);
10962long2 __ovld __cnfn signbit(double2);
10963long3 __ovld __cnfn signbit(double3);
10964long4 __ovld __cnfn signbit(double4);
10965long8 __ovld __cnfn signbit(double8);
10966long16 __ovld __cnfn signbit(double16);
10967#endif //cl_khr_fp64
10968#ifdef cl_khr_fp16
10969int __ovld __cnfn signbit(half);
10970short2 __ovld __cnfn signbit(half2);
10971short3 __ovld __cnfn signbit(half3);
10972short4 __ovld __cnfn signbit(half4);
10973short8 __ovld __cnfn signbit(half8);
10974short16 __ovld __cnfn signbit(half16);
10975#endif //cl_khr_fp16
10976
10981int __ovld __cnfn any(char x);
10982int __ovld __cnfn any(char2 x);
10983int __ovld __cnfn any(char3 x);
10984int __ovld __cnfn any(char4 x);
10985int __ovld __cnfn any(char8 x);
10986int __ovld __cnfn any(char16 x);
10987int __ovld __cnfn any(short x);
10988int __ovld __cnfn any(short2 x);
10989int __ovld __cnfn any(short3 x);
10990int __ovld __cnfn any(short4 x);
10991int __ovld __cnfn any(short8 x);
10992int __ovld __cnfn any(short16 x);
10993int __ovld __cnfn any(int x);
10994int __ovld __cnfn any(int2 x);
10995int __ovld __cnfn any(int3 x);
10996int __ovld __cnfn any(int4 x);
10999int __ovld __cnfn any(long x);
11000int __ovld __cnfn any(long2 x);
11001int __ovld __cnfn any(long3 x);
11002int __ovld __cnfn any(long4 x);
11003int __ovld __cnfn any(long8 x);
11004int __ovld __cnfn any(long16 x);
11005
11010int __ovld __cnfn all(char x);
11011int __ovld __cnfn all(char2 x);
11012int __ovld __cnfn all(char3 x);
11013int __ovld __cnfn all(char4 x);
11014int __ovld __cnfn all(char8 x);
11015int __ovld __cnfn all(char16 x);
11016int __ovld __cnfn all(short x);
11017int __ovld __cnfn all(short2 x);
11018int __ovld __cnfn all(short3 x);
11019int __ovld __cnfn all(short4 x);
11020int __ovld __cnfn all(short8 x);
11021int __ovld __cnfn all(short16 x);
11022int __ovld __cnfn all(int x);
11023int __ovld __cnfn all(int2 x);
11024int __ovld __cnfn all(int3 x);
11025int __ovld __cnfn all(int4 x);
11028int __ovld __cnfn all(long x);
11029int __ovld __cnfn all(long2 x);
11030int __ovld __cnfn all(long3 x);
11031int __ovld __cnfn all(long4 x);
11032int __ovld __cnfn all(long8 x);
11033int __ovld __cnfn all(long16 x);
11034
11040char __ovld __cnfn bitselect(char a, char b, char c);
11042char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c);
11043uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c);
11044char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c);
11045uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c);
11046char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c);
11047uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c);
11048char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c);
11049uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c);
11050char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c);
11051uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c);
11052short __ovld __cnfn bitselect(short a, short b, short c);
11054short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c);
11055ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c);
11056short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c);
11057ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c);
11058short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c);
11059ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c);
11060short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c);
11061ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c);
11062short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c);
11063ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c);
11064int __ovld __cnfn bitselect(int a, int b, int c);
11066int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c);
11067uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c);
11068int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c);
11069uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c);
11070int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c);
11071uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c);
11076long __ovld __cnfn bitselect(long a, long b, long c);
11078long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c);
11079ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c);
11080long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c);
11081ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c);
11082long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c);
11083ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c);
11084long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c);
11085ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c);
11086long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c);
11087ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c);
11088float __ovld __cnfn bitselect(float a, float b, float c);
11089float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c);
11090float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c);
11091float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c);
11092float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c);
11093float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c);
11094#ifdef cl_khr_fp64
11095double __ovld __cnfn bitselect(double a, double b, double c);
11096double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c);
11097double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c);
11098double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c);
11099double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c);
11100double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c);
11101#endif //cl_khr_fp64
11102#ifdef cl_khr_fp16
11103half __ovld __cnfn bitselect(half a, half b, half c);
11104half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c);
11105half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c);
11106half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c);
11107half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c);
11108half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c);
11109#endif //cl_khr_fp16
11110
11118char __ovld __cnfn select(char a, char b, char c);
11120char2 __ovld __cnfn select(char2 a, char2 b, char2 c);
11121uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c);
11122char3 __ovld __cnfn select(char3 a, char3 b, char3 c);
11123uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c);
11124char4 __ovld __cnfn select(char4 a, char4 b, char4 c);
11125uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c);
11126char8 __ovld __cnfn select(char8 a, char8 b, char8 c);
11127uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c);
11128char16 __ovld __cnfn select(char16 a, char16 b, char16 c);
11129uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c);
11130
11131short __ovld __cnfn select(short a, short b, short c);
11133short2 __ovld __cnfn select(short2 a, short2 b, short2 c);
11134ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c);
11135short3 __ovld __cnfn select(short3 a, short3 b, short3 c);
11136ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c);
11137short4 __ovld __cnfn select(short4 a, short4 b, short4 c);
11138ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c);
11139short8 __ovld __cnfn select(short8 a, short8 b, short8 c);
11140ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c);
11141short16 __ovld __cnfn select(short16 a, short16 b, short16 c);
11142ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c);
11143
11144int __ovld __cnfn select(int a, int b, int c);
11146int2 __ovld __cnfn select(int2 a, int2 b, int2 c);
11147uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c);
11148int3 __ovld __cnfn select(int3 a, int3 b, int3 c);
11149uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c);
11150int4 __ovld __cnfn select(int4 a, int4 b, int4 c);
11151uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c);
11156float __ovld __cnfn select(float a, float b, int c);
11157float2 __ovld __cnfn select(float2 a, float2 b, int2 c);
11158float3 __ovld __cnfn select(float3 a, float3 b, int3 c);
11159float4 __ovld __cnfn select(float4 a, float4 b, int4 c);
11160float8 __ovld __cnfn select(float8 a, float8 b, int8 c);
11161float16 __ovld __cnfn select(float16 a, float16 b, int16 c);
11162
11163long __ovld __cnfn select(long a, long b, long c);
11165long2 __ovld __cnfn select(long2 a, long2 b, long2 c);
11166ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c);
11167long3 __ovld __cnfn select(long3 a, long3 b, long3 c);
11168ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c);
11169long4 __ovld __cnfn select(long4 a, long4 b, long4 c);
11170ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c);
11171long8 __ovld __cnfn select(long8 a, long8 b, long8 c);
11172ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c);
11173long16 __ovld __cnfn select(long16 a, long16 b, long16 c);
11174ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c);
11175
11176char __ovld __cnfn select(char a, char b, uchar c);
11178char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c);
11179uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c);
11180char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c);
11181uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c);
11182char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c);
11183uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c);
11184char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c);
11185uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c);
11186char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c);
11187uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c);
11188
11189short __ovld __cnfn select(short a, short b, ushort c);
11191short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c);
11192ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c);
11193short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c);
11194ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c);
11195short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c);
11196ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c);
11197short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c);
11198ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c);
11199short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c);
11200ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c);
11201
11202int __ovld __cnfn select(int a, int b, uint c);
11204int2 __ovld __cnfn select(int2 a, int2 b, uint2 c);
11205uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c);
11206int3 __ovld __cnfn select(int3 a, int3 b, uint3 c);
11207uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c);
11208int4 __ovld __cnfn select(int4 a, int4 b, uint4 c);
11209uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c);
11214float __ovld __cnfn select(float a, float b, uint c);
11215float2 __ovld __cnfn select(float2 a, float2 b, uint2 c);
11216float3 __ovld __cnfn select(float3 a, float3 b, uint3 c);
11217float4 __ovld __cnfn select(float4 a, float4 b, uint4 c);
11218float8 __ovld __cnfn select(float8 a, float8 b, uint8 c);
11219float16 __ovld __cnfn select(float16 a, float16 b, uint16 c);
11220
11221long __ovld __cnfn select(long a, long b, ulong c);
11223long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c);
11224ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c);
11225long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c);
11226ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c);
11227long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c);
11228ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c);
11229long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c);
11230ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c);
11231long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c);
11232ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c);
11233
11234#ifdef cl_khr_fp64
11235double __ovld __cnfn select(double a, double b, long c);
11236double2 __ovld __cnfn select(double2 a, double2 b, long2 c);
11237double3 __ovld __cnfn select(double3 a, double3 b, long3 c);
11238double4 __ovld __cnfn select(double4 a, double4 b, long4 c);
11239double8 __ovld __cnfn select(double8 a, double8 b, long8 c);
11240double16 __ovld __cnfn select(double16 a, double16 b, long16 c);
11241double __ovld __cnfn select(double a, double b, ulong c);
11242double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c);
11243double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c);
11244double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c);
11245double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c);
11246double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c);
11247#endif //cl_khr_fp64
11248#ifdef cl_khr_fp16
11249half __ovld __cnfn select(half a, half b, short c);
11250half2 __ovld __cnfn select(half2 a, half2 b, short2 c);
11251half3 __ovld __cnfn select(half3 a, half3 b, short3 c);
11252half4 __ovld __cnfn select(half4 a, half4 b, short4 c);
11253half8 __ovld __cnfn select(half8 a, half8 b, short8 c);
11254half16 __ovld __cnfn select(half16 a, half16 b, short16 c);
11255half __ovld __cnfn select(half a, half b, ushort c);
11256half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c);
11257half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c);
11258half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c);
11259half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c);
11260half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c);
11261#endif //cl_khr_fp16
11262
11263// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
11264// 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
11281char2 __ovld vload2(size_t offset, const __constant char *p);
11282uchar2 __ovld vload2(size_t offset, const __constant uchar *p);
11283short2 __ovld vload2(size_t offset, const __constant short *p);
11284ushort2 __ovld vload2(size_t offset, const __constant ushort *p);
11285int2 __ovld vload2(size_t offset, const __constant int *p);
11286uint2 __ovld vload2(size_t offset, const __constant uint *p);
11287long2 __ovld vload2(size_t offset, const __constant long *p);
11288ulong2 __ovld vload2(size_t offset, const __constant ulong *p);
11289float2 __ovld vload2(size_t offset, const __constant float *p);
11290char3 __ovld vload3(size_t offset, const __constant char *p);
11291uchar3 __ovld vload3(size_t offset, const __constant uchar *p);
11292short3 __ovld vload3(size_t offset, const __constant short *p);
11293ushort3 __ovld vload3(size_t offset, const __constant ushort *p);
11294int3 __ovld vload3(size_t offset, const __constant int *p);
11295uint3 __ovld vload3(size_t offset, const __constant uint *p);
11296long3 __ovld vload3(size_t offset, const __constant long *p);
11297ulong3 __ovld vload3(size_t offset, const __constant ulong *p);
11298float3 __ovld vload3(size_t offset, const __constant float *p);
11299char4 __ovld vload4(size_t offset, const __constant char *p);
11300uchar4 __ovld vload4(size_t offset, const __constant uchar *p);
11301short4 __ovld vload4(size_t offset, const __constant short *p);
11302ushort4 __ovld vload4(size_t offset, const __constant ushort *p);
11303int4 __ovld vload4(size_t offset, const __constant int *p);
11304uint4 __ovld vload4(size_t offset, const __constant uint *p);
11305long4 __ovld vload4(size_t offset, const __constant long *p);
11306ulong4 __ovld vload4(size_t offset, const __constant ulong *p);
11307float4 __ovld vload4(size_t offset, const __constant float *p);
11308char8 __ovld vload8(size_t offset, const __constant char *p);
11309uchar8 __ovld vload8(size_t offset, const __constant uchar *p);
11310short8 __ovld vload8(size_t offset, const __constant short *p);
11311ushort8 __ovld vload8(size_t offset, const __constant ushort *p);
11312int8 __ovld vload8(size_t offset, const __constant int *p);
11313uint8 __ovld vload8(size_t offset, const __constant uint *p);
11314long8 __ovld vload8(size_t offset, const __constant long *p);
11315ulong8 __ovld vload8(size_t offset, const __constant ulong *p);
11316float8 __ovld vload8(size_t offset, const __constant float *p);
11317char16 __ovld vload16(size_t offset, const __constant char *p);
11318uchar16 __ovld vload16(size_t offset, const __constant uchar *p);
11319short16 __ovld vload16(size_t offset, const __constant short *p);
11320ushort16 __ovld vload16(size_t offset, const __constant ushort *p);
11321int16 __ovld vload16(size_t offset, const __constant int *p);
11322uint16 __ovld vload16(size_t offset, const __constant uint *p);
11323long16 __ovld vload16(size_t offset, const __constant long *p);
11324ulong16 __ovld vload16(size_t offset, const __constant ulong *p);
11325float16 __ovld vload16(size_t offset, const __constant float *p);
11326#ifdef cl_khr_fp64
11327double2 __ovld vload2(size_t offset, const __constant double *p);
11328double3 __ovld vload3(size_t offset, const __constant double *p);
11329double4 __ovld vload4(size_t offset, const __constant double *p);
11330double8 __ovld vload8(size_t offset, const __constant double *p);
11331double16 __ovld vload16(size_t offset, const __constant double *p);
11332#endif //cl_khr_fp64
11333
11334#ifdef cl_khr_fp16
11335half __ovld vload(size_t offset, const __constant half *p);
11336half2 __ovld vload2(size_t offset, const __constant half *p);
11337half3 __ovld vload3(size_t offset, const __constant half *p);
11338half4 __ovld vload4(size_t offset, const __constant half *p);
11339half8 __ovld vload8(size_t offset, const __constant half *p);
11340half16 __ovld vload16(size_t offset, const __constant half *p);
11341#endif //cl_khr_fp16
11342
11343#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11344char2 __ovld vload2(size_t offset, const char *p);
11345uchar2 __ovld vload2(size_t offset, const uchar *p);
11346short2 __ovld vload2(size_t offset, const short *p);
11347ushort2 __ovld vload2(size_t offset, const ushort *p);
11348int2 __ovld vload2(size_t offset, const int *p);
11349uint2 __ovld vload2(size_t offset, const uint *p);
11350long2 __ovld vload2(size_t offset, const long *p);
11351ulong2 __ovld vload2(size_t offset, const ulong *p);
11352float2 __ovld vload2(size_t offset, const float *p);
11353char3 __ovld vload3(size_t offset, const char *p);
11354uchar3 __ovld vload3(size_t offset, const uchar *p);
11355short3 __ovld vload3(size_t offset, const short *p);
11356ushort3 __ovld vload3(size_t offset, const ushort *p);
11357int3 __ovld vload3(size_t offset, const int *p);
11358uint3 __ovld vload3(size_t offset, const uint *p);
11359long3 __ovld vload3(size_t offset, const long *p);
11360ulong3 __ovld vload3(size_t offset, const ulong *p);
11361float3 __ovld vload3(size_t offset, const float *p);
11362char4 __ovld vload4(size_t offset, const char *p);
11363uchar4 __ovld vload4(size_t offset, const uchar *p);
11364short4 __ovld vload4(size_t offset, const short *p);
11365ushort4 __ovld vload4(size_t offset, const ushort *p);
11366int4 __ovld vload4(size_t offset, const int *p);
11367uint4 __ovld vload4(size_t offset, const uint *p);
11368long4 __ovld vload4(size_t offset, const long *p);
11369ulong4 __ovld vload4(size_t offset, const ulong *p);
11370float4 __ovld vload4(size_t offset, const float *p);
11371char8 __ovld vload8(size_t offset, const char *p);
11372uchar8 __ovld vload8(size_t offset, const uchar *p);
11373short8 __ovld vload8(size_t offset, const short *p);
11374ushort8 __ovld vload8(size_t offset, const ushort *p);
11375int8 __ovld vload8(size_t offset, const int *p);
11376uint8 __ovld vload8(size_t offset, const uint *p);
11377long8 __ovld vload8(size_t offset, const long *p);
11378ulong8 __ovld vload8(size_t offset, const ulong *p);
11379float8 __ovld vload8(size_t offset, const float *p);
11380char16 __ovld vload16(size_t offset, const char *p);
11381uchar16 __ovld vload16(size_t offset, const uchar *p);
11382short16 __ovld vload16(size_t offset, const short *p);
11383ushort16 __ovld vload16(size_t offset, const ushort *p);
11384int16 __ovld vload16(size_t offset, const int *p);
11385uint16 __ovld vload16(size_t offset, const uint *p);
11386long16 __ovld vload16(size_t offset, const long *p);
11387ulong16 __ovld vload16(size_t offset, const ulong *p);
11388float16 __ovld vload16(size_t offset, const float *p);
11389
11390#ifdef cl_khr_fp64
11391double2 __ovld vload2(size_t offset, const double *p);
11392double3 __ovld vload3(size_t offset, const double *p);
11393double4 __ovld vload4(size_t offset, const double *p);
11394double8 __ovld vload8(size_t offset, const double *p);
11395double16 __ovld vload16(size_t offset, const double *p);
11396#endif //cl_khr_fp64
11397
11398#ifdef cl_khr_fp16
11399half __ovld vload(size_t offset, const half *p);
11400half2 __ovld vload2(size_t offset, const half *p);
11401half3 __ovld vload3(size_t offset, const half *p);
11402half4 __ovld vload4(size_t offset, const half *p);
11403half8 __ovld vload8(size_t offset, const half *p);
11404half16 __ovld vload16(size_t offset, const half *p);
11405#endif //cl_khr_fp16
11406#else
11407char2 __ovld vload2(size_t offset, const __global char *p);
11408uchar2 __ovld vload2(size_t offset, const __global uchar *p);
11409short2 __ovld vload2(size_t offset, const __global short *p);
11410ushort2 __ovld vload2(size_t offset, const __global ushort *p);
11411int2 __ovld vload2(size_t offset, const __global int *p);
11412uint2 __ovld vload2(size_t offset, const __global uint *p);
11413long2 __ovld vload2(size_t offset, const __global long *p);
11414ulong2 __ovld vload2(size_t offset, const __global ulong *p);
11415float2 __ovld vload2(size_t offset, const __global float *p);
11416char3 __ovld vload3(size_t offset, const __global char *p);
11417uchar3 __ovld vload3(size_t offset, const __global uchar *p);
11418short3 __ovld vload3(size_t offset, const __global short *p);
11419ushort3 __ovld vload3(size_t offset, const __global ushort *p);
11420int3 __ovld vload3(size_t offset, const __global int *p);
11421uint3 __ovld vload3(size_t offset, const __global uint *p);
11422long3 __ovld vload3(size_t offset, const __global long *p);
11423ulong3 __ovld vload3(size_t offset, const __global ulong *p);
11424float3 __ovld vload3(size_t offset, const __global float *p);
11425char4 __ovld vload4(size_t offset, const __global char *p);
11426uchar4 __ovld vload4(size_t offset, const __global uchar *p);
11427short4 __ovld vload4(size_t offset, const __global short *p);
11428ushort4 __ovld vload4(size_t offset, const __global ushort *p);
11429int4 __ovld vload4(size_t offset, const __global int *p);
11430uint4 __ovld vload4(size_t offset, const __global uint *p);
11431long4 __ovld vload4(size_t offset, const __global long *p);
11432ulong4 __ovld vload4(size_t offset, const __global ulong *p);
11433float4 __ovld vload4(size_t offset, const __global float *p);
11434char8 __ovld vload8(size_t offset, const __global char *p);
11435uchar8 __ovld vload8(size_t offset, const __global uchar *p);
11436short8 __ovld vload8(size_t offset, const __global short *p);
11437ushort8 __ovld vload8(size_t offset, const __global ushort *p);
11438int8 __ovld vload8(size_t offset, const __global int *p);
11439uint8 __ovld vload8(size_t offset, const __global uint *p);
11440long8 __ovld vload8(size_t offset, const __global long *p);
11441ulong8 __ovld vload8(size_t offset, const __global ulong *p);
11442float8 __ovld vload8(size_t offset, const __global float *p);
11443char16 __ovld vload16(size_t offset, const __global char *p);
11444uchar16 __ovld vload16(size_t offset, const __global uchar *p);
11445short16 __ovld vload16(size_t offset, const __global short *p);
11446ushort16 __ovld vload16(size_t offset, const __global ushort *p);
11447int16 __ovld vload16(size_t offset, const __global int *p);
11448uint16 __ovld vload16(size_t offset, const __global uint *p);
11449long16 __ovld vload16(size_t offset, const __global long *p);
11450ulong16 __ovld vload16(size_t offset, const __global ulong *p);
11451float16 __ovld vload16(size_t offset, const __global float *p);
11452char2 __ovld vload2(size_t offset, const __local char *p);
11453uchar2 __ovld vload2(size_t offset, const __local uchar *p);
11454short2 __ovld vload2(size_t offset, const __local short *p);
11455ushort2 __ovld vload2(size_t offset, const __local ushort *p);
11456int2 __ovld vload2(size_t offset, const __local int *p);
11457uint2 __ovld vload2(size_t offset, const __local uint *p);
11458long2 __ovld vload2(size_t offset, const __local long *p);
11459ulong2 __ovld vload2(size_t offset, const __local ulong *p);
11460float2 __ovld vload2(size_t offset, const __local float *p);
11461char3 __ovld vload3(size_t offset, const __local char *p);
11462uchar3 __ovld vload3(size_t offset, const __local uchar *p);
11463short3 __ovld vload3(size_t offset, const __local short *p);
11464ushort3 __ovld vload3(size_t offset, const __local ushort *p);
11465int3 __ovld vload3(size_t offset, const __local int *p);
11466uint3 __ovld vload3(size_t offset, const __local uint *p);
11467long3 __ovld vload3(size_t offset, const __local long *p);
11468ulong3 __ovld vload3(size_t offset, const __local ulong *p);
11469float3 __ovld vload3(size_t offset, const __local float *p);
11470char4 __ovld vload4(size_t offset, const __local char *p);
11471uchar4 __ovld vload4(size_t offset, const __local uchar *p);
11472short4 __ovld vload4(size_t offset, const __local short *p);
11473ushort4 __ovld vload4(size_t offset, const __local ushort *p);
11474int4 __ovld vload4(size_t offset, const __local int *p);
11475uint4 __ovld vload4(size_t offset, const __local uint *p);
11476long4 __ovld vload4(size_t offset, const __local long *p);
11477ulong4 __ovld vload4(size_t offset, const __local ulong *p);
11478float4 __ovld vload4(size_t offset, const __local float *p);
11479char8 __ovld vload8(size_t offset, const __local char *p);
11480uchar8 __ovld vload8(size_t offset, const __local uchar *p);
11481short8 __ovld vload8(size_t offset, const __local short *p);
11482ushort8 __ovld vload8(size_t offset, const __local ushort *p);
11483int8 __ovld vload8(size_t offset, const __local int *p);
11484uint8 __ovld vload8(size_t offset, const __local uint *p);
11485long8 __ovld vload8(size_t offset, const __local long *p);
11486ulong8 __ovld vload8(size_t offset, const __local ulong *p);
11487float8 __ovld vload8(size_t offset, const __local float *p);
11488char16 __ovld vload16(size_t offset, const __local char *p);
11489uchar16 __ovld vload16(size_t offset, const __local uchar *p);
11490short16 __ovld vload16(size_t offset, const __local short *p);
11491ushort16 __ovld vload16(size_t offset, const __local ushort *p);
11492int16 __ovld vload16(size_t offset, const __local int *p);
11493uint16 __ovld vload16(size_t offset, const __local uint *p);
11494long16 __ovld vload16(size_t offset, const __local long *p);
11495ulong16 __ovld vload16(size_t offset, const __local ulong *p);
11496float16 __ovld vload16(size_t offset, const __local float *p);
11497char2 __ovld vload2(size_t offset, const __private char *p);
11498uchar2 __ovld vload2(size_t offset, const __private uchar *p);
11499short2 __ovld vload2(size_t offset, const __private short *p);
11500ushort2 __ovld vload2(size_t offset, const __private ushort *p);
11501int2 __ovld vload2(size_t offset, const __private int *p);
11502uint2 __ovld vload2(size_t offset, const __private uint *p);
11503long2 __ovld vload2(size_t offset, const __private long *p);
11504ulong2 __ovld vload2(size_t offset, const __private ulong *p);
11505float2 __ovld vload2(size_t offset, const __private float *p);
11506char3 __ovld vload3(size_t offset, const __private char *p);
11507uchar3 __ovld vload3(size_t offset, const __private uchar *p);
11508short3 __ovld vload3(size_t offset, const __private short *p);
11509ushort3 __ovld vload3(size_t offset, const __private ushort *p);
11510int3 __ovld vload3(size_t offset, const __private int *p);
11511uint3 __ovld vload3(size_t offset, const __private uint *p);
11512long3 __ovld vload3(size_t offset, const __private long *p);
11513ulong3 __ovld vload3(size_t offset, const __private ulong *p);
11514float3 __ovld vload3(size_t offset, const __private float *p);
11515char4 __ovld vload4(size_t offset, const __private char *p);
11516uchar4 __ovld vload4(size_t offset, const __private uchar *p);
11517short4 __ovld vload4(size_t offset, const __private short *p);
11518ushort4 __ovld vload4(size_t offset, const __private ushort *p);
11519int4 __ovld vload4(size_t offset, const __private int *p);
11520uint4 __ovld vload4(size_t offset, const __private uint *p);
11521long4 __ovld vload4(size_t offset, const __private long *p);
11522ulong4 __ovld vload4(size_t offset, const __private ulong *p);
11523float4 __ovld vload4(size_t offset, const __private float *p);
11524char8 __ovld vload8(size_t offset, const __private char *p);
11525uchar8 __ovld vload8(size_t offset, const __private uchar *p);
11526short8 __ovld vload8(size_t offset, const __private short *p);
11527ushort8 __ovld vload8(size_t offset, const __private ushort *p);
11528int8 __ovld vload8(size_t offset, const __private int *p);
11529uint8 __ovld vload8(size_t offset, const __private uint *p);
11530long8 __ovld vload8(size_t offset, const __private long *p);
11531ulong8 __ovld vload8(size_t offset, const __private ulong *p);
11532float8 __ovld vload8(size_t offset, const __private float *p);
11533char16 __ovld vload16(size_t offset, const __private char *p);
11534uchar16 __ovld vload16(size_t offset, const __private uchar *p);
11535short16 __ovld vload16(size_t offset, const __private short *p);
11536ushort16 __ovld vload16(size_t offset, const __private ushort *p);
11537int16 __ovld vload16(size_t offset, const __private int *p);
11538uint16 __ovld vload16(size_t offset, const __private uint *p);
11539long16 __ovld vload16(size_t offset, const __private long *p);
11540ulong16 __ovld vload16(size_t offset, const __private ulong *p);
11541float16 __ovld vload16(size_t offset, const __private float *p);
11542
11543#ifdef cl_khr_fp64
11544double2 __ovld vload2(size_t offset, const __global double *p);
11545double3 __ovld vload3(size_t offset, const __global double *p);
11546double4 __ovld vload4(size_t offset, const __global double *p);
11547double8 __ovld vload8(size_t offset, const __global double *p);
11548double16 __ovld vload16(size_t offset, const __global double *p);
11549double2 __ovld vload2(size_t offset, const __local double *p);
11550double3 __ovld vload3(size_t offset, const __local double *p);
11551double4 __ovld vload4(size_t offset, const __local double *p);
11552double8 __ovld vload8(size_t offset, const __local double *p);
11553double16 __ovld vload16(size_t offset, const __local double *p);
11554double2 __ovld vload2(size_t offset, const __private double *p);
11555double3 __ovld vload3(size_t offset, const __private double *p);
11556double4 __ovld vload4(size_t offset, const __private double *p);
11557double8 __ovld vload8(size_t offset, const __private double *p);
11558double16 __ovld vload16(size_t offset, const __private double *p);
11559#endif //cl_khr_fp64
11560
11561#ifdef cl_khr_fp16
11562half __ovld vload(size_t offset, const __global half *p);
11563half2 __ovld vload2(size_t offset, const __global half *p);
11564half3 __ovld vload3(size_t offset, const __global half *p);
11565half4 __ovld vload4(size_t offset, const __global half *p);
11566half8 __ovld vload8(size_t offset, const __global half *p);
11567half16 __ovld vload16(size_t offset, const __global half *p);
11568half __ovld vload(size_t offset, const __local half *p);
11569half2 __ovld vload2(size_t offset, const __local half *p);
11570half3 __ovld vload3(size_t offset, const __local half *p);
11571half4 __ovld vload4(size_t offset, const __local half *p);
11572half8 __ovld vload8(size_t offset, const __local half *p);
11573half16 __ovld vload16(size_t offset, const __local half *p);
11574half __ovld vload(size_t offset, const __private half *p);
11575half2 __ovld vload2(size_t offset, const __private half *p);
11576half3 __ovld vload3(size_t offset, const __private half *p);
11577half4 __ovld vload4(size_t offset, const __private half *p);
11578half8 __ovld vload8(size_t offset, const __private half *p);
11579half16 __ovld vload16(size_t offset, const __private half *p);
11580#endif //cl_khr_fp16
11581#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11582
11583#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11584void __ovld vstore2(char2 data, size_t offset, char *p);
11585void __ovld vstore2(uchar2 data, size_t offset, uchar *p);
11586void __ovld vstore2(short2 data, size_t offset, short *p);
11587void __ovld vstore2(ushort2 data, size_t offset, ushort *p);
11588void __ovld vstore2(int2 data, size_t offset, int *p);
11589void __ovld vstore2(uint2 data, size_t offset, uint *p);
11590void __ovld vstore2(long2 data, size_t offset, long *p);
11591void __ovld vstore2(ulong2 data, size_t offset, ulong *p);
11592void __ovld vstore2(float2 data, size_t offset, float *p);
11593void __ovld vstore3(char3 data, size_t offset, char *p);
11594void __ovld vstore3(uchar3 data, size_t offset, uchar *p);
11595void __ovld vstore3(short3 data, size_t offset, short *p);
11596void __ovld vstore3(ushort3 data, size_t offset, ushort *p);
11597void __ovld vstore3(int3 data, size_t offset, int *p);
11598void __ovld vstore3(uint3 data, size_t offset, uint *p);
11599void __ovld vstore3(long3 data, size_t offset, long *p);
11600void __ovld vstore3(ulong3 data, size_t offset, ulong *p);
11601void __ovld vstore3(float3 data, size_t offset, float *p);
11602void __ovld vstore4(char4 data, size_t offset, char *p);
11603void __ovld vstore4(uchar4 data, size_t offset, uchar *p);
11604void __ovld vstore4(short4 data, size_t offset, short *p);
11605void __ovld vstore4(ushort4 data, size_t offset, ushort *p);
11606void __ovld vstore4(int4 data, size_t offset, int *p);
11607void __ovld vstore4(uint4 data, size_t offset, uint *p);
11608void __ovld vstore4(long4 data, size_t offset, long *p);
11609void __ovld vstore4(ulong4 data, size_t offset, ulong *p);
11610void __ovld vstore4(float4 data, size_t offset, float *p);
11611void __ovld vstore8(char8 data, size_t offset, char *p);
11612void __ovld vstore8(uchar8 data, size_t offset, uchar *p);
11613void __ovld vstore8(short8 data, size_t offset, short *p);
11614void __ovld vstore8(ushort8 data, size_t offset, ushort *p);
11615void __ovld vstore8(int8 data, size_t offset, int *p);
11616void __ovld vstore8(uint8 data, size_t offset, uint *p);
11617void __ovld vstore8(long8 data, size_t offset, long *p);
11618void __ovld vstore8(ulong8 data, size_t offset, ulong *p);
11619void __ovld vstore8(float8 data, size_t offset, float *p);
11620void __ovld vstore16(char16 data, size_t offset, char *p);
11621void __ovld vstore16(uchar16 data, size_t offset, uchar *p);
11622void __ovld vstore16(short16 data, size_t offset, short *p);
11623void __ovld vstore16(ushort16 data, size_t offset, ushort *p);
11624void __ovld vstore16(int16 data, size_t offset, int *p);
11625void __ovld vstore16(uint16 data, size_t offset, uint *p);
11626void __ovld vstore16(long16 data, size_t offset, long *p);
11627void __ovld vstore16(ulong16 data, size_t offset, ulong *p);
11628void __ovld vstore16(float16 data, size_t offset, float *p);
11629#ifdef cl_khr_fp64
11630void __ovld vstore2(double2 data, size_t offset, double *p);
11631void __ovld vstore3(double3 data, size_t offset, double *p);
11632void __ovld vstore4(double4 data, size_t offset, double *p);
11633void __ovld vstore8(double8 data, size_t offset, double *p);
11634void __ovld vstore16(double16 data, size_t offset, double *p);
11635#endif //cl_khr_fp64
11636#ifdef cl_khr_fp16
11637void __ovld vstore(half data, size_t offset, half *p);
11638void __ovld vstore2(half2 data, size_t offset, half *p);
11639void __ovld vstore3(half3 data, size_t offset, half *p);
11640void __ovld vstore4(half4 data, size_t offset, half *p);
11641void __ovld vstore8(half8 data, size_t offset, half *p);
11642void __ovld vstore16(half16 data, size_t offset, half *p);
11643#endif //cl_khr_fp16
11644#else
11645void __ovld vstore2(char2 data, size_t offset, __global char *p);
11646void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p);
11647void __ovld vstore2(short2 data, size_t offset, __global short *p);
11648void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p);
11649void __ovld vstore2(int2 data, size_t offset, __global int *p);
11650void __ovld vstore2(uint2 data, size_t offset, __global uint *p);
11651void __ovld vstore2(long2 data, size_t offset, __global long *p);
11652void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p);
11653void __ovld vstore2(float2 data, size_t offset, __global float *p);
11654void __ovld vstore3(char3 data, size_t offset, __global char *p);
11655void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p);
11656void __ovld vstore3(short3 data, size_t offset, __global short *p);
11657void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p);
11658void __ovld vstore3(int3 data, size_t offset, __global int *p);
11659void __ovld vstore3(uint3 data, size_t offset, __global uint *p);
11660void __ovld vstore3(long3 data, size_t offset, __global long *p);
11661void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p);
11662void __ovld vstore3(float3 data, size_t offset, __global float *p);
11663void __ovld vstore4(char4 data, size_t offset, __global char *p);
11664void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p);
11665void __ovld vstore4(short4 data, size_t offset, __global short *p);
11666void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p);
11667void __ovld vstore4(int4 data, size_t offset, __global int *p);
11668void __ovld vstore4(uint4 data, size_t offset, __global uint *p);
11669void __ovld vstore4(long4 data, size_t offset, __global long *p);
11670void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p);
11671void __ovld vstore4(float4 data, size_t offset, __global float *p);
11672void __ovld vstore8(char8 data, size_t offset, __global char *p);
11673void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p);
11674void __ovld vstore8(short8 data, size_t offset, __global short *p);
11675void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p);
11676void __ovld vstore8(int8 data, size_t offset, __global int *p);
11677void __ovld vstore8(uint8 data, size_t offset, __global uint *p);
11678void __ovld vstore8(long8 data, size_t offset, __global long *p);
11679void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p);
11680void __ovld vstore8(float8 data, size_t offset, __global float *p);
11681void __ovld vstore16(char16 data, size_t offset, __global char *p);
11682void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p);
11683void __ovld vstore16(short16 data, size_t offset, __global short *p);
11684void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p);
11685void __ovld vstore16(int16 data, size_t offset, __global int *p);
11686void __ovld vstore16(uint16 data, size_t offset, __global uint *p);
11687void __ovld vstore16(long16 data, size_t offset, __global long *p);
11688void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p);
11689void __ovld vstore16(float16 data, size_t offset, __global float *p);
11690void __ovld vstore2(char2 data, size_t offset, __local char *p);
11691void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p);
11692void __ovld vstore2(short2 data, size_t offset, __local short *p);
11693void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p);
11694void __ovld vstore2(int2 data, size_t offset, __local int *p);
11695void __ovld vstore2(uint2 data, size_t offset, __local uint *p);
11696void __ovld vstore2(long2 data, size_t offset, __local long *p);
11697void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p);
11698void __ovld vstore2(float2 data, size_t offset, __local float *p);
11699void __ovld vstore3(char3 data, size_t offset, __local char *p);
11700void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p);
11701void __ovld vstore3(short3 data, size_t offset, __local short *p);
11702void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p);
11703void __ovld vstore3(int3 data, size_t offset, __local int *p);
11704void __ovld vstore3(uint3 data, size_t offset, __local uint *p);
11705void __ovld vstore3(long3 data, size_t offset, __local long *p);
11706void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p);
11707void __ovld vstore3(float3 data, size_t offset, __local float *p);
11708void __ovld vstore4(char4 data, size_t offset, __local char *p);
11709void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p);
11710void __ovld vstore4(short4 data, size_t offset, __local short *p);
11711void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p);
11712void __ovld vstore4(int4 data, size_t offset, __local int *p);
11713void __ovld vstore4(uint4 data, size_t offset, __local uint *p);
11714void __ovld vstore4(long4 data, size_t offset, __local long *p);
11715void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p);
11716void __ovld vstore4(float4 data, size_t offset, __local float *p);
11717void __ovld vstore8(char8 data, size_t offset, __local char *p);
11718void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p);
11719void __ovld vstore8(short8 data, size_t offset, __local short *p);
11720void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p);
11721void __ovld vstore8(int8 data, size_t offset, __local int *p);
11722void __ovld vstore8(uint8 data, size_t offset, __local uint *p);
11723void __ovld vstore8(long8 data, size_t offset, __local long *p);
11724void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p);
11725void __ovld vstore8(float8 data, size_t offset, __local float *p);
11726void __ovld vstore16(char16 data, size_t offset, __local char *p);
11727void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p);
11728void __ovld vstore16(short16 data, size_t offset, __local short *p);
11729void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p);
11730void __ovld vstore16(int16 data, size_t offset, __local int *p);
11731void __ovld vstore16(uint16 data, size_t offset, __local uint *p);
11732void __ovld vstore16(long16 data, size_t offset, __local long *p);
11733void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p);
11734void __ovld vstore16(float16 data, size_t offset, __local float *p);
11735void __ovld vstore2(char2 data, size_t offset, __private char *p);
11736void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p);
11737void __ovld vstore2(short2 data, size_t offset, __private short *p);
11738void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p);
11739void __ovld vstore2(int2 data, size_t offset, __private int *p);
11740void __ovld vstore2(uint2 data, size_t offset, __private uint *p);
11741void __ovld vstore2(long2 data, size_t offset, __private long *p);
11742void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p);
11743void __ovld vstore2(float2 data, size_t offset, __private float *p);
11744void __ovld vstore3(char3 data, size_t offset, __private char *p);
11745void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p);
11746void __ovld vstore3(short3 data, size_t offset, __private short *p);
11747void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p);
11748void __ovld vstore3(int3 data, size_t offset, __private int *p);
11749void __ovld vstore3(uint3 data, size_t offset, __private uint *p);
11750void __ovld vstore3(long3 data, size_t offset, __private long *p);
11751void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p);
11752void __ovld vstore3(float3 data, size_t offset, __private float *p);
11753void __ovld vstore4(char4 data, size_t offset, __private char *p);
11754void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p);
11755void __ovld vstore4(short4 data, size_t offset, __private short *p);
11756void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p);
11757void __ovld vstore4(int4 data, size_t offset, __private int *p);
11758void __ovld vstore4(uint4 data, size_t offset, __private uint *p);
11759void __ovld vstore4(long4 data, size_t offset, __private long *p);
11760void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p);
11761void __ovld vstore4(float4 data, size_t offset, __private float *p);
11762void __ovld vstore8(char8 data, size_t offset, __private char *p);
11763void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p);
11764void __ovld vstore8(short8 data, size_t offset, __private short *p);
11765void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p);
11766void __ovld vstore8(int8 data, size_t offset, __private int *p);
11767void __ovld vstore8(uint8 data, size_t offset, __private uint *p);
11768void __ovld vstore8(long8 data, size_t offset, __private long *p);
11769void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p);
11770void __ovld vstore8(float8 data, size_t offset, __private float *p);
11771void __ovld vstore16(char16 data, size_t offset, __private char *p);
11772void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p);
11773void __ovld vstore16(short16 data, size_t offset, __private short *p);
11774void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p);
11775void __ovld vstore16(int16 data, size_t offset, __private int *p);
11776void __ovld vstore16(uint16 data, size_t offset, __private uint *p);
11777void __ovld vstore16(long16 data, size_t offset, __private long *p);
11778void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p);
11779void __ovld vstore16(float16 data, size_t offset, __private float *p);
11780#ifdef cl_khr_fp64
11781void __ovld vstore2(double2 data, size_t offset, __global double *p);
11782void __ovld vstore3(double3 data, size_t offset, __global double *p);
11783void __ovld vstore4(double4 data, size_t offset, __global double *p);
11784void __ovld vstore8(double8 data, size_t offset, __global double *p);
11785void __ovld vstore16(double16 data, size_t offset, __global double *p);
11786void __ovld vstore2(double2 data, size_t offset, __local double *p);
11787void __ovld vstore3(double3 data, size_t offset, __local double *p);
11788void __ovld vstore4(double4 data, size_t offset, __local double *p);
11789void __ovld vstore8(double8 data, size_t offset, __local double *p);
11790void __ovld vstore16(double16 data, size_t offset, __local double *p);
11791void __ovld vstore2(double2 data, size_t offset, __private double *p);
11792void __ovld vstore3(double3 data, size_t offset, __private double *p);
11793void __ovld vstore4(double4 data, size_t offset, __private double *p);
11794void __ovld vstore8(double8 data, size_t offset, __private double *p);
11795void __ovld vstore16(double16 data, size_t offset, __private double *p);
11796#endif //cl_khr_fp64
11797#ifdef cl_khr_fp16
11798void __ovld vstore(half data, size_t offset, __global half *p);
11799void __ovld vstore2(half2 data, size_t offset, __global half *p);
11800void __ovld vstore3(half3 data, size_t offset, __global half *p);
11801void __ovld vstore4(half4 data, size_t offset, __global half *p);
11802void __ovld vstore8(half8 data, size_t offset, __global half *p);
11803void __ovld vstore16(half16 data, size_t offset, __global half *p);
11804void __ovld vstore(half data, size_t offset, __local half *p);
11805void __ovld vstore2(half2 data, size_t offset, __local half *p);
11806void __ovld vstore3(half3 data, size_t offset, __local half *p);
11807void __ovld vstore4(half4 data, size_t offset, __local half *p);
11808void __ovld vstore8(half8 data, size_t offset, __local half *p);
11809void __ovld vstore16(half16 data, size_t offset, __local half *p);
11810void __ovld vstore(half data, size_t offset, __private half *p);
11811void __ovld vstore2(half2 data, size_t offset, __private half *p);
11812void __ovld vstore3(half3 data, size_t offset, __private half *p);
11813void __ovld vstore4(half4 data, size_t offset, __private half *p);
11814void __ovld vstore8(half8 data, size_t offset, __private half *p);
11815void __ovld vstore16(half16 data, size_t offset, __private half *p);
11816#endif //cl_khr_fp16
11817#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11818
11827float __ovld vload_half(size_t offset, const __constant half *p);
11828#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11829float __ovld vload_half(size_t offset, const half *p);
11830#else
11831float __ovld vload_half(size_t offset, const __global half *p);
11832float __ovld vload_half(size_t offset, const __local half *p);
11833float __ovld vload_half(size_t offset, const __private half *p);
11834#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11835
11844float2 __ovld vload_half2(size_t offset, const __constant half *p);
11845float3 __ovld vload_half3(size_t offset, const __constant half *p);
11846float4 __ovld vload_half4(size_t offset, const __constant half *p);
11847float8 __ovld vload_half8(size_t offset, const __constant half *p);
11848float16 __ovld vload_half16(size_t offset, const __constant half *p);
11849#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11850float2 __ovld vload_half2(size_t offset, const half *p);
11851float3 __ovld vload_half3(size_t offset, const half *p);
11852float4 __ovld vload_half4(size_t offset, const half *p);
11853float8 __ovld vload_half8(size_t offset, const half *p);
11854float16 __ovld vload_half16(size_t offset, const half *p);
11855#else
11856float2 __ovld vload_half2(size_t offset, const __global half *p);
11857float3 __ovld vload_half3(size_t offset, const __global half *p);
11858float4 __ovld vload_half4(size_t offset, const __global half *p);
11859float8 __ovld vload_half8(size_t offset, const __global half *p);
11860float16 __ovld vload_half16(size_t offset, const __global half *p);
11861float2 __ovld vload_half2(size_t offset, const __local half *p);
11862float3 __ovld vload_half3(size_t offset, const __local half *p);
11863float4 __ovld vload_half4(size_t offset, const __local half *p);
11864float8 __ovld vload_half8(size_t offset, const __local half *p);
11865float16 __ovld vload_half16(size_t offset, const __local half *p);
11866float2 __ovld vload_half2(size_t offset, const __private half *p);
11867float3 __ovld vload_half3(size_t offset, const __private half *p);
11868float4 __ovld vload_half4(size_t offset, const __private half *p);
11869float8 __ovld vload_half8(size_t offset, const __private half *p);
11870float16 __ovld vload_half16(size_t offset, const __private half *p);
11871#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11872
11884#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11885void __ovld vstore_half(float data, size_t offset, half *p);
11886void __ovld vstore_half_rte(float data, size_t offset, half *p);
11887void __ovld vstore_half_rtz(float data, size_t offset, half *p);
11888void __ovld vstore_half_rtp(float data, size_t offset, half *p);
11889void __ovld vstore_half_rtn(float data, size_t offset, half *p);
11890#ifdef cl_khr_fp64
11891void __ovld vstore_half(double data, size_t offset, half *p);
11892void __ovld vstore_half_rte(double data, size_t offset, half *p);
11893void __ovld vstore_half_rtz(double data, size_t offset, half *p);
11894void __ovld vstore_half_rtp(double data, size_t offset, half *p);
11895void __ovld vstore_half_rtn(double data, size_t offset, half *p);
11896#endif //cl_khr_fp64
11897#else
11898void __ovld vstore_half(float data, size_t offset, __global half *p);
11899void __ovld vstore_half_rte(float data, size_t offset, __global half *p);
11900void __ovld vstore_half_rtz(float data, size_t offset, __global half *p);
11901void __ovld vstore_half_rtp(float data, size_t offset, __global half *p);
11902void __ovld vstore_half_rtn(float data, size_t offset, __global half *p);
11903void __ovld vstore_half(float data, size_t offset, __local half *p);
11904void __ovld vstore_half_rte(float data, size_t offset, __local half *p);
11905void __ovld vstore_half_rtz(float data, size_t offset, __local half *p);
11906void __ovld vstore_half_rtp(float data, size_t offset, __local half *p);
11907void __ovld vstore_half_rtn(float data, size_t offset, __local half *p);
11908void __ovld vstore_half(float data, size_t offset, __private half *p);
11909void __ovld vstore_half_rte(float data, size_t offset, __private half *p);
11910void __ovld vstore_half_rtz(float data, size_t offset, __private half *p);
11911void __ovld vstore_half_rtp(float data, size_t offset, __private half *p);
11912void __ovld vstore_half_rtn(float data, size_t offset, __private half *p);
11913#ifdef cl_khr_fp64
11914void __ovld vstore_half(double data, size_t offset, __global half *p);
11915void __ovld vstore_half_rte(double data, size_t offset, __global half *p);
11916void __ovld vstore_half_rtz(double data, size_t offset, __global half *p);
11917void __ovld vstore_half_rtp(double data, size_t offset, __global half *p);
11918void __ovld vstore_half_rtn(double data, size_t offset, __global half *p);
11919void __ovld vstore_half(double data, size_t offset, __local half *p);
11920void __ovld vstore_half_rte(double data, size_t offset, __local half *p);
11921void __ovld vstore_half_rtz(double data, size_t offset, __local half *p);
11922void __ovld vstore_half_rtp(double data, size_t offset, __local half *p);
11923void __ovld vstore_half_rtn(double data, size_t offset, __local half *p);
11924void __ovld vstore_half(double data, size_t offset, __private half *p);
11925void __ovld vstore_half_rte(double data, size_t offset, __private half *p);
11926void __ovld vstore_half_rtz(double data, size_t offset, __private half *p);
11927void __ovld vstore_half_rtp(double data, size_t offset, __private half *p);
11928void __ovld vstore_half_rtn(double data, size_t offset, __private half *p);
11929#endif //cl_khr_fp64
11930#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11931
11943#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
11944void __ovld vstore_half2(float2 data, size_t offset, half *p);
11945void __ovld vstore_half3(float3 data, size_t offset, half *p);
11946void __ovld vstore_half4(float4 data, size_t offset, half *p);
11947void __ovld vstore_half8(float8 data, size_t offset, half *p);
11948void __ovld vstore_half16(float16 data, size_t offset, half *p);
11949void __ovld vstore_half2_rte(float2 data, size_t offset, half *p);
11950void __ovld vstore_half3_rte(float3 data, size_t offset, half *p);
11951void __ovld vstore_half4_rte(float4 data, size_t offset, half *p);
11952void __ovld vstore_half8_rte(float8 data, size_t offset, half *p);
11953void __ovld vstore_half16_rte(float16 data, size_t offset, half *p);
11954void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p);
11955void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p);
11956void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p);
11957void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p);
11958void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p);
11959void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p);
11960void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p);
11961void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p);
11962void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p);
11963void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p);
11964void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p);
11965void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p);
11966void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p);
11967void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p);
11968void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p);
11969#ifdef cl_khr_fp64
11970void __ovld vstore_half2(double2 data, size_t offset, half *p);
11971void __ovld vstore_half3(double3 data, size_t offset, half *p);
11972void __ovld vstore_half4(double4 data, size_t offset, half *p);
11973void __ovld vstore_half8(double8 data, size_t offset, half *p);
11974void __ovld vstore_half16(double16 data, size_t offset, half *p);
11975void __ovld vstore_half2_rte(double2 data, size_t offset, half *p);
11976void __ovld vstore_half3_rte(double3 data, size_t offset, half *p);
11977void __ovld vstore_half4_rte(double4 data, size_t offset, half *p);
11978void __ovld vstore_half8_rte(double8 data, size_t offset, half *p);
11979void __ovld vstore_half16_rte(double16 data, size_t offset, half *p);
11980void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p);
11981void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p);
11982void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p);
11983void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p);
11984void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p);
11985void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p);
11986void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p);
11987void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p);
11988void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p);
11989void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p);
11990void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p);
11991void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p);
11992void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p);
11993void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p);
11994void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p);
11995#endif //cl_khr_fp64
11996#else
11997void __ovld vstore_half2(float2 data, size_t offset, __global half *p);
11998void __ovld vstore_half3(float3 data, size_t offset, __global half *p);
11999void __ovld vstore_half4(float4 data, size_t offset, __global half *p);
12000void __ovld vstore_half8(float8 data, size_t offset, __global half *p);
12001void __ovld vstore_half16(float16 data, size_t offset, __global half *p);
12002void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p);
12003void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p);
12004void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p);
12005void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p);
12006void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p);
12007void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p);
12008void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p);
12009void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p);
12010void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p);
12011void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p);
12012void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p);
12013void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p);
12014void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p);
12015void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p);
12016void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p);
12017void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p);
12018void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p);
12019void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p);
12020void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p);
12021void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p);
12022void __ovld vstore_half2(float2 data, size_t offset, __local half *p);
12023void __ovld vstore_half3(float3 data, size_t offset, __local half *p);
12024void __ovld vstore_half4(float4 data, size_t offset, __local half *p);
12025void __ovld vstore_half8(float8 data, size_t offset, __local half *p);
12026void __ovld vstore_half16(float16 data, size_t offset, __local half *p);
12027void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p);
12028void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p);
12029void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p);
12030void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p);
12031void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p);
12032void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p);
12033void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p);
12034void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p);
12035void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p);
12036void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p);
12037void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p);
12038void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p);
12039void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p);
12040void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p);
12041void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p);
12042void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p);
12043void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p);
12044void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p);
12045void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p);
12046void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p);
12047void __ovld vstore_half2(float2 data, size_t offset, __private half *p);
12048void __ovld vstore_half3(float3 data, size_t offset, __private half *p);
12049void __ovld vstore_half4(float4 data, size_t offset, __private half *p);
12050void __ovld vstore_half8(float8 data, size_t offset, __private half *p);
12051void __ovld vstore_half16(float16 data, size_t offset, __private half *p);
12052void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p);
12053void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p);
12054void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p);
12055void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p);
12056void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p);
12057void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p);
12058void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p);
12059void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p);
12060void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p);
12061void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p);
12062void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p);
12063void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p);
12064void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p);
12065void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p);
12066void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p);
12067void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p);
12068void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p);
12069void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p);
12070void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p);
12071void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p);
12072#ifdef cl_khr_fp64
12073void __ovld vstore_half2(double2 data, size_t offset, __global half *p);
12074void __ovld vstore_half3(double3 data, size_t offset, __global half *p);
12075void __ovld vstore_half4(double4 data, size_t offset, __global half *p);
12076void __ovld vstore_half8(double8 data, size_t offset, __global half *p);
12077void __ovld vstore_half16(double16 data, size_t offset, __global half *p);
12078void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p);
12079void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p);
12080void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p);
12081void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p);
12082void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p);
12083void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p);
12084void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p);
12085void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p);
12086void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p);
12087void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p);
12088void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p);
12089void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p);
12090void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p);
12091void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p);
12092void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p);
12093void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p);
12094void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p);
12095void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p);
12096void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p);
12097void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p);
12098void __ovld vstore_half2(double2 data, size_t offset, __local half *p);
12099void __ovld vstore_half3(double3 data, size_t offset, __local half *p);
12100void __ovld vstore_half4(double4 data, size_t offset, __local half *p);
12101void __ovld vstore_half8(double8 data, size_t offset, __local half *p);
12102void __ovld vstore_half16(double16 data, size_t offset, __local half *p);
12103void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p);
12104void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p);
12105void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p);
12106void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p);
12107void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p);
12108void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p);
12109void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p);
12110void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p);
12111void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p);
12112void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p);
12113void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p);
12114void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p);
12115void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p);
12116void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p);
12117void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p);
12118void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p);
12119void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p);
12120void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p);
12121void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p);
12122void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p);
12123void __ovld vstore_half2(double2 data, size_t offset, __private half *p);
12124void __ovld vstore_half3(double3 data, size_t offset, __private half *p);
12125void __ovld vstore_half4(double4 data, size_t offset, __private half *p);
12126void __ovld vstore_half8(double8 data, size_t offset, __private half *p);
12127void __ovld vstore_half16(double16 data, size_t offset, __private half *p);
12128void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p);
12129void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p);
12130void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p);
12131void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p);
12132void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p);
12133void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p);
12134void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p);
12135void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p);
12136void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p);
12137void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p);
12138void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p);
12139void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p);
12140void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p);
12141void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p);
12142void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p);
12143void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p);
12144void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p);
12145void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p);
12146void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p);
12147void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p);
12148#endif //cl_khr_fp64
12149#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12150
12164float __ovld vloada_half(size_t offset, const __constant half *p);
12165float2 __ovld vloada_half2(size_t offset, const __constant half *p);
12166float3 __ovld vloada_half3(size_t offset, const __constant half *p);
12167float4 __ovld vloada_half4(size_t offset, const __constant half *p);
12168float8 __ovld vloada_half8(size_t offset, const __constant half *p);
12169float16 __ovld vloada_half16(size_t offset, const __constant half *p);
12170#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12171float __ovld vloada_half(size_t offset, const half *p);
12172float2 __ovld vloada_half2(size_t offset, const half *p);
12173float3 __ovld vloada_half3(size_t offset, const half *p);
12174float4 __ovld vloada_half4(size_t offset, const half *p);
12175float8 __ovld vloada_half8(size_t offset, const half *p);
12176float16 __ovld vloada_half16(size_t offset, const half *p);
12177#else
12178float __ovld vloada_half(size_t offset, const __global half *p);
12179float2 __ovld vloada_half2(size_t offset, const __global half *p);
12180float3 __ovld vloada_half3(size_t offset, const __global half *p);
12181float4 __ovld vloada_half4(size_t offset, const __global half *p);
12182float8 __ovld vloada_half8(size_t offset, const __global half *p);
12183float16 __ovld vloada_half16(size_t offset, const __global half *p);
12184float __ovld vloada_half(size_t offset, const __local half *p);
12185float2 __ovld vloada_half2(size_t offset, const __local half *p);
12186float3 __ovld vloada_half3(size_t offset, const __local half *p);
12187float4 __ovld vloada_half4(size_t offset, const __local half *p);
12188float8 __ovld vloada_half8(size_t offset, const __local half *p);
12189float16 __ovld vloada_half16(size_t offset, const __local half *p);
12190float __ovld vloada_half(size_t offset, const __private half *p);
12191float2 __ovld vloada_half2(size_t offset, const __private half *p);
12192float3 __ovld vloada_half3(size_t offset, const __private half *p);
12193float4 __ovld vloada_half4(size_t offset, const __private half *p);
12194float8 __ovld vloada_half8(size_t offset, const __private half *p);
12195float16 __ovld vloada_half16(size_t offset, const __private half *p);
12196#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12197
12214#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12215void __ovld vstorea_half(float data, size_t offset, half *p);
12216void __ovld vstorea_half2(float2 data, size_t offset, half *p);
12217void __ovld vstorea_half3(float3 data, size_t offset, half *p);
12218void __ovld vstorea_half4(float4 data, size_t offset, half *p);
12219void __ovld vstorea_half8(float8 data, size_t offset, half *p);
12220void __ovld vstorea_half16(float16 data, size_t offset, half *p);
12221
12222void __ovld vstorea_half_rte(float data, size_t offset, half *p);
12223void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p);
12224void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p);
12225void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p);
12226void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p);
12227void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p);
12228
12229void __ovld vstorea_half_rtz(float data, size_t offset, half *p);
12230void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p);
12231void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p);
12232void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p);
12233void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p);
12234void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p);
12235
12236void __ovld vstorea_half_rtp(float data, size_t offset, half *p);
12237void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p);
12238void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p);
12239void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p);
12240void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p);
12241void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p);
12242
12243void __ovld vstorea_half_rtn(float data, size_t offset, half *p);
12244void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p);
12245void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p);
12246void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p);
12247void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p);
12248void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p);
12249
12250#ifdef cl_khr_fp64
12251void __ovld vstorea_half(double data, size_t offset, half *p);
12252void __ovld vstorea_half2(double2 data, size_t offset, half *p);
12253void __ovld vstorea_half3(double3 data, size_t offset, half *p);
12254void __ovld vstorea_half4(double4 data, size_t offset, half *p);
12255void __ovld vstorea_half8(double8 data, size_t offset, half *p);
12256void __ovld vstorea_half16(double16 data, size_t offset, half *p);
12257
12258void __ovld vstorea_half_rte(double data, size_t offset, half *p);
12259void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p);
12260void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p);
12261void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p);
12262void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p);
12263void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p);
12264
12265void __ovld vstorea_half_rtz(double data, size_t offset, half *p);
12266void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p);
12267void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p);
12268void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p);
12269void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p);
12270void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p);
12271
12272void __ovld vstorea_half_rtp(double data, size_t offset, half *p);
12273void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p);
12274void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p);
12275void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p);
12276void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p);
12277void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p);
12278
12279void __ovld vstorea_half_rtn(double data, size_t offset, half *p);
12280void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p);
12281void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p);
12282void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p);
12283void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p);
12284void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p);
12285#endif //cl_khr_fp64
12286
12287#else
12288void __ovld vstorea_half(float data, size_t offset, __global half *p);
12289void __ovld vstorea_half2(float2 data, size_t offset, __global half *p);
12290void __ovld vstorea_half3(float3 data, size_t offset, __global half *p);
12291void __ovld vstorea_half4(float4 data, size_t offset, __global half *p);
12292void __ovld vstorea_half8(float8 data, size_t offset, __global half *p);
12293void __ovld vstorea_half16(float16 data, size_t offset, __global half *p);
12294
12295void __ovld vstorea_half_rte(float data, size_t offset, __global half *p);
12296void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p);
12297void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p);
12298void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p);
12299void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p);
12300void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p);
12301
12302void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p);
12303void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p);
12304void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p);
12305void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p);
12306void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p);
12307void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p);
12308
12309void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p);
12310void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p);
12311void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p);
12312void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p);
12313void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p);
12314void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p);
12315
12316void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p);
12317void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p);
12318void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p);
12319void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p);
12320void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p);
12321void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p);
12322
12323void __ovld vstorea_half(float data, size_t offset, __local half *p);
12324void __ovld vstorea_half2(float2 data, size_t offset, __local half *p);
12325void __ovld vstorea_half3(float3 data, size_t offset, __local half *p);
12326void __ovld vstorea_half4(float4 data, size_t offset, __local half *p);
12327void __ovld vstorea_half8(float8 data, size_t offset, __local half *p);
12328void __ovld vstorea_half16(float16 data, size_t offset, __local half *p);
12329
12330void __ovld vstorea_half_rte(float data, size_t offset, __local half *p);
12331void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p);
12332void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p);
12333void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p);
12334void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p);
12335void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p);
12336
12337void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p);
12338void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p);
12339void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p);
12340void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p);
12341void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p);
12342void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p);
12343
12344void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p);
12345void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p);
12346void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p);
12347void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p);
12348void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p);
12349void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p);
12350
12351void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p);
12352void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p);
12353void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p);
12354void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p);
12355void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p);
12356void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p);
12357
12358void __ovld vstorea_half(float data, size_t offset, __private half *p);
12359void __ovld vstorea_half2(float2 data, size_t offset, __private half *p);
12360void __ovld vstorea_half3(float3 data, size_t offset, __private half *p);
12361void __ovld vstorea_half4(float4 data, size_t offset, __private half *p);
12362void __ovld vstorea_half8(float8 data, size_t offset, __private half *p);
12363void __ovld vstorea_half16(float16 data, size_t offset, __private half *p);
12364
12365void __ovld vstorea_half_rte(float data, size_t offset, __private half *p);
12366void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p);
12367void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p);
12368void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p);
12369void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p);
12370void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p);
12371
12372void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p);
12373void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p);
12374void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p);
12375void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p);
12376void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p);
12377void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p);
12378
12379void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p);
12380void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p);
12381void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p);
12382void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p);
12383void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p);
12384void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p);
12385
12386void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p);
12387void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p);
12388void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p);
12389void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p);
12390void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p);
12391void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p);
12392
12393#ifdef cl_khr_fp64
12394void __ovld vstorea_half(double data, size_t offset, __global half *p);
12395void __ovld vstorea_half2(double2 data, size_t offset, __global half *p);
12396void __ovld vstorea_half3(double3 data, size_t offset, __global half *p);
12397void __ovld vstorea_half4(double4 data, size_t offset, __global half *p);
12398void __ovld vstorea_half8(double8 data, size_t offset, __global half *p);
12399void __ovld vstorea_half16(double16 data, size_t offset, __global half *p);
12400
12401void __ovld vstorea_half_rte(double data, size_t offset, __global half *p);
12402void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p);
12403void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p);
12404void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p);
12405void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p);
12406void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p);
12407
12408void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p);
12409void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p);
12410void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p);
12411void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p);
12412void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p);
12413void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p);
12414
12415void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p);
12416void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p);
12417void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p);
12418void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p);
12419void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p);
12420void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p);
12421
12422void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p);
12423void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p);
12424void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p);
12425void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p);
12426void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p);
12427void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p);
12428
12429void __ovld vstorea_half(double data, size_t offset, __local half *p);
12430void __ovld vstorea_half2(double2 data, size_t offset, __local half *p);
12431void __ovld vstorea_half3(double3 data, size_t offset, __local half *p);
12432void __ovld vstorea_half4(double4 data, size_t offset, __local half *p);
12433void __ovld vstorea_half8(double8 data, size_t offset, __local half *p);
12434void __ovld vstorea_half16(double16 data, size_t offset, __local half *p);
12435
12436void __ovld vstorea_half_rte(double data, size_t offset, __local half *p);
12437void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p);
12438void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p);
12439void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p);
12440void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p);
12441void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p);
12442
12443void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p);
12444void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p);
12445void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p);
12446void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p);
12447void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p);
12448void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p);
12449
12450void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p);
12451void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p);
12452void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p);
12453void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p);
12454void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p);
12455void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p);
12456
12457void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p);
12458void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p);
12459void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p);
12460void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p);
12461void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p);
12462void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p);
12463
12464void __ovld vstorea_half(double data, size_t offset, __private half *p);
12465void __ovld vstorea_half2(double2 data, size_t offset, __private half *p);
12466void __ovld vstorea_half3(double3 data, size_t offset, __private half *p);
12467void __ovld vstorea_half4(double4 data, size_t offset, __private half *p);
12468void __ovld vstorea_half8(double8 data, size_t offset, __private half *p);
12469void __ovld vstorea_half16(double16 data, size_t offset, __private half *p);
12470
12471void __ovld vstorea_half_rte(double data, size_t offset, __private half *p);
12472void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p);
12473void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p);
12474void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p);
12475void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p);
12476void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p);
12477
12478void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p);
12479void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p);
12480void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p);
12481void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p);
12482void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p);
12483void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p);
12484
12485void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p);
12486void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p);
12487void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p);
12488void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p);
12489void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p);
12490void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p);
12491
12492void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p);
12493void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p);
12494void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p);
12495void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p);
12496void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p);
12497void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p);
12498#endif //cl_khr_fp64
12499#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12500
12501// OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions
12502
12534
12535#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12538#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12539
12540// OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions
12541
12556
12568
12580
12581// OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions
12582
12583#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12586
12594#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
12595
12596// 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
12597
12625event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event);
12626event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event);
12627event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event);
12628event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event);
12629event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event);
12630event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event);
12631event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event);
12632event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event);
12633event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event);
12634event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event);
12635event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event);
12636event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event);
12637event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event);
12638event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event);
12639event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event);
12640event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event);
12641event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event);
12642event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event);
12643event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event);
12644event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event);
12645event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event);
12646event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event);
12647event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event);
12648event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event);
12649event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event);
12650event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event);
12651event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event);
12652event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event);
12653event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event);
12654event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event);
12655event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event);
12656event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event);
12657event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event);
12658event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event);
12659event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event);
12660event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event);
12661event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event);
12662event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event);
12663event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event);
12664event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event);
12665event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event);
12666event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event);
12667event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event);
12668event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event);
12669event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event);
12670event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event);
12671event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event);
12672event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event);
12673event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event);
12674event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event);
12675event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event);
12676event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event);
12677event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event);
12678event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event);
12679event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event);
12680event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event);
12681event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event);
12682event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event);
12683event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event);
12684event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event);
12685event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event);
12686event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event);
12687event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event);
12688event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event);
12689event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event);
12690event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event);
12691event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event);
12692event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event);
12693event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event);
12694event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event);
12695event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event);
12696event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event);
12697event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event);
12698event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event);
12699event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event);
12700event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event);
12701event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event);
12702event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event);
12703event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event);
12704event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event);
12705event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event);
12706event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event);
12707event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event);
12708event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event);
12709event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event);
12710event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event);
12711event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event);
12712event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event);
12713event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event);
12714event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event);
12715event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event);
12716event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event);
12717event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event);
12718event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event);
12719event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event);
12720event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event);
12721event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event);
12722event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event);
12723event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event);
12724event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event);
12725event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event);
12726event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event);
12727event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event);
12728event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event);
12729event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event);
12730event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event);
12731event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event);
12732event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event);
12733#ifdef cl_khr_fp64
12734event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event);
12735event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event);
12736event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event);
12737event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event);
12738event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event);
12739event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event);
12740event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event);
12741event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event);
12742event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event);
12743event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event);
12744event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event);
12745event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event);
12746#endif //cl_khr_fp64
12747#ifdef cl_khr_fp16
12748event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event);
12749event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event);
12750event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event);
12751event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event);
12752event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event);
12753event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event);
12754event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event);
12755event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event);
12756event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event);
12757event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event);
12758event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event);
12759event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event);
12760#endif //cl_khr_fp16
12761
12788event_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);
12789event_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);
12790event_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);
12791event_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);
12792event_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);
12793event_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);
12794event_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);
12795event_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);
12796event_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);
12797event_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);
12798event_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);
12799event_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);
12800event_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);
12801event_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);
12802event_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);
12803event_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);
12804event_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);
12805event_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);
12806event_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);
12807event_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);
12808event_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);
12809event_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);
12810event_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);
12811event_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);
12812event_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);
12813event_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);
12814event_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);
12815event_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);
12816event_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);
12817event_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);
12818event_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);
12819event_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);
12820event_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);
12821event_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);
12822event_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);
12823event_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);
12824event_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);
12825event_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);
12826event_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);
12827event_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);
12828event_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);
12829event_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);
12830event_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);
12831event_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);
12832event_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);
12833event_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);
12834event_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);
12835event_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);
12836event_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);
12837event_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);
12838event_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);
12839event_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);
12840event_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);
12841event_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);
12842event_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);
12843event_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);
12844event_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);
12845event_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);
12846event_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);
12847event_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);
12848event_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);
12849event_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);
12850event_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);
12851event_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);
12852event_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);
12853event_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);
12854event_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);
12855event_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);
12856event_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);
12857event_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);
12858event_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);
12859event_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);
12860event_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);
12861event_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);
12862event_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);
12863event_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);
12864event_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);
12865event_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);
12866event_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);
12867event_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);
12868event_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);
12869event_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);
12870event_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);
12871event_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);
12872event_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);
12873event_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);
12874event_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);
12875event_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);
12876event_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);
12877event_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);
12878event_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);
12879event_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);
12880event_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);
12881event_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);
12882event_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);
12883event_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);
12884event_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);
12885event_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);
12886event_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);
12887event_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);
12888event_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);
12889event_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);
12890event_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);
12891event_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);
12892event_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);
12893event_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);
12894event_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);
12895event_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);
12896#ifdef cl_khr_fp64
12897event_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);
12898event_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);
12899event_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);
12900event_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);
12901event_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);
12902event_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);
12903event_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);
12904event_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);
12905event_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);
12906event_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);
12907event_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);
12908event_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);
12909#endif //cl_khr_fp64
12910#ifdef cl_khr_fp16
12911event_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);
12912event_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);
12913event_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);
12914event_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);
12915event_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);
12916event_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);
12917event_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);
12918event_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);
12919event_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);
12920event_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);
12921event_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);
12922event_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);
12923#endif //cl_khr_fp16
12924
12936void __ovld wait_group_events(int num_events, event_t *event_list);
12937
12945void __ovld prefetch(const __global char *p, size_t num_elements);
12946void __ovld prefetch(const __global uchar *p, size_t num_elements);
12947void __ovld prefetch(const __global short *p, size_t num_elements);
12948void __ovld prefetch(const __global ushort *p, size_t num_elements);
12949void __ovld prefetch(const __global int *p, size_t num_elements);
12950void __ovld prefetch(const __global uint *p, size_t num_elements);
12951void __ovld prefetch(const __global long *p, size_t num_elements);
12952void __ovld prefetch(const __global ulong *p, size_t num_elements);
12953void __ovld prefetch(const __global float *p, size_t num_elements);
12954void __ovld prefetch(const __global char2 *p, size_t num_elements);
12955void __ovld prefetch(const __global uchar2 *p, size_t num_elements);
12956void __ovld prefetch(const __global short2 *p, size_t num_elements);
12957void __ovld prefetch(const __global ushort2 *p, size_t num_elements);
12958void __ovld prefetch(const __global int2 *p, size_t num_elements);
12959void __ovld prefetch(const __global uint2 *p, size_t num_elements);
12960void __ovld prefetch(const __global long2 *p, size_t num_elements);
12961void __ovld prefetch(const __global ulong2 *p, size_t num_elements);
12962void __ovld prefetch(const __global float2 *p, size_t num_elements);
12963void __ovld prefetch(const __global char3 *p, size_t num_elements);
12964void __ovld prefetch(const __global uchar3 *p, size_t num_elements);
12965void __ovld prefetch(const __global short3 *p, size_t num_elements);
12966void __ovld prefetch(const __global ushort3 *p, size_t num_elements);
12967void __ovld prefetch(const __global int3 *p, size_t num_elements);
12968void __ovld prefetch(const __global uint3 *p, size_t num_elements);
12969void __ovld prefetch(const __global long3 *p, size_t num_elements);
12970void __ovld prefetch(const __global ulong3 *p, size_t num_elements);
12971void __ovld prefetch(const __global float3 *p, size_t num_elements);
12972void __ovld prefetch(const __global char4 *p, size_t num_elements);
12973void __ovld prefetch(const __global uchar4 *p, size_t num_elements);
12974void __ovld prefetch(const __global short4 *p, size_t num_elements);
12975void __ovld prefetch(const __global ushort4 *p, size_t num_elements);
12976void __ovld prefetch(const __global int4 *p, size_t num_elements);
12977void __ovld prefetch(const __global uint4 *p, size_t num_elements);
12978void __ovld prefetch(const __global long4 *p, size_t num_elements);
12979void __ovld prefetch(const __global ulong4 *p, size_t num_elements);
12980void __ovld prefetch(const __global float4 *p, size_t num_elements);
12981void __ovld prefetch(const __global char8 *p, size_t num_elements);
12982void __ovld prefetch(const __global uchar8 *p, size_t num_elements);
12983void __ovld prefetch(const __global short8 *p, size_t num_elements);
12984void __ovld prefetch(const __global ushort8 *p, size_t num_elements);
12985void __ovld prefetch(const __global int8 *p, size_t num_elements);
12986void __ovld prefetch(const __global uint8 *p, size_t num_elements);
12987void __ovld prefetch(const __global long8 *p, size_t num_elements);
12988void __ovld prefetch(const __global ulong8 *p, size_t num_elements);
12989void __ovld prefetch(const __global float8 *p, size_t num_elements);
12990void __ovld prefetch(const __global char16 *p, size_t num_elements);
12991void __ovld prefetch(const __global uchar16 *p, size_t num_elements);
12992void __ovld prefetch(const __global short16 *p, size_t num_elements);
12993void __ovld prefetch(const __global ushort16 *p, size_t num_elements);
12994void __ovld prefetch(const __global int16 *p, size_t num_elements);
12995void __ovld prefetch(const __global uint16 *p, size_t num_elements);
12996void __ovld prefetch(const __global long16 *p, size_t num_elements);
12997void __ovld prefetch(const __global ulong16 *p, size_t num_elements);
12998void __ovld prefetch(const __global float16 *p, size_t num_elements);
12999#ifdef cl_khr_fp64
13000void __ovld prefetch(const __global double *p, size_t num_elements);
13001void __ovld prefetch(const __global double2 *p, size_t num_elements);
13002void __ovld prefetch(const __global double3 *p, size_t num_elements);
13003void __ovld prefetch(const __global double4 *p, size_t num_elements);
13004void __ovld prefetch(const __global double8 *p, size_t num_elements);
13005void __ovld prefetch(const __global double16 *p, size_t num_elements);
13006#endif //cl_khr_fp64
13007#ifdef cl_khr_fp16
13008void __ovld prefetch(const __global half *p, size_t num_elements);
13009void __ovld prefetch(const __global half2 *p, size_t num_elements);
13010void __ovld prefetch(const __global half3 *p, size_t num_elements);
13011void __ovld prefetch(const __global half4 *p, size_t num_elements);
13012void __ovld prefetch(const __global half8 *p, size_t num_elements);
13013void __ovld prefetch(const __global half16 *p, size_t num_elements);
13014#endif // cl_khr_fp16
13015
13016// OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions
13017
13018#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13019#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
13020#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
13021#endif
13028int __ovld atomic_add(volatile __global int *p, int val);
13029unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val);
13030int __ovld atomic_add(volatile __local int *p, int val);
13031unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val);
13032#ifdef __OPENCL_CPP_VERSION__
13033int __ovld atomic_add(volatile int *p, int val);
13034unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val);
13035#endif
13036
13037#if defined(cl_khr_global_int32_base_atomics)
13038int __ovld atom_add(volatile __global int *p, int val);
13039unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val);
13040#endif
13041#if defined(cl_khr_local_int32_base_atomics)
13042int __ovld atom_add(volatile __local int *p, int val);
13043unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val);
13044#endif
13045
13046#if defined(cl_khr_int64_base_atomics)
13047long __ovld atom_add(volatile __global long *p, long val);
13048unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val);
13049long __ovld atom_add(volatile __local long *p, long val);
13050unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val);
13051#endif
13052
13058int __ovld atomic_sub(volatile __global int *p, int val);
13059unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val);
13060int __ovld atomic_sub(volatile __local int *p, int val);
13061unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val);
13062#ifdef __OPENCL_CPP_VERSION__
13063int __ovld atomic_sub(volatile int *p, int val);
13064unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val);
13065#endif
13066
13067#if defined(cl_khr_global_int32_base_atomics)
13068int __ovld atom_sub(volatile __global int *p, int val);
13069unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val);
13070#endif
13071#if defined(cl_khr_local_int32_base_atomics)
13072int __ovld atom_sub(volatile __local int *p, int val);
13073unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val);
13074#endif
13075
13076#if defined(cl_khr_int64_base_atomics)
13077long __ovld atom_sub(volatile __global long *p, long val);
13078unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val);
13079long __ovld atom_sub(volatile __local long *p, long val);
13080unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val);
13081#endif
13082
13088int __ovld atomic_xchg(volatile __global int *p, int val);
13089unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val);
13090int __ovld atomic_xchg(volatile __local int *p, int val);
13091unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val);
13092float __ovld atomic_xchg(volatile __global float *p, float val);
13093float __ovld atomic_xchg(volatile __local float *p, float val);
13094#ifdef __OPENCL_CPP_VERSION__
13095int __ovld atomic_xchg(volatile int *p, int val);
13096unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val);
13097float __ovld atomic_xchg(volatile float *p, float val);
13098#endif
13099
13100#if defined(cl_khr_global_int32_base_atomics)
13101int __ovld atom_xchg(volatile __global int *p, int val);
13102unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val);
13103#endif
13104#if defined(cl_khr_local_int32_base_atomics)
13105int __ovld atom_xchg(volatile __local int *p, int val);
13106unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val);
13107#endif
13108
13109#if defined(cl_khr_int64_base_atomics)
13110long __ovld atom_xchg(volatile __global long *p, long val);
13111long __ovld atom_xchg(volatile __local long *p, long val);
13112unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val);
13113unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val);
13114#endif
13115
13122int __ovld atomic_inc(volatile __global int *p);
13123unsigned int __ovld atomic_inc(volatile __global unsigned int *p);
13124int __ovld atomic_inc(volatile __local int *p);
13125unsigned int __ovld atomic_inc(volatile __local unsigned int *p);
13126#ifdef __OPENCL_CPP_VERSION__
13127int __ovld atomic_inc(volatile int *p);
13128unsigned int __ovld atomic_inc(volatile unsigned int *p);
13129#endif
13130
13131#if defined(cl_khr_global_int32_base_atomics)
13132int __ovld atom_inc(volatile __global int *p);
13133unsigned int __ovld atom_inc(volatile __global unsigned int *p);
13134#endif
13135#if defined(cl_khr_local_int32_base_atomics)
13136int __ovld atom_inc(volatile __local int *p);
13137unsigned int __ovld atom_inc(volatile __local unsigned int *p);
13138#endif
13139
13140#if defined(cl_khr_int64_base_atomics)
13141long __ovld atom_inc(volatile __global long *p);
13142unsigned long __ovld atom_inc(volatile __global unsigned long *p);
13143long __ovld atom_inc(volatile __local long *p);
13144unsigned long __ovld atom_inc(volatile __local unsigned long *p);
13145#endif
13146
13153int __ovld atomic_dec(volatile __global int *p);
13154unsigned int __ovld atomic_dec(volatile __global unsigned int *p);
13155int __ovld atomic_dec(volatile __local int *p);
13156unsigned int __ovld atomic_dec(volatile __local unsigned int *p);
13157#ifdef __OPENCL_CPP_VERSION__
13158int __ovld atomic_dec(volatile int *p);
13159unsigned int __ovld atomic_dec(volatile unsigned int *p);
13160#endif
13161
13162#if defined(cl_khr_global_int32_base_atomics)
13163int __ovld atom_dec(volatile __global int *p);
13164unsigned int __ovld atom_dec(volatile __global unsigned int *p);
13165#endif
13166#if defined(cl_khr_local_int32_base_atomics)
13167int __ovld atom_dec(volatile __local int *p);
13168unsigned int __ovld atom_dec(volatile __local unsigned int *p);
13169#endif
13170
13171#if defined(cl_khr_int64_base_atomics)
13172long __ovld atom_dec(volatile __global long *p);
13173unsigned long __ovld atom_dec(volatile __global unsigned long *p);
13174long __ovld atom_dec(volatile __local long *p);
13175unsigned long __ovld atom_dec(volatile __local unsigned long *p);
13176#endif
13177
13185int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val);
13186unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13187int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val);
13188unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
13189#ifdef __OPENCL_CPP_VERSION__
13190int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val);
13191unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val);
13192#endif
13193
13194#if defined(cl_khr_global_int32_base_atomics)
13195int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val);
13196unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val);
13197#endif
13198#if defined(cl_khr_local_int32_base_atomics)
13199int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val);
13200unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val);
13201#endif
13202
13203#if defined(cl_khr_int64_base_atomics)
13204long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val);
13205unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val);
13206long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val);
13207unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val);
13208#endif
13209
13217int __ovld atomic_min(volatile __global int *p, int val);
13218unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val);
13219int __ovld atomic_min(volatile __local int *p, int val);
13220unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val);
13221#ifdef __OPENCL_CPP_VERSION__
13222int __ovld atomic_min(volatile int *p, int val);
13223unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val);
13224#endif
13225
13226#if defined(cl_khr_global_int32_extended_atomics)
13227int __ovld atom_min(volatile __global int *p, int val);
13228unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val);
13229#endif
13230#if defined(cl_khr_local_int32_extended_atomics)
13231int __ovld atom_min(volatile __local int *p, int val);
13232unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val);
13233#endif
13234
13235#if defined(cl_khr_int64_extended_atomics)
13236long __ovld atom_min(volatile __global long *p, long val);
13237unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val);
13238long __ovld atom_min(volatile __local long *p, long val);
13239unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val);
13240#endif
13241
13249int __ovld atomic_max(volatile __global int *p, int val);
13250unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val);
13251int __ovld atomic_max(volatile __local int *p, int val);
13252unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val);
13253#ifdef __OPENCL_CPP_VERSION__
13254int __ovld atomic_max(volatile int *p, int val);
13255unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val);
13256#endif
13257
13258#if defined(cl_khr_global_int32_extended_atomics)
13259int __ovld atom_max(volatile __global int *p, int val);
13260unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val);
13261#endif
13262#if defined(cl_khr_local_int32_extended_atomics)
13263int __ovld atom_max(volatile __local int *p, int val);
13264unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val);
13265#endif
13266
13267#if defined(cl_khr_int64_extended_atomics)
13268long __ovld atom_max(volatile __global long *p, long val);
13269unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val);
13270long __ovld atom_max(volatile __local long *p, long val);
13271unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val);
13272#endif
13273
13280int __ovld atomic_and(volatile __global int *p, int val);
13281unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val);
13282int __ovld atomic_and(volatile __local int *p, int val);
13283unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val);
13284#ifdef __OPENCL_CPP_VERSION__
13285int __ovld atomic_and(volatile int *p, int val);
13286unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val);
13287#endif
13288
13289#if defined(cl_khr_global_int32_extended_atomics)
13290int __ovld atom_and(volatile __global int *p, int val);
13291unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val);
13292#endif
13293#if defined(cl_khr_local_int32_extended_atomics)
13294int __ovld atom_and(volatile __local int *p, int val);
13295unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val);
13296#endif
13297
13298#if defined(cl_khr_int64_extended_atomics)
13299long __ovld atom_and(volatile __global long *p, long val);
13300unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val);
13301long __ovld atom_and(volatile __local long *p, long val);
13302unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val);
13303#endif
13304
13311int __ovld atomic_or(volatile __global int *p, int val);
13312unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val);
13313int __ovld atomic_or(volatile __local int *p, int val);
13314unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val);
13315#ifdef __OPENCL_CPP_VERSION__
13316int __ovld atomic_or(volatile int *p, int val);
13317unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val);
13318#endif
13319
13320#if defined(cl_khr_global_int32_extended_atomics)
13321int __ovld atom_or(volatile __global int *p, int val);
13322unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val);
13323#endif
13324#if defined(cl_khr_local_int32_extended_atomics)
13325int __ovld atom_or(volatile __local int *p, int val);
13326unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val);
13327#endif
13328
13329#if defined(cl_khr_int64_extended_atomics)
13330long __ovld atom_or(volatile __global long *p, long val);
13331unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val);
13332long __ovld atom_or(volatile __local long *p, long val);
13333unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val);
13334#endif
13335
13342int __ovld atomic_xor(volatile __global int *p, int val);
13343unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val);
13344int __ovld atomic_xor(volatile __local int *p, int val);
13345unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val);
13346#ifdef __OPENCL_CPP_VERSION__
13347int __ovld atomic_xor(volatile int *p, int val);
13348unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val);
13349#endif
13350
13351#if defined(cl_khr_global_int32_extended_atomics)
13352int __ovld atom_xor(volatile __global int *p, int val);
13353unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val);
13354#endif
13355#if defined(cl_khr_local_int32_extended_atomics)
13356int __ovld atom_xor(volatile __local int *p, int val);
13357unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val);
13358#endif
13359
13360#if defined(cl_khr_int64_extended_atomics)
13361long __ovld atom_xor(volatile __global long *p, long val);
13362unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val);
13363long __ovld atom_xor(volatile __local long *p, long val);
13364unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val);
13365#endif
13366
13367#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13368#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : disable
13369#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : disable
13370#endif
13371
13372// OpenCL v2.0 s6.13.11 - Atomics Functions
13373
13374#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
13375
13376// double atomics support requires extensions cl_khr_int64_base_atomics and cl_khr_int64_extended_atomics
13377#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13378#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
13379#pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable
13380#endif
13381
13382// atomic_init()
13383void __ovld atomic_init(volatile atomic_int *object, int value);
13384void __ovld atomic_init(volatile atomic_uint *object, uint value);
13385void __ovld atomic_init(volatile atomic_float *object, float value);
13386#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13387void __ovld atomic_init(volatile atomic_long *object, long value);
13388void __ovld atomic_init(volatile atomic_ulong *object, ulong value);
13389#ifdef cl_khr_fp64
13390void __ovld atomic_init(volatile atomic_double *object, double value);
13391#endif //cl_khr_fp64
13392#endif
13393
13394// atomic_work_item_fence()
13396
13397// atomic_fetch()
13398
13399int __ovld atomic_fetch_add(volatile atomic_int *object, int operand);
13400int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order);
13401int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13402uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand);
13403uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13404uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13405int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand);
13406int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order);
13407int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13408uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand);
13409uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13410uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13411int __ovld atomic_fetch_or(volatile atomic_int *object, int operand);
13412int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order);
13413int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13414uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand);
13415uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13416uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13417int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand);
13418int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order);
13419int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13420uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand);
13421uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13422uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13423int __ovld atomic_fetch_and(volatile atomic_int *object, int operand);
13424int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order);
13425int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13426uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand);
13427uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13428uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13429int __ovld atomic_fetch_min(volatile atomic_int *object, int operand);
13430int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order);
13431int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13432uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand);
13433uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13434uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13435int __ovld atomic_fetch_max(volatile atomic_int *object, int operand);
13436int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order);
13437int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope);
13438uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand);
13439uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order);
13440uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope);
13441
13442#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13443long __ovld atomic_fetch_add(volatile atomic_long *object, long operand);
13444long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order);
13445long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13446ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand);
13447ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13448ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13449long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand);
13450long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order);
13451long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13452ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand);
13453ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13454ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13455long __ovld atomic_fetch_or(volatile atomic_long *object, long operand);
13456long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order);
13457long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13458ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand);
13459ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13460ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13461long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand);
13462long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order);
13463long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13464ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand);
13465ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13466ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13467long __ovld atomic_fetch_and(volatile atomic_long *object, long operand);
13468long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order);
13469long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13470ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand);
13471ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13472ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13473long __ovld atomic_fetch_min(volatile atomic_long *object, long operand);
13474long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order);
13475long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13476ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand);
13477ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13478ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13479long __ovld atomic_fetch_max(volatile atomic_long *object, long operand);
13480long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order);
13481long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope);
13482ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand);
13483ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order);
13484ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope);
13485#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13486
13487// OpenCL v2.0 s6.13.11.7.5:
13488// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t.
13489// or/xor/and/min/max: atomic type argument can be intptr_t/uintptr_t, value type argument can be intptr_t/uintptr_t.
13490
13491#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13492uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13493uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13494uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13495uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand);
13496uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order);
13497uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope);
13498
13499uintptr_t __ovld atomic_fetch_or(volatile atomic_uintptr_t *object, intptr_t operand);
13500uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13501uintptr_t __ovld atomic_fetch_or_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13502uintptr_t __ovld atomic_fetch_xor(volatile atomic_uintptr_t *object, intptr_t operand);
13503uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13504uintptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13505uintptr_t __ovld atomic_fetch_and(volatile atomic_uintptr_t *object, intptr_t operand);
13506uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order);
13507uintptr_t __ovld atomic_fetch_and_explicit(volatile atomic_uintptr_t *object, intptr_t operand, memory_order order, memory_scope scope);
13508uintptr_t __ovld atomic_fetch_min(volatile atomic_uintptr_t *object, intptr_t opermax);
13509uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
13510uintptr_t __ovld atomic_fetch_min_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
13511uintptr_t __ovld atomic_fetch_max(volatile atomic_uintptr_t *object, intptr_t opermax);
13512uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder);
13513uintptr_t __ovld atomic_fetch_max_explicit(volatile atomic_uintptr_t *object, intptr_t opermax, memory_order minder, memory_scope scope);
13514
13515intptr_t __ovld atomic_fetch_or(volatile atomic_intptr_t *object, uintptr_t operand);
13516intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13517intptr_t __ovld atomic_fetch_or_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13518intptr_t __ovld atomic_fetch_xor(volatile atomic_intptr_t *object, uintptr_t operand);
13519intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13520intptr_t __ovld atomic_fetch_xor_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13521intptr_t __ovld atomic_fetch_and(volatile atomic_intptr_t *object, uintptr_t operand);
13522intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order);
13523intptr_t __ovld atomic_fetch_and_explicit(volatile atomic_intptr_t *object, uintptr_t operand, memory_order order, memory_scope scope);
13524intptr_t __ovld atomic_fetch_min(volatile atomic_intptr_t *object, uintptr_t opermax);
13525intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
13526intptr_t __ovld atomic_fetch_min_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
13527intptr_t __ovld atomic_fetch_max(volatile atomic_intptr_t *object, uintptr_t opermax);
13528intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder);
13529intptr_t __ovld atomic_fetch_max_explicit(volatile atomic_intptr_t *object, uintptr_t opermax, memory_order minder, memory_scope scope);
13530#endif
13531
13532// atomic_store()
13533
13534void __ovld atomic_store(volatile atomic_int *object, int desired);
13535void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order);
13536void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13537void __ovld atomic_store(volatile atomic_uint *object, uint desired);
13538void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13539void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13540void __ovld atomic_store(volatile atomic_float *object, float desired);
13541void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order);
13542void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13543#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13544#ifdef cl_khr_fp64
13545void __ovld atomic_store(volatile atomic_double *object, double desired);
13546void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order);
13547void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13548#endif //cl_khr_fp64
13549void __ovld atomic_store(volatile atomic_long *object, long desired);
13550void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order);
13551void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13552void __ovld atomic_store(volatile atomic_ulong *object, ulong desired);
13553void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13554void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13555#endif
13556
13557// atomic_load()
13558
13559int __ovld atomic_load(volatile atomic_int *object);
13560int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order);
13561int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope);
13562uint __ovld atomic_load(volatile atomic_uint *object);
13563uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order);
13564uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope);
13565float __ovld atomic_load(volatile atomic_float *object);
13566float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order);
13567float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope);
13568#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13569#ifdef cl_khr_fp64
13570double __ovld atomic_load(volatile atomic_double *object);
13571double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order);
13572double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope);
13573#endif //cl_khr_fp64
13574long __ovld atomic_load(volatile atomic_long *object);
13575long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order);
13576long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope);
13577ulong __ovld atomic_load(volatile atomic_ulong *object);
13578ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order);
13579ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope);
13580#endif
13581
13582// atomic_exchange()
13583
13584int __ovld atomic_exchange(volatile atomic_int *object, int desired);
13585int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order);
13586int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope);
13587uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired);
13588uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order);
13589uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope);
13590float __ovld atomic_exchange(volatile atomic_float *object, float desired);
13591float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order);
13592float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope);
13593#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13594#ifdef cl_khr_fp64
13595double __ovld atomic_exchange(volatile atomic_double *object, double desired);
13596double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order);
13597double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope);
13598#endif //cl_khr_fp64
13599long __ovld atomic_exchange(volatile atomic_long *object, long desired);
13600long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order);
13601long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope);
13602ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired);
13603ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order);
13604ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope);
13605#endif
13606
13607// atomic_compare_exchange_strong() and atomic_compare_exchange_weak()
13608
13609bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired);
13610bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13611 int desired, memory_order success, memory_order failure);
13612bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected,
13613 int desired, memory_order success, memory_order failure, memory_scope scope);
13614bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired);
13615bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13616 uint desired, memory_order success, memory_order failure);
13617bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected,
13618 uint desired, memory_order success, memory_order failure, memory_scope scope);
13619bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired);
13620bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13621 int desired, memory_order success, memory_order failure);
13622bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected,
13623 int desired, memory_order success, memory_order failure, memory_scope scope);
13624bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired);
13625bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13626 uint desired, memory_order success, memory_order failure);
13627bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected,
13628 uint desired, memory_order success, memory_order failure, memory_scope scope);
13629bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired);
13630bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13631 float desired, memory_order success, memory_order failure);
13632bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected,
13633 float desired, memory_order success, memory_order failure, memory_scope scope);
13634bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired);
13635bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13636 float desired, memory_order success, memory_order failure);
13637bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected,
13638 float desired, memory_order success, memory_order failure, memory_scope scope);
13639#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)
13640#ifdef cl_khr_fp64
13641bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired);
13642bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13643 double desired, memory_order success, memory_order failure);
13644bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected,
13645 double desired, memory_order success, memory_order failure, memory_scope scope);
13646bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired);
13647bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13648 double desired, memory_order success, memory_order failure);
13649bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected,
13650 double desired, memory_order success, memory_order failure, memory_scope scope);
13651#endif //cl_khr_fp64
13652bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired);
13653bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13654 long desired, memory_order success, memory_order failure);
13655bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected,
13656 long desired, memory_order success, memory_order failure, memory_scope scope);
13657bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired);
13658bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13659 long desired, memory_order success, memory_order failure);
13660bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected,
13661 long desired, memory_order success, memory_order failure, memory_scope scope);
13662bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired);
13663bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13664 ulong desired, memory_order success, memory_order failure);
13665bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected,
13666 ulong desired, memory_order success, memory_order failure, memory_scope scope);
13667bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired);
13668bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13669 ulong desired, memory_order success, memory_order failure);
13670bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected,
13671 ulong desired, memory_order success, memory_order failure, memory_scope scope);
13672#endif
13673
13674// atomic_flag_test_and_set() and atomic_flag_clear()
13675
13679void __ovld atomic_flag_clear(volatile atomic_flag *object);
13682
13683#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
13684
13685// OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions
13686
13729char2 __ovld __cnfn shuffle(char2 x, uchar2 mask);
13730char2 __ovld __cnfn shuffle(char4 x, uchar2 mask);
13731char2 __ovld __cnfn shuffle(char8 x, uchar2 mask);
13732char2 __ovld __cnfn shuffle(char16 x, uchar2 mask);
13733
13734uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask);
13735uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask);
13736uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask);
13737uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask);
13738
13739short2 __ovld __cnfn shuffle(short2 x, ushort2 mask);
13740short2 __ovld __cnfn shuffle(short4 x, ushort2 mask);
13741short2 __ovld __cnfn shuffle(short8 x, ushort2 mask);
13742short2 __ovld __cnfn shuffle(short16 x, ushort2 mask);
13743
13744ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask);
13745ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask);
13746ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask);
13747ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask);
13748
13749int2 __ovld __cnfn shuffle(int2 x, uint2 mask);
13750int2 __ovld __cnfn shuffle(int4 x, uint2 mask);
13751int2 __ovld __cnfn shuffle(int8 x, uint2 mask);
13752int2 __ovld __cnfn shuffle(int16 x, uint2 mask);
13753
13754uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask);
13755uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask);
13756uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask);
13757uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask);
13758
13759long2 __ovld __cnfn shuffle(long2 x, ulong2 mask);
13760long2 __ovld __cnfn shuffle(long4 x, ulong2 mask);
13761long2 __ovld __cnfn shuffle(long8 x, ulong2 mask);
13762long2 __ovld __cnfn shuffle(long16 x, ulong2 mask);
13763
13764ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask);
13765ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask);
13766ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask);
13767ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask);
13768
13769float2 __ovld __cnfn shuffle(float2 x, uint2 mask);
13770float2 __ovld __cnfn shuffle(float4 x, uint2 mask);
13771float2 __ovld __cnfn shuffle(float8 x, uint2 mask);
13772float2 __ovld __cnfn shuffle(float16 x, uint2 mask);
13773
13774char4 __ovld __cnfn shuffle(char2 x, uchar4 mask);
13775char4 __ovld __cnfn shuffle(char4 x, uchar4 mask);
13776char4 __ovld __cnfn shuffle(char8 x, uchar4 mask);
13777char4 __ovld __cnfn shuffle(char16 x, uchar4 mask);
13778
13779uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask);
13780uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask);
13781uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask);
13782uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask);
13783
13784short4 __ovld __cnfn shuffle(short2 x, ushort4 mask);
13785short4 __ovld __cnfn shuffle(short4 x, ushort4 mask);
13786short4 __ovld __cnfn shuffle(short8 x, ushort4 mask);
13787short4 __ovld __cnfn shuffle(short16 x, ushort4 mask);
13788
13789ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask);
13790ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask);
13791ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask);
13792ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask);
13793
13794int4 __ovld __cnfn shuffle(int2 x, uint4 mask);
13795int4 __ovld __cnfn shuffle(int4 x, uint4 mask);
13796int4 __ovld __cnfn shuffle(int8 x, uint4 mask);
13797int4 __ovld __cnfn shuffle(int16 x, uint4 mask);
13798
13799uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask);
13800uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask);
13801uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask);
13802uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask);
13803
13804long4 __ovld __cnfn shuffle(long2 x, ulong4 mask);
13805long4 __ovld __cnfn shuffle(long4 x, ulong4 mask);
13806long4 __ovld __cnfn shuffle(long8 x, ulong4 mask);
13807long4 __ovld __cnfn shuffle(long16 x, ulong4 mask);
13808
13809ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask);
13810ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask);
13811ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask);
13812ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask);
13813
13814float4 __ovld __cnfn shuffle(float2 x, uint4 mask);
13815float4 __ovld __cnfn shuffle(float4 x, uint4 mask);
13816float4 __ovld __cnfn shuffle(float8 x, uint4 mask);
13817float4 __ovld __cnfn shuffle(float16 x, uint4 mask);
13818
13819char8 __ovld __cnfn shuffle(char2 x, uchar8 mask);
13820char8 __ovld __cnfn shuffle(char4 x, uchar8 mask);
13821char8 __ovld __cnfn shuffle(char8 x, uchar8 mask);
13822char8 __ovld __cnfn shuffle(char16 x, uchar8 mask);
13823
13824uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask);
13825uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask);
13826uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask);
13827uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask);
13828
13829short8 __ovld __cnfn shuffle(short2 x, ushort8 mask);
13830short8 __ovld __cnfn shuffle(short4 x, ushort8 mask);
13831short8 __ovld __cnfn shuffle(short8 x, ushort8 mask);
13832short8 __ovld __cnfn shuffle(short16 x, ushort8 mask);
13833
13834ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask);
13835ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask);
13836ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask);
13837ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask);
13838
13843
13848
13849long8 __ovld __cnfn shuffle(long2 x, ulong8 mask);
13850long8 __ovld __cnfn shuffle(long4 x, ulong8 mask);
13851long8 __ovld __cnfn shuffle(long8 x, ulong8 mask);
13852long8 __ovld __cnfn shuffle(long16 x, ulong8 mask);
13853
13854ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask);
13855ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask);
13856ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask);
13857ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask);
13858
13859float8 __ovld __cnfn shuffle(float2 x, uint8 mask);
13860float8 __ovld __cnfn shuffle(float4 x, uint8 mask);
13861float8 __ovld __cnfn shuffle(float8 x, uint8 mask);
13862float8 __ovld __cnfn shuffle(float16 x, uint8 mask);
13863
13864char16 __ovld __cnfn shuffle(char2 x, uchar16 mask);
13865char16 __ovld __cnfn shuffle(char4 x, uchar16 mask);
13866char16 __ovld __cnfn shuffle(char8 x, uchar16 mask);
13867char16 __ovld __cnfn shuffle(char16 x, uchar16 mask);
13868
13869uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask);
13870uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask);
13871uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask);
13872uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask);
13873
13874short16 __ovld __cnfn shuffle(short2 x, ushort16 mask);
13875short16 __ovld __cnfn shuffle(short4 x, ushort16 mask);
13876short16 __ovld __cnfn shuffle(short8 x, ushort16 mask);
13877short16 __ovld __cnfn shuffle(short16 x, ushort16 mask);
13878
13879ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask);
13880ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask);
13881ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask);
13882ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask);
13883
13888
13893
13894long16 __ovld __cnfn shuffle(long2 x, ulong16 mask);
13895long16 __ovld __cnfn shuffle(long4 x, ulong16 mask);
13896long16 __ovld __cnfn shuffle(long8 x, ulong16 mask);
13897long16 __ovld __cnfn shuffle(long16 x, ulong16 mask);
13898
13899ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask);
13900ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask);
13901ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask);
13902ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask);
13903
13904float16 __ovld __cnfn shuffle(float2 x, uint16 mask);
13905float16 __ovld __cnfn shuffle(float4 x, uint16 mask);
13906float16 __ovld __cnfn shuffle(float8 x, uint16 mask);
13907float16 __ovld __cnfn shuffle(float16 x, uint16 mask);
13908
13909#ifdef cl_khr_fp64
13910double2 __ovld __cnfn shuffle(double2 x, ulong2 mask);
13911double2 __ovld __cnfn shuffle(double4 x, ulong2 mask);
13912double2 __ovld __cnfn shuffle(double8 x, ulong2 mask);
13913double2 __ovld __cnfn shuffle(double16 x, ulong2 mask);
13914
13915double4 __ovld __cnfn shuffle(double2 x, ulong4 mask);
13916double4 __ovld __cnfn shuffle(double4 x, ulong4 mask);
13917double4 __ovld __cnfn shuffle(double8 x, ulong4 mask);
13918double4 __ovld __cnfn shuffle(double16 x, ulong4 mask);
13919
13920double8 __ovld __cnfn shuffle(double2 x, ulong8 mask);
13921double8 __ovld __cnfn shuffle(double4 x, ulong8 mask);
13922double8 __ovld __cnfn shuffle(double8 x, ulong8 mask);
13923double8 __ovld __cnfn shuffle(double16 x, ulong8 mask);
13924
13925double16 __ovld __cnfn shuffle(double2 x, ulong16 mask);
13926double16 __ovld __cnfn shuffle(double4 x, ulong16 mask);
13927double16 __ovld __cnfn shuffle(double8 x, ulong16 mask);
13928double16 __ovld __cnfn shuffle(double16 x, ulong16 mask);
13929#endif //cl_khr_fp64
13930
13931#ifdef cl_khr_fp16
13932half2 __ovld __cnfn shuffle(half2 x, ushort2 mask);
13933half2 __ovld __cnfn shuffle(half4 x, ushort2 mask);
13934half2 __ovld __cnfn shuffle(half8 x, ushort2 mask);
13935half2 __ovld __cnfn shuffle(half16 x, ushort2 mask);
13936
13937half4 __ovld __cnfn shuffle(half2 x, ushort4 mask);
13938half4 __ovld __cnfn shuffle(half4 x, ushort4 mask);
13939half4 __ovld __cnfn shuffle(half8 x, ushort4 mask);
13940half4 __ovld __cnfn shuffle(half16 x, ushort4 mask);
13941
13942half8 __ovld __cnfn shuffle(half2 x, ushort8 mask);
13943half8 __ovld __cnfn shuffle(half4 x, ushort8 mask);
13944half8 __ovld __cnfn shuffle(half8 x, ushort8 mask);
13945half8 __ovld __cnfn shuffle(half16 x, ushort8 mask);
13946
13947half16 __ovld __cnfn shuffle(half2 x, ushort16 mask);
13948half16 __ovld __cnfn shuffle(half4 x, ushort16 mask);
13949half16 __ovld __cnfn shuffle(half8 x, ushort16 mask);
13950half16 __ovld __cnfn shuffle(half16 x, ushort16 mask);
13951#endif //cl_khr_fp16
13952
13953char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask);
13954char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask);
13955char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask);
13956char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask);
13957
13958uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask);
13959uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask);
13960uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask);
13961uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask);
13962
13963short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask);
13964short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask);
13965short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask);
13966short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask);
13967
13968ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask);
13969ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask);
13970ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask);
13971ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask);
13972
13973int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask);
13974int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask);
13975int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask);
13976int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask);
13977
13978uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask);
13979uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask);
13980uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask);
13981uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask);
13982
13983long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask);
13984long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask);
13985long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask);
13986long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask);
13987
13988ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask);
13989ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask);
13990ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask);
13991ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask);
13992
13993float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask);
13994float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask);
13995float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask);
13996float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask);
13997
13998char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask);
13999char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask);
14000char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask);
14001char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask);
14002
14003uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask);
14004uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask);
14005uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask);
14006uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask);
14007
14008short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask);
14009short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask);
14010short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask);
14011short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask);
14012
14013ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask);
14014ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask);
14015ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask);
14016ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask);
14017
14018int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask);
14019int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask);
14020int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask);
14021int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask);
14022
14023uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask);
14024uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask);
14025uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask);
14026uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask);
14027
14028long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask);
14029long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask);
14030long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask);
14031long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask);
14032
14033ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask);
14034ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask);
14035ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask);
14036ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask);
14037
14038float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask);
14039float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask);
14040float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask);
14041float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask);
14042
14043char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask);
14044char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask);
14045char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask);
14046char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask);
14047
14048uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask);
14049uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask);
14050uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask);
14051uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask);
14052
14053short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask);
14054short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask);
14055short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask);
14056short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask);
14057
14058ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask);
14059ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask);
14060ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask);
14061ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask);
14062
14063int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask);
14064int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask);
14067
14068uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask);
14069uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask);
14072
14073long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask);
14074long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask);
14075long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask);
14076long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask);
14077
14078ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask);
14079ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask);
14080ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask);
14081ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask);
14082
14083float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask);
14084float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask);
14085float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask);
14086float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask);
14087
14088char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask);
14089char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask);
14090char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask);
14091char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask);
14092
14093uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask);
14094uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask);
14095uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask);
14096uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask);
14097
14098short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask);
14099short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask);
14100short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask);
14101short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask);
14102
14103ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask);
14104ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask);
14105ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask);
14106ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask);
14107
14108int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask);
14109int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask);
14112
14113uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask);
14114uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask);
14117
14118long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask);
14119long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask);
14120long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask);
14121long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask);
14122
14123ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask);
14124ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask);
14125ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask);
14126ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask);
14127
14128float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask);
14129float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask);
14130float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask);
14131float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask);
14132
14133#ifdef cl_khr_fp64
14134double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask);
14135double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask);
14136double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask);
14137double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask);
14138
14139double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask);
14140double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask);
14141double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask);
14142double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask);
14143
14144double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask);
14145double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask);
14146double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask);
14147double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask);
14148
14149double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask);
14150double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask);
14151double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask);
14152double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask);
14153#endif //cl_khr_fp64
14154
14155#ifdef cl_khr_fp16
14156half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask);
14157half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask);
14158half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask);
14159half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask);
14160
14161half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask);
14162half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask);
14163half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask);
14164half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask);
14165
14166half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask);
14167half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask);
14168half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask);
14169half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask);
14170
14171half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask);
14172half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask);
14173half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask);
14174half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask);
14175#endif //cl_khr_fp16
14176
14177#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14178// OpenCL v1.2 s6.12.13, v2.0 s6.13.13 - printf
14179
14180int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2)));
14181#endif
14182
14183// OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions
14184
14185#ifdef cl_khr_gl_msaa_sharing
14186#pragma OPENCL EXTENSION cl_khr_gl_msaa_sharing : enable
14187#endif //cl_khr_gl_msaa_sharing
14188
14282float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord);
14283float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord);
14284
14285int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord);
14286int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord);
14287uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord);
14288uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord);
14289
14290float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord);
14291float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord);
14292
14293int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord);
14294int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord);
14295uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord);
14296uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord);
14297
14298#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14299float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
14300float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14301
14302int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
14303int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14304uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord);
14305uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord);
14306#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14307
14308float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord);
14309float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord);
14310
14311int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord);
14312int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord);
14313uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord);
14314uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord);
14315
14316#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14317float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
14318float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14319
14320int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
14321int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14322uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord);
14323uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord);
14324#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14325
14326#ifdef cl_khr_depth_images
14327float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord);
14328float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord);
14329
14330float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord);
14331float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord);
14332#endif //cl_khr_depth_images
14333
14334#if defined(cl_khr_gl_msaa_sharing)
14335float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample);
14336int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample);
14337uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample);
14338
14339float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample);
14340
14341float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample);
14342int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample);
14343uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample);
14344
14345float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample);
14346#endif //cl_khr_gl_msaa_sharing
14347
14348// OpenCL Extension v2.0 s9.18 - Mipmaps
14349#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14350#ifdef cl_khr_mipmap_image
14351
14352float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14353int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14354uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod);
14355
14356float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14357int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14358uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14359
14360float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14361int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14362uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod);
14363
14364float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
14365
14366float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14367int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14368uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14369
14370float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
14371
14372float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14373int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14374uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod);
14375
14376float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14377int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14378uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14379
14380float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14381int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14382uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14383
14384float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14385int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14386uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14387
14388float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14389
14390float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14391int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14392uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14393
14394float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14395
14396float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14397int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14398uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14399
14400#endif //cl_khr_mipmap_image
14401#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14402
14403#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14404
14409float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord);
14410int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord);
14411uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord);
14412
14413float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord);
14414int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord);
14415uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord);
14416
14417float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord);
14418int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord);
14419uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord);
14420
14421float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord);
14422int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord);
14423uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord);
14424
14425float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord);
14426int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord);
14427uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord);
14428
14429#ifdef cl_khr_depth_images
14430float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord);
14431float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord);
14432#endif //cl_khr_depth_images
14433
14434float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord);
14435int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord);
14436uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord);
14437
14438#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14439
14440// Image read functions returning half4 type
14441#ifdef cl_khr_fp16
14442half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord);
14443half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord);
14444half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord);
14445half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord);
14446half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord);
14447half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord);
14448#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14449half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord);
14450half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord);
14451half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord);
14452half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord);
14456half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord);
14457half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord);
14458half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord);
14459half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord);
14460half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord);
14461half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord);
14462#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
14463#endif //cl_khr_fp16
14464
14465// Image read functions for read_write images
14466#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14467float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord);
14468int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord);
14469uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord);
14470
14471float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord);
14472int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord);
14473uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord);
14474
14475float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord);
14476int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord);
14477uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord);
14478
14479float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord);
14480int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord);
14481uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord);
14482
14483float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord);
14484int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord);
14485uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord);
14486
14487float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord);
14488int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord);
14489uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord);
14490
14491#ifdef cl_khr_depth_images
14492float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord);
14493float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord);
14494#endif //cl_khr_depth_images
14495
14496#if cl_khr_gl_msaa_sharing
14497float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample);
14498int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample);
14499uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample);
14500
14501float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample);
14502int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample);
14503uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample);
14504
14505float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample);
14506float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample);
14507#endif //cl_khr_gl_msaa_sharing
14508
14509#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14510#ifdef cl_khr_mipmap_image
14511float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14512int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14513uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod);
14514
14515float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14516int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14517uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod);
14518
14519float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14520int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14521uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod);
14522
14523float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod);
14524
14525float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14526int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14527uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod);
14528
14529float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod);
14530
14531float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14532int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14533uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod);
14534
14535float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14536int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14537uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY);
14538
14539float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14540int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14541uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY);
14542
14543float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14544int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14545uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14546
14547float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY);
14548
14549float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14550int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14551uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14552
14553float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY);
14554
14555float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14556int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14557uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY);
14558
14559#endif //cl_khr_mipmap_image
14560#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14561
14562// Image read functions returning half4 type
14563#ifdef cl_khr_fp16
14564half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord);
14565half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord);
14566half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord);
14567half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord);
14568half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord);
14569half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord);
14570#endif //cl_khr_fp16
14571#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14572
14640void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color);
14641void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color);
14642void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color);
14643
14644void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color);
14645void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color);
14646void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color);
14647
14648void __ovld write_imagef(write_only image1d_t image, int coord, float4 color);
14649void __ovld write_imagei(write_only image1d_t image, int coord, int4 color);
14650void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color);
14651
14652void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color);
14653void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color);
14654void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color);
14655
14656void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color);
14657void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color);
14658void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color);
14659
14660#ifdef cl_khr_3d_image_writes
14661void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color);
14662void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color);
14663void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color);
14664#endif
14665
14666#ifdef cl_khr_depth_images
14667void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color);
14668void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color);
14669#endif //cl_khr_depth_images
14670
14671// OpenCL Extension v2.0 s9.18 - Mipmaps
14672#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14673#if defined(cl_khr_mipmap_image_writes)
14674void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color);
14675void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color);
14676void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color);
14677
14678void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color);
14679void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color);
14680void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color);
14681
14682void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color);
14683void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color);
14684void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color);
14685
14686void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color);
14687void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color);
14688void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color);
14689
14690void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float depth);
14691void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float depth);
14692
14693#ifdef cl_khr_3d_image_writes
14694void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color);
14695void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color);
14696void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color);
14697#endif //cl_khr_3d_image_writes
14698
14699#endif //defined(cl_khr_mipmap_image_writes)
14700#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14701
14702// Image write functions for half4 type
14703#ifdef cl_khr_fp16
14704void __ovld write_imageh(write_only image1d_t image, int coord, half4 color);
14705void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color);
14706#ifdef cl_khr_3d_image_writes
14707void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color);
14708#endif
14709void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color);
14710void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color);
14711void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color);
14712#endif //cl_khr_fp16
14713
14714// Image write functions for read_write images
14715#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14716void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color);
14717void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color);
14718void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color);
14719
14720void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color);
14721void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color);
14722void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color);
14723
14724void __ovld write_imagef(read_write image1d_t image, int coord, float4 color);
14725void __ovld write_imagei(read_write image1d_t image, int coord, int4 color);
14726void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color);
14727
14728void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color);
14729void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color);
14730void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color);
14731
14732void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color);
14733void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color);
14734void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color);
14735
14736#ifdef cl_khr_3d_image_writes
14737void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color);
14738void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color);
14739void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color);
14740#endif
14741
14742#ifdef cl_khr_depth_images
14743void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color);
14744void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color);
14745#endif //cl_khr_depth_images
14746
14747#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14748#if defined(cl_khr_mipmap_image_writes)
14749void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color);
14750void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color);
14751void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color);
14752
14753void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color);
14754void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color);
14755void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color);
14756
14757void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color);
14758void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color);
14759void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color);
14760
14761void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color);
14762void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color);
14763void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color);
14764
14765void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color);
14766void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color);
14767
14768#ifdef cl_khr_3d_image_writes
14769void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color);
14770void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color);
14771void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color);
14772#endif //cl_khr_3d_image_writes
14773
14774#endif //cl_khr_mipmap_image_writes
14775#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14776
14777// Image write functions for half4 type
14778#ifdef cl_khr_fp16
14779void __ovld write_imageh(read_write image1d_t image, int coord, half4 color);
14780void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color);
14781#ifdef cl_khr_3d_image_writes
14782void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color);
14783#endif
14784void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color);
14785void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color);
14786void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color);
14787#endif //cl_khr_fp16
14788#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14789
14790// Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have
14791// access qualifier, which by default assume read_only access qualifier. Image query builtin
14792// functions with write_only image argument should also be declared.
14793
14798int __ovld __cnfn get_image_width(read_only image1d_t image);
14799int __ovld __cnfn get_image_width(read_only image1d_buffer_t image);
14800int __ovld __cnfn get_image_width(read_only image2d_t image);
14801#ifdef cl_khr_3d_image_writes
14802int __ovld __cnfn get_image_width(read_only image3d_t image);
14803#endif
14804int __ovld __cnfn get_image_width(read_only image1d_array_t image);
14805int __ovld __cnfn get_image_width(read_only image2d_array_t image);
14806#ifdef cl_khr_depth_images
14807int __ovld __cnfn get_image_width(read_only image2d_depth_t image);
14808int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image);
14809#endif //cl_khr_depth_images
14810#if defined(cl_khr_gl_msaa_sharing)
14811int __ovld __cnfn get_image_width(read_only image2d_msaa_t image);
14812int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image);
14813int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image);
14814int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image);
14815#endif //cl_khr_gl_msaa_sharing
14816
14817int __ovld __cnfn get_image_width(write_only image1d_t image);
14818int __ovld __cnfn get_image_width(write_only image1d_buffer_t image);
14819int __ovld __cnfn get_image_width(write_only image2d_t image);
14820#ifdef cl_khr_3d_image_writes
14821int __ovld __cnfn get_image_width(write_only image3d_t image);
14822#endif
14823int __ovld __cnfn get_image_width(write_only image1d_array_t image);
14824int __ovld __cnfn get_image_width(write_only image2d_array_t image);
14825#ifdef cl_khr_depth_images
14826int __ovld __cnfn get_image_width(write_only image2d_depth_t image);
14827int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image);
14828#endif //cl_khr_depth_images
14829#if defined(cl_khr_gl_msaa_sharing)
14830int __ovld __cnfn get_image_width(write_only image2d_msaa_t image);
14831int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image);
14832int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image);
14833int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image);
14834#endif //cl_khr_gl_msaa_sharing
14835
14836#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14837int __ovld __cnfn get_image_width(read_write image1d_t image);
14838int __ovld __cnfn get_image_width(read_write image1d_buffer_t image);
14839int __ovld __cnfn get_image_width(read_write image2d_t image);
14840int __ovld __cnfn get_image_width(read_write image3d_t image);
14841int __ovld __cnfn get_image_width(read_write image1d_array_t image);
14842int __ovld __cnfn get_image_width(read_write image2d_array_t image);
14843#ifdef cl_khr_depth_images
14844int __ovld __cnfn get_image_width(read_write image2d_depth_t image);
14845int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image);
14846#endif //cl_khr_depth_images
14847#if defined(cl_khr_gl_msaa_sharing)
14848int __ovld __cnfn get_image_width(read_write image2d_msaa_t image);
14849int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image);
14850int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image);
14851int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image);
14852#endif //cl_khr_gl_msaa_sharing
14853#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14854
14858int __ovld __cnfn get_image_height(read_only image2d_t image);
14859int __ovld __cnfn get_image_height(read_only image3d_t image);
14860int __ovld __cnfn get_image_height(read_only image2d_array_t image);
14861#ifdef cl_khr_depth_images
14862int __ovld __cnfn get_image_height(read_only image2d_depth_t image);
14863int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image);
14864#endif //cl_khr_depth_images
14865#if defined(cl_khr_gl_msaa_sharing)
14866int __ovld __cnfn get_image_height(read_only image2d_msaa_t image);
14867int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image);
14868int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image);
14869int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image);
14870#endif //cl_khr_gl_msaa_sharing
14871
14872int __ovld __cnfn get_image_height(write_only image2d_t image);
14873#ifdef cl_khr_3d_image_writes
14874int __ovld __cnfn get_image_height(write_only image3d_t image);
14875#endif
14876int __ovld __cnfn get_image_height(write_only image2d_array_t image);
14877#ifdef cl_khr_depth_images
14878int __ovld __cnfn get_image_height(write_only image2d_depth_t image);
14879int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image);
14880#endif //cl_khr_depth_images
14881#if defined(cl_khr_gl_msaa_sharing)
14882int __ovld __cnfn get_image_height(write_only image2d_msaa_t image);
14883int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image);
14884int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image);
14885int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image);
14886#endif //cl_khr_gl_msaa_sharing
14887
14888#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14889int __ovld __cnfn get_image_height(read_write image2d_t image);
14890int __ovld __cnfn get_image_height(read_write image3d_t image);
14891int __ovld __cnfn get_image_height(read_write image2d_array_t image);
14892#ifdef cl_khr_depth_images
14893int __ovld __cnfn get_image_height(read_write image2d_depth_t image);
14894int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image);
14895#endif //cl_khr_depth_images
14896#if defined(cl_khr_gl_msaa_sharing)
14897int __ovld __cnfn get_image_height(read_write image2d_msaa_t image);
14898int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image);
14899int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image);
14900int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image);
14901#endif //cl_khr_gl_msaa_sharing
14902#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14903
14907int __ovld __cnfn get_image_depth(read_only image3d_t image);
14908
14909#ifdef cl_khr_3d_image_writes
14910int __ovld __cnfn get_image_depth(write_only image3d_t image);
14911#endif
14912
14913#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14914int __ovld __cnfn get_image_depth(read_write image3d_t image);
14915#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14916
14917// OpenCL Extension v2.0 s9.18 - Mipmaps
14918#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14919#ifdef cl_khr_mipmap_image
14924int __ovld get_image_num_mip_levels(read_only image1d_t image);
14925int __ovld get_image_num_mip_levels(read_only image2d_t image);
14926int __ovld get_image_num_mip_levels(read_only image3d_t image);
14927
14928int __ovld get_image_num_mip_levels(write_only image1d_t image);
14929int __ovld get_image_num_mip_levels(write_only image2d_t image);
14930#ifdef cl_khr_3d_image_writes
14931int __ovld get_image_num_mip_levels(write_only image3d_t image);
14932#endif
14933
14934int __ovld get_image_num_mip_levels(read_write image1d_t image);
14935int __ovld get_image_num_mip_levels(read_write image2d_t image);
14936int __ovld get_image_num_mip_levels(read_write image3d_t image);
14937
14938int __ovld get_image_num_mip_levels(read_only image1d_array_t image);
14939int __ovld get_image_num_mip_levels(read_only image2d_array_t image);
14940int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image);
14941int __ovld get_image_num_mip_levels(read_only image2d_depth_t image);
14942
14943int __ovld get_image_num_mip_levels(write_only image1d_array_t image);
14944int __ovld get_image_num_mip_levels(write_only image2d_array_t image);
14945int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image);
14946int __ovld get_image_num_mip_levels(write_only image2d_depth_t image);
14947
14948int __ovld get_image_num_mip_levels(read_write image1d_array_t image);
14949int __ovld get_image_num_mip_levels(read_write image2d_array_t image);
14950int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image);
14951int __ovld get_image_num_mip_levels(read_write image2d_depth_t image);
14952
14953#endif //cl_khr_mipmap_image
14954#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
14955
14975int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image);
14976int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image);
14977int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image);
14978int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image);
14979int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image);
14980int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image);
14981#ifdef cl_khr_depth_images
14982int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image);
14983int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image);
14984#endif //cl_khr_depth_images
14985#if defined(cl_khr_gl_msaa_sharing)
14986int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image);
14987int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image);
14988int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image);
14989int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image);
14990#endif //cl_khr_gl_msaa_sharing
14991
14992int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image);
14993int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image);
14994int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image);
14995#ifdef cl_khr_3d_image_writes
14996int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image);
14997#endif
14998int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image);
14999int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image);
15000#ifdef cl_khr_depth_images
15001int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image);
15002int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image);
15003#endif //cl_khr_depth_images
15004#if defined(cl_khr_gl_msaa_sharing)
15005int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image);
15006int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image);
15007int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image);
15008int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image);
15009#endif //cl_khr_gl_msaa_sharing
15010
15011#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15012int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image);
15013int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image);
15014int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image);
15015int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image);
15016int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image);
15017int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image);
15018#ifdef cl_khr_depth_images
15019int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image);
15020int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image);
15021#endif //cl_khr_depth_images
15022#if defined(cl_khr_gl_msaa_sharing)
15023int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image);
15024int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image);
15025int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image);
15026int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image);
15027#endif //cl_khr_gl_msaa_sharing
15028#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15029
15047int __ovld __cnfn get_image_channel_order(read_only image1d_t image);
15048int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image);
15049int __ovld __cnfn get_image_channel_order(read_only image2d_t image);
15050int __ovld __cnfn get_image_channel_order(read_only image3d_t image);
15051int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image);
15052int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image);
15053#ifdef cl_khr_depth_images
15054int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image);
15055int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image);
15056#endif //cl_khr_depth_images
15057#if defined(cl_khr_gl_msaa_sharing)
15058int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image);
15059int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image);
15060int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image);
15061int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image);
15062#endif //cl_khr_gl_msaa_sharing
15063
15064int __ovld __cnfn get_image_channel_order(write_only image1d_t image);
15065int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image);
15066int __ovld __cnfn get_image_channel_order(write_only image2d_t image);
15067#ifdef cl_khr_3d_image_writes
15068int __ovld __cnfn get_image_channel_order(write_only image3d_t image);
15069#endif
15070int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image);
15071int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image);
15072#ifdef cl_khr_depth_images
15073int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image);
15074int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image);
15075#endif //cl_khr_depth_images
15076#if defined(cl_khr_gl_msaa_sharing)
15077int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image);
15078int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image);
15079int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image);
15080int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image);
15081#endif //cl_khr_gl_msaa_sharing
15082
15083#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15084int __ovld __cnfn get_image_channel_order(read_write image1d_t image);
15085int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image);
15086int __ovld __cnfn get_image_channel_order(read_write image2d_t image);
15087int __ovld __cnfn get_image_channel_order(read_write image3d_t image);
15088int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image);
15089int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image);
15090#ifdef cl_khr_depth_images
15091int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image);
15092int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image);
15093#endif //cl_khr_depth_images
15094#if defined(cl_khr_gl_msaa_sharing)
15095int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image);
15096int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image);
15097int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image);
15098int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image);
15099#endif //cl_khr_gl_msaa_sharing
15100#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15101
15107int2 __ovld __cnfn get_image_dim(read_only image2d_t image);
15108int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image);
15109#ifdef cl_khr_depth_images
15110int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image);
15111int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image);
15112#endif //cl_khr_depth_images
15113#if defined(cl_khr_gl_msaa_sharing)
15114int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image);
15115int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image);
15116int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image);
15117int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image);
15118#endif //cl_khr_gl_msaa_sharing
15119
15120int2 __ovld __cnfn get_image_dim(write_only image2d_t image);
15121int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image);
15122#ifdef cl_khr_depth_images
15123int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image);
15124int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image);
15125#endif //cl_khr_depth_images
15126#if defined(cl_khr_gl_msaa_sharing)
15127int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image);
15128int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image);
15129int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image);
15130int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image);
15131#endif //cl_khr_gl_msaa_sharing
15132
15133#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15134int2 __ovld __cnfn get_image_dim(read_write image2d_t image);
15135int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image);
15136#ifdef cl_khr_depth_images
15137int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image);
15138int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image);
15139#endif //cl_khr_depth_images
15140#if defined(cl_khr_gl_msaa_sharing)
15141int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image);
15142int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image);
15143int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image);
15144int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image);
15145#endif //cl_khr_gl_msaa_sharing
15146#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15147
15154int4 __ovld __cnfn get_image_dim(read_only image3d_t image);
15155#ifdef cl_khr_3d_image_writes
15156int4 __ovld __cnfn get_image_dim(write_only image3d_t image);
15157#endif
15158#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15159int4 __ovld __cnfn get_image_dim(read_write image3d_t image);
15160#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15161
15166size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array);
15167size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array);
15168#ifdef cl_khr_depth_images
15169size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array);
15170#endif //cl_khr_depth_images
15171#if defined(cl_khr_gl_msaa_sharing)
15172size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array);
15173size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array);
15174#endif //cl_khr_gl_msaa_sharing
15175
15176size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array);
15177size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array);
15178#ifdef cl_khr_depth_images
15179size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array);
15180#endif //cl_khr_depth_images
15181#if defined(cl_khr_gl_msaa_sharing)
15182size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array);
15183size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array);
15184#endif //cl_khr_gl_msaa_sharing
15185
15186#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15187size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array);
15188size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array);
15189#ifdef cl_khr_depth_images
15190size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array);
15191#endif //cl_khr_depth_images
15192#if defined(cl_khr_gl_msaa_sharing)
15193size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array);
15194size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array);
15195#endif //cl_khr_gl_msaa_sharing
15196#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15197
15201#if defined(cl_khr_gl_msaa_sharing)
15202int __ovld get_image_num_samples(read_only image2d_msaa_t image);
15203int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image);
15204int __ovld get_image_num_samples(read_only image2d_array_msaa_t image);
15205int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image);
15206
15207int __ovld get_image_num_samples(write_only image2d_msaa_t image);
15208int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image);
15209int __ovld get_image_num_samples(write_only image2d_array_msaa_t image);
15210int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image);
15211
15212#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15213int __ovld get_image_num_samples(read_write image2d_msaa_t image);
15214int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image);
15215int __ovld get_image_num_samples(read_write image2d_array_msaa_t image);
15216int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image);
15217#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15218#endif
15219
15220// OpenCL v2.0 s6.13.15 - Work-group Functions
15221
15222#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15223int __ovld __conv work_group_all(int predicate);
15224int __ovld __conv work_group_any(int predicate);
15225
15226#ifdef cl_khr_fp16
15227half __ovld __conv work_group_broadcast(half a, size_t local_id);
15228half __ovld __conv work_group_broadcast(half a, size_t x, size_t y);
15229half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z);
15230#endif
15231int __ovld __conv work_group_broadcast(int a, size_t local_id);
15232int __ovld __conv work_group_broadcast(int a, size_t x, size_t y);
15233int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z);
15236uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z);
15237long __ovld __conv work_group_broadcast(long a, size_t local_id);
15238long __ovld __conv work_group_broadcast(long a, size_t x, size_t y);
15239long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z);
15242ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z);
15243float __ovld __conv work_group_broadcast(float a, size_t local_id);
15244float __ovld __conv work_group_broadcast(float a, size_t x, size_t y);
15245float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z);
15246#ifdef cl_khr_fp64
15247double __ovld __conv work_group_broadcast(double a, size_t local_id);
15248double __ovld __conv work_group_broadcast(double a, size_t x, size_t y);
15249double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z);
15250#endif //cl_khr_fp64
15251
15252#ifdef cl_khr_fp16
15262#endif
15308#ifdef cl_khr_fp64
15309double __ovld __conv work_group_reduce_add(double x);
15310double __ovld __conv work_group_reduce_min(double x);
15311double __ovld __conv work_group_reduce_max(double x);
15318#endif //cl_khr_fp64
15319
15320#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15321
15322// OpenCL v2.0 s6.13.16 - Pipe Functions
15323#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15324bool __ovld is_valid_reserve_id(reserve_id_t reserve_id);
15325#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15326
15327
15328// OpenCL v2.0 s6.13.17 - Enqueue Kernels
15329#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15330
15333ndrange_t __ovld ndrange_1D(size_t, size_t, size_t);
15334
15335ndrange_t __ovld ndrange_2D(const size_t[2]);
15336ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2]);
15337ndrange_t __ovld ndrange_2D(const size_t[2], const size_t[2], const size_t[2]);
15338
15339ndrange_t __ovld ndrange_3D(const size_t[3]);
15340ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3]);
15341ndrange_t __ovld ndrange_3D(const size_t[3], const size_t[3], const size_t[3]);
15342
15343int __ovld enqueue_marker(queue_t, uint, const clk_event_t*, clk_event_t*);
15344
15345void __ovld retain_event(clk_event_t);
15346
15347void __ovld release_event(clk_event_t);
15348
15349clk_event_t __ovld create_user_event(void);
15350
15351void __ovld set_user_event_status(clk_event_t e, int state);
15352
15353bool __ovld is_valid_event (clk_event_t event);
15354
15355void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value);
15356
15358#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15359
15360// OpenCL Extension v2.0 s9.17 - Sub-groups
15361
15362#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups)
15363// Shared Sub Group Functions
15364uint __ovld get_sub_group_size(void);
15365uint __ovld get_max_sub_group_size(void);
15366uint __ovld get_num_sub_groups(void);
15367#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15368uint __ovld get_enqueued_num_sub_groups(void);
15369#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15370uint __ovld get_sub_group_id(void);
15371uint __ovld get_sub_group_local_id(void);
15372
15373void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags);
15374#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15375void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope);
15376#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
15377
15378int __ovld __conv sub_group_all(int predicate);
15379int __ovld __conv sub_group_any(int predicate);
15380
15381int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id);
15382uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id);
15383long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id);
15384ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id);
15385float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id);
15386
15387int __ovld __conv sub_group_reduce_add(int x);
15388uint __ovld __conv sub_group_reduce_add(uint x);
15389long __ovld __conv sub_group_reduce_add(long x);
15390ulong __ovld __conv sub_group_reduce_add(ulong x);
15391float __ovld __conv sub_group_reduce_add(float x);
15392int __ovld __conv sub_group_reduce_min(int x);
15393uint __ovld __conv sub_group_reduce_min(uint x);
15394long __ovld __conv sub_group_reduce_min(long x);
15395ulong __ovld __conv sub_group_reduce_min(ulong x);
15396float __ovld __conv sub_group_reduce_min(float x);
15397int __ovld __conv sub_group_reduce_max(int x);
15398uint __ovld __conv sub_group_reduce_max(uint x);
15399long __ovld __conv sub_group_reduce_max(long x);
15400ulong __ovld __conv sub_group_reduce_max(ulong x);
15401float __ovld __conv sub_group_reduce_max(float x);
15402
15403int __ovld __conv sub_group_scan_exclusive_add(int x);
15404uint __ovld __conv sub_group_scan_exclusive_add(uint x);
15405long __ovld __conv sub_group_scan_exclusive_add(long x);
15406ulong __ovld __conv sub_group_scan_exclusive_add(ulong x);
15407float __ovld __conv sub_group_scan_exclusive_add(float x);
15408int __ovld __conv sub_group_scan_exclusive_min(int x);
15409uint __ovld __conv sub_group_scan_exclusive_min(uint x);
15410long __ovld __conv sub_group_scan_exclusive_min(long x);
15411ulong __ovld __conv sub_group_scan_exclusive_min(ulong x);
15412float __ovld __conv sub_group_scan_exclusive_min(float x);
15413int __ovld __conv sub_group_scan_exclusive_max(int x);
15414uint __ovld __conv sub_group_scan_exclusive_max(uint x);
15415long __ovld __conv sub_group_scan_exclusive_max(long x);
15416ulong __ovld __conv sub_group_scan_exclusive_max(ulong x);
15417float __ovld __conv sub_group_scan_exclusive_max(float x);
15418
15419int __ovld __conv sub_group_scan_inclusive_add(int x);
15420uint __ovld __conv sub_group_scan_inclusive_add(uint x);
15421long __ovld __conv sub_group_scan_inclusive_add(long x);
15422ulong __ovld __conv sub_group_scan_inclusive_add(ulong x);
15423float __ovld __conv sub_group_scan_inclusive_add(float x);
15424int __ovld __conv sub_group_scan_inclusive_min(int x);
15425uint __ovld __conv sub_group_scan_inclusive_min(uint x);
15426long __ovld __conv sub_group_scan_inclusive_min(long x);
15427ulong __ovld __conv sub_group_scan_inclusive_min(ulong x);
15428float __ovld __conv sub_group_scan_inclusive_min(float x);
15429int __ovld __conv sub_group_scan_inclusive_max(int x);
15430uint __ovld __conv sub_group_scan_inclusive_max(uint x);
15431long __ovld __conv sub_group_scan_inclusive_max(long x);
15432ulong __ovld __conv sub_group_scan_inclusive_max(ulong x);
15433float __ovld __conv sub_group_scan_inclusive_max(float x);
15434
15435#ifdef cl_khr_fp16
15436half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id);
15437half __ovld __conv sub_group_reduce_add(half x);
15438half __ovld __conv sub_group_reduce_min(half x);
15439half __ovld __conv sub_group_reduce_max(half x);
15440half __ovld __conv sub_group_scan_exclusive_add(half x);
15441half __ovld __conv sub_group_scan_exclusive_min(half x);
15442half __ovld __conv sub_group_scan_exclusive_max(half x);
15443half __ovld __conv sub_group_scan_inclusive_add(half x);
15444half __ovld __conv sub_group_scan_inclusive_min(half x);
15445half __ovld __conv sub_group_scan_inclusive_max(half x);
15446#endif //cl_khr_fp16
15447
15448#ifdef cl_khr_fp64
15449double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id);
15450double __ovld __conv sub_group_reduce_add(double x);
15451double __ovld __conv sub_group_reduce_min(double x);
15452double __ovld __conv sub_group_reduce_max(double x);
15453double __ovld __conv sub_group_scan_exclusive_add(double x);
15454double __ovld __conv sub_group_scan_exclusive_min(double x);
15455double __ovld __conv sub_group_scan_exclusive_max(double x);
15456double __ovld __conv sub_group_scan_inclusive_add(double x);
15457double __ovld __conv sub_group_scan_inclusive_min(double x);
15458double __ovld __conv sub_group_scan_inclusive_max(double x);
15459#endif //cl_khr_fp64
15460
15461#endif //cl_khr_subgroups cl_intel_subgroups
15462
15463#if defined(cl_khr_subgroup_extended_types)
15464char __ovld __conv sub_group_broadcast( char value, uint index );
15465char2 __ovld __conv sub_group_broadcast( char2 value, uint index );
15466char3 __ovld __conv sub_group_broadcast( char3 value, uint index );
15467char4 __ovld __conv sub_group_broadcast( char4 value, uint index );
15468char8 __ovld __conv sub_group_broadcast( char8 value, uint index );
15469char16 __ovld __conv sub_group_broadcast( char16 value, uint index );
15470
15471uchar __ovld __conv sub_group_broadcast( uchar value, uint index );
15472uchar2 __ovld __conv sub_group_broadcast( uchar2 value, uint index );
15473uchar3 __ovld __conv sub_group_broadcast( uchar3 value, uint index );
15474uchar4 __ovld __conv sub_group_broadcast( uchar4 value, uint index );
15475uchar8 __ovld __conv sub_group_broadcast( uchar8 value, uint index );
15476uchar16 __ovld __conv sub_group_broadcast( uchar16 value, uint index );
15477
15478short __ovld __conv sub_group_broadcast( short value, uint index );
15479short2 __ovld __conv sub_group_broadcast( short2 value, uint index );
15480short3 __ovld __conv sub_group_broadcast( short3 value, uint index );
15481short4 __ovld __conv sub_group_broadcast( short4 value, uint index );
15482short8 __ovld __conv sub_group_broadcast( short8 value, uint index );
15483short16 __ovld __conv sub_group_broadcast( short16 value, uint index );
15484
15485ushort __ovld __conv sub_group_broadcast( ushort value, uint index );
15486ushort2 __ovld __conv sub_group_broadcast( ushort2 value, uint index );
15487ushort3 __ovld __conv sub_group_broadcast( ushort3 value, uint index );
15488ushort4 __ovld __conv sub_group_broadcast( ushort4 value, uint index );
15489ushort8 __ovld __conv sub_group_broadcast( ushort8 value, uint index );
15490ushort16 __ovld __conv sub_group_broadcast( ushort16 value, uint index );
15491
15492// scalar int broadcast is part of cl_khr_subgroups
15493int2 __ovld __conv sub_group_broadcast( int2 value, uint index );
15494int3 __ovld __conv sub_group_broadcast( int3 value, uint index );
15495int4 __ovld __conv sub_group_broadcast( int4 value, uint index );
15496int8 __ovld __conv sub_group_broadcast( int8 value, uint index );
15497int16 __ovld __conv sub_group_broadcast( int16 value, uint index );
15498
15499// scalar uint broadcast is part of cl_khr_subgroups
15500uint2 __ovld __conv sub_group_broadcast( uint2 value, uint index );
15501uint3 __ovld __conv sub_group_broadcast( uint3 value, uint index );
15502uint4 __ovld __conv sub_group_broadcast( uint4 value, uint index );
15503uint8 __ovld __conv sub_group_broadcast( uint8 value, uint index );
15504uint16 __ovld __conv sub_group_broadcast( uint16 value, uint index );
15505
15506// scalar long broadcast is part of cl_khr_subgroups
15507long2 __ovld __conv sub_group_broadcast( long2 value, uint index );
15508long3 __ovld __conv sub_group_broadcast( long3 value, uint index );
15509long4 __ovld __conv sub_group_broadcast( long4 value, uint index );
15510long8 __ovld __conv sub_group_broadcast( long8 value, uint index );
15511long16 __ovld __conv sub_group_broadcast( long16 value, uint index );
15512
15513// scalar ulong broadcast is part of cl_khr_subgroups
15514ulong2 __ovld __conv sub_group_broadcast( ulong2 value, uint index );
15515ulong3 __ovld __conv sub_group_broadcast( ulong3 value, uint index );
15516ulong4 __ovld __conv sub_group_broadcast( ulong4 value, uint index );
15517ulong8 __ovld __conv sub_group_broadcast( ulong8 value, uint index );
15518ulong16 __ovld __conv sub_group_broadcast( ulong16 value, uint index );
15519
15520// scalar float broadcast is part of cl_khr_subgroups
15521float2 __ovld __conv sub_group_broadcast( float2 value, uint index );
15522float3 __ovld __conv sub_group_broadcast( float3 value, uint index );
15523float4 __ovld __conv sub_group_broadcast( float4 value, uint index );
15524float8 __ovld __conv sub_group_broadcast( float8 value, uint index );
15525float16 __ovld __conv sub_group_broadcast( float16 value, uint index );
15526
15527char __ovld __conv sub_group_reduce_add( char value );
15528uchar __ovld __conv sub_group_reduce_add( uchar value );
15529short __ovld __conv sub_group_reduce_add( short value );
15530ushort __ovld __conv sub_group_reduce_add( ushort value );
15531
15532char __ovld __conv sub_group_reduce_min( char value );
15533uchar __ovld __conv sub_group_reduce_min( uchar value );
15534short __ovld __conv sub_group_reduce_min( short value );
15535ushort __ovld __conv sub_group_reduce_min( ushort value );
15536
15537char __ovld __conv sub_group_reduce_max( char value );
15538uchar __ovld __conv sub_group_reduce_max( uchar value );
15539short __ovld __conv sub_group_reduce_max( short value );
15540ushort __ovld __conv sub_group_reduce_max( ushort value );
15541
15542char __ovld __conv sub_group_scan_inclusive_add( char value );
15543uchar __ovld __conv sub_group_scan_inclusive_add( uchar value );
15544short __ovld __conv sub_group_scan_inclusive_add( short value );
15545ushort __ovld __conv sub_group_scan_inclusive_add( ushort value );
15546
15547char __ovld __conv sub_group_scan_inclusive_min( char value );
15548uchar __ovld __conv sub_group_scan_inclusive_min( uchar value );
15549short __ovld __conv sub_group_scan_inclusive_min( short value );
15550ushort __ovld __conv sub_group_scan_inclusive_min( ushort value );
15551
15552char __ovld __conv sub_group_scan_inclusive_max( char value );
15553uchar __ovld __conv sub_group_scan_inclusive_max( uchar value );
15554short __ovld __conv sub_group_scan_inclusive_max( short value );
15555ushort __ovld __conv sub_group_scan_inclusive_max( ushort value );
15556
15557char __ovld __conv sub_group_scan_exclusive_add( char value );
15558uchar __ovld __conv sub_group_scan_exclusive_add( uchar value );
15559short __ovld __conv sub_group_scan_exclusive_add( short value );
15560ushort __ovld __conv sub_group_scan_exclusive_add( ushort value );
15561
15562char __ovld __conv sub_group_scan_exclusive_min( char value );
15563uchar __ovld __conv sub_group_scan_exclusive_min( uchar value );
15564short __ovld __conv sub_group_scan_exclusive_min( short value );
15565ushort __ovld __conv sub_group_scan_exclusive_min( ushort value );
15566
15567char __ovld __conv sub_group_scan_exclusive_max( char value );
15568uchar __ovld __conv sub_group_scan_exclusive_max( uchar value );
15569short __ovld __conv sub_group_scan_exclusive_max( short value );
15570ushort __ovld __conv sub_group_scan_exclusive_max( ushort value );
15571
15572#if defined(cl_khr_fp16)
15573// scalar half broadcast is part of cl_khr_subgroups
15574half2 __ovld __conv sub_group_broadcast( half2 value, uint index );
15575half3 __ovld __conv sub_group_broadcast( half3 value, uint index );
15576half4 __ovld __conv sub_group_broadcast( half4 value, uint index );
15577half8 __ovld __conv sub_group_broadcast( half8 value, uint index );
15578half16 __ovld __conv sub_group_broadcast( half16 value, uint index );
15579#endif // cl_khr_fp16
15580
15581#if defined(cl_khr_fp64)
15582// scalar double broadcast is part of cl_khr_subgroups
15583double2 __ovld __conv sub_group_broadcast( double2 value, uint index );
15584double3 __ovld __conv sub_group_broadcast( double3 value, uint index );
15585double4 __ovld __conv sub_group_broadcast( double4 value, uint index );
15586double8 __ovld __conv sub_group_broadcast( double8 value, uint index );
15587double16 __ovld __conv sub_group_broadcast( double16 value, uint index );
15588#endif // cl_khr_fp64
15589
15590#endif // cl_khr_subgroup_extended_types
15591
15592#if defined(cl_khr_subgroup_non_uniform_vote)
15593int __ovld sub_group_elect(void);
15594int __ovld sub_group_non_uniform_all( int predicate );
15595int __ovld sub_group_non_uniform_any( int predicate );
15596
15597int __ovld sub_group_non_uniform_all_equal( char value );
15598int __ovld sub_group_non_uniform_all_equal( uchar value );
15599int __ovld sub_group_non_uniform_all_equal( short value );
15600int __ovld sub_group_non_uniform_all_equal( ushort value );
15601int __ovld sub_group_non_uniform_all_equal( int value );
15602int __ovld sub_group_non_uniform_all_equal( uint value );
15603int __ovld sub_group_non_uniform_all_equal( long value );
15604int __ovld sub_group_non_uniform_all_equal( ulong value );
15605int __ovld sub_group_non_uniform_all_equal( float value );
15606
15607#if defined(cl_khr_fp16)
15608int __ovld sub_group_non_uniform_all_equal( half value );
15609#endif // cl_khr_fp16
15610
15611#if defined(cl_khr_fp64)
15612int __ovld sub_group_non_uniform_all_equal( double value );
15613#endif // cl_khr_fp64
15614
15615#endif // cl_khr_subgroup_non_uniform_vote
15616
15617#if defined(cl_khr_subgroup_ballot)
15618char __ovld sub_group_non_uniform_broadcast( char value, uint index );
15619char2 __ovld sub_group_non_uniform_broadcast( char2 value, uint index );
15620char3 __ovld sub_group_non_uniform_broadcast( char3 value, uint index );
15621char4 __ovld sub_group_non_uniform_broadcast( char4 value, uint index );
15622char8 __ovld sub_group_non_uniform_broadcast( char8 value, uint index );
15623char16 __ovld sub_group_non_uniform_broadcast( char16 value, uint index );
15624
15625uchar __ovld sub_group_non_uniform_broadcast( uchar value, uint index );
15626uchar2 __ovld sub_group_non_uniform_broadcast( uchar2 value, uint index );
15627uchar3 __ovld sub_group_non_uniform_broadcast( uchar3 value, uint index );
15628uchar4 __ovld sub_group_non_uniform_broadcast( uchar4 value, uint index );
15629uchar8 __ovld sub_group_non_uniform_broadcast( uchar8 value, uint index );
15630uchar16 __ovld sub_group_non_uniform_broadcast( uchar16 value, uint index );
15631
15632short __ovld sub_group_non_uniform_broadcast( short value, uint index );
15633short2 __ovld sub_group_non_uniform_broadcast( short2 value, uint index );
15634short3 __ovld sub_group_non_uniform_broadcast( short3 value, uint index );
15635short4 __ovld sub_group_non_uniform_broadcast( short4 value, uint index );
15636short8 __ovld sub_group_non_uniform_broadcast( short8 value, uint index );
15637short16 __ovld sub_group_non_uniform_broadcast( short16 value, uint index );
15638
15639ushort __ovld sub_group_non_uniform_broadcast( ushort value, uint index );
15640ushort2 __ovld sub_group_non_uniform_broadcast( ushort2 value, uint index );
15641ushort3 __ovld sub_group_non_uniform_broadcast( ushort3 value, uint index );
15642ushort4 __ovld sub_group_non_uniform_broadcast( ushort4 value, uint index );
15643ushort8 __ovld sub_group_non_uniform_broadcast( ushort8 value, uint index );
15644ushort16 __ovld sub_group_non_uniform_broadcast( ushort16 value, uint index );
15645
15646int __ovld sub_group_non_uniform_broadcast( int value, uint index );
15647int2 __ovld sub_group_non_uniform_broadcast( int2 value, uint index );
15648int3 __ovld sub_group_non_uniform_broadcast( int3 value, uint index );
15649int4 __ovld sub_group_non_uniform_broadcast( int4 value, uint index );
15650int8 __ovld sub_group_non_uniform_broadcast( int8 value, uint index );
15651int16 __ovld sub_group_non_uniform_broadcast( int16 value, uint index );
15652
15653uint __ovld sub_group_non_uniform_broadcast( uint value, uint index );
15654uint2 __ovld sub_group_non_uniform_broadcast( uint2 value, uint index );
15655uint3 __ovld sub_group_non_uniform_broadcast( uint3 value, uint index );
15656uint4 __ovld sub_group_non_uniform_broadcast( uint4 value, uint index );
15657uint8 __ovld sub_group_non_uniform_broadcast( uint8 value, uint index );
15658uint16 __ovld sub_group_non_uniform_broadcast( uint16 value, uint index );
15659
15660long __ovld sub_group_non_uniform_broadcast( long value, uint index );
15661long2 __ovld sub_group_non_uniform_broadcast( long2 value, uint index );
15662long3 __ovld sub_group_non_uniform_broadcast( long3 value, uint index );
15663long4 __ovld sub_group_non_uniform_broadcast( long4 value, uint index );
15664long8 __ovld sub_group_non_uniform_broadcast( long8 value, uint index );
15665long16 __ovld sub_group_non_uniform_broadcast( long16 value, uint index );
15666
15667ulong __ovld sub_group_non_uniform_broadcast( ulong value, uint index );
15668ulong2 __ovld sub_group_non_uniform_broadcast( ulong2 value, uint index );
15669ulong3 __ovld sub_group_non_uniform_broadcast( ulong3 value, uint index );
15670ulong4 __ovld sub_group_non_uniform_broadcast( ulong4 value, uint index );
15671ulong8 __ovld sub_group_non_uniform_broadcast( ulong8 value, uint index );
15672ulong16 __ovld sub_group_non_uniform_broadcast( ulong16 value, uint index );
15673
15674float __ovld sub_group_non_uniform_broadcast( float value, uint index );
15675float2 __ovld sub_group_non_uniform_broadcast( float2 value, uint index );
15676float3 __ovld sub_group_non_uniform_broadcast( float3 value, uint index );
15677float4 __ovld sub_group_non_uniform_broadcast( float4 value, uint index );
15678float8 __ovld sub_group_non_uniform_broadcast( float8 value, uint index );
15679float16 __ovld sub_group_non_uniform_broadcast( float16 value, uint index );
15680
15681char __ovld sub_group_broadcast_first( char value );
15682uchar __ovld sub_group_broadcast_first( uchar value );
15683short __ovld sub_group_broadcast_first( short value );
15684ushort __ovld sub_group_broadcast_first( ushort value );
15685int __ovld sub_group_broadcast_first( int value );
15686uint __ovld sub_group_broadcast_first( uint value );
15687long __ovld sub_group_broadcast_first( long value );
15688ulong __ovld sub_group_broadcast_first( ulong value );
15689float __ovld sub_group_broadcast_first( float value );
15690
15691uint4 __ovld sub_group_ballot( int predicate );
15692int __ovld __cnfn sub_group_inverse_ballot( uint4 value );
15693int __ovld __cnfn sub_group_ballot_bit_extract( uint4 value, uint index );
15694uint __ovld __cnfn sub_group_ballot_bit_count( uint4 value );
15695
15696uint __ovld sub_group_ballot_inclusive_scan( uint4 value );
15697uint __ovld sub_group_ballot_exclusive_scan( uint4 value );
15698uint __ovld sub_group_ballot_find_lsb( uint4 value );
15699uint __ovld sub_group_ballot_find_msb( uint4 value );
15700
15701uint4 __ovld __cnfn get_sub_group_eq_mask(void);
15702uint4 __ovld __cnfn get_sub_group_ge_mask(void);
15703uint4 __ovld __cnfn get_sub_group_gt_mask(void);
15704uint4 __ovld __cnfn get_sub_group_le_mask(void);
15705uint4 __ovld __cnfn get_sub_group_lt_mask(void);
15706
15707#if defined(cl_khr_fp16)
15708half __ovld sub_group_non_uniform_broadcast( half value, uint index );
15709half2 __ovld sub_group_non_uniform_broadcast( half2 value, uint index );
15710half3 __ovld sub_group_non_uniform_broadcast( half3 value, uint index );
15711half4 __ovld sub_group_non_uniform_broadcast( half4 value, uint index );
15712half8 __ovld sub_group_non_uniform_broadcast( half8 value, uint index );
15713half16 __ovld sub_group_non_uniform_broadcast( half16 value, uint index );
15714
15715half __ovld sub_group_broadcast_first( half value );
15716#endif // cl_khr_fp16
15717
15718#if defined(cl_khr_fp64)
15719double __ovld sub_group_non_uniform_broadcast( double value, uint index );
15720double2 __ovld sub_group_non_uniform_broadcast( double2 value, uint index );
15721double3 __ovld sub_group_non_uniform_broadcast( double3 value, uint index );
15722double4 __ovld sub_group_non_uniform_broadcast( double4 value, uint index );
15723double8 __ovld sub_group_non_uniform_broadcast( double8 value, uint index );
15724double16 __ovld sub_group_non_uniform_broadcast( double16 value, uint index );
15725
15726double __ovld sub_group_broadcast_first( double value );
15727#endif // cl_khr_fp64
15728
15729#endif // cl_khr_subgroup_ballot
15730
15731#if defined(cl_khr_subgroup_non_uniform_arithmetic)
15732char __ovld sub_group_non_uniform_reduce_add( char value );
15733uchar __ovld sub_group_non_uniform_reduce_add( uchar value );
15734short __ovld sub_group_non_uniform_reduce_add( short value );
15735ushort __ovld sub_group_non_uniform_reduce_add( ushort value );
15736int __ovld sub_group_non_uniform_reduce_add( int value );
15737uint __ovld sub_group_non_uniform_reduce_add( uint value );
15738long __ovld sub_group_non_uniform_reduce_add( long value );
15739ulong __ovld sub_group_non_uniform_reduce_add( ulong value );
15740float __ovld sub_group_non_uniform_reduce_add( float value );
15741
15742char __ovld sub_group_non_uniform_reduce_mul( char value );
15743uchar __ovld sub_group_non_uniform_reduce_mul( uchar value );
15744short __ovld sub_group_non_uniform_reduce_mul( short value );
15745ushort __ovld sub_group_non_uniform_reduce_mul( ushort value );
15746int __ovld sub_group_non_uniform_reduce_mul( int value );
15747uint __ovld sub_group_non_uniform_reduce_mul( uint value );
15748long __ovld sub_group_non_uniform_reduce_mul( long value );
15749ulong __ovld sub_group_non_uniform_reduce_mul( ulong value );
15750float __ovld sub_group_non_uniform_reduce_mul( float value );
15751
15752char __ovld sub_group_non_uniform_reduce_min( char value );
15753uchar __ovld sub_group_non_uniform_reduce_min( uchar value );
15754short __ovld sub_group_non_uniform_reduce_min( short value );
15755ushort __ovld sub_group_non_uniform_reduce_min( ushort value );
15756int __ovld sub_group_non_uniform_reduce_min( int value );
15757uint __ovld sub_group_non_uniform_reduce_min( uint value );
15758long __ovld sub_group_non_uniform_reduce_min( long value );
15759ulong __ovld sub_group_non_uniform_reduce_min( ulong value );
15760float __ovld sub_group_non_uniform_reduce_min( float value );
15761
15762char __ovld sub_group_non_uniform_reduce_max( char value );
15763uchar __ovld sub_group_non_uniform_reduce_max( uchar value );
15764short __ovld sub_group_non_uniform_reduce_max( short value );
15765ushort __ovld sub_group_non_uniform_reduce_max( ushort value );
15766int __ovld sub_group_non_uniform_reduce_max( int value );
15767uint __ovld sub_group_non_uniform_reduce_max( uint value );
15768long __ovld sub_group_non_uniform_reduce_max( long value );
15769ulong __ovld sub_group_non_uniform_reduce_max( ulong value );
15770float __ovld sub_group_non_uniform_reduce_max( float value );
15771
15772char __ovld sub_group_non_uniform_scan_inclusive_add( char value );
15773uchar __ovld sub_group_non_uniform_scan_inclusive_add( uchar value );
15774short __ovld sub_group_non_uniform_scan_inclusive_add( short value );
15775ushort __ovld sub_group_non_uniform_scan_inclusive_add( ushort value );
15776int __ovld sub_group_non_uniform_scan_inclusive_add( int value );
15777uint __ovld sub_group_non_uniform_scan_inclusive_add( uint value );
15778long __ovld sub_group_non_uniform_scan_inclusive_add( long value );
15779ulong __ovld sub_group_non_uniform_scan_inclusive_add( ulong value );
15780float __ovld sub_group_non_uniform_scan_inclusive_add( float value );
15781
15782char __ovld sub_group_non_uniform_scan_inclusive_mul( char value );
15783uchar __ovld sub_group_non_uniform_scan_inclusive_mul( uchar value );
15784short __ovld sub_group_non_uniform_scan_inclusive_mul( short value );
15785ushort __ovld sub_group_non_uniform_scan_inclusive_mul( ushort value );
15786int __ovld sub_group_non_uniform_scan_inclusive_mul( int value );
15787uint __ovld sub_group_non_uniform_scan_inclusive_mul( uint value );
15788long __ovld sub_group_non_uniform_scan_inclusive_mul( long value );
15789ulong __ovld sub_group_non_uniform_scan_inclusive_mul( ulong value );
15790float __ovld sub_group_non_uniform_scan_inclusive_mul( float value );
15791
15792char __ovld sub_group_non_uniform_scan_inclusive_min( char value );
15793uchar __ovld sub_group_non_uniform_scan_inclusive_min( uchar value );
15794short __ovld sub_group_non_uniform_scan_inclusive_min( short value );
15795ushort __ovld sub_group_non_uniform_scan_inclusive_min( ushort value );
15796int __ovld sub_group_non_uniform_scan_inclusive_min( int value );
15797uint __ovld sub_group_non_uniform_scan_inclusive_min( uint value );
15798long __ovld sub_group_non_uniform_scan_inclusive_min( long value );
15799ulong __ovld sub_group_non_uniform_scan_inclusive_min( ulong value );
15800float __ovld sub_group_non_uniform_scan_inclusive_min( float value );
15801
15802char __ovld sub_group_non_uniform_scan_inclusive_max( char value );
15803uchar __ovld sub_group_non_uniform_scan_inclusive_max( uchar value );
15804short __ovld sub_group_non_uniform_scan_inclusive_max( short value );
15805ushort __ovld sub_group_non_uniform_scan_inclusive_max( ushort value );
15806int __ovld sub_group_non_uniform_scan_inclusive_max( int value );
15807uint __ovld sub_group_non_uniform_scan_inclusive_max( uint value );
15808long __ovld sub_group_non_uniform_scan_inclusive_max( long value );
15809ulong __ovld sub_group_non_uniform_scan_inclusive_max( ulong value );
15810float __ovld sub_group_non_uniform_scan_inclusive_max( float value );
15811
15812char __ovld sub_group_non_uniform_scan_exclusive_add( char value );
15813uchar __ovld sub_group_non_uniform_scan_exclusive_add( uchar value );
15814short __ovld sub_group_non_uniform_scan_exclusive_add( short value );
15815ushort __ovld sub_group_non_uniform_scan_exclusive_add( ushort value );
15816int __ovld sub_group_non_uniform_scan_exclusive_add( int value );
15817uint __ovld sub_group_non_uniform_scan_exclusive_add( uint value );
15818long __ovld sub_group_non_uniform_scan_exclusive_add( long value );
15819ulong __ovld sub_group_non_uniform_scan_exclusive_add( ulong value );
15820float __ovld sub_group_non_uniform_scan_exclusive_add( float value );
15821
15822char __ovld sub_group_non_uniform_scan_exclusive_mul( char value );
15823uchar __ovld sub_group_non_uniform_scan_exclusive_mul( uchar value );
15824short __ovld sub_group_non_uniform_scan_exclusive_mul( short value );
15825ushort __ovld sub_group_non_uniform_scan_exclusive_mul( ushort value );
15826int __ovld sub_group_non_uniform_scan_exclusive_mul( int value );
15827uint __ovld sub_group_non_uniform_scan_exclusive_mul( uint value );
15828long __ovld sub_group_non_uniform_scan_exclusive_mul( long value );
15829ulong __ovld sub_group_non_uniform_scan_exclusive_mul( ulong value );
15830float __ovld sub_group_non_uniform_scan_exclusive_mul( float value );
15831
15832char __ovld sub_group_non_uniform_scan_exclusive_min( char value );
15833uchar __ovld sub_group_non_uniform_scan_exclusive_min( uchar value );
15834short __ovld sub_group_non_uniform_scan_exclusive_min( short value );
15835ushort __ovld sub_group_non_uniform_scan_exclusive_min( ushort value );
15836int __ovld sub_group_non_uniform_scan_exclusive_min( int value );
15837uint __ovld sub_group_non_uniform_scan_exclusive_min( uint value );
15838long __ovld sub_group_non_uniform_scan_exclusive_min( long value );
15839ulong __ovld sub_group_non_uniform_scan_exclusive_min( ulong value );
15840float __ovld sub_group_non_uniform_scan_exclusive_min( float value );
15841
15842char __ovld sub_group_non_uniform_scan_exclusive_max( char value );
15843uchar __ovld sub_group_non_uniform_scan_exclusive_max( uchar value );
15844short __ovld sub_group_non_uniform_scan_exclusive_max( short value );
15845ushort __ovld sub_group_non_uniform_scan_exclusive_max( ushort value );
15846int __ovld sub_group_non_uniform_scan_exclusive_max( int value );
15847uint __ovld sub_group_non_uniform_scan_exclusive_max( uint value );
15848long __ovld sub_group_non_uniform_scan_exclusive_max( long value );
15849ulong __ovld sub_group_non_uniform_scan_exclusive_max( ulong value );
15850float __ovld sub_group_non_uniform_scan_exclusive_max( float value );
15851
15852char __ovld sub_group_non_uniform_reduce_and( char value );
15853uchar __ovld sub_group_non_uniform_reduce_and( uchar value );
15854short __ovld sub_group_non_uniform_reduce_and( short value );
15855ushort __ovld sub_group_non_uniform_reduce_and( ushort value );
15856int __ovld sub_group_non_uniform_reduce_and( int value );
15857uint __ovld sub_group_non_uniform_reduce_and( uint value );
15858long __ovld sub_group_non_uniform_reduce_and( long value );
15859ulong __ovld sub_group_non_uniform_reduce_and( ulong value );
15860
15861char __ovld sub_group_non_uniform_reduce_or( char value );
15862uchar __ovld sub_group_non_uniform_reduce_or( uchar value );
15863short __ovld sub_group_non_uniform_reduce_or( short value );
15864ushort __ovld sub_group_non_uniform_reduce_or( ushort value );
15865int __ovld sub_group_non_uniform_reduce_or( int value );
15866uint __ovld sub_group_non_uniform_reduce_or( uint value );
15867long __ovld sub_group_non_uniform_reduce_or( long value );
15868ulong __ovld sub_group_non_uniform_reduce_or( ulong value );
15869
15870char __ovld sub_group_non_uniform_reduce_xor( char value );
15871uchar __ovld sub_group_non_uniform_reduce_xor( uchar value );
15872short __ovld sub_group_non_uniform_reduce_xor( short value );
15873ushort __ovld sub_group_non_uniform_reduce_xor( ushort value );
15874int __ovld sub_group_non_uniform_reduce_xor( int value );
15875uint __ovld sub_group_non_uniform_reduce_xor( uint value );
15876long __ovld sub_group_non_uniform_reduce_xor( long value );
15877ulong __ovld sub_group_non_uniform_reduce_xor( ulong value );
15878
15879char __ovld sub_group_non_uniform_scan_inclusive_and( char value );
15880uchar __ovld sub_group_non_uniform_scan_inclusive_and( uchar value );
15881short __ovld sub_group_non_uniform_scan_inclusive_and( short value );
15882ushort __ovld sub_group_non_uniform_scan_inclusive_and( ushort value );
15883int __ovld sub_group_non_uniform_scan_inclusive_and( int value );
15884uint __ovld sub_group_non_uniform_scan_inclusive_and( uint value );
15885long __ovld sub_group_non_uniform_scan_inclusive_and( long value );
15886ulong __ovld sub_group_non_uniform_scan_inclusive_and( ulong value );
15887
15888char __ovld sub_group_non_uniform_scan_inclusive_or( char value );
15889uchar __ovld sub_group_non_uniform_scan_inclusive_or( uchar value );
15890short __ovld sub_group_non_uniform_scan_inclusive_or( short value );
15891ushort __ovld sub_group_non_uniform_scan_inclusive_or( ushort value );
15892int __ovld sub_group_non_uniform_scan_inclusive_or( int value );
15893uint __ovld sub_group_non_uniform_scan_inclusive_or( uint value );
15894long __ovld sub_group_non_uniform_scan_inclusive_or( long value );
15895ulong __ovld sub_group_non_uniform_scan_inclusive_or( ulong value );
15896
15897char __ovld sub_group_non_uniform_scan_inclusive_xor( char value );
15898uchar __ovld sub_group_non_uniform_scan_inclusive_xor( uchar value );
15899short __ovld sub_group_non_uniform_scan_inclusive_xor( short value );
15900ushort __ovld sub_group_non_uniform_scan_inclusive_xor( ushort value );
15901int __ovld sub_group_non_uniform_scan_inclusive_xor( int value );
15902uint __ovld sub_group_non_uniform_scan_inclusive_xor( uint value );
15903long __ovld sub_group_non_uniform_scan_inclusive_xor( long value );
15904ulong __ovld sub_group_non_uniform_scan_inclusive_xor( ulong value );
15905
15906char __ovld sub_group_non_uniform_scan_exclusive_and( char value );
15907uchar __ovld sub_group_non_uniform_scan_exclusive_and( uchar value );
15908short __ovld sub_group_non_uniform_scan_exclusive_and( short value );
15909ushort __ovld sub_group_non_uniform_scan_exclusive_and( ushort value );
15910int __ovld sub_group_non_uniform_scan_exclusive_and( int value );
15911uint __ovld sub_group_non_uniform_scan_exclusive_and( uint value );
15912long __ovld sub_group_non_uniform_scan_exclusive_and( long value );
15913ulong __ovld sub_group_non_uniform_scan_exclusive_and( ulong value );
15914
15915char __ovld sub_group_non_uniform_scan_exclusive_or( char value );
15916uchar __ovld sub_group_non_uniform_scan_exclusive_or( uchar value );
15917short __ovld sub_group_non_uniform_scan_exclusive_or( short value );
15918ushort __ovld sub_group_non_uniform_scan_exclusive_or( ushort value );
15919int __ovld sub_group_non_uniform_scan_exclusive_or( int value );
15920uint __ovld sub_group_non_uniform_scan_exclusive_or( uint value );
15921long __ovld sub_group_non_uniform_scan_exclusive_or( long value );
15922ulong __ovld sub_group_non_uniform_scan_exclusive_or( ulong value );
15923
15924char __ovld sub_group_non_uniform_scan_exclusive_xor( char value );
15925uchar __ovld sub_group_non_uniform_scan_exclusive_xor( uchar value );
15926short __ovld sub_group_non_uniform_scan_exclusive_xor( short value );
15927ushort __ovld sub_group_non_uniform_scan_exclusive_xor( ushort value );
15928int __ovld sub_group_non_uniform_scan_exclusive_xor( int value );
15929uint __ovld sub_group_non_uniform_scan_exclusive_xor( uint value );
15930long __ovld sub_group_non_uniform_scan_exclusive_xor( long value );
15931ulong __ovld sub_group_non_uniform_scan_exclusive_xor( ulong value );
15932
15933int __ovld sub_group_non_uniform_reduce_logical_and( int predicate );
15934int __ovld sub_group_non_uniform_reduce_logical_or( int predicate );
15935int __ovld sub_group_non_uniform_reduce_logical_xor( int predicate );
15936
15937int __ovld sub_group_non_uniform_scan_inclusive_logical_and( int predicate );
15938int __ovld sub_group_non_uniform_scan_inclusive_logical_or( int predicate );
15939int __ovld sub_group_non_uniform_scan_inclusive_logical_xor( int predicate );
15940
15941int __ovld sub_group_non_uniform_scan_exclusive_logical_and( int predicate );
15942int __ovld sub_group_non_uniform_scan_exclusive_logical_or( int predicate );
15943int __ovld sub_group_non_uniform_scan_exclusive_logical_xor( int predicate );
15944
15945#if defined(cl_khr_fp16)
15946half __ovld sub_group_non_uniform_reduce_add( half value );
15947half __ovld sub_group_non_uniform_reduce_mul( half value );
15948half __ovld sub_group_non_uniform_reduce_min( half value );
15949half __ovld sub_group_non_uniform_reduce_max( half value );
15950half __ovld sub_group_non_uniform_scan_inclusive_add( half value );
15951half __ovld sub_group_non_uniform_scan_inclusive_mul( half value );
15952half __ovld sub_group_non_uniform_scan_inclusive_min( half value );
15953half __ovld sub_group_non_uniform_scan_inclusive_max( half value );
15954half __ovld sub_group_non_uniform_scan_exclusive_add( half value );
15955half __ovld sub_group_non_uniform_scan_exclusive_mul( half value );
15956half __ovld sub_group_non_uniform_scan_exclusive_min( half value );
15957half __ovld sub_group_non_uniform_scan_exclusive_max( half value );
15958#endif // cl_khr_fp16
15959
15960#if defined(cl_khr_fp64)
15961double __ovld sub_group_non_uniform_reduce_add( double value );
15962double __ovld sub_group_non_uniform_reduce_mul( double value );
15963double __ovld sub_group_non_uniform_reduce_min( double value );
15964double __ovld sub_group_non_uniform_reduce_max( double value );
15965double __ovld sub_group_non_uniform_scan_inclusive_add( double value );
15966double __ovld sub_group_non_uniform_scan_inclusive_mul( double value );
15967double __ovld sub_group_non_uniform_scan_inclusive_min( double value );
15968double __ovld sub_group_non_uniform_scan_inclusive_max( double value );
15969double __ovld sub_group_non_uniform_scan_exclusive_add( double value );
15970double __ovld sub_group_non_uniform_scan_exclusive_mul( double value );
15971double __ovld sub_group_non_uniform_scan_exclusive_min( double value );
15972double __ovld sub_group_non_uniform_scan_exclusive_max( double value );
15973#endif // cl_khr_fp64
15974
15975#endif // cl_khr_subgroup_non_uniform_arithmetic
15976
15977#if defined(cl_khr_subgroup_shuffle)
15978char __ovld sub_group_shuffle( char value, uint index );
15979uchar __ovld sub_group_shuffle( uchar value, uint index );
15980short __ovld sub_group_shuffle( short value, uint index );
15981ushort __ovld sub_group_shuffle( ushort value, uint index );
15982int __ovld sub_group_shuffle( int value, uint index );
15983uint __ovld sub_group_shuffle( uint value, uint index );
15984long __ovld sub_group_shuffle( long value, uint index );
15985ulong __ovld sub_group_shuffle( ulong value, uint index );
15986float __ovld sub_group_shuffle( float value, uint index );
15987
15988char __ovld sub_group_shuffle_xor( char value, uint mask );
15989uchar __ovld sub_group_shuffle_xor( uchar value, uint mask );
15990short __ovld sub_group_shuffle_xor( short value, uint mask );
15991ushort __ovld sub_group_shuffle_xor( ushort value, uint mask );
15992int __ovld sub_group_shuffle_xor( int value, uint mask );
15993uint __ovld sub_group_shuffle_xor( uint value, uint mask );
15994long __ovld sub_group_shuffle_xor( long value, uint mask );
15995ulong __ovld sub_group_shuffle_xor( ulong value, uint mask );
15996float __ovld sub_group_shuffle_xor( float value, uint mask );
15997
15998#if defined(cl_khr_fp16)
15999half __ovld sub_group_shuffle( half value, uint index );
16000half __ovld sub_group_shuffle_xor( half value, uint mask );
16001#endif // cl_khr_fp16
16002
16003#if defined(cl_khr_fp64)
16004double __ovld sub_group_shuffle( double value, uint index );
16005double __ovld sub_group_shuffle_xor( double value, uint mask );
16006#endif // cl_khr_fp64
16007
16008#endif // cl_khr_subgroup_shuffle
16009
16010#if defined(cl_khr_subgroup_shuffle_relative)
16011char __ovld sub_group_shuffle_up( char value, uint delta );
16012uchar __ovld sub_group_shuffle_up( uchar value, uint delta );
16013short __ovld sub_group_shuffle_up( short value, uint delta );
16014ushort __ovld sub_group_shuffle_up( ushort value, uint delta );
16015int __ovld sub_group_shuffle_up( int value, uint delta );
16016uint __ovld sub_group_shuffle_up( uint value, uint delta );
16017long __ovld sub_group_shuffle_up( long value, uint delta );
16018ulong __ovld sub_group_shuffle_up( ulong value, uint delta );
16019float __ovld sub_group_shuffle_up( float value, uint delta );
16020
16021char __ovld sub_group_shuffle_down( char value, uint delta );
16022uchar __ovld sub_group_shuffle_down( uchar value, uint delta );
16023short __ovld sub_group_shuffle_down( short value, uint delta );
16024ushort __ovld sub_group_shuffle_down( ushort value, uint delta );
16025int __ovld sub_group_shuffle_down( int value, uint delta );
16026uint __ovld sub_group_shuffle_down( uint value, uint delta );
16027long __ovld sub_group_shuffle_down( long value, uint delta );
16028ulong __ovld sub_group_shuffle_down( ulong value, uint delta );
16029float __ovld sub_group_shuffle_down( float value, uint delta );
16030
16031#if defined(cl_khr_fp16)
16032half __ovld sub_group_shuffle_up( half value, uint delta );
16033half __ovld sub_group_shuffle_down( half value, uint delta );
16034#endif // cl_khr_fp16
16035
16036#if defined(cl_khr_fp64)
16037double __ovld sub_group_shuffle_up( double value, uint delta );
16038double __ovld sub_group_shuffle_down( double value, uint delta );
16039#endif // cl_khr_fp64
16040
16041#endif // cl_khr_subgroup_shuffle_relative
16042
16043#if defined(cl_khr_subgroup_clustered_reduce)
16044char __ovld sub_group_clustered_reduce_add( char value, uint clustersize );
16045uchar __ovld sub_group_clustered_reduce_add( uchar value, uint clustersize );
16046short __ovld sub_group_clustered_reduce_add( short value, uint clustersize );
16047ushort __ovld sub_group_clustered_reduce_add( ushort value, uint clustersize );
16048int __ovld sub_group_clustered_reduce_add( int value, uint clustersize );
16049uint __ovld sub_group_clustered_reduce_add( uint value, uint clustersize );
16050long __ovld sub_group_clustered_reduce_add( long value, uint clustersize );
16051ulong __ovld sub_group_clustered_reduce_add( ulong value, uint clustersize );
16052float __ovld sub_group_clustered_reduce_add( float value, uint clustersize );
16053
16054char __ovld sub_group_clustered_reduce_mul( char value, uint clustersize );
16055uchar __ovld sub_group_clustered_reduce_mul( uchar value, uint clustersize );
16056short __ovld sub_group_clustered_reduce_mul( short value, uint clustersize );
16057ushort __ovld sub_group_clustered_reduce_mul( ushort value, uint clustersize );
16058int __ovld sub_group_clustered_reduce_mul( int value, uint clustersize );
16059uint __ovld sub_group_clustered_reduce_mul( uint value, uint clustersize );
16060long __ovld sub_group_clustered_reduce_mul( long value, uint clustersize );
16061ulong __ovld sub_group_clustered_reduce_mul( ulong value, uint clustersize );
16062float __ovld sub_group_clustered_reduce_mul( float value, uint clustersize );
16063
16064char __ovld sub_group_clustered_reduce_min( char value, uint clustersize );
16065uchar __ovld sub_group_clustered_reduce_min( uchar value, uint clustersize );
16066short __ovld sub_group_clustered_reduce_min( short value, uint clustersize );
16067ushort __ovld sub_group_clustered_reduce_min( ushort value, uint clustersize );
16068int __ovld sub_group_clustered_reduce_min( int value, uint clustersize );
16069uint __ovld sub_group_clustered_reduce_min( uint value, uint clustersize );
16070long __ovld sub_group_clustered_reduce_min( long value, uint clustersize );
16071ulong __ovld sub_group_clustered_reduce_min( ulong value, uint clustersize );
16072float __ovld sub_group_clustered_reduce_min( float value, uint clustersize );
16073
16074char __ovld sub_group_clustered_reduce_max( char value, uint clustersize );
16075uchar __ovld sub_group_clustered_reduce_max( uchar value, uint clustersize );
16076short __ovld sub_group_clustered_reduce_max( short value, uint clustersize );
16077ushort __ovld sub_group_clustered_reduce_max( ushort value, uint clustersize );
16078int __ovld sub_group_clustered_reduce_max( int value, uint clustersize );
16079uint __ovld sub_group_clustered_reduce_max( uint value, uint clustersize );
16080long __ovld sub_group_clustered_reduce_max( long value, uint clustersize );
16081ulong __ovld sub_group_clustered_reduce_max( ulong value, uint clustersize );
16082float __ovld sub_group_clustered_reduce_max( float value, uint clustersize );
16083
16084char __ovld sub_group_clustered_reduce_and( char value, uint clustersize );
16085uchar __ovld sub_group_clustered_reduce_and( uchar value, uint clustersize );
16086short __ovld sub_group_clustered_reduce_and( short value, uint clustersize );
16087ushort __ovld sub_group_clustered_reduce_and( ushort value, uint clustersize );
16088int __ovld sub_group_clustered_reduce_and( int value, uint clustersize );
16089uint __ovld sub_group_clustered_reduce_and( uint value, uint clustersize );
16090long __ovld sub_group_clustered_reduce_and( long value, uint clustersize );
16091ulong __ovld sub_group_clustered_reduce_and( ulong value, uint clustersize );
16092
16093char __ovld sub_group_clustered_reduce_or( char value, uint clustersize );
16094uchar __ovld sub_group_clustered_reduce_or( uchar value, uint clustersize );
16095short __ovld sub_group_clustered_reduce_or( short value, uint clustersize );
16096ushort __ovld sub_group_clustered_reduce_or( ushort value, uint clustersize );
16097int __ovld sub_group_clustered_reduce_or( int value, uint clustersize );
16098uint __ovld sub_group_clustered_reduce_or( uint value, uint clustersize );
16099long __ovld sub_group_clustered_reduce_or( long value, uint clustersize );
16100ulong __ovld sub_group_clustered_reduce_or( ulong value, uint clustersize );
16101
16102char __ovld sub_group_clustered_reduce_xor( char value, uint clustersize );
16103uchar __ovld sub_group_clustered_reduce_xor( uchar value, uint clustersize );
16104short __ovld sub_group_clustered_reduce_xor( short value, uint clustersize );
16105ushort __ovld sub_group_clustered_reduce_xor( ushort value, uint clustersize );
16106int __ovld sub_group_clustered_reduce_xor( int value, uint clustersize );
16107uint __ovld sub_group_clustered_reduce_xor( uint value, uint clustersize );
16108long __ovld sub_group_clustered_reduce_xor( long value, uint clustersize );
16109ulong __ovld sub_group_clustered_reduce_xor( ulong value, uint clustersize );
16110
16111int __ovld sub_group_clustered_reduce_logical_and( int predicate, uint clustersize );
16112int __ovld sub_group_clustered_reduce_logical_or( int predicate, uint clustersize );
16113int __ovld sub_group_clustered_reduce_logical_xor( int predicate, uint clustersize );
16114
16115#if defined(cl_khr_fp16)
16116half __ovld sub_group_clustered_reduce_add( half value, uint clustersize );
16117half __ovld sub_group_clustered_reduce_mul( half value, uint clustersize );
16118half __ovld sub_group_clustered_reduce_min( half value, uint clustersize );
16119half __ovld sub_group_clustered_reduce_max( half value, uint clustersize );
16120#endif // cl_khr_fp16
16121
16122#if defined(cl_khr_fp64)
16123double __ovld sub_group_clustered_reduce_add( double value, uint clustersize );
16124double __ovld sub_group_clustered_reduce_mul( double value, uint clustersize );
16125double __ovld sub_group_clustered_reduce_min( double value, uint clustersize );
16126double __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
16127#endif // cl_khr_fp64
16128
16129#endif // cl_khr_subgroup_clustered_reduce
16130
16131#if defined(cl_intel_subgroups)
16132// Intel-Specific Sub Group Functions
16133float __ovld __conv intel_sub_group_shuffle( float x, uint c );
16134float2 __ovld __conv intel_sub_group_shuffle( float2 x, uint c );
16135float3 __ovld __conv intel_sub_group_shuffle( float3 x, uint c );
16136float4 __ovld __conv intel_sub_group_shuffle( float4 x, uint c );
16137float8 __ovld __conv intel_sub_group_shuffle( float8 x, uint c );
16138float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c );
16139
16140int __ovld __conv intel_sub_group_shuffle( int x, uint c );
16141int2 __ovld __conv intel_sub_group_shuffle( int2 x, uint c );
16142int3 __ovld __conv intel_sub_group_shuffle( int3 x, uint c );
16143int4 __ovld __conv intel_sub_group_shuffle( int4 x, uint c );
16144int8 __ovld __conv intel_sub_group_shuffle( int8 x, uint c );
16145int16 __ovld __conv intel_sub_group_shuffle( int16 x, uint c );
16146
16147uint __ovld __conv intel_sub_group_shuffle( uint x, uint c );
16148uint2 __ovld __conv intel_sub_group_shuffle( uint2 x, uint c );
16149uint3 __ovld __conv intel_sub_group_shuffle( uint3 x, uint c );
16150uint4 __ovld __conv intel_sub_group_shuffle( uint4 x, uint c );
16151uint8 __ovld __conv intel_sub_group_shuffle( uint8 x, uint c );
16152uint16 __ovld __conv intel_sub_group_shuffle( uint16 x, uint c );
16153
16154long __ovld __conv intel_sub_group_shuffle( long x, uint c );
16155ulong __ovld __conv intel_sub_group_shuffle( ulong x, uint c );
16156
16157float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint c );
16158float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c );
16159float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c );
16160float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c );
16161float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c );
16162float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c );
16163
16164int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint c );
16165int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c );
16166int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c );
16167int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c );
16168int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c );
16169int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c );
16170
16171uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint c );
16172uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c );
16173uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c );
16174uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c );
16175uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c );
16176uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c );
16177
16178long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c );
16179ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c );
16180
16181float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint c );
16182float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c );
16183float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c );
16184float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c );
16185float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c );
16186float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c );
16187
16188int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint c );
16189int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c );
16190int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c );
16191int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c );
16192int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c );
16193int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c );
16194
16195uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint c );
16196uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c );
16197uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c );
16198uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c );
16199uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c );
16200uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c );
16201
16202long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c );
16203ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c );
16204
16205float __ovld __conv intel_sub_group_shuffle_xor( float x, uint c );
16206float2 __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c );
16207float3 __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c );
16208float4 __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c );
16209float8 __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c );
16210float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c );
16211
16212int __ovld __conv intel_sub_group_shuffle_xor( int x, uint c );
16213int2 __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c );
16214int3 __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c );
16215int4 __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c );
16216int8 __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c );
16217int16 __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c );
16218
16219uint __ovld __conv intel_sub_group_shuffle_xor( uint x, uint c );
16220uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c );
16221uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c );
16222uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c );
16223uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c );
16224uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c );
16225
16226long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c );
16227ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c );
16228
16229uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord );
16230uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord );
16231uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord );
16232uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord );
16233
16234#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16235uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord);
16236uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord);
16237uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord);
16238uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord);
16239#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16240
16241uint __ovld __conv intel_sub_group_block_read( const __global uint* p );
16242uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p );
16243uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p );
16244uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p );
16245
16246void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data);
16247void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data);
16248void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data);
16249void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data);
16250
16251#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16252void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data);
16253void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data);
16254void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data);
16255void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data);
16256#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16257
16258void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data );
16259void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data );
16260void __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data );
16261void __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data );
16262
16263#ifdef cl_khr_fp16
16264half __ovld __conv intel_sub_group_shuffle( half x, uint c );
16265half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c );
16266half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c );
16267half __ovld __conv intel_sub_group_shuffle_xor( half x, uint c );
16268#endif
16269
16270#if defined(cl_khr_fp64)
16271double __ovld __conv intel_sub_group_shuffle( double x, uint c );
16272double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c );
16273double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c );
16274double __ovld __conv intel_sub_group_shuffle_xor( double x, uint c );
16275#endif
16276
16277#endif //cl_intel_subgroups
16278
16279#if defined(cl_intel_subgroups_short)
16280short __ovld __conv intel_sub_group_broadcast( short x, uint sub_group_local_id );
16281short2 __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id );
16282short3 __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id );
16283short4 __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id );
16284short8 __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id );
16285
16286ushort __ovld __conv intel_sub_group_broadcast( ushort x, uint sub_group_local_id );
16287ushort2 __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id );
16288ushort3 __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id );
16289ushort4 __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id );
16290ushort8 __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id );
16291
16292short __ovld __conv intel_sub_group_shuffle( short x, uint c );
16293short2 __ovld __conv intel_sub_group_shuffle( short2 x, uint c );
16294short3 __ovld __conv intel_sub_group_shuffle( short3 x, uint c );
16295short4 __ovld __conv intel_sub_group_shuffle( short4 x, uint c );
16296short8 __ovld __conv intel_sub_group_shuffle( short8 x, uint c );
16297short16 __ovld __conv intel_sub_group_shuffle( short16 x, uint c);
16298
16299ushort __ovld __conv intel_sub_group_shuffle( ushort x, uint c );
16300ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 x, uint c );
16301ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 x, uint c );
16302ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 x, uint c );
16303ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 x, uint c );
16304ushort16 __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c );
16305
16306short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint c );
16307short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint c );
16308short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint c );
16309short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint c );
16310short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint c );
16311short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c );
16312
16313ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint c );
16314ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint c );
16315ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint c );
16316ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint c );
16317ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint c );
16318ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c );
16319
16320short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint c );
16321short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint c );
16322short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint c );
16323short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint c );
16324short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint c );
16325short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c );
16326
16327ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint c );
16328ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint c );
16329ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint c );
16330ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint c );
16331ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint c );
16332ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c );
16333
16334short __ovld __conv intel_sub_group_shuffle_xor( short x, uint c );
16335short2 __ovld __conv intel_sub_group_shuffle_xor( short2 x, uint c );
16336short3 __ovld __conv intel_sub_group_shuffle_xor( short3 x, uint c );
16337short4 __ovld __conv intel_sub_group_shuffle_xor( short4 x, uint c );
16338short8 __ovld __conv intel_sub_group_shuffle_xor( short8 x, uint c );
16339short16 __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c );
16340
16341ushort __ovld __conv intel_sub_group_shuffle_xor( ushort x, uint c );
16342ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 x, uint c );
16343ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 x, uint c );
16344ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 x, uint c );
16345ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 x, uint c );
16346ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c );
16347
16348short __ovld __conv intel_sub_group_reduce_add( short x );
16349ushort __ovld __conv intel_sub_group_reduce_add( ushort x );
16350short __ovld __conv intel_sub_group_reduce_min( short x );
16351ushort __ovld __conv intel_sub_group_reduce_min( ushort x );
16352short __ovld __conv intel_sub_group_reduce_max( short x );
16353ushort __ovld __conv intel_sub_group_reduce_max( ushort x );
16354
16355short __ovld __conv intel_sub_group_scan_exclusive_add( short x );
16356ushort __ovld __conv intel_sub_group_scan_exclusive_add( ushort x );
16357short __ovld __conv intel_sub_group_scan_exclusive_min( short x );
16358ushort __ovld __conv intel_sub_group_scan_exclusive_min( ushort x );
16359short __ovld __conv intel_sub_group_scan_exclusive_max( short x );
16360ushort __ovld __conv intel_sub_group_scan_exclusive_max( ushort x );
16361
16362short __ovld __conv intel_sub_group_scan_inclusive_add( short x );
16363ushort __ovld __conv intel_sub_group_scan_inclusive_add( ushort x );
16364short __ovld __conv intel_sub_group_scan_inclusive_min( short x );
16365ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x );
16366short __ovld __conv intel_sub_group_scan_inclusive_max( short x );
16367ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x );
16368
16369uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord );
16370uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord );
16371uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord );
16372uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord );
16373
16374#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16375uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord );
16376uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord );
16377uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord );
16378uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord );
16379#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16380
16381uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p );
16382uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p );
16383uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p );
16384uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p );
16385
16386void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data );
16387void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data );
16388void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data );
16389void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data );
16390
16391#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16392void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data );
16393void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data );
16394void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data );
16395void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data );
16396#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16397
16398void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data );
16399void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data );
16400void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data );
16401void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data );
16402
16403ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord );
16404ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord );
16405ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord );
16406ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord );
16407
16408#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16409ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord);
16410ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord);
16411ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord);
16412ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord);
16413#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16414
16415ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p );
16416ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p );
16417ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p );
16418ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p );
16419
16420void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data);
16421void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data);
16422void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data);
16423void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data);
16424
16425#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16426void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data);
16427void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data);
16428void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data);
16429void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data);
16430#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
16431
16432void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data );
16433void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data );
16434void __ovld __conv intel_sub_group_block_write_us4( __global ushort* p, ushort4 data );
16435void __ovld __conv intel_sub_group_block_write_us8( __global ushort* p, ushort8 data );
16436#endif // cl_intel_subgroups_short
16437
16438#ifdef cl_intel_device_side_avc_motion_estimation
16439#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin
16440
16441// MCE built-in functions
16443intel_sub_group_avc_mce_get_default_inter_base_multi_reference_penalty(
16444 uchar slice_type, uchar qp);
16445ulong __ovld intel_sub_group_avc_mce_get_default_inter_shape_penalty(
16446 uchar slice_type, uchar qp);
16447uchar __ovld intel_sub_group_avc_mce_get_default_inter_direction_penalty(
16448 uchar slice_type, uchar qp);
16449uint __ovld intel_sub_group_avc_mce_get_default_intra_luma_shape_penalty(
16450 uchar slice_type, uchar qp);
16451uint2 __ovld
16452intel_sub_group_avc_mce_get_default_inter_motion_vector_cost_table(
16453 uchar slice_type, uchar qp);
16454uchar __ovld intel_sub_group_avc_mce_get_default_intra_luma_mode_penalty(
16455 uchar slice_type, uchar qp);
16456
16457uint2 __ovld intel_sub_group_avc_mce_get_default_high_penalty_cost_table();
16458uint2 __ovld intel_sub_group_avc_mce_get_default_medium_penalty_cost_table();
16459uint2 __ovld intel_sub_group_avc_mce_get_default_low_penalty_cost_table();
16460uint __ovld intel_sub_group_avc_mce_get_default_non_dc_luma_intra_penalty();
16462intel_sub_group_avc_mce_get_default_intra_chroma_mode_base_penalty();
16463
16464intel_sub_group_avc_mce_payload_t __ovld
16465intel_sub_group_avc_mce_set_inter_base_multi_reference_penalty(
16466 uchar reference_base_penalty, intel_sub_group_avc_mce_payload_t payload);
16467intel_sub_group_avc_mce_payload_t __ovld
16468intel_sub_group_avc_mce_set_inter_shape_penalty(
16469 ulong packed_shape_penalty, intel_sub_group_avc_mce_payload_t payload);
16470intel_sub_group_avc_mce_payload_t __ovld
16471intel_sub_group_avc_mce_set_inter_direction_penalty(
16472 uchar direction_cost, intel_sub_group_avc_mce_payload_t payload);
16473intel_sub_group_avc_mce_payload_t __ovld
16474intel_sub_group_avc_mce_set_motion_vector_cost_function(
16475 ulong packed_cost_center_delta, uint2 packed_cost_table,
16476 uchar cost_precision, intel_sub_group_avc_mce_payload_t payload);
16477intel_sub_group_avc_mce_payload_t __ovld
16478intel_sub_group_avc_mce_set_ac_only_haar(
16479 intel_sub_group_avc_mce_payload_t payload);
16480intel_sub_group_avc_mce_payload_t __ovld
16481intel_sub_group_avc_mce_set_source_interlaced_field_polarity(
16482 uchar src_field_polarity, intel_sub_group_avc_mce_payload_t payload);
16483intel_sub_group_avc_mce_payload_t __ovld
16484intel_sub_group_avc_mce_set_single_reference_interlaced_field_polarity(
16485 uchar ref_field_polarity, intel_sub_group_avc_mce_payload_t payload);
16486intel_sub_group_avc_mce_payload_t __ovld
16487intel_sub_group_avc_mce_set_dual_reference_interlaced_field_polarities(
16488 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16489 intel_sub_group_avc_mce_payload_t payload);
16490
16491ulong __ovld intel_sub_group_avc_mce_get_motion_vectors(
16492 intel_sub_group_avc_mce_result_t result);
16493ushort __ovld intel_sub_group_avc_mce_get_inter_distortions(
16494 intel_sub_group_avc_mce_result_t result);
16495ushort __ovld intel_sub_group_avc_mce_get_best_inter_distortion(
16496 intel_sub_group_avc_mce_result_t result);
16497uchar __ovld intel_sub_group_avc_mce_get_inter_major_shape(
16498 intel_sub_group_avc_mce_result_t result);
16499uchar __ovld intel_sub_group_avc_mce_get_inter_minor_shapes(
16500 intel_sub_group_avc_mce_result_t result);
16501uchar __ovld intel_sub_group_avc_mce_get_inter_directions(
16502 intel_sub_group_avc_mce_result_t result);
16503uchar __ovld intel_sub_group_avc_mce_get_inter_motion_vector_count(
16504 intel_sub_group_avc_mce_result_t result);
16505uint __ovld intel_sub_group_avc_mce_get_inter_reference_ids(
16506 intel_sub_group_avc_mce_result_t result);
16508intel_sub_group_avc_mce_get_inter_reference_interlaced_field_polarities(
16509 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16510 intel_sub_group_avc_mce_result_t result);
16511
16512// IME built-in functions
16513intel_sub_group_avc_ime_payload_t __ovld
16514intel_sub_group_avc_ime_initialize(
16515 ushort2 src_coord, uchar partition_mask, uchar sad_adjustment);
16516intel_sub_group_avc_ime_payload_t __ovld
16517intel_sub_group_avc_ime_set_single_reference(
16518 short2 ref_offset, uchar search_window_config,
16519 intel_sub_group_avc_ime_payload_t payload);
16520intel_sub_group_avc_ime_payload_t __ovld
16521intel_sub_group_avc_ime_set_dual_reference(
16522 short2 fwd_ref_offset, short2 bwd_ref_offset, uchar search_window_config,
16523 intel_sub_group_avc_ime_payload_t payload);
16524intel_sub_group_avc_ime_payload_t __ovld
16525intel_sub_group_avc_ime_set_max_motion_vector_count(
16526 uchar max_motion_vector_count, intel_sub_group_avc_ime_payload_t payload);
16527intel_sub_group_avc_ime_payload_t __ovld
16528intel_sub_group_avc_ime_set_unidirectional_mix_disable(
16529 intel_sub_group_avc_ime_payload_t payload);
16530intel_sub_group_avc_ime_payload_t __ovld
16531intel_sub_group_avc_ime_set_early_search_termination_threshold(
16532 uchar threshold, intel_sub_group_avc_ime_payload_t payload);
16533intel_sub_group_avc_ime_payload_t __ovld
16534intel_sub_group_avc_ime_set_weighted_sad(
16535 uint packed_sad_weights, intel_sub_group_avc_ime_payload_t payload);
16536
16537__attribute__((deprecated("If you use the latest Intel driver, please use "
16538 "intel_sub_group_avc_ime_ref_window_size instead",
16539 "intel_sub_group_avc_ime_ref_window_size")))
16540ushort2 __ovld
16541intel_sub_group_ime_ref_window_size(uchar search_window_config, char dual_ref);
16542ushort2 __ovld intel_sub_group_avc_ime_ref_window_size(
16543 uchar search_window_config, char dual_ref);
16544short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset(
16545 short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size,
16546 ushort2 image_size);
16547
16548intel_sub_group_avc_ime_result_t __ovld
16549intel_sub_group_avc_ime_evaluate_with_single_reference(
16550 read_only image2d_t src_image, read_only image2d_t ref_image,
16551 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
16552intel_sub_group_avc_ime_result_t __ovld
16553intel_sub_group_avc_ime_evaluate_with_dual_reference(
16554 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16555 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16556 intel_sub_group_avc_ime_payload_t payload);
16557intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
16558intel_sub_group_avc_ime_evaluate_with_single_reference_streamout(
16559 read_only image2d_t src_image, read_only image2d_t ref_image,
16560 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload);
16561intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
16562intel_sub_group_avc_ime_evaluate_with_dual_reference_streamout(
16563 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16564 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16565 intel_sub_group_avc_ime_payload_t payload);
16566intel_sub_group_avc_ime_result_t __ovld
16567intel_sub_group_avc_ime_evaluate_with_single_reference_streamin(
16568 read_only image2d_t src_image, read_only image2d_t ref_image,
16569 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
16570 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
16571intel_sub_group_avc_ime_result_t __ovld
16572intel_sub_group_avc_ime_evaluate_with_dual_reference_streamin(
16573 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16574 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16575 intel_sub_group_avc_ime_payload_t payload,
16576 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
16577intel_sub_group_avc_ime_result_single_reference_streamout_t __ovld
16578intel_sub_group_avc_ime_evaluate_with_single_reference_streaminout(
16579 read_only image2d_t src_image, read_only image2d_t ref_image,
16580 sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload,
16581 intel_sub_group_avc_ime_single_reference_streamin_t streamin_components);
16582intel_sub_group_avc_ime_result_dual_reference_streamout_t __ovld
16583intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout(
16584 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16585 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16586 intel_sub_group_avc_ime_payload_t payload,
16587 intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components);
16588
16589intel_sub_group_avc_ime_single_reference_streamin_t __ovld
16590intel_sub_group_avc_ime_get_single_reference_streamin(
16591 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
16592intel_sub_group_avc_ime_dual_reference_streamin_t __ovld
16593intel_sub_group_avc_ime_get_dual_reference_streamin(
16594 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
16595intel_sub_group_avc_ime_result_t __ovld
16596intel_sub_group_avc_ime_strip_single_reference_streamout(
16597 intel_sub_group_avc_ime_result_single_reference_streamout_t result);
16598intel_sub_group_avc_ime_result_t __ovld
16599intel_sub_group_avc_ime_strip_dual_reference_streamout(
16600 intel_sub_group_avc_ime_result_dual_reference_streamout_t result);
16601
16602uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
16603 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16604 uchar major_shape);
16605ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
16606 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16607 uchar major_shape);
16608uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
16609 intel_sub_group_avc_ime_result_single_reference_streamout_t result,
16610 uchar major_shape);
16611uint __ovld intel_sub_group_avc_ime_get_streamout_major_shape_motion_vectors(
16612 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16613 uchar major_shape, uchar direction);
16614ushort __ovld intel_sub_group_avc_ime_get_streamout_major_shape_distortions(
16615 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16616 uchar major_shape, uchar direction);
16617uchar __ovld intel_sub_group_avc_ime_get_streamout_major_shape_reference_ids(
16618 intel_sub_group_avc_ime_result_dual_reference_streamout_t result,
16619 uchar major_shape, uchar direction);
16620
16621uchar __ovld intel_sub_group_avc_ime_get_border_reached(
16622 uchar image_select, intel_sub_group_avc_ime_result_t result);
16623uchar __ovld intel_sub_group_avc_ime_get_truncated_search_indication(
16624 intel_sub_group_avc_ime_result_t result);
16626intel_sub_group_avc_ime_get_unidirectional_early_search_termination(
16627 intel_sub_group_avc_ime_result_t result);
16628uint __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_motion_vector(
16629 intel_sub_group_avc_ime_result_t result);
16630ushort __ovld intel_sub_group_avc_ime_get_weighting_pattern_minimum_distortion(
16631 intel_sub_group_avc_ime_result_t result);
16632
16633// REF built-in functions
16634intel_sub_group_avc_ref_payload_t __ovld
16635intel_sub_group_avc_fme_initialize(
16636 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
16637 uchar minor_shapes, uchar directions, uchar pixel_resolution,
16638 uchar sad_adjustment);
16639intel_sub_group_avc_ref_payload_t __ovld
16640intel_sub_group_avc_bme_initialize(
16641 ushort2 src_coord, ulong motion_vectors, uchar major_shapes,
16642 uchar minor_shapes, uchar directions, uchar pixel_resolution,
16643 uchar bidirectional_weight, uchar sad_adjustment);
16644
16645intel_sub_group_avc_ref_payload_t __ovld
16646intel_sub_group_avc_ref_set_bidirectional_mix_disable(
16647 intel_sub_group_avc_ref_payload_t payload);
16648intel_sub_group_avc_ref_payload_t __ovld
16649intel_sub_group_avc_ref_set_bilinear_filter_enable(
16650 intel_sub_group_avc_ref_payload_t payload);
16651
16652intel_sub_group_avc_ref_result_t __ovld
16653intel_sub_group_avc_ref_evaluate_with_single_reference(
16654 read_only image2d_t src_image, read_only image2d_t ref_image,
16655 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
16656intel_sub_group_avc_ref_result_t __ovld
16657intel_sub_group_avc_ref_evaluate_with_dual_reference(
16658 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16659 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16660 intel_sub_group_avc_ref_payload_t payload);
16661intel_sub_group_avc_ref_result_t __ovld
16662intel_sub_group_avc_ref_evaluate_with_multi_reference(
16663 read_only image2d_t src_image, uint packed_reference_ids,
16664 sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload);
16665intel_sub_group_avc_ref_result_t __ovld
16666intel_sub_group_avc_ref_evaluate_with_multi_reference(
16667 read_only image2d_t src_image, uint packed_reference_ids,
16668 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16669 intel_sub_group_avc_ref_payload_t payload);
16670
16671// SIC built-in functions
16672intel_sub_group_avc_sic_payload_t __ovld
16673intel_sub_group_avc_sic_initialize(
16674 ushort2 src_coord);
16675intel_sub_group_avc_sic_payload_t __ovld
16676intel_sub_group_avc_sic_configure_skc(
16677 uint skip_block_partition_type, uint skip_motion_vector_mask,
16678 ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment,
16679 intel_sub_group_avc_sic_payload_t payload);
16680intel_sub_group_avc_sic_payload_t __ovld
16681intel_sub_group_avc_sic_configure_ipe(
16682 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
16683 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
16684 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
16685 uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload);
16686intel_sub_group_avc_sic_payload_t __ovld
16687intel_sub_group_avc_sic_configure_ipe(
16688 uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty,
16689 uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel,
16690 uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels,
16691 ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel,
16692 ushort upper_edge_chroma_pixels, uchar intra_sad_adjustment,
16693 intel_sub_group_avc_sic_payload_t payload);
16695intel_sub_group_avc_sic_get_motion_vector_mask(
16696 uint skip_block_partition_type, uchar direction);
16697
16698intel_sub_group_avc_sic_payload_t __ovld
16699intel_sub_group_avc_sic_set_intra_luma_shape_penalty(
16700 uint packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
16701intel_sub_group_avc_sic_payload_t __ovld
16702intel_sub_group_avc_sic_set_intra_luma_mode_cost_function(
16703 uchar luma_mode_penalty, uint luma_packed_neighbor_modes,
16704 uint luma_packed_non_dc_penalty, intel_sub_group_avc_sic_payload_t payload);
16705intel_sub_group_avc_sic_payload_t __ovld
16706intel_sub_group_avc_sic_set_intra_chroma_mode_cost_function(
16707 uchar chroma_mode_penalty, intel_sub_group_avc_sic_payload_t payload);
16708
16709intel_sub_group_avc_sic_payload_t __ovld
16710intel_sub_group_avc_sic_set_skc_bilinear_filter_enable(
16711 intel_sub_group_avc_sic_payload_t payload);
16712intel_sub_group_avc_sic_payload_t __ovld
16713intel_sub_group_avc_sic_set_skc_forward_transform_enable(
16714 ulong packed_sad_coefficients, intel_sub_group_avc_sic_payload_t payload);
16715intel_sub_group_avc_sic_payload_t __ovld
16716intel_sub_group_avc_sic_set_block_based_raw_skip_sad(
16717 uchar block_based_skip_type,
16718 intel_sub_group_avc_sic_payload_t payload);
16719
16720intel_sub_group_avc_sic_result_t __ovld
16721intel_sub_group_avc_sic_evaluate_ipe(
16722 read_only image2d_t src_image, sampler_t vme_media_sampler,
16723 intel_sub_group_avc_sic_payload_t payload);
16724intel_sub_group_avc_sic_result_t __ovld
16725intel_sub_group_avc_sic_evaluate_with_single_reference(
16726 read_only image2d_t src_image, read_only image2d_t ref_image,
16727 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
16728intel_sub_group_avc_sic_result_t __ovld
16729intel_sub_group_avc_sic_evaluate_with_dual_reference(
16730 read_only image2d_t src_image, read_only image2d_t fwd_ref_image,
16731 read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler,
16732 intel_sub_group_avc_sic_payload_t payload);
16733intel_sub_group_avc_sic_result_t __ovld
16734intel_sub_group_avc_sic_evaluate_with_multi_reference(
16735 read_only image2d_t src_image, uint packed_reference_ids,
16736 sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload);
16737intel_sub_group_avc_sic_result_t __ovld
16738intel_sub_group_avc_sic_evaluate_with_multi_reference(
16739 read_only image2d_t src_image, uint packed_reference_ids,
16740 uchar packed_reference_field_polarities, sampler_t vme_media_sampler,
16741 intel_sub_group_avc_sic_payload_t payload);
16742
16743uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape(
16744 intel_sub_group_avc_sic_result_t result);
16745ushort __ovld intel_sub_group_avc_sic_get_best_ipe_luma_distortion(
16746 intel_sub_group_avc_sic_result_t result);
16747ushort __ovld intel_sub_group_avc_sic_get_best_ipe_chroma_distortion(
16748 intel_sub_group_avc_sic_result_t result);
16749ulong __ovld intel_sub_group_avc_sic_get_packed_ipe_luma_modes(
16750 intel_sub_group_avc_sic_result_t result);
16751uchar __ovld intel_sub_group_avc_sic_get_ipe_chroma_mode(
16752 intel_sub_group_avc_sic_result_t result);
16753uint __ovld intel_sub_group_avc_sic_get_packed_skc_luma_count_threshold(
16754 intel_sub_group_avc_sic_result_t result);
16755ulong __ovld intel_sub_group_avc_sic_get_packed_skc_luma_sum_threshold(
16756 intel_sub_group_avc_sic_result_t result);
16757ushort __ovld intel_sub_group_avc_sic_get_inter_raw_sads(
16758 intel_sub_group_avc_sic_result_t result);
16759
16760// Wrappers
16761intel_sub_group_avc_ime_payload_t __ovld
16762intel_sub_group_avc_ime_set_inter_base_multi_reference_penalty(
16763 uchar reference_base_penalty, intel_sub_group_avc_ime_payload_t payload);
16764intel_sub_group_avc_ref_payload_t __ovld
16765intel_sub_group_avc_ref_set_inter_base_multi_reference_penalty(
16766 uchar reference_base_penalty, intel_sub_group_avc_ref_payload_t payload);
16767intel_sub_group_avc_sic_payload_t __ovld
16768intel_sub_group_avc_sic_set_inter_base_multi_reference_penalty(
16769 uchar reference_base_penalty, intel_sub_group_avc_sic_payload_t payload);
16770
16771intel_sub_group_avc_ime_payload_t __ovld
16772intel_sub_group_avc_ime_set_inter_shape_penalty(
16773 ulong packed_shape_cost, intel_sub_group_avc_ime_payload_t payload);
16774intel_sub_group_avc_ref_payload_t __ovld
16775intel_sub_group_avc_ref_set_inter_shape_penalty(
16776 ulong packed_shape_cost, intel_sub_group_avc_ref_payload_t payload);
16777intel_sub_group_avc_sic_payload_t __ovld
16778intel_sub_group_avc_sic_set_inter_shape_penalty(
16779 ulong packed_shape_cost, intel_sub_group_avc_sic_payload_t payload);
16780
16781intel_sub_group_avc_ime_payload_t __ovld
16782intel_sub_group_avc_ime_set_inter_direction_penalty(
16783 uchar direction_cost, intel_sub_group_avc_ime_payload_t payload);
16784intel_sub_group_avc_ref_payload_t __ovld
16785intel_sub_group_avc_ref_set_inter_direction_penalty(
16786 uchar direction_cost, intel_sub_group_avc_ref_payload_t payload);
16787intel_sub_group_avc_sic_payload_t __ovld
16788intel_sub_group_avc_sic_set_inter_direction_penalty(
16789 uchar direction_cost, intel_sub_group_avc_sic_payload_t payload);
16790
16791intel_sub_group_avc_ime_payload_t __ovld
16792intel_sub_group_avc_ime_set_motion_vector_cost_function(
16793 ulong packed_cost_center_delta, uint2 packed_cost_table,
16794 uchar cost_precision, intel_sub_group_avc_ime_payload_t payload);
16795intel_sub_group_avc_ref_payload_t __ovld
16796intel_sub_group_avc_ref_set_motion_vector_cost_function(
16797 ulong packed_cost_center_delta, uint2 packed_cost_table,
16798 uchar cost_precision, intel_sub_group_avc_ref_payload_t payload);
16799intel_sub_group_avc_sic_payload_t __ovld
16800intel_sub_group_avc_sic_set_motion_vector_cost_function(
16801 ulong packed_cost_center_delta, uint2 packed_cost_table,
16802 uchar cost_precision, intel_sub_group_avc_sic_payload_t payload);
16803
16804intel_sub_group_avc_ime_payload_t __ovld
16805intel_sub_group_avc_ime_set_source_interlaced_field_polarity(
16806 uchar src_field_polarity, intel_sub_group_avc_ime_payload_t payload);
16807intel_sub_group_avc_ref_payload_t __ovld
16808intel_sub_group_avc_ref_set_source_interlaced_field_polarity(
16809 uchar src_field_polarity, intel_sub_group_avc_ref_payload_t payload);
16810intel_sub_group_avc_sic_payload_t __ovld
16811intel_sub_group_avc_sic_set_source_interlaced_field_polarity(
16812 uchar src_field_polarity, intel_sub_group_avc_sic_payload_t payload);
16813
16814intel_sub_group_avc_ime_payload_t __ovld
16815intel_sub_group_avc_ime_set_single_reference_interlaced_field_polarity(
16816 uchar ref_field_polarity, intel_sub_group_avc_ime_payload_t payload);
16817intel_sub_group_avc_ref_payload_t __ovld
16818intel_sub_group_avc_ref_set_single_reference_interlaced_field_polarity(
16819 uchar ref_field_polarity, intel_sub_group_avc_ref_payload_t payload);
16820intel_sub_group_avc_sic_payload_t __ovld
16821intel_sub_group_avc_sic_set_single_reference_interlaced_field_polarity(
16822 uchar ref_field_polarity, intel_sub_group_avc_sic_payload_t payload);
16823intel_sub_group_avc_ime_payload_t __ovld
16824intel_sub_group_avc_ime_set_dual_reference_interlaced_field_polarities(
16825 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16826 intel_sub_group_avc_ime_payload_t payload);
16827intel_sub_group_avc_ref_payload_t __ovld
16828intel_sub_group_avc_ref_set_dual_reference_interlaced_field_polarities(
16829 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16830 intel_sub_group_avc_ref_payload_t payload);
16831intel_sub_group_avc_sic_payload_t __ovld
16832intel_sub_group_avc_sic_set_dual_reference_interlaced_field_polarities(
16833 uchar fwd_ref_field_polarity, uchar bwd_ref_field_polarity,
16834 intel_sub_group_avc_sic_payload_t payload);
16835
16836intel_sub_group_avc_ime_payload_t __ovld
16837intel_sub_group_avc_ime_set_ac_only_haar(
16838 intel_sub_group_avc_ime_payload_t payload);
16839intel_sub_group_avc_ref_payload_t __ovld
16840intel_sub_group_avc_ref_set_ac_only_haar(
16841 intel_sub_group_avc_ref_payload_t payload);
16842intel_sub_group_avc_sic_payload_t __ovld
16843intel_sub_group_avc_sic_set_ac_only_haar(
16844 intel_sub_group_avc_sic_payload_t payload);
16845
16846ulong __ovld intel_sub_group_avc_ime_get_motion_vectors(
16847 intel_sub_group_avc_ime_result_t result);
16848ulong __ovld intel_sub_group_avc_ref_get_motion_vectors(
16849 intel_sub_group_avc_ref_result_t result);
16850
16851ushort __ovld intel_sub_group_avc_ime_get_inter_distortions(
16852 intel_sub_group_avc_ime_result_t result);
16853ushort __ovld intel_sub_group_avc_ref_get_inter_distortions(
16854 intel_sub_group_avc_ref_result_t result);
16855ushort __ovld intel_sub_group_avc_sic_get_inter_distortions(
16856 intel_sub_group_avc_sic_result_t result);
16857
16858ushort __ovld intel_sub_group_avc_ime_get_best_inter_distortion(
16859 intel_sub_group_avc_ime_result_t result);
16860ushort __ovld intel_sub_group_avc_ref_get_best_inter_distortion(
16861 intel_sub_group_avc_ref_result_t result);
16862
16863uchar __ovld intel_sub_group_avc_ime_get_inter_major_shape(
16864 intel_sub_group_avc_ime_result_t result);
16865uchar __ovld intel_sub_group_avc_ref_get_inter_major_shape(
16866 intel_sub_group_avc_ref_result_t result);
16867uchar __ovld intel_sub_group_avc_ime_get_inter_minor_shapes(
16868 intel_sub_group_avc_ime_result_t result);
16869uchar __ovld intel_sub_group_avc_ref_get_inter_minor_shapes(
16870 intel_sub_group_avc_ref_result_t result);
16871
16872uchar __ovld intel_sub_group_avc_ime_get_inter_directions(
16873 intel_sub_group_avc_ime_result_t result);
16874uchar __ovld intel_sub_group_avc_ref_get_inter_directions(
16875 intel_sub_group_avc_ref_result_t result);
16876
16877uchar __ovld intel_sub_group_avc_ime_get_inter_motion_vector_count(
16878 intel_sub_group_avc_ime_result_t result);
16879uchar __ovld intel_sub_group_avc_ref_get_inter_motion_vector_count(
16880 intel_sub_group_avc_ref_result_t result);
16881
16882uint __ovld intel_sub_group_avc_ime_get_inter_reference_ids(
16883 intel_sub_group_avc_ime_result_t result);
16884uint __ovld intel_sub_group_avc_ref_get_inter_reference_ids(
16885 intel_sub_group_avc_ref_result_t result);
16886
16888intel_sub_group_avc_ime_get_inter_reference_interlaced_field_polarities(
16889 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16890 intel_sub_group_avc_ime_result_t result);
16892intel_sub_group_avc_ref_get_inter_reference_interlaced_field_polarities(
16893 uint packed_reference_ids, uint packed_reference_parameter_field_polarities,
16894 intel_sub_group_avc_ref_result_t result);
16895
16896// Type conversion functions
16897intel_sub_group_avc_mce_payload_t __ovld
16898intel_sub_group_avc_ime_convert_to_mce_payload(
16899 intel_sub_group_avc_ime_payload_t payload);
16900intel_sub_group_avc_ime_payload_t __ovld
16901intel_sub_group_avc_mce_convert_to_ime_payload(
16902 intel_sub_group_avc_mce_payload_t payload);
16903intel_sub_group_avc_mce_payload_t __ovld
16904intel_sub_group_avc_ref_convert_to_mce_payload(
16905 intel_sub_group_avc_ref_payload_t payload);
16906intel_sub_group_avc_ref_payload_t __ovld
16907intel_sub_group_avc_mce_convert_to_ref_payload(
16908 intel_sub_group_avc_mce_payload_t payload);
16909intel_sub_group_avc_mce_payload_t __ovld
16910intel_sub_group_avc_sic_convert_to_mce_payload(
16911 intel_sub_group_avc_sic_payload_t payload);
16912intel_sub_group_avc_sic_payload_t __ovld
16913intel_sub_group_avc_mce_convert_to_sic_payload(
16914 intel_sub_group_avc_mce_payload_t payload);
16915
16916intel_sub_group_avc_mce_result_t __ovld
16917intel_sub_group_avc_ime_convert_to_mce_result(
16918 intel_sub_group_avc_ime_result_t result);
16919intel_sub_group_avc_ime_result_t __ovld
16920intel_sub_group_avc_mce_convert_to_ime_result(
16921 intel_sub_group_avc_mce_result_t result);
16922intel_sub_group_avc_mce_result_t __ovld
16923intel_sub_group_avc_ref_convert_to_mce_result(
16924 intel_sub_group_avc_ref_result_t result);
16925intel_sub_group_avc_ref_result_t __ovld
16926intel_sub_group_avc_mce_convert_to_ref_result(
16927 intel_sub_group_avc_mce_result_t result);
16928intel_sub_group_avc_mce_result_t __ovld
16929intel_sub_group_avc_sic_convert_to_mce_result(
16930 intel_sub_group_avc_sic_result_t result);
16931intel_sub_group_avc_sic_result_t __ovld
16932intel_sub_group_avc_mce_convert_to_sic_result(
16933 intel_sub_group_avc_mce_result_t result);
16934#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end
16935#endif // cl_intel_device_side_avc_motion_estimation
16936
16937#ifdef cl_amd_media_ops
16938uint __ovld amd_bitalign(uint a, uint b, uint c);
16939uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c);
16940uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c);
16941uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c);
16942uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c);
16943uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c);
16944
16945uint __ovld amd_bytealign(uint a, uint b, uint c);
16946uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c);
16947uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c);
16948uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c);
16949uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c);
16950uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c);
16951
16952uint __ovld amd_lerp(uint a, uint b, uint c);
16953uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c);
16954uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c);
16955uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c);
16956uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c);
16957uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c);
16958
16959uint __ovld amd_pack(float4 v);
16960
16961uint __ovld amd_sad4(uint4 x, uint4 y, uint z);
16962
16963uint __ovld amd_sadhi(uint a, uint b, uint c);
16964uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c);
16965uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c);
16966uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c);
16967uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c);
16968uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c);
16969
16970uint __ovld amd_sad(uint a, uint b, uint c);
16971uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c);
16972uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c);
16973uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c);
16974uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c);
16975uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c);
16976
16977float __ovld amd_unpack0(uint a);
16978float2 __ovld amd_unpack0(uint2 a);
16979float3 __ovld amd_unpack0(uint3 a);
16980float4 __ovld amd_unpack0(uint4 a);
16981float8 __ovld amd_unpack0(uint8 a);
16982float16 __ovld amd_unpack0(uint16 a);
16983
16984float __ovld amd_unpack1(uint a);
16985float2 __ovld amd_unpack1(uint2 a);
16986float3 __ovld amd_unpack1(uint3 a);
16987float4 __ovld amd_unpack1(uint4 a);
16988float8 __ovld amd_unpack1(uint8 a);
16989float16 __ovld amd_unpack1(uint16 a);
16990
16991float __ovld amd_unpack2(uint a);
16992float2 __ovld amd_unpack2(uint2 a);
16993float3 __ovld amd_unpack2(uint3 a);
16994float4 __ovld amd_unpack2(uint4 a);
16995float8 __ovld amd_unpack2(uint8 a);
16996float16 __ovld amd_unpack2(uint16 a);
16997
16998float __ovld amd_unpack3(uint a);
16999float2 __ovld amd_unpack3(uint2 a);
17000float3 __ovld amd_unpack3(uint3 a);
17001float4 __ovld amd_unpack3(uint4 a);
17002float8 __ovld amd_unpack3(uint8 a);
17003float16 __ovld amd_unpack3(uint16 a);
17004#endif // cl_amd_media_ops
17005
17006#ifdef cl_amd_media_ops2
17007int __ovld amd_bfe(int src0, uint src1, uint src2);
17008int2 __ovld amd_bfe(int2 src0, uint2 src1, uint2 src2);
17009int3 __ovld amd_bfe(int3 src0, uint3 src1, uint3 src2);
17010int4 __ovld amd_bfe(int4 src0, uint4 src1, uint4 src2);
17011int8 __ovld amd_bfe(int8 src0, uint8 src1, uint8 src2);
17012int16 __ovld amd_bfe(int16 src0, uint16 src1, uint16 src2);
17013
17014uint __ovld amd_bfe(uint src0, uint src1, uint src2);
17015uint2 __ovld amd_bfe(uint2 src0, uint2 src1, uint2 src2);
17016uint3 __ovld amd_bfe(uint3 src0, uint3 src1, uint3 src2);
17017uint4 __ovld amd_bfe(uint4 src0, uint4 src1, uint4 src2);
17018uint8 __ovld amd_bfe(uint8 src0, uint8 src1, uint8 src2);
17019uint16 __ovld amd_bfe(uint16 src0, uint16 src1, uint16 src2);
17020
17021uint __ovld amd_bfm(uint src0, uint src1);
17022uint2 __ovld amd_bfm(uint2 src0, uint2 src1);
17023uint3 __ovld amd_bfm(uint3 src0, uint3 src1);
17024uint4 __ovld amd_bfm(uint4 src0, uint4 src1);
17025uint8 __ovld amd_bfm(uint8 src0, uint8 src1);
17026uint16 __ovld amd_bfm(uint16 src0, uint16 src1);
17027
17028float __ovld amd_max3(float src0, float src1, float src2);
17029float2 __ovld amd_max3(float2 src0, float2 src1, float2 src2);
17030float3 __ovld amd_max3(float3 src0, float3 src1, float3 src2);
17031float4 __ovld amd_max3(float4 src0, float4 src1, float4 src2);
17032float8 __ovld amd_max3(float8 src0, float8 src1, float8 src2);
17033float16 __ovld amd_max3(float16 src0, float16 src1, float16 src2);
17034
17035int __ovld amd_max3(int src0, int src1, int src2);
17036int2 __ovld amd_max3(int2 src0, int2 src1, int2 src2);
17037int3 __ovld amd_max3(int3 src0, int3 src1, int3 src2);
17038int4 __ovld amd_max3(int4 src0, int4 src1, int4 src2);
17039int8 __ovld amd_max3(int8 src0, int8 src1, int8 src2);
17040int16 __ovld amd_max3(int16 src0, int16 src1, int16 src2);
17041
17042uint __ovld amd_max3(uint src0, uint src1, uint src2);
17043uint2 __ovld amd_max3(uint2 src0, uint2 src1, uint2 src2);
17044uint3 __ovld amd_max3(uint3 src0, uint3 src1, uint3 src2);
17045uint4 __ovld amd_max3(uint4 src0, uint4 src1, uint4 src2);
17046uint8 __ovld amd_max3(uint8 src0, uint8 src1, uint8 src2);
17047uint16 __ovld amd_max3(uint16 src0, uint16 src1, uint16 src2);
17048
17049float __ovld amd_median3(float src0, float src1, float src2);
17050float2 __ovld amd_median3(float2 src0, float2 src1, float2 src2);
17051float3 __ovld amd_median3(float3 src0, float3 src1, float3 src2);
17052float4 __ovld amd_median3(float4 src0, float4 src1, float4 src2);
17053float8 __ovld amd_median3(float8 src0, float8 src1, float8 src2);
17054float16 __ovld amd_median3(float16 src0, float16 src1, float16 src2);
17055
17056int __ovld amd_median3(int src0, int src1, int src2);
17057int2 __ovld amd_median3(int2 src0, int2 src1, int2 src2);
17058int3 __ovld amd_median3(int3 src0, int3 src1, int3 src2);
17059int4 __ovld amd_median3(int4 src0, int4 src1, int4 src2);
17060int8 __ovld amd_median3(int8 src0, int8 src1, int8 src2);
17061int16 __ovld amd_median3(int16 src0, int16 src1, int16 src2);
17062
17063uint __ovld amd_median3(uint src0, uint src1, uint src2);
17064uint2 __ovld amd_median3(uint2 src0, uint2 src1, uint2 src2);
17065uint3 __ovld amd_median3(uint3 src0, uint3 src1, uint3 src2);
17066uint4 __ovld amd_median3(uint4 src0, uint4 src1, uint4 src2);
17067uint8 __ovld amd_median3(uint8 src0, uint8 src1, uint8 src2);
17068uint16 __ovld amd_median3(uint16 src0, uint16 src1, uint16 src2);
17069
17070float __ovld amd_min3(float src0, float src1, float src);
17071float2 __ovld amd_min3(float2 src0, float2 src1, float2 src);
17072float3 __ovld amd_min3(float3 src0, float3 src1, float3 src);
17073float4 __ovld amd_min3(float4 src0, float4 src1, float4 src);
17074float8 __ovld amd_min3(float8 src0, float8 src1, float8 src);
17075float16 __ovld amd_min3(float16 src0, float16 src1, float16 src);
17076
17077int __ovld amd_min3(int src0, int src1, int src2);
17078int2 __ovld amd_min3(int2 src0, int2 src1, int2 src2);
17079int3 __ovld amd_min3(int3 src0, int3 src1, int3 src2);
17080int4 __ovld amd_min3(int4 src0, int4 src1, int4 src2);
17081int8 __ovld amd_min3(int8 src0, int8 src1, int8 src2);
17082int16 __ovld amd_min3(int16 src0, int16 src1, int16 src2);
17083
17084uint __ovld amd_min3(uint src0, uint src1, uint src2);
17085uint2 __ovld amd_min3(uint2 src0, uint2 src1, uint2 src2);
17086uint3 __ovld amd_min3(uint3 src0, uint3 src1, uint3 src2);
17087uint4 __ovld amd_min3(uint4 src0, uint4 src1, uint4 src2);
17088uint8 __ovld amd_min3(uint8 src0, uint8 src1, uint8 src2);
17089uint16 __ovld amd_min3(uint16 src0, uint16 src1, uint16 src2);
17090
17091ulong __ovld amd_mqsad(ulong src0, uint src1, ulong src2);
17092ulong2 __ovld amd_mqsad(ulong2 src0, uint2 src1, ulong2 src2);
17093ulong3 __ovld amd_mqsad(ulong3 src0, uint3 src1, ulong3 src2);
17094ulong4 __ovld amd_mqsad(ulong4 src0, uint4 src1, ulong4 src2);
17095ulong8 __ovld amd_mqsad(ulong8 src0, uint8 src1, ulong8 src2);
17096ulong16 __ovld amd_mqsad(ulong16 src0, uint16 src1, ulong16 src2);
17097
17098ulong __ovld amd_qsad(ulong src0, uint src1, ulong src2);
17099ulong2 __ovld amd_qsad(ulong2 src0, uint2 src1, ulong2 src2);
17100ulong3 __ovld amd_qsad(ulong3 src0, uint3 src1, ulong3 src2);
17101ulong4 __ovld amd_qsad(ulong4 src0, uint4 src1, ulong4 src2);
17102ulong8 __ovld amd_qsad(ulong8 src0, uint8 src1, ulong8 src2);
17103ulong16 __ovld amd_qsad(ulong16 src0, uint16 src1, ulong16 src2);
17104
17105uint __ovld amd_msad(uint src0, uint src1, uint src2);
17106uint2 __ovld amd_msad(uint2 src0, uint2 src1, uint2 src2);
17107uint3 __ovld amd_msad(uint3 src0, uint3 src1, uint3 src2);
17108uint4 __ovld amd_msad(uint4 src0, uint4 src1, uint4 src2);
17109uint8 __ovld amd_msad(uint8 src0, uint8 src1, uint8 src2);
17110uint16 __ovld amd_msad(uint16 src0, uint16 src1, uint16 src2);
17111
17112uint __ovld amd_sadd(uint src0, uint src1, uint src2);
17113uint2 __ovld amd_sadd(uint2 src0, uint2 src1, uint2 src2);
17114uint3 __ovld amd_sadd(uint3 src0, uint3 src1, uint3 src2);
17115uint4 __ovld amd_sadd(uint4 src0, uint4 src1, uint4 src2);
17116uint8 __ovld amd_sadd(uint8 src0, uint8 src1, uint8 src2);
17117uint16 __ovld amd_sadd(uint16 src0, uint16 src1, uint16 src2);
17118
17119uint __ovld amd_sadw(uint src0, uint src1, uint src2);
17120uint2 __ovld amd_sadw(uint2 src0, uint2 src1, uint2 src2);
17121uint3 __ovld amd_sadw(uint3 src0, uint3 src1, uint3 src2);
17122uint4 __ovld amd_sadw(uint4 src0, uint4 src1, uint4 src2);
17123uint8 __ovld amd_sadw(uint8 src0, uint8 src1, uint8 src2);
17124uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2);
17125#endif // cl_amd_media_ops2
17126
17127#if defined(cl_arm_integer_dot_product_int8)
17128#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin
17129uint __ovld arm_dot(uchar4 a, uchar4 b);
17130int __ovld arm_dot(char4 a, char4 b);
17131#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end
17132#endif // defined(cl_arm_integer_dot_product_int8)
17133
17134#if defined(cl_arm_integer_dot_product_accumulate_int8)
17135#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin
17136uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c);
17137int __ovld arm_dot_acc(char4 a, char4 b, int c);
17138#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end
17139#endif // defined(cl_arm_integer_dot_product_accumulate_int8)
17140
17141#if defined(cl_arm_integer_dot_product_accumulate_int16)
17142#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin
17143uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c);
17144int __ovld arm_dot_acc(short2 a, short2 b, int c);
17145#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end
17146#endif // defined(cl_arm_integer_dot_product_accumulate_int16)
17147
17148#if defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
17149#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin
17150uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c);
17151int __ovld arm_dot_acc_sat(char4 a, char4 b, int c);
17152#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : end
17153#endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8)
17154
17155// Disable any extensions we may have enabled previously.
17156#pragma OPENCL EXTENSION all : disable
17157
17158#undef __cnfn
17159#undef __ovld
17160#endif //_OPENCL_H_
etiss_uint8 uint8
Definition 386-GCC.h:76
etiss_int8 int8
Definition 386-GCC.h:77
etiss_int16 int16
Definition 386-GCC.h:79
etiss_uint16 uint16
Definition 386-GCC.h:78
__device__ __2f16 b
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
__device__ __2f16 float c
do v
Definition arm_acle.h:76
__INTPTR_TYPE__ intptr_t
A signed integer type with the property that any valid pointer to void can be converted to this type,...
memory_order
__UINTPTR_TYPE__ uintptr_t
An unsigned integer type with the property that any valid pointer to void can be converted to this ty...
int clk_profiling_info
uint cl_mem_fence_flags
unsigned char uchar
An unsigned 8-bit integer.
__PTRDIFF_TYPE__ ptrdiff_t
A signed integer type that is the result of subtracting two pointers.
unsigned long ulong
An unsigned 64-bit integer.
unsigned int uint
An unsigned 32-bit integer.
memory_scope
unsigned short ushort
An unsigned 16-bit integer.
int4 __ovld __cnfn convert_int4_rte(char4)
uint8 __ovld __cnfn convert_uint8_rte(char8)
long __ovld __cnfn convert_long_rtp(char)
long2 __ovld __cnfn convert_long2_sat_rtp(char2)
float8 __ovld vloada_half8(size_t offset, const __constant half *p)
void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p)
void __ovld vstore_half_rtp(float data, size_t offset, half *p)
char __ovld __cnfn bitselect(char a, char b, char c)
Each bit of the result is the corresponding bit of a if the corresponding bit of c is 0.
char2 __ovld __cnfn convert_char2_rtp(char2)
short8 __ovld __cnfn convert_short8_sat_rte(char8)
uchar8 __ovld __cnfn convert_uchar8_rtp(char8)
ulong16 __ovld __cnfn convert_ulong16_sat(char16)
float __ovld vloada_half(size_t offset, const __constant half *p)
For n = 1, 2, 4, 8 and 16 read sizeof (halfn) bytes of data from address (p + (offset * n)).
uchar __ovld __cnfn convert_uchar(char)
ulong8 __ovld __cnfn convert_ulong8_rte(char8)
void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p)
int16 __ovld __cnfn convert_int16_sat_rtn(char16)
int3 __ovld __cnfn convert_int3_rtn(char3)
float __ovld __cnfn native_powr(float x, float y)
Compute x to the power y, where x is >= 0.
short4 __ovld __cnfn convert_short4_rtp(char4)
void __ovld vstore2(char2 data, size_t offset, char *p)
char __ovld __cnfn mul_hi(char x, char y)
Computes x * y and returns the high half of the product of x and y.
void __ovld vstorea_half_rtp(float data, size_t offset, half *p)
ulong2 __ovld __cnfn convert_ulong2_rtn(char2)
ushort8 __ovld __cnfn convert_ushort8_rtn(char8)
void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p)
uint16 __ovld __cnfn convert_uint16_sat_rtp(char16)
float __ovld __cnfn acospi(float x)
Compute acos (x) / PI.
float4 __ovld __cnfn cross(float4 p0, float4 p1)
Returns the cross product of p0.xyz and p1.xyz.
char __ovld __cnfn mad_sat(char a, char b, char c)
Returns a * b + c and saturates the result.
float16 __ovld vload_half16(size_t offset, const __constant half *p)
char __ovld __cnfn sub_sat(char x, char y)
Returns x - y and saturates the result.
int3 __ovld __cnfn convert_int3_rtp(char3)
char3 __ovld __cnfn convert_char3_sat(char3)
char4 __ovld __cnfn convert_char4_sat(char4)
long __ovld __cnfn convert_long_rtz(char)
ushort8 __ovld __cnfn convert_ushort8_sat_rtn(char8)
uint __ovld __cnfn convert_uint_sat_rtn(char)
uint16 __ovld __cnfn convert_uint16_sat_rtn(char16)
uchar8 __ovld __cnfn convert_uchar8(char8)
float __ovld __cnfn half_sin(float x)
Compute sine.
uchar2 __ovld __cnfn convert_uchar2_sat(char2)
void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p)
float __ovld __cnfn radians(float degrees)
Converts degrees to radians, i.e.
int3 __ovld __cnfn convert_int3(char3)
short __ovld __cnfn convert_short_sat_rtn(char)
size_t __ovld __cnfn get_global_size(uint dimindx)
Returns the number of global work-items specified for dimension identified by dimindx.
uchar2 __ovld __cnfn convert_uchar2_rte(char2)
uchar16 __ovld __cnfn convert_uchar16_sat_rtn(char16)
ulong4 __ovld __cnfn convert_ulong4_rtp(char4)
ushort3 __ovld __cnfn convert_ushort3_rtz(char3)
int __ovld __cnfn get_image_depth(read_only image3d_t image)
Return the image depth in pixels.
int16 __ovld __cnfn convert_int16_sat(char16)
void __ovld vstore_half16_rte(float16 data, size_t offset, half *p)
char4 __ovld __cnfn convert_char4_rte(char4)
int2 __ovld __cnfn convert_int2_sat_rtz(char2)
float __ovld __cnfn half_cos(float x)
Compute cosine.
void __ovld set_user_event_status(clk_event_t e, int state)
void __ovld mem_fence(cl_mem_fence_flags flags)
Orders loads and stores of a work-item executing a kernel.
float __ovld __cnfn convert_float_rte(char)
int __ovld __cnfn islessequal(float x, float y)
Returns the component-wise compare of x <= y.
ulong __ovld __cnfn convert_ulong_rtz(char)
float2 __ovld __cnfn convert_float2_rtp(char2)
short4 __ovld __cnfn convert_short4_sat_rtn(char4)
short2 __ovld __cnfn convert_short2_rtz(char2)
void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color)
char8 __ovld __cnfn convert_char8_sat_rte(char8)
float __ovld __cnfn maxmag(float x, float y)
Returns x if | x | > | y |, y if | y | > | x |, otherwise fmax(x, y).
ushort8 __ovld __cnfn convert_ushort8_sat_rtp(char8)
int3 __ovld __cnfn convert_int3_rtz(char3)
float __ovld __cnfn native_log(float x)
Compute natural logarithm over an implementationdefined range.
ushort8 __ovld __cnfn convert_ushort8_sat_rtz(char8)
int __ovld __cnfn isnotequal(float x, float y)
Returns the component-wise compare of x != y.
char8 __ovld __cnfn convert_char8_sat_rtn(char8)
int2 __ovld __cnfn convert_int2_sat(char2)
float __ovld __cnfn atan2pi(float y, float x)
Compute atan2 (y, x) / PI.
float __ovld __cnfn normalize(float p)
Returns a vector in the same direction as p but with a length of 1.
float __ovld __cnfn distance(float p0, float p1)
Returns the distance between p0 and p1.
void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p)
int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order)
void __ovld vstore_half8(float8 data, size_t offset, half *p)
ushort3 __ovld __cnfn convert_ushort3_rtn(char3)
float4 __ovld __cnfn convert_float4(char4)
ulong8 __ovld __cnfn convert_ulong8_rtp(char8)
size_t __ovld __cnfn get_local_id(uint dimindx)
Returns the unique local work-item ID i.e.
uint3 __ovld __cnfn convert_uint3_rtn(char3)
ushort3 __ovld __cnfn convert_ushort3_sat_rtn(char3)
long2 __ovld __cnfn convert_long2_sat(char2)
ushort3 __ovld __cnfn convert_ushort3_rte(char3)
ulong16 __ovld __cnfn convert_ulong16_sat_rtp(char16)
int __ovld atomic_or(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
void __ovld vstore8(char8 data, size_t offset, char *p)
float2 __ovld vload_half2(size_t offset, const __constant half *p)
Read sizeof (halfn) bytes of data from address (p + (offset * n)).
char8 __ovld __cnfn convert_char8(char8)
int printf(__constant const char *st,...) __attribute__((format(printf
char __ovld __cnfn convert_char_sat(char)
ulong3 __ovld __cnfn convert_ulong3_sat_rtn(char3)
uchar __ovld __cnfn abs_diff(char x, char y)
Returns | x - y | without modulo overflow.
ushort __ovld __cnfn convert_ushort_rtn(char)
uint4 __ovld __cnfn convert_uint4_rtz(char4)
float16 __ovld __cnfn convert_float16_rtn(char16)
short3 __ovld __cnfn convert_short3_rtp(char3)
int __ovld __cnfn convert_int_sat_rtz(char)
float __ovld __cnfn sign(float x)
Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x = +0.0, or -1.0 if x < 0.
int16 __ovld __cnfn convert_int16(char16)
float __ovld __cnfn native_sin(float x)
Compute sine over an implementation-defined range.
uint __ovld __cnfn convert_uint_rtz(char)
ushort8 __ovld __cnfn convert_ushort8_rte(char8)
long3 __ovld __cnfn convert_long3_sat_rtz(char3)
short16 __ovld __cnfn convert_short16_sat_rte(char16)
ulong8 __ovld __cnfn convert_ulong8_sat_rtn(char8)
ushort3 __ovld __cnfn convert_ushort3_sat(char3)
int8 __ovld __cnfn convert_int8_sat(char8)
void __ovld vstorea_half16(float16 data, size_t offset, half *p)
float3 __ovld __cnfn convert_float3_rtp(char3)
int16 __ovld __cnfn convert_int16_rtp(char16)
float __ovld __cnfn half_recip(float x)
Compute reciprocal.
void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p)
char2 __ovld __cnfn shuffle(char2 x, uchar2 mask)
The shuffle and shuffle2 built-in functions construct a permutation of elements from one or two input...
void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p)
ulong4 __ovld __cnfn convert_ulong4_sat_rtn(char4)
uchar2 __ovld __cnfn convert_uchar2_sat_rtp(char2)
char4 __ovld vload4(size_t offset, const __constant char *p)
void __ovld vstore16(char16 data, size_t offset, char *p)
uchar __ovld __cnfn abs(char x)
Returns | x |.
void __ovld vstorea_half_rte(float data, size_t offset, half *p)
ulong2 __ovld __cnfn convert_ulong2_sat_rtz(char2)
int4 __ovld __cnfn convert_int4_sat_rtz(char4)
ushort8 __ovld __cnfn convert_ushort8_sat(char8)
int __ovld atomic_xchg(volatile __global int *p, int val)
Swaps the old value stored at location p with new value given by val.
uint3 __ovld __cnfn convert_uint3_sat(char3)
void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p)
size_t __ovld __cnfn get_num_groups(uint dimindx)
Returns the number of work-groups that will execute a kernel for dimension identified by dimindx.
void __ovld write_mem_fence(cl_mem_fence_flags flags)
Write memory barrier that orders only stores.
int __ovld atomic_sub(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
ulong4 __ovld __cnfn convert_ulong4_sat(char4)
float __ovld __cnfn nan(uint nancode)
Returns a quiet NaN.
int16 __ovld __cnfn convert_int16_sat_rtp(char16)
char16 __ovld __cnfn convert_char16_sat_rtz(char16)
uint __ovld __cnfn convert_uint_sat(char)
ushort4 __ovld __cnfn convert_ushort4_sat_rtn(char4)
void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p)
float3 __ovld __cnfn convert_float3_rtn(char3)
int __ovld __cnfn isgreater(float x, float y)
Returns the component-wise compare of x > y.
long16 __ovld __cnfn convert_long16(char16)
short16 __ovld __cnfn convert_short16_rtn(char16)
float __ovld __cnfn atanpi(float x)
Compute atan (x) / PI.
char __ovld __cnfn rotate(char v, char i)
For each element in v, the bits are shifted left by the number of bits given by the corresponding ele...
short2 __ovld __cnfn convert_short2_rtp(char2)
uchar8 __ovld __cnfn convert_uchar8_rtz(char8)
float __ovld __cnfn native_recip(float x)
Compute reciprocal over an implementation-defined range.
int __ovld atomic_add(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
int __ovld __cnfn convert_int_rtz(char)
char16 __ovld __cnfn convert_char16_rtz(char16)
ushort16 __ovld __cnfn convert_ushort16_rte(char16)
int2 __ovld __cnfn convert_int2_sat_rtp(char2)
float __ovld __cnfn native_rsqrt(float x)
Compute inverse square root over an implementationdefined range.
void __ovld __conv barrier(cl_mem_fence_flags flags)
All work-items in a work-group executing the kernel on a processor must execute this function before ...
char __ovld __cnfn convert_char_sat_rtn(char)
short2 __ovld __cnfn convert_short2(char2)
short2 __ovld __cnfn convert_short2_sat_rtp(char2)
int __ovld __cnfn convert_int_rtn(char)
ushort __ovld __cnfn convert_ushort_sat_rtz(char)
long4 __ovld __cnfn convert_long4(char4)
short16 __ovld __cnfn convert_short16_sat(char16)
uchar3 __ovld __cnfn convert_uchar3_rtn(char3)
short8 __ovld __cnfn convert_short8(char8)
float __ovld __cnfn length(float p)
Return the length of vector p, i.e., sqrt(p.x2 + p.y 2 + ...)
ulong2 __ovld __cnfn convert_ulong2_sat(char2)
float __ovld __cnfn rootn(float x, int y)
Compute x to the power 1/y.
ulong3 __ovld __cnfn convert_ulong3_sat_rte(char3)
void __ovld vstore_half2_rte(float2 data, size_t offset, half *p)
short4 __ovld __cnfn convert_short4_sat_rte(char4)
float __ovld __cnfn sinpi(float x)
Compute sin (PI * x).
ulong8 __ovld __cnfn convert_ulong8_sat(char8)
char2 __ovld __cnfn convert_char2_sat_rtp(char2)
uint __ovld __cnfn convert_uint_sat_rte(char)
uint8 __ovld __cnfn convert_uint8_sat_rte(char8)
float __ovld __cnfn native_exp10(float x)
Compute the base- 10 exponential of x over an implementation-defined range.
int16 __ovld __cnfn convert_int16_rte(char16)
char16 __ovld __cnfn convert_char16_sat_rtn(char16)
ulong __ovld __cnfn convert_ulong_sat_rte(char)
float __ovld __cnfn convert_float_rtp(char)
ulong2 __ovld __cnfn convert_ulong2_sat_rtp(char2)
uint3 __ovld __cnfn convert_uint3_rtp(char3)
float16 __ovld __cnfn convert_float16_rtp(char16)
short4 __ovld __cnfn convert_short4_sat_rtz(char4)
int3 __ovld __cnfn convert_int3_sat_rtz(char3)
ushort3 __ovld __cnfn convert_ushort3_sat_rte(char3)
ulong __ovld __cnfn convert_ulong_sat(char)
long3 __ovld __cnfn convert_long3_sat(char3)
ulong4 __ovld __cnfn convert_ulong4_sat_rtz(char4)
long8 __ovld __cnfn convert_long8_sat_rte(char8)
int4 __ovld __cnfn convert_int4(char4)
ushort8 __ovld __cnfn convert_ushort8_rtz(char8)
short __ovld __cnfn convert_short_sat_rtp(char)
ulong4 __ovld __cnfn convert_ulong4_rtn(char4)
void __ovld vstorea_half4(float4 data, size_t offset, half *p)
long16 __ovld __cnfn convert_long16_rtn(char16)
uint __ovld __cnfn convert_uint_rtn(char)
short2 __ovld __cnfn convert_short2_rte(char2)
void __ovld vstore_half4_rte(float4 data, size_t offset, half *p)
float __ovld __cnfn half_powr(float x, float y)
Compute x to the power y, where x is >= 0.
ulong3 __ovld __cnfn convert_ulong3_rtp(char3)
char __ovld __cnfn clz(char x)
Returns the number of leading 0-bits in x, starting at the most significant bit position.
ulong16 __ovld __cnfn convert_ulong16_rtz(char16)
int2 __ovld __cnfn convert_int2_rte(char2)
void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p)
float8 __ovld __cnfn convert_float8_rte(char8)
uchar3 __ovld __cnfn convert_uchar3(char3)
char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask)
float __ovld __cnfn convert_float_rtz(char)
char4 __ovld __cnfn convert_char4_sat_rte(char4)
float __ovld __cnfn exp10(float)
Exponential base 10 function.
char __ovld __cnfn convert_char(char)
ushort16 __ovld __cnfn convert_ushort16_sat_rte(char16)
void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p)
queue_t __ovld get_default_queue(void)
int __ovld __cnfn isinf(float)
Test for infinity value (+ve or -ve) .
int __ovld atomic_fetch_max(volatile atomic_int *object, int operand)
ushort3 __ovld __cnfn convert_ushort3_sat_rtz(char3)
short __ovld __cnfn convert_short_rtp(char)
void __ovld wait_group_events(int num_events, event_t *event_list)
Wait for events that identify the async_work_group_copy operations to complete.
uchar __ovld __cnfn convert_uchar_rte(char)
void __ovld release_event(clk_event_t)
float8 __ovld vload_half8(size_t offset, const __constant half *p)
float3 __ovld __cnfn convert_float3_rtz(char3)
long __ovld __cnfn convert_long_rte(char)
float2 __ovld vloada_half2(size_t offset, const __constant half *p)
short8 __ovld __cnfn convert_short8_rtz(char8)
size_t __ovld get_global_linear_id(void)
char __ovld __cnfn convert_char_sat_rtz(char)
int __ovld __cnfn convert_int_rtp(char)
long3 __ovld __cnfn convert_long3_sat_rtp(char3)
uchar __ovld __cnfn convert_uchar_rtp(char)
void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope)
ulong4 __ovld __cnfn convert_ulong4(char4)
uint4 __ovld __cnfn convert_uint4_sat(char4)
ulong2 __ovld __cnfn convert_ulong2(char2)
long2 __ovld __cnfn convert_long2_rtn(char2)
int __ovld __cnfn isequal(float x, float y)
intn isequal (floatn x, floatn y) Returns the component-wise compare of x == y.
long16 __ovld __cnfn convert_long16_rtp(char16)
void __ovld vstorea_half8(float8 data, size_t offset, half *p)
int __ovld atomic_and(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
ushort16 __ovld __cnfn convert_ushort16_sat_rtn(char16)
long3 __ovld __cnfn convert_long3_sat_rtn(char3)
uint2 __ovld __cnfn convert_uint2_rtp(char2)
uint3 __ovld __cnfn convert_uint3(char3)
size_t __ovld __cnfn get_global_id(uint dimindx)
Returns the unique global work-item ID value for dimension identified by dimindx.
ushort4 __ovld __cnfn convert_ushort4_sat(char4)
short __ovld __cnfn convert_short_rtz(char)
uint8 __ovld __cnfn convert_uint8_sat_rtn(char8)
uchar __ovld __cnfn convert_uchar_sat(char)
float8 __ovld __cnfn convert_float8_rtn(char8)
short4 __ovld __cnfn convert_short4_sat(char4)
float4 __ovld __cnfn convert_float4_rte(char4)
uchar4 __ovld __cnfn convert_uchar4_rtz(char4)
char4 __ovld __cnfn convert_char4_rtp(char4)
uchar16 __ovld __cnfn convert_uchar16_sat(char16)
long8 __ovld __cnfn convert_long8_sat_rtp(char8)
short3 __ovld __cnfn convert_short3_rte(char3)
uint3 __ovld __cnfn convert_uint3_sat_rtz(char3)
float __ovld __cnfn native_cos(float x)
Compute cosine over an implementation-defined range.
void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void *value)
char3 __ovld __cnfn convert_char3_sat_rtp(char3)
int __ovld __cnfn isless(float x, float y)
Returns the component-wise compare of x < y.
float __ovld __cnfn half_log10(float x)
Compute a base 10 logarithm.
ushort16 __ovld __cnfn convert_ushort16(char16)
float __ovld __cnfn half_exp2(float x)
Compute the base- 2 exponential of x.
float __ovld __cnfn native_exp2(float x)
Compute the base- 2 exponential of x over an implementation-defined range.
long4 __ovld __cnfn convert_long4_sat_rtp(char4)
uint8 __ovld __cnfn convert_uint8_rtn(char8)
size_t __ovld __cnfn get_global_offset(uint dimindx)
get_global_offset returns the offset values specified in global_work_offset argument to clEnqueueNDRa...
int __ovld __conv work_group_scan_exclusive_min(int x)
void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p)
float8 __ovld __cnfn convert_float8(char8)
void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p)
int __ovld __cnfn any(char x)
Returns 1 if the most significant bit in any component of x is set; otherwise returns 0.
float16 __ovld __cnfn convert_float16(char16)
char8 __ovld __cnfn convert_char8_rtp(char8)
short3 __ovld __cnfn convert_short3_rtz(char3)
char16 __ovld __cnfn convert_char16_sat_rte(char16)
long16 __ovld __cnfn convert_long16_rte(char16)
uchar3 __ovld __cnfn convert_uchar3_sat(char3)
uchar16 __ovld __cnfn convert_uchar16_sat_rte(char16)
float __ovld __cnfn tanpi(float x)
Compute tan (PI * x).
long8 __ovld __cnfn convert_long8_rtz(char8)
ushort16 __ovld __cnfn convert_ushort16_rtn(char16)
ulong2 __ovld __cnfn convert_ulong2_sat_rtn(char2)
float __ovld __cnfn fast_distance(float p0, float p1)
Returns fast_length(p0 - p1).
float __ovld __cnfn half_log2(float x)
Compute a base 2 logarithm.
char4 __ovld __cnfn convert_char4(char4)
int2 __ovld __cnfn convert_int2_rtz(char2)
short16 __ovld __cnfn convert_short16_sat_rtn(char16)
ulong __ovld __cnfn convert_ulong_rtn(char)
ulong16 __ovld __cnfn convert_ulong16_rtp(char16)
void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p)
float __ovld __cnfn minmag(float x, float y)
Returns x if | x | < | y |, y if | y | < | x |, otherwise fmin(x, y).
char3 __ovld __cnfn convert_char3_sat_rtn(char3)
short __ovld __cnfn convert_short_rte(char)
short3 __ovld __cnfn convert_short3_sat(char3)
long8 __ovld __cnfn convert_long8_sat(char8)
uint __ovld __cnfn convert_uint_sat_rtp(char)
char2 __ovld __cnfn convert_char2_sat_rte(char2)
char4 __ovld __cnfn convert_char4_sat_rtp(char4)
long8 __ovld __cnfn convert_long8_rtp(char8)
uint __ovld __cnfn convert_uint_rtp(char)
ulong __ovld __cnfn convert_ulong(char)
short4 __ovld __cnfn convert_short4_rtz(char4)
int __ovld atomic_xor(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
uchar3 __ovld __cnfn convert_uchar3_sat_rtn(char3)
int __ovld __conv work_group_scan_exclusive_add(int x)
ulong8 __ovld __cnfn convert_ulong8_rtn(char8)
float __ovld __cnfn mad(float a, float b, float c)
mad approximates a * b + c.
size_t __ovld get_local_linear_id(void)
short2 __ovld __cnfn convert_short2_sat(char2)
char3 __ovld __cnfn convert_char3_rtz(char3)
uint2 __ovld __cnfn convert_uint2_sat_rtz(char2)
int __ovld __conv work_group_scan_inclusive_max(int x)
uchar4 __ovld __cnfn convert_uchar4_sat_rte(char4)
int8 __ovld __cnfn convert_int8(char8)
ulong16 __ovld __cnfn convert_ulong16_rte(char16)
char16 __ovld __cnfn convert_char16_rtp(char16)
int16 __ovld __cnfn convert_int16_sat_rte(char16)
long16 __ovld __cnfn convert_long16_sat(char16)
uchar __ovld __cnfn convert_uchar_rtz(char)
char3 __ovld __cnfn convert_char3_rtp(char3)
char __ovld __cnfn clamp(char x, char minval, char maxval)
Returns min(max(x, minval), maxval).
int8 __ovld __cnfn convert_int8_sat_rtp(char8)
ulong2 __ovld __cnfn convert_ulong2_rte(char2)
char __ovld __cnfn convert_char_rtz(char)
int __ovld __conv work_group_scan_inclusive_min(int x)
short16 __ovld __cnfn convert_short16_sat_rtp(char16)
float4 __ovld __cnfn convert_float4_rtz(char4)
uint4 __ovld __cnfn convert_uint4_rtn(char4)
float __ovld __cnfn convert_float_rtn(char)
float __ovld __cnfn rsqrt(float)
Compute inverse square root.
char __ovld __cnfn mad_hi(char a, char b, char c)
Returns mul_hi(a, b) + c.
char __ovld __cnfn min(char x, char y)
Returns y if y < x, otherwise it returns x.
float2 __ovld __cnfn convert_float2_rte(char2)
void __ovld read_mem_fence(cl_mem_fence_flags flags)
Read memory barrier that orders only loads.
float __ovld __cnfn step(float edge, float x)
Returns 0.0 if x < edge, otherwise it returns 1.0.
ushort4 __ovld __cnfn convert_ushort4_rtp(char4)
int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord)
char3 __ovld __cnfn convert_char3_rtn(char3)
char3 __ovld __cnfn convert_char3_sat_rte(char3)
int __ovld atomic_max(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
int __ovld __cnfn convert_int_sat_rte(char)
short8 __ovld __cnfn convert_short8_sat_rtz(char8)
uchar8 __ovld __cnfn convert_uchar8_sat_rtp(char8)
uchar2 __ovld __cnfn convert_uchar2(char2)
uint4 __ovld __cnfn convert_uint4_rtp(char4)
ushort4 __ovld __cnfn convert_ushort4_rtz(char4)
ushort __ovld __cnfn convert_ushort_sat(char)
void __ovld vstore3(char3 data, size_t offset, char *p)
int3 __ovld __cnfn convert_int3_sat_rtp(char3)
uint8 __ovld __cnfn convert_uint8_sat_rtp(char8)
float __ovld __cnfn half_divide(float x, float y)
Compute x / y.
ulong8 __ovld __cnfn convert_ulong8_rtz(char8)
char4 __ovld __cnfn convert_char4_sat_rtn(char4)
short __ovld __cnfn convert_short_sat_rtz(char)
ulong3 __ovld __cnfn convert_ulong3_sat_rtp(char3)
uchar3 __ovld __cnfn convert_uchar3_sat_rte(char3)
ulong16 __ovld __cnfn convert_ulong16_rtn(char16)
char2 __ovld __cnfn convert_char2_rte(char2)
uchar4 __ovld __cnfn convert_uchar4_sat_rtn(char4)
float __ovld modf(float x, float *iptr)
Decompose a floating-point number.
char4 __ovld __cnfn convert_char4_sat_rtz(char4)
short3 __ovld __cnfn convert_short3_sat_rtp(char3)
ushort2 __ovld __cnfn convert_ushort2_sat(char2)
float8 __ovld __cnfn convert_float8_rtz(char8)
void __ovld retain_event(clk_event_t)
short3 __ovld __cnfn convert_short3_sat_rte(char3)
char8 __ovld __cnfn convert_char8_sat_rtz(char8)
uchar2 __ovld __cnfn convert_uchar2_rtp(char2)
int __ovld __conv work_group_any(int predicate)
ushort16 __ovld __cnfn convert_ushort16_sat_rtz(char16)
uint4 __ovld __cnfn convert_uint4_sat_rte(char4)
float __ovld lgamma_r(float x, int *signp)
short16 __ovld __cnfn convert_short16_sat_rtz(char16)
uchar3 __ovld __cnfn convert_uchar3_rtp(char3)
ushort4 __ovld __cnfn convert_ushort4_sat_rtz(char4)
int float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord)
Use the coordinate (coord.xy) to do an element lookup in the 2D image object specified by image.
void __ovld vstore_half8_rte(float8 data, size_t offset, half *p)
char __ovld __cnfn popcount(char x)
uint3 __ovld __cnfn convert_uint3_rtz(char3)
void __ovld vstore_half4(float4 data, size_t offset, half *p)
uint8 __ovld __cnfn convert_uint8_sat(char8)
uchar2 __ovld __cnfn convert_uchar2_sat_rtn(char2)
int __ovld __conv work_group_scan_exclusive_max(int x)
float3 __ovld vload_half3(size_t offset, const __constant half *p)
float __ovld __cnfn fast_normalize(float p)
Returns a vector in the same direction as p but with a length of 1.
ushort2 __ovld __cnfn convert_ushort2_rtz(char2)
int __ovld __cnfn isfinite(float)
Test for finite value.
float __ovld __cnfn native_tan(float x)
Compute tangent over an implementation-defined range.
float __ovld __cnfn half_tan(float x)
Compute tangent.
float3 __ovld __cnfn convert_float3(char3)
float __ovld __cnfn half_rsqrt(float x)
Compute inverse square root.
int4 __ovld __cnfn convert_int4_sat_rte(char4)
char8 __ovld __cnfn convert_char8_rtz(char8)
short4 __ovld __cnfn convert_short4_sat_rtp(char4)
float __ovld __cnfn native_exp(float x)
Compute the base- e exponential of x over an implementation-defined range.
float __ovld __cnfn pown(float x, int y)
Compute x to the power y, where y is an integer.
int2 __ovld __cnfn convert_int2_rtp(char2)
long4 __ovld __cnfn convert_long4_sat_rtn(char4)
int16 __ovld __cnfn convert_int16_sat_rtz(char16)
void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color)
Write color value to location specified by coordinate (coord.x, coord.y) in the 2D image object speci...
uchar4 __ovld __cnfn convert_uchar4_sat(char4)
ushort __ovld __cnfn convert_ushort_rtz(char)
short8 __ovld __cnfn convert_short8_rtp(char8)
long4 __ovld __cnfn convert_long4_rtn(char4)
void __ovld vstore4(char4 data, size_t offset, char *p)
int4 __ovld __cnfn convert_int4_sat_rtn(char4)
char __ovld __cnfn max(char x, char y)
Returns y if x < y, otherwise it returns x.
long __ovld __cnfn convert_long(char)
short8 __ovld __cnfn convert_short8_rte(char8)
void __ovld vstore_half3(float3 data, size_t offset, half *p)
char16 __ovld __cnfn convert_char16_rte(char16)
int3 __ovld __cnfn convert_int3_sat_rte(char3)
int __ovld enqueue_marker(queue_t, uint, const clk_event_t *, clk_event_t *)
ushort2 __ovld __cnfn convert_ushort2_sat_rtz(char2)
short4 __ovld __cnfn convert_short4_rtn(char4)
float2 __ovld __cnfn convert_float2(char2)
long2 __ovld __cnfn convert_long2_rtz(char2)
char __ovld __cnfn convert_char_sat_rtp(char)
int __ovld __conv work_group_broadcast(int a, size_t local_id)
uint16 __ovld __cnfn convert_uint16_rtz(char16)
short3 __ovld __cnfn convert_short3_sat_rtn(char3)
uchar16 __ovld __cnfn convert_uchar16(char16)
uint3 __ovld __cnfn convert_uint3_rte(char3)
uint16 __ovld __cnfn convert_uint16_sat_rte(char16)
long3 __ovld __cnfn convert_long3_rtp(char3)
int __ovld __cnfn isnormal(float)
Test for a normal value.
ushort2 __ovld __cnfn convert_ushort2_rtn(char2)
char8 __ovld __cnfn convert_char8_sat(char8)
uint16 __ovld __cnfn convert_uint16_rtn(char16)
long8 __ovld __cnfn convert_long8_sat_rtn(char8)
uchar8 __ovld __cnfn convert_uchar8_sat_rtn(char8)
uchar8 __ovld __cnfn convert_uchar8_rte(char8)
uint4 __ovld __cnfn convert_uint4_sat_rtz(char4)
float __ovld __cnfn native_sqrt(float x)
Compute square root over an implementation-defined range.
int16 __ovld __cnfn convert_int16_rtn(char16)
int4 __ovld __cnfn convert_int4_rtz(char4)
void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p)
event_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)
Perform an async gather of num_elements gentype elements from src to dst.
void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p)
uint2 __ovld __cnfn convert_uint2_rte(char2)
ulong16 __ovld __cnfn convert_ulong16(char16)
int __ovld atomic_dec(volatile __global int *p)
Read the 32-bit value (referred to as old) stored at location pointed by p.
char __ovld __cnfn convert_char_rtp(char)
uchar8 __ovld __cnfn convert_uchar8_sat_rtz(char8)
ulong3 __ovld __cnfn convert_ulong3(char3)
char3 __ovld __cnfn convert_char3(char3)
int __ovld __cnfn get_image_height(read_only image2d_t image)
Return the image height in pixels.
long __ovld __cnfn convert_long_sat_rtz(char)
void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p)
long2 __ovld __cnfn convert_long2_sat_rtz(char2)
ulong4 __ovld __cnfn convert_ulong4_sat_rte(char4)
char2 __ovld __cnfn convert_char2_rtn(char2)
short2 __ovld __cnfn convert_short2_sat_rtz(char2)
short8 __ovld __cnfn convert_short8_sat_rtn(char8)
uint2 __ovld __cnfn convert_uint2_sat_rtn(char2)
uchar3 __ovld __cnfn convert_uchar3_rtz(char3)
float __ovld __cnfn native_divide(float x, float y)
Compute x / y over an implementation-defined range.
void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope)
uint3 __ovld __cnfn convert_uint3_sat_rtn(char3)
float4 __ovld vloada_half4(size_t offset, const __constant half *p)
uchar4 __ovld __cnfn convert_uchar4_rtn(char4)
uint4 __ovld __cnfn convert_uint4_sat_rtn(char4)
int8 __ovld __cnfn convert_int8_sat_rte(char8)
ulong3 __ovld __cnfn convert_ulong3_sat(char3)
ushort3 __ovld __cnfn convert_ushort3_rtp(char3)
float3 __ovld __cnfn convert_float3_rte(char3)
uchar __ovld __cnfn convert_uchar_rtn(char)
long4 __ovld __cnfn convert_long4_sat_rte(char4)
int3 __ovld __cnfn convert_int3_sat_rtn(char3)
long __ovld __cnfn convert_long_rtn(char)
uchar8 __ovld __cnfn convert_uchar8_sat_rte(char8)
long2 __ovld __cnfn convert_long2(char2)
float __ovld fract(float x, float *iptr)
Returns fmin(x - floor (x), 0x1.fffffep-1f ).
ulong16 __ovld __cnfn convert_ulong16_sat_rte(char16)
long __ovld __cnfn convert_long_sat(char)
short __ovld __cnfn convert_short_sat_rte(char)
ndrange_t __ovld ndrange_2D(const size_t[2])
ndrange_t __ovld ndrange_1D(size_t)
ulong16 __ovld __cnfn convert_ulong16_sat_rtz(char16)
ushort __ovld __cnfn convert_ushort_sat_rte(char)
short2 __ovld __cnfn convert_short2_sat_rte(char2)
size_t __ovld __cnfn get_group_id(uint dimindx)
get_group_id returns the work-group ID which is a number from 0 .
uint8 __ovld __cnfn convert_uint8(char8)
float __ovld __cnfn half_sqrt(float x)
Compute square root.
uint __ovld __cnfn get_work_dim(void)
Returns the number of dimensions in use.
long2 __ovld __cnfn convert_long2_sat_rtn(char2)
int2 __ovld __cnfn convert_int2_rtn(char2)
char __ovld __cnfn rhadd(char x, char y)
Returns (x + y + 1) >> 1.
long8 __ovld __cnfn convert_long8_rte(char8)
char16 __ovld __cnfn convert_char16_sat_rtp(char16)
uchar __ovld __cnfn convert_uchar_sat_rte(char)
uchar4 __ovld __cnfn convert_uchar4(char4)
uchar8 __ovld __cnfn convert_uchar8_rtn(char8)
int __ovld __cnfn isgreaterequal(float x, float y)
Returns the component-wise compare of x >= y.
void __ovld vstorea_half_rtz(float data, size_t offset, half *p)
float __ovld __cnfn half_exp(float x)
Compute the base- e exponential of x.
int __ovld __conv work_group_reduce_min(int x)
ushort8 __ovld __cnfn convert_ushort8_rtp(char8)
float4 __ovld __cnfn convert_float4_rtp(char4)
void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p)
uint2 __ovld __cnfn convert_uint2_sat_rtp(char2)
long8 __ovld __cnfn convert_long8_rtn(char8)
int __ovld __cnfn all(char x)
Returns 1 if the most significant bit in all components of x is set; otherwise returns 0.
int2 __ovld __cnfn get_image_dim(read_only image2d_t image)
Return the 2D image width and height as an int2 type.
char2 __ovld __cnfn convert_char2_rtz(char2)
ulong4 __ovld __cnfn convert_ulong4_rtz(char4)
ushort3 __ovld __cnfn convert_ushort3_sat_rtp(char3)
int __ovld __cnfn isunordered(float x, float y)
Test if arguments are unordered.
long16 __ovld __cnfn convert_long16_sat_rtp(char16)
uchar __ovld __cnfn convert_uchar_sat_rtn(char)
ushort4 __ovld __cnfn convert_ushort4_sat_rtp(char4)
uchar __ovld __cnfn convert_uchar_sat_rtz(char)
long4 __ovld __cnfn convert_long4_rtp(char4)
ushort3 __ovld __cnfn convert_ushort3(char3)
long2 __ovld __cnfn convert_long2_rtp(char2)
char4 __ovld __cnfn convert_char4_rtz(char4)
uchar4 __ovld __cnfn convert_uchar4_rtp(char4)
int __ovld __cnfn convert_int_sat_rtn(char)
uchar16 __ovld __cnfn convert_uchar16_rtz(char16)
int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order)
char2 __ovld __cnfn convert_char2(char2)
void __ovld vstorea_half2(float2 data, size_t offset, half *p)
char __ovld __cnfn select(char a, char b, char c)
For each component of a vector type, result[i] = if MSB of c[i] is set ? b[i] : a[i].
long4 __ovld __cnfn convert_long4_rtz(char4)
char __ovld __cnfn convert_char_rte(char)
ushort __ovld __cnfn convert_ushort(char)
uint8 __ovld __cnfn convert_uint8_rtp(char8)
long16 __ovld __cnfn convert_long16_rtz(char16)
int __ovld __cnfn mul24(int x, int y)
Multiply two 24-bit integer values x and y.
ushort8 __ovld __cnfn convert_ushort8_sat_rte(char8)
short16 __ovld __cnfn convert_short16_rtp(char16)
char2 __ovld vload2(size_t offset, const __constant char *p)
Use generic type gentype to indicate the built-in data types char, uchar, short, ushort,...
long4 __ovld __cnfn convert_long4_sat(char4)
long4 __ovld __cnfn convert_long4_rte(char4)
event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event)
Builtin functions to_global, to_local, and to_private need to be declared as Clang builtin functions ...
float __ovld __cnfn powr(float x, float y)
Compute x to the power y, where x is >= 0.
char8 __ovld __cnfn convert_char8_rtn(char8)
short3 __ovld __cnfn convert_short3(char3)
int8 __ovld __cnfn convert_int8_sat_rtn(char8)
char3 __ovld __cnfn convert_char3_sat_rtz(char3)
ulong8 __ovld __cnfn convert_ulong8(char8)
uchar3 __ovld __cnfn convert_uchar3_sat_rtz(char3)
bool __ovld is_valid_event(clk_event_t event)
void __ovld vstore_half2(float2 data, size_t offset, half *p)
The floatn value given by data is converted to a halfn value using the appropriate rounding mode.
void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p)
int __ovld __conv work_group_scan_inclusive_add(int x)
long3 __ovld __cnfn convert_long3_rte(char3)
char8 __ovld __cnfn convert_char8_sat_rtp(char8)
char __ovld __cnfn convert_char_rtn(char)
long3 __ovld __cnfn convert_long3_sat_rte(char3)
char __ovld __cnfn convert_char_sat_rte(char)
void __ovld vstorea_half_rtn(float data, size_t offset, half *p)
void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p)
ulong16 __ovld __cnfn convert_ulong16_sat_rtn(char16)
uint2 __ovld __cnfn convert_uint2_rtz(char2)
long __ovld __cnfn convert_long_sat_rte(char)
int2 __ovld __cnfn convert_int2(char2)
int __ovld __cnfn isnan(float)
Test for a NaN.
void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p)
#define __ovld
Definition opencl-c.h:31
short3 __ovld __cnfn convert_short3_rtn(char3)
int2 __ovld __cnfn convert_int2_sat_rtn(char2)
short __ovld __cnfn convert_short_rtn(char)
ulong2 __ovld __cnfn convert_ulong2_rtz(char2)
uint2 __ovld __cnfn convert_uint2_sat(char2)
int4 __ovld __cnfn convert_int4_sat_rtp(char4)
uchar16 __ovld __cnfn convert_uchar16_sat_rtp(char16)
short3 __ovld __cnfn convert_short3_sat_rtz(char3)
float __ovld __cnfn native_log10(float x)
Compute a base 10 logarithm over an implementationdefined range.
uint2 __ovld __cnfn convert_uint2_rtn(char2)
int __ovld __cnfn convert_int_rte(char)
int8 __ovld __cnfn convert_int8_rte(char8)
uchar __ovld __cnfn convert_uchar_sat_rtp(char)
ulong3 __ovld __cnfn convert_ulong3_sat_rtz(char3)
void __ovld vstorea_half(float data, size_t offset, half *p)
The floatn value given by data is converted to a halfn value using the appropriate rounding mode.
ushort2 __ovld __cnfn convert_ushort2_sat_rtp(char2)
uchar2 __ovld __cnfn convert_uchar2_rtz(char2)
int __ovld __cnfn convert_int(char)
void __ovld prefetch(const __global char *p, size_t num_elements)
Prefetch num_elements * sizeof(gentype) bytes into the global cache.
ushort16 __ovld __cnfn convert_ushort16_rtp(char16)
ulong4 __ovld __cnfn convert_ulong4_sat_rtp(char4)
int4 __ovld __cnfn convert_int4_rtp(char4)
void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p)
float __ovld __cnfn half_exp10(float x)
Compute the base- 10 exponential of x.
ndrange_t __ovld ndrange_3D(const size_t[3])
uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord)
float __ovld __cnfn native_log2(float x)
Compute a base 2 logarithm over an implementationdefined range.
ulong __ovld __cnfn convert_ulong_sat_rtp(char)
short2 __ovld __cnfn convert_short2_rtn(char2)
float __ovld sincos(float x, float *cosval)
Compute sine and cosine of x.
int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image)
Return the channel data type.
void __ovld vstore_half_rtz(float data, size_t offset, half *p)
void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p)
int16 __ovld __cnfn convert_int16_rtz(char16)
ulong __ovld __cnfn convert_ulong_sat_rtz(char)
float __ovld __cnfn half_log(float x)
Compute natural logarithm.
long8 __ovld __cnfn convert_long8(char8)
uchar3 __ovld __cnfn convert_uchar3_rte(char3)
int __ovld __cnfn islessgreater(float x, float y)
Returns the component-wise compare of (x < y) || (x > y) .
long __ovld __cnfn convert_long_sat_rtn(char)
uchar2 __ovld __cnfn convert_uchar2_sat_rte(char2)
ushort16 __ovld __cnfn convert_ushort16_sat_rtp(char16)
ushort16 __ovld __cnfn convert_ushort16_rtz(char16)
ushort2 __ovld __cnfn convert_ushort2_sat_rtn(char2)
char8 __ovld vload8(size_t offset, const __constant char *p)
int8 __ovld __cnfn convert_int8_sat_rtz(char8)
long16 __ovld __cnfn convert_long16_sat_rte(char16)
uchar16 __ovld __cnfn convert_uchar16_rtp(char16)
size_t __ovld get_enqueued_local_size(uint dimindx)
uchar2 __ovld __cnfn convert_uchar2_rtn(char2)
int __ovld __cnfn signbit(float)
Test for sign bit.
short16 __ovld __cnfn convert_short16_rte(char16)
void __ovld vstore_half_rtn(float data, size_t offset, half *p)
ulong8 __ovld __cnfn convert_ulong8_sat_rtp(char8)
float __ovld vload_half(size_t offset, const __constant half *p)
Read sizeof (half) bytes of data from address (p + offset).
long8 __ovld __cnfn convert_long8_sat_rtz(char8)
int __ovld __cnfn get_image_width(read_only image1d_t image)
Return the image width in pixels.
short __ovld __cnfn upsample(char hi, uchar lo)
result[i] = ((short)hi[i] << 8) | lo[i] result[i] = ((ushort)hi[i] << 8) | lo[i]
short8 __ovld __cnfn convert_short8_sat(char8)
void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p)
float2 __ovld __cnfn convert_float2_rtn(char2)
void __ovld vstore_half16(float16 data, size_t offset, half *p)
ulong3 __ovld __cnfn convert_ulong3_rtn(char3)
#define __cnfn
Definition opencl-c.h:36
char4 __ovld __cnfn convert_char4_rtn(char4)
void __ovld vstorea_half3(float3 data, size_t offset, half *p)
int3 __ovld __cnfn convert_int3_rte(char3)
int2 __ovld __cnfn convert_int2_sat_rte(char2)
bool __ovld is_valid_reserve_id(reserve_id_t reserve_id)
long4 __ovld __cnfn convert_long4_sat_rtz(char4)
ulong __ovld __cnfn convert_ulong_rte(char)
float16 __ovld __cnfn convert_float16_rtz(char16)
void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p)
ulong8 __ovld __cnfn convert_ulong8_sat_rtz(char8)
uint __ovld __cnfn convert_uint_rte(char)
uchar4 __ovld __cnfn convert_uchar4_sat_rtz(char4)
int __ovld __conv work_group_reduce_max(int x)
long3 __ovld __cnfn convert_long3(char3)
short8 __ovld __cnfn convert_short8_sat_rtp(char8)
uint16 __ovld __cnfn convert_uint16(char16)
float16 __ovld vloada_half16(size_t offset, const __constant half *p)
short16 __ovld __cnfn convert_short16(char16)
void __ovld vstore_half3_rte(float3 data, size_t offset, half *p)
long __ovld __cnfn convert_long_sat_rtp(char)
char16 __ovld vload16(size_t offset, const __constant char *p)
long3 __ovld __cnfn convert_long3_rtz(char3)
void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p)
char16 __ovld __cnfn convert_char16_sat(char16)
short4 __ovld __cnfn convert_short4_rte(char4)
float __ovld __cnfn asinpi(float x)
Compute asin (x) / PI.
float __ovld __cnfn convert_float(char)
int4 __ovld __cnfn convert_int4_sat(char4)
long16 __ovld __cnfn convert_long16_sat_rtz(char16)
uchar16 __ovld __cnfn convert_uchar16_rte(char16)
int8 __ovld __cnfn convert_int8_rtp(char8)
int __ovld atomic_min(volatile __global int *p, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array)
Return the image array size.
char3 __ovld vload3(size_t offset, const __constant char *p)
int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val)
Read the 32-bit value (referred to as old) stored at location pointed by p.
uint16 __ovld __cnfn convert_uint16_rtp(char16)
char __ovld __cnfn hadd(char x, char y)
Returns (x + y) >> 1.
ushort __ovld __cnfn convert_ushort_rte(char)
long2 __ovld __cnfn convert_long2_sat_rte(char2)
long16 __ovld __cnfn convert_long16_sat_rtn(char16)
void __ovld vstore_half(float data, size_t offset, half *p)
The float value given by data is first converted to a half value using the appropriate rounding mode.
ulong2 __ovld __cnfn convert_ulong2_sat_rte(char2)
uchar16 __ovld __cnfn convert_uchar16_sat_rtz(char16)
uchar4 __ovld __cnfn convert_uchar4_sat_rtp(char4)
ulong4 __ovld __cnfn convert_ulong4_rte(char4)
int __ovld __cnfn convert_int_sat_rtp(char)
ulong __ovld __cnfn convert_ulong_rtp(char)
ushort2 __ovld __cnfn convert_ushort2_rtp(char2)
int __ovld atomic_fetch_min(volatile atomic_int *object, int operand)
uint16 __ovld __cnfn convert_uint16_sat(char16)
uchar8 __ovld __cnfn convert_uchar8_sat(char8)
ushort2 __ovld __cnfn convert_ushort2_rte(char2)
void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p)
char16 __ovld __cnfn convert_char16(char16)
float __ovld __cnfn dot(float p0, float p1)
Compute dot product.
#define __conv
Definition opencl-c.h:32
float16 __ovld __cnfn convert_float16_rte(char16)
char2 __ovld __cnfn convert_char2_sat_rtz(char2)
uint __ovld __cnfn convert_uint(char)
void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p)
int8 __ovld __cnfn convert_int8_rtn(char8)
int4 __ovld __cnfn convert_int4_rtn(char4)
int __ovld __cnfn get_image_channel_order(read_only image1d_t image)
Return the image channel order.
float8 __ovld __cnfn convert_float8_rtp(char8)
float4 __ovld __cnfn convert_float4_rtn(char4)
ushort4 __ovld __cnfn convert_ushort4_rte(char4)
void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p)
uint3 __ovld __cnfn convert_uint3_sat_rtp(char3)
uint4 __ovld __cnfn convert_uint4(char4)
ushort2 __ovld __cnfn convert_ushort2_sat_rte(char2)
int __ovld atomic_inc(volatile __global int *p)
Read the 32-bit value (referred to as old) stored at location pointed by p.
void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p)
short __ovld __cnfn convert_short_sat(char)
uint2 __ovld __cnfn convert_uint2_sat_rte(char2)
float __ovld __cnfn fast_length(float p)
Returns the length of vector p computed as: half_sqrt(p.x2 + p.y2 + ...)
ushort __ovld __cnfn convert_ushort_sat_rtn(char)
char __ovld __cnfn add_sat(char x, char y)
Returns x + y and saturates the result.
uint16 __ovld __cnfn convert_uint16_sat_rtz(char16)
ushort4 __ovld __cnfn convert_ushort4_rtn(char4)
uint4 __ovld __cnfn convert_uint4_sat_rtp(char4)
char __ovld ctz(char x)
Returns the count of trailing 0-bits in x.
clk_event_t __ovld create_user_event(void)
uchar4 __ovld __cnfn convert_uchar4_rte(char4)
ushort2 __ovld __cnfn convert_ushort2(char2)
uint __ovld __cnfn convert_uint_sat_rtz(char)
uchar2 __ovld __cnfn convert_uchar2_sat_rtz(char2)
uint8 __ovld __cnfn convert_uint8_rtz(char8)
ushort4 __ovld __cnfn convert_ushort4(char4)
char16 __ovld __cnfn convert_char16_rtn(char16)
ulong8 __ovld __cnfn convert_ulong8_sat_rte(char8)
int __ovld __cnfn isordered(float x, float y)
Test if arguments are ordered.
void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p)
uint3 __ovld __cnfn convert_uint3_sat_rte(char3)
uint2 __ovld __cnfn convert_uint2(char2)
uint8 __ovld __cnfn convert_uint8_sat_rtz(char8)
uint16 __ovld __cnfn convert_uint16_rte(char16)
short2 __ovld __cnfn convert_short2_sat_rtn(char2)
float __ovld __cnfn degrees(float radians)
Converts radians to degrees, i.e.
char8 __ovld __cnfn convert_char8_rte(char8)
float __ovld __cnfn cospi(float x)
Compute cos (PI * x).
float2 __ovld __cnfn convert_float2_rtz(char2)
float4 __ovld vload_half4(size_t offset, const __constant half *p)
char3 __ovld __cnfn convert_char3_rte(char3)
int __ovld __cnfn mad24(int x, int y, int z)
Multiply two 24-bit integer values x and y and add the 32-bit integer result to the 32-bit integer z.
int __ovld __cnfn convert_int_sat(char)
char2 __ovld __cnfn convert_char2_sat_rtn(char2)
ushort __ovld __cnfn convert_ushort_rtp(char)
void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p)
void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p)
int __ovld __conv work_group_all(int predicate)
Return the number of samples associated with image.
ulong3 __ovld __cnfn convert_ulong3_rte(char3)
ulong2 __ovld __cnfn convert_ulong2_rtp(char2)
ushort16 __ovld __cnfn convert_ushort16_sat(char16)
short __ovld __cnfn convert_short(char)
short8 __ovld __cnfn convert_short8_rtn(char8)
long3 __ovld __cnfn convert_long3_rtn(char3)
void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p)
char2 __ovld __cnfn convert_char2_sat(char2)
ushort4 __ovld __cnfn convert_ushort4_sat_rte(char4)
void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p)
uchar3 __ovld __cnfn convert_uchar3_sat_rtp(char3)
int __ovld __conv work_group_reduce_add(int x)
float __ovld __cnfn smoothstep(float edge0, float edge1, float x)
Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...
short4 __ovld __cnfn convert_short4(char4)
ulong3 __ovld __cnfn convert_ulong3_rtz(char3)
uchar16 __ovld __cnfn convert_uchar16_rtn(char16)
size_t __ovld __cnfn get_local_size(uint dimindx)
Returns the number of local work-items specified in dimension identified by dimindx.
float __ovld __cnfn mix(float x, float y, float a)
Returns the linear blend of x & y implemented as: x + (y - x) * a a must be a value in the range 0....
ulong __ovld __cnfn convert_ulong_sat_rtn(char)
short16 __ovld __cnfn convert_short16_rtz(char16)
long2 __ovld __cnfn convert_long2_rte(char2)
void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color)
float3 __ovld vloada_half3(size_t offset, const __constant half *p)
uint4 __ovld __cnfn convert_uint4_rte(char4)
ushort8 __ovld __cnfn convert_ushort8(char8)
int8 __ovld __cnfn convert_int8_rtz(char8)
#define __purefn
Definition opencl-c.h:35
ushort __ovld __cnfn convert_ushort_sat_rtp(char)
int3 __ovld __cnfn convert_int3_sat(char3)
cl_mem_fence_flags __ovld get_fence(const void *ptr)
void __ovld vstore_half_rte(float data, size_t offset, half *p)
#define atomic_fetch_xor(object, operand)
Definition stdatomic.h:141
#define atomic_store(object, desired)
Definition stdatomic.h:117
#define atomic_compare_exchange_weak(object, expected, desired)
Definition stdatomic.h:129
#define atomic_compare_exchange_weak_explicit
Definition stdatomic.h:130
#define atomic_compare_exchange_strong(object, expected, desired)
Definition stdatomic.h:126
#define atomic_exchange(object, desired)
Definition stdatomic.h:123
#define atomic_fetch_or(object, operand)
Definition stdatomic.h:138
#define atomic_flag_clear(object)
Definition stdatomic.h:167
#define atomic_fetch_and_explicit
Definition stdatomic.h:145
#define atomic_fetch_sub(object, operand)
Definition stdatomic.h:135
#define atomic_init
Definition stdatomic.h:43
#define atomic_fetch_sub_explicit
Definition stdatomic.h:136
#define atomic_flag_test_and_set_explicit(object, order)
Definition stdatomic.h:165
#define atomic_fetch_xor_explicit
Definition stdatomic.h:142
#define atomic_store_explicit
Definition stdatomic.h:118
#define atomic_flag_test_and_set(object)
Definition stdatomic.h:164
#define atomic_fetch_or_explicit
Definition stdatomic.h:139
#define atomic_load_explicit
Definition stdatomic.h:121
#define atomic_flag_clear_explicit(object, order)
Definition stdatomic.h:168
#define atomic_exchange_explicit
Definition stdatomic.h:124
#define atomic_load(object)
Definition stdatomic.h:120
#define atomic_fetch_and(object, operand)
Definition stdatomic.h:144
#define atomic_compare_exchange_strong_explicit
Definition stdatomic.h:127
#define atomic_fetch_add_explicit
Definition stdatomic.h:133
#define atomic_fetch_add(object, operand)
Definition stdatomic.h:132
#define sinh(__x)
Definition tgmath.h:373
#define asin(__x)
Definition tgmath.h:112
#define sqrt(__x)
Definition tgmath.h:520
#define acos(__x)
Definition tgmath.h:83
#define fmin(__x, __y)
Definition tgmath.h:780
#define exp(__x)
Definition tgmath.h:431
#define ilogb(__x)
Definition tgmath.h:851
#define copysign(__x, __y)
Definition tgmath.h:618
#define erf(__x)
Definition tgmath.h:636
#define atanh(__x)
Definition tgmath.h:228
#define remquo(__x, __y, __z)
Definition tgmath.h:1111
#define nextafter(__x, __y)
Definition tgmath.h:1055
#define frexp(__x, __y)
Definition tgmath.h:816
#define asinh(__x)
Definition tgmath.h:199
#define erfc(__x)
Definition tgmath.h:653
#define atan2(__x, __y)
Definition tgmath.h:566
#define hypot(__x, __y)
Definition tgmath.h:833
#define exp2(__x)
Definition tgmath.h:670
#define sin(__x)
Definition tgmath.h:286
#define cbrt(__x)
Definition tgmath.h:584
#define log2(__x)
Definition tgmath.h:970
#define cosh(__x)
Definition tgmath.h:344
#define trunc(__x)
Definition tgmath.h:1216
#define fmax(__x, __y)
Definition tgmath.h:762
#define ldexp(__x, __y)
Definition tgmath.h:868
#define acosh(__x)
Definition tgmath.h:170
#define tgamma(__x)
Definition tgmath.h:1199
#define round(__x)
Definition tgmath.h:1148
#define fmod(__x, __y)
Definition tgmath.h:798
#define tan(__x)
Definition tgmath.h:315
#define cos(__x)
Definition tgmath.h:257
#define log10(__x)
Definition tgmath.h:936
#define fabs(__x)
Definition tgmath.h:549
#define pow(__x, __y)
Definition tgmath.h:490
#define log1p(__x)
Definition tgmath.h:953
#define rint(__x)
Definition tgmath.h:1131
#define expm1(__x)
Definition tgmath.h:687
#define remainder(__x, __y)
Definition tgmath.h:1090
#define fdim(__x, __y)
Definition tgmath.h:704
#define lgamma(__x)
Definition tgmath.h:885
#define tanh(__x)
Definition tgmath.h:402
#define atan(__x)
Definition tgmath.h:141
#define floor(__x)
Definition tgmath.h:722
#define ceil(__x)
Definition tgmath.h:601
#define log(__x)
Definition tgmath.h:460
#define logb(__x)
Definition tgmath.h:987
#define fma(__x, __y, __z)
Definition tgmath.h:742