clang 23.0.0git
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_c_images)
15#ifndef cl_khr_depth_images
16#define cl_khr_depth_images
17#endif //cl_khr_depth_images
18#endif //defined(__opencl_c_images)
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__) || \
27 (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && \
28 (defined(__SPIR__) || defined(__SPIRV__))
29#pragma OPENCL EXTENSION cl_intel_planar_yuv : begin
30#pragma OPENCL EXTENSION cl_intel_planar_yuv : end
31#endif // (defined(__OPENCL_CPP_VERSION__) ||
32 // (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) &&
33 // (defined(__SPIR__) || defined(__SPIRV__))
34
35#define __ovld __attribute__((overloadable))
36#define __conv __attribute__((convergent))
37
38// Optimizations
39#define __purefn __attribute__((pure))
40#define __cnfn __attribute__((const))
41
42
43// OpenCL v1.1/1.2/2.0 s6.2.3 - Explicit conversions
44
225
4179ushort16 __ovld __cnfn convert_ushort16(ushort16);
4636
4637// Conversions with double data type parameters or return value.
4638
4639#ifdef cl_khr_fp64
4640#pragma OPENCL EXTENSION cl_khr_fp64 : enable
4641char __ovld __cnfn convert_char(double);
4642char __ovld __cnfn convert_char_rte(double);
4643char __ovld __cnfn convert_char_rtn(double);
4644char __ovld __cnfn convert_char_rtp(double);
4645char __ovld __cnfn convert_char_rtz(double);
4646char __ovld __cnfn convert_char_sat(double);
4651char2 __ovld __cnfn convert_char2(double2);
4652char2 __ovld __cnfn convert_char2_rte(double2);
4653char2 __ovld __cnfn convert_char2_rtn(double2);
4654char2 __ovld __cnfn convert_char2_rtp(double2);
4655char2 __ovld __cnfn convert_char2_rtz(double2);
4656char2 __ovld __cnfn convert_char2_sat(double2);
4657char2 __ovld __cnfn convert_char2_sat_rte(double2);
4658char2 __ovld __cnfn convert_char2_sat_rtn(double2);
4659char2 __ovld __cnfn convert_char2_sat_rtp(double2);
4660char2 __ovld __cnfn convert_char2_sat_rtz(double2);
4661char3 __ovld __cnfn convert_char3(double3);
4662char3 __ovld __cnfn convert_char3_rte(double3);
4663char3 __ovld __cnfn convert_char3_rtn(double3);
4664char3 __ovld __cnfn convert_char3_rtp(double3);
4665char3 __ovld __cnfn convert_char3_rtz(double3);
4666char3 __ovld __cnfn convert_char3_sat(double3);
4667char3 __ovld __cnfn convert_char3_sat_rte(double3);
4668char3 __ovld __cnfn convert_char3_sat_rtn(double3);
4669char3 __ovld __cnfn convert_char3_sat_rtp(double3);
4670char3 __ovld __cnfn convert_char3_sat_rtz(double3);
4671char4 __ovld __cnfn convert_char4(double4);
4672char4 __ovld __cnfn convert_char4_rte(double4);
4673char4 __ovld __cnfn convert_char4_rtn(double4);
4674char4 __ovld __cnfn convert_char4_rtp(double4);
4675char4 __ovld __cnfn convert_char4_rtz(double4);
4676char4 __ovld __cnfn convert_char4_sat(double4);
4677char4 __ovld __cnfn convert_char4_sat_rte(double4);
4678char4 __ovld __cnfn convert_char4_sat_rtn(double4);
4679char4 __ovld __cnfn convert_char4_sat_rtp(double4);
4680char4 __ovld __cnfn convert_char4_sat_rtz(double4);
4681char8 __ovld __cnfn convert_char8(double8);
4682char8 __ovld __cnfn convert_char8_rte(double8);
4683char8 __ovld __cnfn convert_char8_rtn(double8);
4684char8 __ovld __cnfn convert_char8_rtp(double8);
4685char8 __ovld __cnfn convert_char8_rtz(double8);
4686char8 __ovld __cnfn convert_char8_sat(double8);
4687char8 __ovld __cnfn convert_char8_sat_rte(double8);
4688char8 __ovld __cnfn convert_char8_sat_rtn(double8);
4689char8 __ovld __cnfn convert_char8_sat_rtp(double8);
4690char8 __ovld __cnfn convert_char8_sat_rtz(double8);
4691char16 __ovld __cnfn convert_char16(double16);
4692char16 __ovld __cnfn convert_char16_rte(double16);
4693char16 __ovld __cnfn convert_char16_rtn(double16);
4694char16 __ovld __cnfn convert_char16_rtp(double16);
4695char16 __ovld __cnfn convert_char16_rtz(double16);
4696char16 __ovld __cnfn convert_char16_sat(double16);
4697char16 __ovld __cnfn convert_char16_sat_rte(double16);
4698char16 __ovld __cnfn convert_char16_sat_rtn(double16);
4699char16 __ovld __cnfn convert_char16_sat_rtp(double16);
4700char16 __ovld __cnfn convert_char16_sat_rtz(double16);
4701
4712uchar2 __ovld __cnfn convert_uchar2(double2);
4713uchar2 __ovld __cnfn convert_uchar2_rte(double2);
4714uchar2 __ovld __cnfn convert_uchar2_rtn(double2);
4715uchar2 __ovld __cnfn convert_uchar2_rtp(double2);
4716uchar2 __ovld __cnfn convert_uchar2_rtz(double2);
4717uchar2 __ovld __cnfn convert_uchar2_sat(double2);
4718uchar2 __ovld __cnfn convert_uchar2_sat_rte(double2);
4719uchar2 __ovld __cnfn convert_uchar2_sat_rtn(double2);
4720uchar2 __ovld __cnfn convert_uchar2_sat_rtp(double2);
4721uchar2 __ovld __cnfn convert_uchar2_sat_rtz(double2);
4722uchar3 __ovld __cnfn convert_uchar3(double3);
4723uchar3 __ovld __cnfn convert_uchar3_rte(double3);
4724uchar3 __ovld __cnfn convert_uchar3_rtn(double3);
4725uchar3 __ovld __cnfn convert_uchar3_rtp(double3);
4726uchar3 __ovld __cnfn convert_uchar3_rtz(double3);
4727uchar3 __ovld __cnfn convert_uchar3_sat(double3);
4728uchar3 __ovld __cnfn convert_uchar3_sat_rte(double3);
4729uchar3 __ovld __cnfn convert_uchar3_sat_rtn(double3);
4730uchar3 __ovld __cnfn convert_uchar3_sat_rtp(double3);
4731uchar3 __ovld __cnfn convert_uchar3_sat_rtz(double3);
4732uchar4 __ovld __cnfn convert_uchar4(double4);
4733uchar4 __ovld __cnfn convert_uchar4_rte(double4);
4734uchar4 __ovld __cnfn convert_uchar4_rtn(double4);
4735uchar4 __ovld __cnfn convert_uchar4_rtp(double4);
4736uchar4 __ovld __cnfn convert_uchar4_rtz(double4);
4737uchar4 __ovld __cnfn convert_uchar4_sat(double4);
4738uchar4 __ovld __cnfn convert_uchar4_sat_rte(double4);
4739uchar4 __ovld __cnfn convert_uchar4_sat_rtn(double4);
4740uchar4 __ovld __cnfn convert_uchar4_sat_rtp(double4);
4741uchar4 __ovld __cnfn convert_uchar4_sat_rtz(double4);
4742uchar8 __ovld __cnfn convert_uchar8(double8);
4743uchar8 __ovld __cnfn convert_uchar8_rte(double8);
4744uchar8 __ovld __cnfn convert_uchar8_rtn(double8);
4745uchar8 __ovld __cnfn convert_uchar8_rtp(double8);
4746uchar8 __ovld __cnfn convert_uchar8_rtz(double8);
4747uchar8 __ovld __cnfn convert_uchar8_sat(double8);
4748uchar8 __ovld __cnfn convert_uchar8_sat_rte(double8);
4749uchar8 __ovld __cnfn convert_uchar8_sat_rtn(double8);
4750uchar8 __ovld __cnfn convert_uchar8_sat_rtp(double8);
4751uchar8 __ovld __cnfn convert_uchar8_sat_rtz(double8);
4752uchar16 __ovld __cnfn convert_uchar16(double16);
4753uchar16 __ovld __cnfn convert_uchar16_rte(double16);
4754uchar16 __ovld __cnfn convert_uchar16_rtn(double16);
4755uchar16 __ovld __cnfn convert_uchar16_rtp(double16);
4756uchar16 __ovld __cnfn convert_uchar16_rtz(double16);
4757uchar16 __ovld __cnfn convert_uchar16_sat(double16);
4758uchar16 __ovld __cnfn convert_uchar16_sat_rte(double16);
4759uchar16 __ovld __cnfn convert_uchar16_sat_rtn(double16);
4760uchar16 __ovld __cnfn convert_uchar16_sat_rtp(double16);
4761uchar16 __ovld __cnfn convert_uchar16_sat_rtz(double16);
4762
4763short __ovld __cnfn convert_short(double);
4764short __ovld __cnfn convert_short_rte(double);
4765short __ovld __cnfn convert_short_rtn(double);
4766short __ovld __cnfn convert_short_rtp(double);
4767short __ovld __cnfn convert_short_rtz(double);
4768short __ovld __cnfn convert_short_sat(double);
4769short __ovld __cnfn convert_short_sat_rte(double);
4770short __ovld __cnfn convert_short_sat_rtn(double);
4771short __ovld __cnfn convert_short_sat_rtp(double);
4772short __ovld __cnfn convert_short_sat_rtz(double);
4773short2 __ovld __cnfn convert_short2(double2);
4774short2 __ovld __cnfn convert_short2_rte(double2);
4775short2 __ovld __cnfn convert_short2_rtn(double2);
4776short2 __ovld __cnfn convert_short2_rtp(double2);
4777short2 __ovld __cnfn convert_short2_rtz(double2);
4778short2 __ovld __cnfn convert_short2_sat(double2);
4779short2 __ovld __cnfn convert_short2_sat_rte(double2);
4780short2 __ovld __cnfn convert_short2_sat_rtn(double2);
4781short2 __ovld __cnfn convert_short2_sat_rtp(double2);
4782short2 __ovld __cnfn convert_short2_sat_rtz(double2);
4783short3 __ovld __cnfn convert_short3(double3);
4784short3 __ovld __cnfn convert_short3_rte(double3);
4785short3 __ovld __cnfn convert_short3_rtn(double3);
4786short3 __ovld __cnfn convert_short3_rtp(double3);
4787short3 __ovld __cnfn convert_short3_rtz(double3);
4788short3 __ovld __cnfn convert_short3_sat(double3);
4789short3 __ovld __cnfn convert_short3_sat_rte(double3);
4790short3 __ovld __cnfn convert_short3_sat_rtn(double3);
4791short3 __ovld __cnfn convert_short3_sat_rtp(double3);
4792short3 __ovld __cnfn convert_short3_sat_rtz(double3);
4793short4 __ovld __cnfn convert_short4(double4);
4794short4 __ovld __cnfn convert_short4_rte(double4);
4795short4 __ovld __cnfn convert_short4_rtn(double4);
4796short4 __ovld __cnfn convert_short4_rtp(double4);
4797short4 __ovld __cnfn convert_short4_rtz(double4);
4798short4 __ovld __cnfn convert_short4_sat(double4);
4799short4 __ovld __cnfn convert_short4_sat_rte(double4);
4800short4 __ovld __cnfn convert_short4_sat_rtn(double4);
4801short4 __ovld __cnfn convert_short4_sat_rtp(double4);
4802short4 __ovld __cnfn convert_short4_sat_rtz(double4);
4803short8 __ovld __cnfn convert_short8(double8);
4804short8 __ovld __cnfn convert_short8_rte(double8);
4805short8 __ovld __cnfn convert_short8_rtn(double8);
4806short8 __ovld __cnfn convert_short8_rtp(double8);
4807short8 __ovld __cnfn convert_short8_rtz(double8);
4808short8 __ovld __cnfn convert_short8_sat(double8);
4809short8 __ovld __cnfn convert_short8_sat_rte(double8);
4810short8 __ovld __cnfn convert_short8_sat_rtn(double8);
4811short8 __ovld __cnfn convert_short8_sat_rtp(double8);
4812short8 __ovld __cnfn convert_short8_sat_rtz(double8);
4813short16 __ovld __cnfn convert_short16(double16);
4814short16 __ovld __cnfn convert_short16_rte(double16);
4815short16 __ovld __cnfn convert_short16_rtn(double16);
4816short16 __ovld __cnfn convert_short16_rtp(double16);
4817short16 __ovld __cnfn convert_short16_rtz(double16);
4818short16 __ovld __cnfn convert_short16_sat(double16);
4819short16 __ovld __cnfn convert_short16_sat_rte(double16);
4820short16 __ovld __cnfn convert_short16_sat_rtn(double16);
4821short16 __ovld __cnfn convert_short16_sat_rtp(double16);
4822short16 __ovld __cnfn convert_short16_sat_rtz(double16);
4823
4834ushort2 __ovld __cnfn convert_ushort2(double2);
4835ushort2 __ovld __cnfn convert_ushort2_rte(double2);
4836ushort2 __ovld __cnfn convert_ushort2_rtn(double2);
4837ushort2 __ovld __cnfn convert_ushort2_rtp(double2);
4838ushort2 __ovld __cnfn convert_ushort2_rtz(double2);
4839ushort2 __ovld __cnfn convert_ushort2_sat(double2);
4840ushort2 __ovld __cnfn convert_ushort2_sat_rte(double2);
4841ushort2 __ovld __cnfn convert_ushort2_sat_rtn(double2);
4842ushort2 __ovld __cnfn convert_ushort2_sat_rtp(double2);
4843ushort2 __ovld __cnfn convert_ushort2_sat_rtz(double2);
4844ushort3 __ovld __cnfn convert_ushort3(double3);
4845ushort3 __ovld __cnfn convert_ushort3_rte(double3);
4846ushort3 __ovld __cnfn convert_ushort3_rtn(double3);
4847ushort3 __ovld __cnfn convert_ushort3_rtp(double3);
4848ushort3 __ovld __cnfn convert_ushort3_rtz(double3);
4849ushort3 __ovld __cnfn convert_ushort3_sat(double3);
4850ushort3 __ovld __cnfn convert_ushort3_sat_rte(double3);
4851ushort3 __ovld __cnfn convert_ushort3_sat_rtn(double3);
4852ushort3 __ovld __cnfn convert_ushort3_sat_rtp(double3);
4853ushort3 __ovld __cnfn convert_ushort3_sat_rtz(double3);
4854ushort4 __ovld __cnfn convert_ushort4(double4);
4855ushort4 __ovld __cnfn convert_ushort4_rte(double4);
4856ushort4 __ovld __cnfn convert_ushort4_rtn(double4);
4857ushort4 __ovld __cnfn convert_ushort4_rtp(double4);
4858ushort4 __ovld __cnfn convert_ushort4_rtz(double4);
4859ushort4 __ovld __cnfn convert_ushort4_sat(double4);
4860ushort4 __ovld __cnfn convert_ushort4_sat_rte(double4);
4861ushort4 __ovld __cnfn convert_ushort4_sat_rtn(double4);
4862ushort4 __ovld __cnfn convert_ushort4_sat_rtp(double4);
4863ushort4 __ovld __cnfn convert_ushort4_sat_rtz(double4);
4864ushort8 __ovld __cnfn convert_ushort8(double8);
4865ushort8 __ovld __cnfn convert_ushort8_rte(double8);
4866ushort8 __ovld __cnfn convert_ushort8_rtn(double8);
4867ushort8 __ovld __cnfn convert_ushort8_rtp(double8);
4868ushort8 __ovld __cnfn convert_ushort8_rtz(double8);
4869ushort8 __ovld __cnfn convert_ushort8_sat(double8);
4870ushort8 __ovld __cnfn convert_ushort8_sat_rte(double8);
4871ushort8 __ovld __cnfn convert_ushort8_sat_rtn(double8);
4872ushort8 __ovld __cnfn convert_ushort8_sat_rtp(double8);
4873ushort8 __ovld __cnfn convert_ushort8_sat_rtz(double8);
4874ushort16 __ovld __cnfn convert_ushort16(double16);
4875ushort16 __ovld __cnfn convert_ushort16_rte(double16);
4876ushort16 __ovld __cnfn convert_ushort16_rtn(double16);
4877ushort16 __ovld __cnfn convert_ushort16_rtp(double16);
4878ushort16 __ovld __cnfn convert_ushort16_rtz(double16);
4879ushort16 __ovld __cnfn convert_ushort16_sat(double16);
4880ushort16 __ovld __cnfn convert_ushort16_sat_rte(double16);
4881ushort16 __ovld __cnfn convert_ushort16_sat_rtn(double16);
4882ushort16 __ovld __cnfn convert_ushort16_sat_rtp(double16);
4883ushort16 __ovld __cnfn convert_ushort16_sat_rtz(double16);
4884
4885int __ovld __cnfn convert_int(double);
4886int __ovld __cnfn convert_int_rte(double);
4887int __ovld __cnfn convert_int_rtn(double);
4888int __ovld __cnfn convert_int_rtp(double);
4889int __ovld __cnfn convert_int_rtz(double);
4890int __ovld __cnfn convert_int_sat(double);
4895int2 __ovld __cnfn convert_int2(double2);
4896int2 __ovld __cnfn convert_int2_rte(double2);
4897int2 __ovld __cnfn convert_int2_rtn(double2);
4898int2 __ovld __cnfn convert_int2_rtp(double2);
4899int2 __ovld __cnfn convert_int2_rtz(double2);
4900int2 __ovld __cnfn convert_int2_sat(double2);
4901int2 __ovld __cnfn convert_int2_sat_rte(double2);
4902int2 __ovld __cnfn convert_int2_sat_rtn(double2);
4903int2 __ovld __cnfn convert_int2_sat_rtp(double2);
4904int2 __ovld __cnfn convert_int2_sat_rtz(double2);
4905int3 __ovld __cnfn convert_int3(double3);
4906int3 __ovld __cnfn convert_int3_rte(double3);
4907int3 __ovld __cnfn convert_int3_rtn(double3);
4908int3 __ovld __cnfn convert_int3_rtp(double3);
4909int3 __ovld __cnfn convert_int3_rtz(double3);
4910int3 __ovld __cnfn convert_int3_sat(double3);
4911int3 __ovld __cnfn convert_int3_sat_rte(double3);
4912int3 __ovld __cnfn convert_int3_sat_rtn(double3);
4913int3 __ovld __cnfn convert_int3_sat_rtp(double3);
4914int3 __ovld __cnfn convert_int3_sat_rtz(double3);
4915int4 __ovld __cnfn convert_int4(double4);
4916int4 __ovld __cnfn convert_int4_rte(double4);
4917int4 __ovld __cnfn convert_int4_rtn(double4);
4918int4 __ovld __cnfn convert_int4_rtp(double4);
4919int4 __ovld __cnfn convert_int4_rtz(double4);
4920int4 __ovld __cnfn convert_int4_sat(double4);
4921int4 __ovld __cnfn convert_int4_sat_rte(double4);
4922int4 __ovld __cnfn convert_int4_sat_rtn(double4);
4923int4 __ovld __cnfn convert_int4_sat_rtp(double4);
4924int4 __ovld __cnfn convert_int4_sat_rtz(double4);
4925int8 __ovld __cnfn convert_int8(double8);
4926int8 __ovld __cnfn convert_int8_rte(double8);
4927int8 __ovld __cnfn convert_int8_rtn(double8);
4928int8 __ovld __cnfn convert_int8_rtp(double8);
4929int8 __ovld __cnfn convert_int8_rtz(double8);
4930int8 __ovld __cnfn convert_int8_sat(double8);
4931int8 __ovld __cnfn convert_int8_sat_rte(double8);
4932int8 __ovld __cnfn convert_int8_sat_rtn(double8);
4933int8 __ovld __cnfn convert_int8_sat_rtp(double8);
4934int8 __ovld __cnfn convert_int8_sat_rtz(double8);
4935int16 __ovld __cnfn convert_int16(double16);
4936int16 __ovld __cnfn convert_int16_rte(double16);
4937int16 __ovld __cnfn convert_int16_rtn(double16);
4938int16 __ovld __cnfn convert_int16_rtp(double16);
4939int16 __ovld __cnfn convert_int16_rtz(double16);
4940int16 __ovld __cnfn convert_int16_sat(double16);
4941int16 __ovld __cnfn convert_int16_sat_rte(double16);
4942int16 __ovld __cnfn convert_int16_sat_rtn(double16);
4943int16 __ovld __cnfn convert_int16_sat_rtp(double16);
4944int16 __ovld __cnfn convert_int16_sat_rtz(double16);
4945
4946uint __ovld __cnfn convert_uint(double);
4947uint __ovld __cnfn convert_uint_rte(double);
4948uint __ovld __cnfn convert_uint_rtn(double);
4949uint __ovld __cnfn convert_uint_rtp(double);
4950uint __ovld __cnfn convert_uint_rtz(double);
4951uint __ovld __cnfn convert_uint_sat(double);
4956uint2 __ovld __cnfn convert_uint2(double2);
4957uint2 __ovld __cnfn convert_uint2_rte(double2);
4958uint2 __ovld __cnfn convert_uint2_rtn(double2);
4959uint2 __ovld __cnfn convert_uint2_rtp(double2);
4960uint2 __ovld __cnfn convert_uint2_rtz(double2);
4961uint2 __ovld __cnfn convert_uint2_sat(double2);
4962uint2 __ovld __cnfn convert_uint2_sat_rte(double2);
4963uint2 __ovld __cnfn convert_uint2_sat_rtn(double2);
4964uint2 __ovld __cnfn convert_uint2_sat_rtp(double2);
4965uint2 __ovld __cnfn convert_uint2_sat_rtz(double2);
4966uint3 __ovld __cnfn convert_uint3(double3);
4967uint3 __ovld __cnfn convert_uint3_rte(double3);
4968uint3 __ovld __cnfn convert_uint3_rtn(double3);
4969uint3 __ovld __cnfn convert_uint3_rtp(double3);
4970uint3 __ovld __cnfn convert_uint3_rtz(double3);
4971uint3 __ovld __cnfn convert_uint3_sat(double3);
4972uint3 __ovld __cnfn convert_uint3_sat_rte(double3);
4973uint3 __ovld __cnfn convert_uint3_sat_rtn(double3);
4974uint3 __ovld __cnfn convert_uint3_sat_rtp(double3);
4975uint3 __ovld __cnfn convert_uint3_sat_rtz(double3);
4976uint4 __ovld __cnfn convert_uint4(double4);
4977uint4 __ovld __cnfn convert_uint4_rte(double4);
4978uint4 __ovld __cnfn convert_uint4_rtn(double4);
4979uint4 __ovld __cnfn convert_uint4_rtp(double4);
4980uint4 __ovld __cnfn convert_uint4_rtz(double4);
4981uint4 __ovld __cnfn convert_uint4_sat(double4);
4982uint4 __ovld __cnfn convert_uint4_sat_rte(double4);
4983uint4 __ovld __cnfn convert_uint4_sat_rtn(double4);
4984uint4 __ovld __cnfn convert_uint4_sat_rtp(double4);
4985uint4 __ovld __cnfn convert_uint4_sat_rtz(double4);
4986uint8 __ovld __cnfn convert_uint8(double8);
4987uint8 __ovld __cnfn convert_uint8_rte(double8);
4988uint8 __ovld __cnfn convert_uint8_rtn(double8);
4989uint8 __ovld __cnfn convert_uint8_rtp(double8);
4990uint8 __ovld __cnfn convert_uint8_rtz(double8);
4991uint8 __ovld __cnfn convert_uint8_sat(double8);
4992uint8 __ovld __cnfn convert_uint8_sat_rte(double8);
4993uint8 __ovld __cnfn convert_uint8_sat_rtn(double8);
4994uint8 __ovld __cnfn convert_uint8_sat_rtp(double8);
4995uint8 __ovld __cnfn convert_uint8_sat_rtz(double8);
4996uint16 __ovld __cnfn convert_uint16(double16);
4997uint16 __ovld __cnfn convert_uint16_rte(double16);
4998uint16 __ovld __cnfn convert_uint16_rtn(double16);
4999uint16 __ovld __cnfn convert_uint16_rtp(double16);
5000uint16 __ovld __cnfn convert_uint16_rtz(double16);
5001uint16 __ovld __cnfn convert_uint16_sat(double16);
5002uint16 __ovld __cnfn convert_uint16_sat_rte(double16);
5003uint16 __ovld __cnfn convert_uint16_sat_rtn(double16);
5004uint16 __ovld __cnfn convert_uint16_sat_rtp(double16);
5005uint16 __ovld __cnfn convert_uint16_sat_rtz(double16);
5006
5007long __ovld __cnfn convert_long(double);
5008long __ovld __cnfn convert_long_rte(double);
5009long __ovld __cnfn convert_long_rtn(double);
5010long __ovld __cnfn convert_long_rtp(double);
5011long __ovld __cnfn convert_long_rtz(double);
5012long __ovld __cnfn convert_long_sat(double);
5017long2 __ovld __cnfn convert_long2(double2);
5018long2 __ovld __cnfn convert_long2_rte(double2);
5019long2 __ovld __cnfn convert_long2_rtn(double2);
5020long2 __ovld __cnfn convert_long2_rtp(double2);
5021long2 __ovld __cnfn convert_long2_rtz(double2);
5022long2 __ovld __cnfn convert_long2_sat(double2);
5023long2 __ovld __cnfn convert_long2_sat_rte(double2);
5024long2 __ovld __cnfn convert_long2_sat_rtn(double2);
5025long2 __ovld __cnfn convert_long2_sat_rtp(double2);
5026long2 __ovld __cnfn convert_long2_sat_rtz(double2);
5027long3 __ovld __cnfn convert_long3(double3);
5028long3 __ovld __cnfn convert_long3_rte(double3);
5029long3 __ovld __cnfn convert_long3_rtn(double3);
5030long3 __ovld __cnfn convert_long3_rtp(double3);
5031long3 __ovld __cnfn convert_long3_rtz(double3);
5032long3 __ovld __cnfn convert_long3_sat(double3);
5033long3 __ovld __cnfn convert_long3_sat_rte(double3);
5034long3 __ovld __cnfn convert_long3_sat_rtn(double3);
5035long3 __ovld __cnfn convert_long3_sat_rtp(double3);
5036long3 __ovld __cnfn convert_long3_sat_rtz(double3);
5037long4 __ovld __cnfn convert_long4(double4);
5038long4 __ovld __cnfn convert_long4_rte(double4);
5039long4 __ovld __cnfn convert_long4_rtn(double4);
5040long4 __ovld __cnfn convert_long4_rtp(double4);
5041long4 __ovld __cnfn convert_long4_rtz(double4);
5042long4 __ovld __cnfn convert_long4_sat(double4);
5043long4 __ovld __cnfn convert_long4_sat_rte(double4);
5044long4 __ovld __cnfn convert_long4_sat_rtn(double4);
5045long4 __ovld __cnfn convert_long4_sat_rtp(double4);
5046long4 __ovld __cnfn convert_long4_sat_rtz(double4);
5047long8 __ovld __cnfn convert_long8(double8);
5048long8 __ovld __cnfn convert_long8_rte(double8);
5049long8 __ovld __cnfn convert_long8_rtn(double8);
5050long8 __ovld __cnfn convert_long8_rtp(double8);
5051long8 __ovld __cnfn convert_long8_rtz(double8);
5052long8 __ovld __cnfn convert_long8_sat(double8);
5053long8 __ovld __cnfn convert_long8_sat_rte(double8);
5054long8 __ovld __cnfn convert_long8_sat_rtn(double8);
5055long8 __ovld __cnfn convert_long8_sat_rtp(double8);
5056long8 __ovld __cnfn convert_long8_sat_rtz(double8);
5057long16 __ovld __cnfn convert_long16(double16);
5058long16 __ovld __cnfn convert_long16_rte(double16);
5059long16 __ovld __cnfn convert_long16_rtn(double16);
5060long16 __ovld __cnfn convert_long16_rtp(double16);
5061long16 __ovld __cnfn convert_long16_rtz(double16);
5062long16 __ovld __cnfn convert_long16_sat(double16);
5063long16 __ovld __cnfn convert_long16_sat_rte(double16);
5064long16 __ovld __cnfn convert_long16_sat_rtn(double16);
5065long16 __ovld __cnfn convert_long16_sat_rtp(double16);
5066long16 __ovld __cnfn convert_long16_sat_rtz(double16);
5067
5078ulong2 __ovld __cnfn convert_ulong2(double2);
5079ulong2 __ovld __cnfn convert_ulong2_rte(double2);
5080ulong2 __ovld __cnfn convert_ulong2_rtn(double2);
5081ulong2 __ovld __cnfn convert_ulong2_rtp(double2);
5082ulong2 __ovld __cnfn convert_ulong2_rtz(double2);
5083ulong2 __ovld __cnfn convert_ulong2_sat(double2);
5084ulong2 __ovld __cnfn convert_ulong2_sat_rte(double2);
5085ulong2 __ovld __cnfn convert_ulong2_sat_rtn(double2);
5086ulong2 __ovld __cnfn convert_ulong2_sat_rtp(double2);
5087ulong2 __ovld __cnfn convert_ulong2_sat_rtz(double2);
5088ulong3 __ovld __cnfn convert_ulong3(double3);
5089ulong3 __ovld __cnfn convert_ulong3_rte(double3);
5090ulong3 __ovld __cnfn convert_ulong3_rtn(double3);
5091ulong3 __ovld __cnfn convert_ulong3_rtp(double3);
5092ulong3 __ovld __cnfn convert_ulong3_rtz(double3);
5093ulong3 __ovld __cnfn convert_ulong3_sat(double3);
5094ulong3 __ovld __cnfn convert_ulong3_sat_rte(double3);
5095ulong3 __ovld __cnfn convert_ulong3_sat_rtn(double3);
5096ulong3 __ovld __cnfn convert_ulong3_sat_rtp(double3);
5097ulong3 __ovld __cnfn convert_ulong3_sat_rtz(double3);
5098ulong4 __ovld __cnfn convert_ulong4(double4);
5099ulong4 __ovld __cnfn convert_ulong4_rte(double4);
5100ulong4 __ovld __cnfn convert_ulong4_rtn(double4);
5101ulong4 __ovld __cnfn convert_ulong4_rtp(double4);
5102ulong4 __ovld __cnfn convert_ulong4_rtz(double4);
5103ulong4 __ovld __cnfn convert_ulong4_sat(double4);
5104ulong4 __ovld __cnfn convert_ulong4_sat_rte(double4);
5105ulong4 __ovld __cnfn convert_ulong4_sat_rtn(double4);
5106ulong4 __ovld __cnfn convert_ulong4_sat_rtp(double4);
5107ulong4 __ovld __cnfn convert_ulong4_sat_rtz(double4);
5108ulong8 __ovld __cnfn convert_ulong8(double8);
5109ulong8 __ovld __cnfn convert_ulong8_rte(double8);
5110ulong8 __ovld __cnfn convert_ulong8_rtn(double8);
5111ulong8 __ovld __cnfn convert_ulong8_rtp(double8);
5112ulong8 __ovld __cnfn convert_ulong8_rtz(double8);
5113ulong8 __ovld __cnfn convert_ulong8_sat(double8);
5114ulong8 __ovld __cnfn convert_ulong8_sat_rte(double8);
5115ulong8 __ovld __cnfn convert_ulong8_sat_rtn(double8);
5116ulong8 __ovld __cnfn convert_ulong8_sat_rtp(double8);
5117ulong8 __ovld __cnfn convert_ulong8_sat_rtz(double8);
5118ulong16 __ovld __cnfn convert_ulong16(double16);
5119ulong16 __ovld __cnfn convert_ulong16_rte(double16);
5120ulong16 __ovld __cnfn convert_ulong16_rtn(double16);
5121ulong16 __ovld __cnfn convert_ulong16_rtp(double16);
5122ulong16 __ovld __cnfn convert_ulong16_rtz(double16);
5123ulong16 __ovld __cnfn convert_ulong16_sat(double16);
5124ulong16 __ovld __cnfn convert_ulong16_sat_rte(double16);
5125ulong16 __ovld __cnfn convert_ulong16_sat_rtn(double16);
5126ulong16 __ovld __cnfn convert_ulong16_sat_rtp(double16);
5127ulong16 __ovld __cnfn convert_ulong16_sat_rtz(double16);
5128
5129float __ovld __cnfn convert_float(double);
5130float __ovld __cnfn convert_float_rte(double);
5131float __ovld __cnfn convert_float_rtn(double);
5132float __ovld __cnfn convert_float_rtp(double);
5133float __ovld __cnfn convert_float_rtz(double);
5134float2 __ovld __cnfn convert_float2(double2);
5135float2 __ovld __cnfn convert_float2_rte(double2);
5136float2 __ovld __cnfn convert_float2_rtn(double2);
5137float2 __ovld __cnfn convert_float2_rtp(double2);
5138float2 __ovld __cnfn convert_float2_rtz(double2);
5139float3 __ovld __cnfn convert_float3(double3);
5140float3 __ovld __cnfn convert_float3_rte(double3);
5141float3 __ovld __cnfn convert_float3_rtn(double3);
5142float3 __ovld __cnfn convert_float3_rtp(double3);
5143float3 __ovld __cnfn convert_float3_rtz(double3);
5144float4 __ovld __cnfn convert_float4(double4);
5145float4 __ovld __cnfn convert_float4_rte(double4);
5146float4 __ovld __cnfn convert_float4_rtn(double4);
5147float4 __ovld __cnfn convert_float4_rtp(double4);
5148float4 __ovld __cnfn convert_float4_rtz(double4);
5149float8 __ovld __cnfn convert_float8(double8);
5150float8 __ovld __cnfn convert_float8_rte(double8);
5151float8 __ovld __cnfn convert_float8_rtn(double8);
5152float8 __ovld __cnfn convert_float8_rtp(double8);
5153float8 __ovld __cnfn convert_float8_rtz(double8);
5154float16 __ovld __cnfn convert_float16(double16);
5155float16 __ovld __cnfn convert_float16_rte(double16);
5156float16 __ovld __cnfn convert_float16_rtn(double16);
5157float16 __ovld __cnfn convert_float16_rtp(double16);
5158float16 __ovld __cnfn convert_float16_rtz(double16);
5159
5160double __ovld __cnfn convert_double(char);
5161double __ovld __cnfn convert_double(double);
5162double __ovld __cnfn convert_double(float);
5163double __ovld __cnfn convert_double(int);
5164double __ovld __cnfn convert_double(long);
5165double __ovld __cnfn convert_double(short);
5166double __ovld __cnfn convert_double(uchar);
5167double __ovld __cnfn convert_double(uint);
5168double __ovld __cnfn convert_double(ulong);
5169double __ovld __cnfn convert_double(ushort);
5170double __ovld __cnfn convert_double_rte(char);
5171double __ovld __cnfn convert_double_rte(double);
5172double __ovld __cnfn convert_double_rte(float);
5173double __ovld __cnfn convert_double_rte(int);
5174double __ovld __cnfn convert_double_rte(long);
5175double __ovld __cnfn convert_double_rte(short);
5176double __ovld __cnfn convert_double_rte(uchar);
5177double __ovld __cnfn convert_double_rte(uint);
5178double __ovld __cnfn convert_double_rte(ulong);
5179double __ovld __cnfn convert_double_rte(ushort);
5180double __ovld __cnfn convert_double_rtn(char);
5181double __ovld __cnfn convert_double_rtn(double);
5182double __ovld __cnfn convert_double_rtn(float);
5183double __ovld __cnfn convert_double_rtn(int);
5184double __ovld __cnfn convert_double_rtn(long);
5185double __ovld __cnfn convert_double_rtn(short);
5186double __ovld __cnfn convert_double_rtn(uchar);
5187double __ovld __cnfn convert_double_rtn(uint);
5188double __ovld __cnfn convert_double_rtn(ulong);
5189double __ovld __cnfn convert_double_rtn(ushort);
5190double __ovld __cnfn convert_double_rtp(char);
5191double __ovld __cnfn convert_double_rtp(double);
5192double __ovld __cnfn convert_double_rtp(float);
5193double __ovld __cnfn convert_double_rtp(int);
5194double __ovld __cnfn convert_double_rtp(long);
5195double __ovld __cnfn convert_double_rtp(short);
5196double __ovld __cnfn convert_double_rtp(uchar);
5197double __ovld __cnfn convert_double_rtp(uint);
5198double __ovld __cnfn convert_double_rtp(ulong);
5199double __ovld __cnfn convert_double_rtp(ushort);
5200double __ovld __cnfn convert_double_rtz(char);
5201double __ovld __cnfn convert_double_rtz(double);
5202double __ovld __cnfn convert_double_rtz(float);
5203double __ovld __cnfn convert_double_rtz(int);
5204double __ovld __cnfn convert_double_rtz(long);
5205double __ovld __cnfn convert_double_rtz(short);
5206double __ovld __cnfn convert_double_rtz(uchar);
5207double __ovld __cnfn convert_double_rtz(uint);
5208double __ovld __cnfn convert_double_rtz(ulong);
5209double __ovld __cnfn convert_double_rtz(ushort);
5210double2 __ovld __cnfn convert_double2(char2);
5211double2 __ovld __cnfn convert_double2(double2);
5212double2 __ovld __cnfn convert_double2(float2);
5213double2 __ovld __cnfn convert_double2(int2);
5214double2 __ovld __cnfn convert_double2(long2);
5215double2 __ovld __cnfn convert_double2(short2);
5216double2 __ovld __cnfn convert_double2(uchar2);
5217double2 __ovld __cnfn convert_double2(uint2);
5218double2 __ovld __cnfn convert_double2(ulong2);
5219double2 __ovld __cnfn convert_double2(ushort2);
5220double2 __ovld __cnfn convert_double2_rte(char2);
5221double2 __ovld __cnfn convert_double2_rte(double2);
5222double2 __ovld __cnfn convert_double2_rte(float2);
5223double2 __ovld __cnfn convert_double2_rte(int2);
5224double2 __ovld __cnfn convert_double2_rte(long2);
5225double2 __ovld __cnfn convert_double2_rte(short2);
5226double2 __ovld __cnfn convert_double2_rte(uchar2);
5227double2 __ovld __cnfn convert_double2_rte(uint2);
5228double2 __ovld __cnfn convert_double2_rte(ulong2);
5229double2 __ovld __cnfn convert_double2_rte(ushort2);
5230double2 __ovld __cnfn convert_double2_rtn(char2);
5231double2 __ovld __cnfn convert_double2_rtn(double2);
5232double2 __ovld __cnfn convert_double2_rtn(float2);
5233double2 __ovld __cnfn convert_double2_rtn(int2);
5234double2 __ovld __cnfn convert_double2_rtn(long2);
5235double2 __ovld __cnfn convert_double2_rtn(short2);
5236double2 __ovld __cnfn convert_double2_rtn(uchar2);
5237double2 __ovld __cnfn convert_double2_rtn(uint2);
5238double2 __ovld __cnfn convert_double2_rtn(ulong2);
5239double2 __ovld __cnfn convert_double2_rtn(ushort2);
5240double2 __ovld __cnfn convert_double2_rtp(char2);
5241double2 __ovld __cnfn convert_double2_rtp(double2);
5242double2 __ovld __cnfn convert_double2_rtp(float2);
5243double2 __ovld __cnfn convert_double2_rtp(int2);
5244double2 __ovld __cnfn convert_double2_rtp(long2);
5245double2 __ovld __cnfn convert_double2_rtp(short2);
5246double2 __ovld __cnfn convert_double2_rtp(uchar2);
5247double2 __ovld __cnfn convert_double2_rtp(uint2);
5248double2 __ovld __cnfn convert_double2_rtp(ulong2);
5249double2 __ovld __cnfn convert_double2_rtp(ushort2);
5250double2 __ovld __cnfn convert_double2_rtz(char2);
5251double2 __ovld __cnfn convert_double2_rtz(double2);
5252double2 __ovld __cnfn convert_double2_rtz(float2);
5253double2 __ovld __cnfn convert_double2_rtz(int2);
5254double2 __ovld __cnfn convert_double2_rtz(long2);
5255double2 __ovld __cnfn convert_double2_rtz(short2);
5256double2 __ovld __cnfn convert_double2_rtz(uchar2);
5257double2 __ovld __cnfn convert_double2_rtz(uint2);
5258double2 __ovld __cnfn convert_double2_rtz(ulong2);
5259double2 __ovld __cnfn convert_double2_rtz(ushort2);
5260double3 __ovld __cnfn convert_double3(char3);
5261double3 __ovld __cnfn convert_double3(double3);
5262double3 __ovld __cnfn convert_double3(float3);
5263double3 __ovld __cnfn convert_double3(int3);
5264double3 __ovld __cnfn convert_double3(long3);
5265double3 __ovld __cnfn convert_double3(short3);
5266double3 __ovld __cnfn convert_double3(uchar3);
5267double3 __ovld __cnfn convert_double3(uint3);
5268double3 __ovld __cnfn convert_double3(ulong3);
5269double3 __ovld __cnfn convert_double3(ushort3);
5270double3 __ovld __cnfn convert_double3_rte(char3);
5271double3 __ovld __cnfn convert_double3_rte(double3);
5272double3 __ovld __cnfn convert_double3_rte(float3);
5273double3 __ovld __cnfn convert_double3_rte(int3);
5274double3 __ovld __cnfn convert_double3_rte(long3);
5275double3 __ovld __cnfn convert_double3_rte(short3);
5276double3 __ovld __cnfn convert_double3_rte(uchar3);
5277double3 __ovld __cnfn convert_double3_rte(uint3);
5278double3 __ovld __cnfn convert_double3_rte(ulong3);
5279double3 __ovld __cnfn convert_double3_rte(ushort3);
5280double3 __ovld __cnfn convert_double3_rtn(char3);
5281double3 __ovld __cnfn convert_double3_rtn(double3);
5282double3 __ovld __cnfn convert_double3_rtn(float3);
5283double3 __ovld __cnfn convert_double3_rtn(int3);
5284double3 __ovld __cnfn convert_double3_rtn(long3);
5285double3 __ovld __cnfn convert_double3_rtn(short3);
5286double3 __ovld __cnfn convert_double3_rtn(uchar3);
5287double3 __ovld __cnfn convert_double3_rtn(uint3);
5288double3 __ovld __cnfn convert_double3_rtn(ulong3);
5289double3 __ovld __cnfn convert_double3_rtn(ushort3);
5290double3 __ovld __cnfn convert_double3_rtp(char3);
5291double3 __ovld __cnfn convert_double3_rtp(double3);
5292double3 __ovld __cnfn convert_double3_rtp(float3);
5293double3 __ovld __cnfn convert_double3_rtp(int3);
5294double3 __ovld __cnfn convert_double3_rtp(long3);
5295double3 __ovld __cnfn convert_double3_rtp(short3);
5296double3 __ovld __cnfn convert_double3_rtp(uchar3);
5297double3 __ovld __cnfn convert_double3_rtp(uint3);
5298double3 __ovld __cnfn convert_double3_rtp(ulong3);
5299double3 __ovld __cnfn convert_double3_rtp(ushort3);
5300double3 __ovld __cnfn convert_double3_rtz(char3);
5301double3 __ovld __cnfn convert_double3_rtz(double3);
5302double3 __ovld __cnfn convert_double3_rtz(float3);
5303double3 __ovld __cnfn convert_double3_rtz(int3);
5304double3 __ovld __cnfn convert_double3_rtz(long3);
5305double3 __ovld __cnfn convert_double3_rtz(short3);
5306double3 __ovld __cnfn convert_double3_rtz(uchar3);
5307double3 __ovld __cnfn convert_double3_rtz(uint3);
5308double3 __ovld __cnfn convert_double3_rtz(ulong3);
5309double3 __ovld __cnfn convert_double3_rtz(ushort3);
5310double4 __ovld __cnfn convert_double4(char4);
5311double4 __ovld __cnfn convert_double4(double4);
5312double4 __ovld __cnfn convert_double4(float4);
5313double4 __ovld __cnfn convert_double4(int4);
5314double4 __ovld __cnfn convert_double4(long4);
5315double4 __ovld __cnfn convert_double4(short4);
5316double4 __ovld __cnfn convert_double4(uchar4);
5317double4 __ovld __cnfn convert_double4(uint4);
5318double4 __ovld __cnfn convert_double4(ulong4);
5319double4 __ovld __cnfn convert_double4(ushort4);
5320double4 __ovld __cnfn convert_double4_rte(char4);
5321double4 __ovld __cnfn convert_double4_rte(double4);
5322double4 __ovld __cnfn convert_double4_rte(float4);
5323double4 __ovld __cnfn convert_double4_rte(int4);
5324double4 __ovld __cnfn convert_double4_rte(long4);
5325double4 __ovld __cnfn convert_double4_rte(short4);
5326double4 __ovld __cnfn convert_double4_rte(uchar4);
5327double4 __ovld __cnfn convert_double4_rte(uint4);
5328double4 __ovld __cnfn convert_double4_rte(ulong4);
5329double4 __ovld __cnfn convert_double4_rte(ushort4);
5330double4 __ovld __cnfn convert_double4_rtn(char4);
5331double4 __ovld __cnfn convert_double4_rtn(double4);
5332double4 __ovld __cnfn convert_double4_rtn(float4);
5333double4 __ovld __cnfn convert_double4_rtn(int4);
5334double4 __ovld __cnfn convert_double4_rtn(long4);
5335double4 __ovld __cnfn convert_double4_rtn(short4);
5336double4 __ovld __cnfn convert_double4_rtn(uchar4);
5337double4 __ovld __cnfn convert_double4_rtn(uint4);
5338double4 __ovld __cnfn convert_double4_rtn(ulong4);
5339double4 __ovld __cnfn convert_double4_rtn(ushort4);
5340double4 __ovld __cnfn convert_double4_rtp(char4);
5341double4 __ovld __cnfn convert_double4_rtp(double4);
5342double4 __ovld __cnfn convert_double4_rtp(float4);
5343double4 __ovld __cnfn convert_double4_rtp(int4);
5344double4 __ovld __cnfn convert_double4_rtp(long4);
5345double4 __ovld __cnfn convert_double4_rtp(short4);
5346double4 __ovld __cnfn convert_double4_rtp(uchar4);
5347double4 __ovld __cnfn convert_double4_rtp(uint4);
5348double4 __ovld __cnfn convert_double4_rtp(ulong4);
5349double4 __ovld __cnfn convert_double4_rtp(ushort4);
5350double4 __ovld __cnfn convert_double4_rtz(char4);
5351double4 __ovld __cnfn convert_double4_rtz(double4);
5352double4 __ovld __cnfn convert_double4_rtz(float4);
5353double4 __ovld __cnfn convert_double4_rtz(int4);
5354double4 __ovld __cnfn convert_double4_rtz(long4);
5355double4 __ovld __cnfn convert_double4_rtz(short4);
5356double4 __ovld __cnfn convert_double4_rtz(uchar4);
5357double4 __ovld __cnfn convert_double4_rtz(uint4);
5358double4 __ovld __cnfn convert_double4_rtz(ulong4);
5359double4 __ovld __cnfn convert_double4_rtz(ushort4);
5360double8 __ovld __cnfn convert_double8(char8);
5361double8 __ovld __cnfn convert_double8(double8);
5362double8 __ovld __cnfn convert_double8(float8);
5363double8 __ovld __cnfn convert_double8(int8);
5364double8 __ovld __cnfn convert_double8(long8);
5365double8 __ovld __cnfn convert_double8(short8);
5366double8 __ovld __cnfn convert_double8(uchar8);
5367double8 __ovld __cnfn convert_double8(uint8);
5368double8 __ovld __cnfn convert_double8(ulong8);
5369double8 __ovld __cnfn convert_double8(ushort8);
5370double8 __ovld __cnfn convert_double8_rte(char8);
5371double8 __ovld __cnfn convert_double8_rte(double8);
5372double8 __ovld __cnfn convert_double8_rte(float8);
5373double8 __ovld __cnfn convert_double8_rte(int8);
5374double8 __ovld __cnfn convert_double8_rte(long8);
5375double8 __ovld __cnfn convert_double8_rte(short8);
5376double8 __ovld __cnfn convert_double8_rte(uchar8);
5377double8 __ovld __cnfn convert_double8_rte(uint8);
5378double8 __ovld __cnfn convert_double8_rte(ulong8);
5379double8 __ovld __cnfn convert_double8_rte(ushort8);
5380double8 __ovld __cnfn convert_double8_rtn(char8);
5381double8 __ovld __cnfn convert_double8_rtn(double8);
5382double8 __ovld __cnfn convert_double8_rtn(float8);
5383double8 __ovld __cnfn convert_double8_rtn(int8);
5384double8 __ovld __cnfn convert_double8_rtn(long8);
5385double8 __ovld __cnfn convert_double8_rtn(short8);
5386double8 __ovld __cnfn convert_double8_rtn(uchar8);
5387double8 __ovld __cnfn convert_double8_rtn(uint8);
5388double8 __ovld __cnfn convert_double8_rtn(ulong8);
5389double8 __ovld __cnfn convert_double8_rtn(ushort8);
5390double8 __ovld __cnfn convert_double8_rtp(char8);
5391double8 __ovld __cnfn convert_double8_rtp(double8);
5392double8 __ovld __cnfn convert_double8_rtp(float8);
5393double8 __ovld __cnfn convert_double8_rtp(int8);
5394double8 __ovld __cnfn convert_double8_rtp(long8);
5395double8 __ovld __cnfn convert_double8_rtp(short8);
5396double8 __ovld __cnfn convert_double8_rtp(uchar8);
5397double8 __ovld __cnfn convert_double8_rtp(uint8);
5398double8 __ovld __cnfn convert_double8_rtp(ulong8);
5399double8 __ovld __cnfn convert_double8_rtp(ushort8);
5400double8 __ovld __cnfn convert_double8_rtz(char8);
5401double8 __ovld __cnfn convert_double8_rtz(double8);
5402double8 __ovld __cnfn convert_double8_rtz(float8);
5403double8 __ovld __cnfn convert_double8_rtz(int8);
5404double8 __ovld __cnfn convert_double8_rtz(long8);
5405double8 __ovld __cnfn convert_double8_rtz(short8);
5406double8 __ovld __cnfn convert_double8_rtz(uchar8);
5407double8 __ovld __cnfn convert_double8_rtz(uint8);
5408double8 __ovld __cnfn convert_double8_rtz(ulong8);
5409double8 __ovld __cnfn convert_double8_rtz(ushort8);
5410double16 __ovld __cnfn convert_double16(char16);
5411double16 __ovld __cnfn convert_double16(double16);
5412double16 __ovld __cnfn convert_double16(float16);
5413double16 __ovld __cnfn convert_double16(int16);
5414double16 __ovld __cnfn convert_double16(long16);
5415double16 __ovld __cnfn convert_double16(short16);
5416double16 __ovld __cnfn convert_double16(uchar16);
5417double16 __ovld __cnfn convert_double16(uint16);
5418double16 __ovld __cnfn convert_double16(ulong16);
5419double16 __ovld __cnfn convert_double16(ushort16);
5420double16 __ovld __cnfn convert_double16_rte(char16);
5421double16 __ovld __cnfn convert_double16_rte(double16);
5422double16 __ovld __cnfn convert_double16_rte(float16);
5423double16 __ovld __cnfn convert_double16_rte(int16);
5424double16 __ovld __cnfn convert_double16_rte(long16);
5425double16 __ovld __cnfn convert_double16_rte(short16);
5426double16 __ovld __cnfn convert_double16_rte(uchar16);
5427double16 __ovld __cnfn convert_double16_rte(uint16);
5428double16 __ovld __cnfn convert_double16_rte(ulong16);
5429double16 __ovld __cnfn convert_double16_rte(ushort16);
5430double16 __ovld __cnfn convert_double16_rtn(char16);
5431double16 __ovld __cnfn convert_double16_rtn(double16);
5432double16 __ovld __cnfn convert_double16_rtn(float16);
5433double16 __ovld __cnfn convert_double16_rtn(int16);
5434double16 __ovld __cnfn convert_double16_rtn(long16);
5435double16 __ovld __cnfn convert_double16_rtn(short16);
5436double16 __ovld __cnfn convert_double16_rtn(uchar16);
5437double16 __ovld __cnfn convert_double16_rtn(uint16);
5438double16 __ovld __cnfn convert_double16_rtn(ulong16);
5439double16 __ovld __cnfn convert_double16_rtn(ushort16);
5440double16 __ovld __cnfn convert_double16_rtp(char16);
5441double16 __ovld __cnfn convert_double16_rtp(double16);
5442double16 __ovld __cnfn convert_double16_rtp(float16);
5443double16 __ovld __cnfn convert_double16_rtp(int16);
5444double16 __ovld __cnfn convert_double16_rtp(long16);
5445double16 __ovld __cnfn convert_double16_rtp(short16);
5446double16 __ovld __cnfn convert_double16_rtp(uchar16);
5447double16 __ovld __cnfn convert_double16_rtp(uint16);
5448double16 __ovld __cnfn convert_double16_rtp(ulong16);
5449double16 __ovld __cnfn convert_double16_rtp(ushort16);
5450double16 __ovld __cnfn convert_double16_rtz(char16);
5451double16 __ovld __cnfn convert_double16_rtz(double16);
5452double16 __ovld __cnfn convert_double16_rtz(float16);
5453double16 __ovld __cnfn convert_double16_rtz(int16);
5454double16 __ovld __cnfn convert_double16_rtz(long16);
5455double16 __ovld __cnfn convert_double16_rtz(short16);
5456double16 __ovld __cnfn convert_double16_rtz(uchar16);
5457double16 __ovld __cnfn convert_double16_rtz(uint16);
5458double16 __ovld __cnfn convert_double16_rtz(ulong16);
5459double16 __ovld __cnfn convert_double16_rtz(ushort16);
5460#endif //cl_khr_fp64
5461
5462#ifdef cl_khr_fp16
5463#pragma OPENCL EXTENSION cl_khr_fp16 : enable
5464// Convert half types to non-double types.
5475uchar2 __ovld __cnfn convert_uchar2(half2);
5476uchar2 __ovld __cnfn convert_uchar2_rte(half2);
5477uchar2 __ovld __cnfn convert_uchar2_rtp(half2);
5478uchar2 __ovld __cnfn convert_uchar2_rtn(half2);
5479uchar2 __ovld __cnfn convert_uchar2_rtz(half2);
5480uchar2 __ovld __cnfn convert_uchar2_sat(half2);
5485uchar3 __ovld __cnfn convert_uchar3(half3);
5486uchar3 __ovld __cnfn convert_uchar3_rte(half3);
5487uchar3 __ovld __cnfn convert_uchar3_rtp(half3);
5488uchar3 __ovld __cnfn convert_uchar3_rtn(half3);
5489uchar3 __ovld __cnfn convert_uchar3_rtz(half3);
5490uchar3 __ovld __cnfn convert_uchar3_sat(half3);
5495uchar4 __ovld __cnfn convert_uchar4(half4);
5496uchar4 __ovld __cnfn convert_uchar4_rte(half4);
5497uchar4 __ovld __cnfn convert_uchar4_rtp(half4);
5498uchar4 __ovld __cnfn convert_uchar4_rtn(half4);
5499uchar4 __ovld __cnfn convert_uchar4_rtz(half4);
5500uchar4 __ovld __cnfn convert_uchar4_sat(half4);
5505uchar8 __ovld __cnfn convert_uchar8(half8);
5506uchar8 __ovld __cnfn convert_uchar8_rte(half8);
5507uchar8 __ovld __cnfn convert_uchar8_rtp(half8);
5508uchar8 __ovld __cnfn convert_uchar8_rtn(half8);
5509uchar8 __ovld __cnfn convert_uchar8_rtz(half8);
5510uchar8 __ovld __cnfn convert_uchar8_sat(half8);
5515uchar16 __ovld __cnfn convert_uchar16(half16);
5516uchar16 __ovld __cnfn convert_uchar16_rte(half16);
5517uchar16 __ovld __cnfn convert_uchar16_rtp(half16);
5518uchar16 __ovld __cnfn convert_uchar16_rtn(half16);
5519uchar16 __ovld __cnfn convert_uchar16_rtz(half16);
5520uchar16 __ovld __cnfn convert_uchar16_sat(half16);
5521uchar16 __ovld __cnfn convert_uchar16_sat_rte(half16);
5522uchar16 __ovld __cnfn convert_uchar16_sat_rtp(half16);
5523uchar16 __ovld __cnfn convert_uchar16_sat_rtn(half16);
5524uchar16 __ovld __cnfn convert_uchar16_sat_rtz(half16);
5535ushort2 __ovld __cnfn convert_ushort2(half2);
5536ushort2 __ovld __cnfn convert_ushort2_rte(half2);
5537ushort2 __ovld __cnfn convert_ushort2_rtp(half2);
5538ushort2 __ovld __cnfn convert_ushort2_rtn(half2);
5539ushort2 __ovld __cnfn convert_ushort2_rtz(half2);
5540ushort2 __ovld __cnfn convert_ushort2_sat(half2);
5545ushort3 __ovld __cnfn convert_ushort3(half3);
5546ushort3 __ovld __cnfn convert_ushort3_rte(half3);
5547ushort3 __ovld __cnfn convert_ushort3_rtp(half3);
5548ushort3 __ovld __cnfn convert_ushort3_rtn(half3);
5549ushort3 __ovld __cnfn convert_ushort3_rtz(half3);
5550ushort3 __ovld __cnfn convert_ushort3_sat(half3);
5555ushort4 __ovld __cnfn convert_ushort4(half4);
5556ushort4 __ovld __cnfn convert_ushort4_rte(half4);
5557ushort4 __ovld __cnfn convert_ushort4_rtp(half4);
5558ushort4 __ovld __cnfn convert_ushort4_rtn(half4);
5559ushort4 __ovld __cnfn convert_ushort4_rtz(half4);
5560ushort4 __ovld __cnfn convert_ushort4_sat(half4);
5565ushort8 __ovld __cnfn convert_ushort8(half8);
5566ushort8 __ovld __cnfn convert_ushort8_rte(half8);
5567ushort8 __ovld __cnfn convert_ushort8_rtp(half8);
5568ushort8 __ovld __cnfn convert_ushort8_rtn(half8);
5569ushort8 __ovld __cnfn convert_ushort8_rtz(half8);
5570ushort8 __ovld __cnfn convert_ushort8_sat(half8);
5575ushort16 __ovld __cnfn convert_ushort16(half16);
5576ushort16 __ovld __cnfn convert_ushort16_rte(half16);
5577ushort16 __ovld __cnfn convert_ushort16_rtp(half16);
5578ushort16 __ovld __cnfn convert_ushort16_rtn(half16);
5579ushort16 __ovld __cnfn convert_ushort16_rtz(half16);
5580ushort16 __ovld __cnfn convert_ushort16_sat(half16);
5581ushort16 __ovld __cnfn convert_ushort16_sat_rte(half16);
5582ushort16 __ovld __cnfn convert_ushort16_sat_rtp(half16);
5583ushort16 __ovld __cnfn convert_ushort16_sat_rtn(half16);
5584ushort16 __ovld __cnfn convert_ushort16_sat_rtz(half16);
5585uint __ovld __cnfn convert_uint(half);
5586uint __ovld __cnfn convert_uint_rte(half);
5587uint __ovld __cnfn convert_uint_rtp(half);
5588uint __ovld __cnfn convert_uint_rtn(half);
5589uint __ovld __cnfn convert_uint_rtz(half);
5590uint __ovld __cnfn convert_uint_sat(half);
5595uint2 __ovld __cnfn convert_uint2(half2);
5596uint2 __ovld __cnfn convert_uint2_rte(half2);
5597uint2 __ovld __cnfn convert_uint2_rtp(half2);
5598uint2 __ovld __cnfn convert_uint2_rtn(half2);
5599uint2 __ovld __cnfn convert_uint2_rtz(half2);
5600uint2 __ovld __cnfn convert_uint2_sat(half2);
5605uint3 __ovld __cnfn convert_uint3(half3);
5606uint3 __ovld __cnfn convert_uint3_rte(half3);
5607uint3 __ovld __cnfn convert_uint3_rtp(half3);
5608uint3 __ovld __cnfn convert_uint3_rtn(half3);
5609uint3 __ovld __cnfn convert_uint3_rtz(half3);
5610uint3 __ovld __cnfn convert_uint3_sat(half3);
5615uint4 __ovld __cnfn convert_uint4(half4);
5616uint4 __ovld __cnfn convert_uint4_rte(half4);
5617uint4 __ovld __cnfn convert_uint4_rtp(half4);
5618uint4 __ovld __cnfn convert_uint4_rtn(half4);
5619uint4 __ovld __cnfn convert_uint4_rtz(half4);
5620uint4 __ovld __cnfn convert_uint4_sat(half4);
5625uint8 __ovld __cnfn convert_uint8(half8);
5626uint8 __ovld __cnfn convert_uint8_rte(half8);
5627uint8 __ovld __cnfn convert_uint8_rtp(half8);
5628uint8 __ovld __cnfn convert_uint8_rtn(half8);
5629uint8 __ovld __cnfn convert_uint8_rtz(half8);
5630uint8 __ovld __cnfn convert_uint8_sat(half8);
5635uint16 __ovld __cnfn convert_uint16(half16);
5636uint16 __ovld __cnfn convert_uint16_rte(half16);
5637uint16 __ovld __cnfn convert_uint16_rtp(half16);
5638uint16 __ovld __cnfn convert_uint16_rtn(half16);
5639uint16 __ovld __cnfn convert_uint16_rtz(half16);
5640uint16 __ovld __cnfn convert_uint16_sat(half16);
5641uint16 __ovld __cnfn convert_uint16_sat_rte(half16);
5642uint16 __ovld __cnfn convert_uint16_sat_rtp(half16);
5643uint16 __ovld __cnfn convert_uint16_sat_rtn(half16);
5644uint16 __ovld __cnfn convert_uint16_sat_rtz(half16);
5655ulong2 __ovld __cnfn convert_ulong2(half2);
5656ulong2 __ovld __cnfn convert_ulong2_rte(half2);
5657ulong2 __ovld __cnfn convert_ulong2_rtp(half2);
5658ulong2 __ovld __cnfn convert_ulong2_rtn(half2);
5659ulong2 __ovld __cnfn convert_ulong2_rtz(half2);
5660ulong2 __ovld __cnfn convert_ulong2_sat(half2);
5665ulong3 __ovld __cnfn convert_ulong3(half3);
5666ulong3 __ovld __cnfn convert_ulong3_rte(half3);
5667ulong3 __ovld __cnfn convert_ulong3_rtp(half3);
5668ulong3 __ovld __cnfn convert_ulong3_rtn(half3);
5669ulong3 __ovld __cnfn convert_ulong3_rtz(half3);
5670ulong3 __ovld __cnfn convert_ulong3_sat(half3);
5675ulong4 __ovld __cnfn convert_ulong4(half4);
5676ulong4 __ovld __cnfn convert_ulong4_rte(half4);
5677ulong4 __ovld __cnfn convert_ulong4_rtp(half4);
5678ulong4 __ovld __cnfn convert_ulong4_rtn(half4);
5679ulong4 __ovld __cnfn convert_ulong4_rtz(half4);
5680ulong4 __ovld __cnfn convert_ulong4_sat(half4);
5685ulong8 __ovld __cnfn convert_ulong8(half8);
5686ulong8 __ovld __cnfn convert_ulong8_rte(half8);
5687ulong8 __ovld __cnfn convert_ulong8_rtp(half8);
5688ulong8 __ovld __cnfn convert_ulong8_rtn(half8);
5689ulong8 __ovld __cnfn convert_ulong8_rtz(half8);
5690ulong8 __ovld __cnfn convert_ulong8_sat(half8);
5695ulong16 __ovld __cnfn convert_ulong16(half16);
5696ulong16 __ovld __cnfn convert_ulong16_rte(half16);
5697ulong16 __ovld __cnfn convert_ulong16_rtp(half16);
5698ulong16 __ovld __cnfn convert_ulong16_rtn(half16);
5699ulong16 __ovld __cnfn convert_ulong16_rtz(half16);
5700ulong16 __ovld __cnfn convert_ulong16_sat(half16);
5701ulong16 __ovld __cnfn convert_ulong16_sat_rte(half16);
5702ulong16 __ovld __cnfn convert_ulong16_sat_rtp(half16);
5703ulong16 __ovld __cnfn convert_ulong16_sat_rtn(half16);
5704ulong16 __ovld __cnfn convert_ulong16_sat_rtz(half16);
5705char __ovld __cnfn convert_char(half);
5706char __ovld __cnfn convert_char_rte(half);
5707char __ovld __cnfn convert_char_rtp(half);
5708char __ovld __cnfn convert_char_rtn(half);
5709char __ovld __cnfn convert_char_rtz(half);
5710char __ovld __cnfn convert_char_sat(half);
5715char2 __ovld __cnfn convert_char2(half2);
5716char2 __ovld __cnfn convert_char2_rte(half2);
5717char2 __ovld __cnfn convert_char2_rtp(half2);
5718char2 __ovld __cnfn convert_char2_rtn(half2);
5719char2 __ovld __cnfn convert_char2_rtz(half2);
5720char2 __ovld __cnfn convert_char2_sat(half2);
5725char3 __ovld __cnfn convert_char3(half3);
5726char3 __ovld __cnfn convert_char3_rte(half3);
5727char3 __ovld __cnfn convert_char3_rtp(half3);
5728char3 __ovld __cnfn convert_char3_rtn(half3);
5729char3 __ovld __cnfn convert_char3_rtz(half3);
5730char3 __ovld __cnfn convert_char3_sat(half3);
5735char4 __ovld __cnfn convert_char4(half4);
5736char4 __ovld __cnfn convert_char4_rte(half4);
5737char4 __ovld __cnfn convert_char4_rtp(half4);
5738char4 __ovld __cnfn convert_char4_rtn(half4);
5739char4 __ovld __cnfn convert_char4_rtz(half4);
5740char4 __ovld __cnfn convert_char4_sat(half4);
5745char8 __ovld __cnfn convert_char8(half8);
5746char8 __ovld __cnfn convert_char8_rte(half8);
5747char8 __ovld __cnfn convert_char8_rtp(half8);
5748char8 __ovld __cnfn convert_char8_rtn(half8);
5749char8 __ovld __cnfn convert_char8_rtz(half8);
5750char8 __ovld __cnfn convert_char8_sat(half8);
5755char16 __ovld __cnfn convert_char16(half16);
5756char16 __ovld __cnfn convert_char16_rte(half16);
5757char16 __ovld __cnfn convert_char16_rtp(half16);
5758char16 __ovld __cnfn convert_char16_rtn(half16);
5759char16 __ovld __cnfn convert_char16_rtz(half16);
5760char16 __ovld __cnfn convert_char16_sat(half16);
5761char16 __ovld __cnfn convert_char16_sat_rte(half16);
5762char16 __ovld __cnfn convert_char16_sat_rtp(half16);
5763char16 __ovld __cnfn convert_char16_sat_rtn(half16);
5764char16 __ovld __cnfn convert_char16_sat_rtz(half16);
5765short __ovld __cnfn convert_short(half);
5766short __ovld __cnfn convert_short_rte(half);
5767short __ovld __cnfn convert_short_rtp(half);
5768short __ovld __cnfn convert_short_rtn(half);
5769short __ovld __cnfn convert_short_rtz(half);
5770short __ovld __cnfn convert_short_sat(half);
5775short2 __ovld __cnfn convert_short2(half2);
5776short2 __ovld __cnfn convert_short2_rte(half2);
5777short2 __ovld __cnfn convert_short2_rtp(half2);
5778short2 __ovld __cnfn convert_short2_rtn(half2);
5779short2 __ovld __cnfn convert_short2_rtz(half2);
5780short2 __ovld __cnfn convert_short2_sat(half2);
5785short3 __ovld __cnfn convert_short3(half3);
5786short3 __ovld __cnfn convert_short3_rte(half3);
5787short3 __ovld __cnfn convert_short3_rtp(half3);
5788short3 __ovld __cnfn convert_short3_rtn(half3);
5789short3 __ovld __cnfn convert_short3_rtz(half3);
5790short3 __ovld __cnfn convert_short3_sat(half3);
5795short4 __ovld __cnfn convert_short4(half4);
5796short4 __ovld __cnfn convert_short4_rte(half4);
5797short4 __ovld __cnfn convert_short4_rtp(half4);
5798short4 __ovld __cnfn convert_short4_rtn(half4);
5799short4 __ovld __cnfn convert_short4_rtz(half4);
5800short4 __ovld __cnfn convert_short4_sat(half4);
5805short8 __ovld __cnfn convert_short8(half8);
5806short8 __ovld __cnfn convert_short8_rte(half8);
5807short8 __ovld __cnfn convert_short8_rtp(half8);
5808short8 __ovld __cnfn convert_short8_rtn(half8);
5809short8 __ovld __cnfn convert_short8_rtz(half8);
5810short8 __ovld __cnfn convert_short8_sat(half8);
5815short16 __ovld __cnfn convert_short16(half16);
5816short16 __ovld __cnfn convert_short16_rte(half16);
5817short16 __ovld __cnfn convert_short16_rtp(half16);
5818short16 __ovld __cnfn convert_short16_rtn(half16);
5819short16 __ovld __cnfn convert_short16_rtz(half16);
5820short16 __ovld __cnfn convert_short16_sat(half16);
5821short16 __ovld __cnfn convert_short16_sat_rte(half16);
5822short16 __ovld __cnfn convert_short16_sat_rtp(half16);
5823short16 __ovld __cnfn convert_short16_sat_rtn(half16);
5824short16 __ovld __cnfn convert_short16_sat_rtz(half16);
5825int __ovld __cnfn convert_int(half);
5826int __ovld __cnfn convert_int_rte(half);
5827int __ovld __cnfn convert_int_rtp(half);
5828int __ovld __cnfn convert_int_rtn(half);
5829int __ovld __cnfn convert_int_rtz(half);
5830int __ovld __cnfn convert_int_sat(half);
5835int2 __ovld __cnfn convert_int2(half2);
5836int2 __ovld __cnfn convert_int2_rte(half2);
5837int2 __ovld __cnfn convert_int2_rtp(half2);
5838int2 __ovld __cnfn convert_int2_rtn(half2);
5839int2 __ovld __cnfn convert_int2_rtz(half2);
5840int2 __ovld __cnfn convert_int2_sat(half2);
5845int3 __ovld __cnfn convert_int3(half3);
5846int3 __ovld __cnfn convert_int3_rte(half3);
5847int3 __ovld __cnfn convert_int3_rtp(half3);
5848int3 __ovld __cnfn convert_int3_rtn(half3);
5849int3 __ovld __cnfn convert_int3_rtz(half3);
5850int3 __ovld __cnfn convert_int3_sat(half3);
5855int4 __ovld __cnfn convert_int4(half4);
5856int4 __ovld __cnfn convert_int4_rte(half4);
5857int4 __ovld __cnfn convert_int4_rtp(half4);
5858int4 __ovld __cnfn convert_int4_rtn(half4);
5859int4 __ovld __cnfn convert_int4_rtz(half4);
5860int4 __ovld __cnfn convert_int4_sat(half4);
5865int8 __ovld __cnfn convert_int8(half8);
5866int8 __ovld __cnfn convert_int8_rte(half8);
5867int8 __ovld __cnfn convert_int8_rtp(half8);
5868int8 __ovld __cnfn convert_int8_rtn(half8);
5869int8 __ovld __cnfn convert_int8_rtz(half8);
5870int8 __ovld __cnfn convert_int8_sat(half8);
5875int16 __ovld __cnfn convert_int16(half16);
5876int16 __ovld __cnfn convert_int16_rte(half16);
5877int16 __ovld __cnfn convert_int16_rtp(half16);
5878int16 __ovld __cnfn convert_int16_rtn(half16);
5879int16 __ovld __cnfn convert_int16_rtz(half16);
5880int16 __ovld __cnfn convert_int16_sat(half16);
5881int16 __ovld __cnfn convert_int16_sat_rte(half16);
5882int16 __ovld __cnfn convert_int16_sat_rtp(half16);
5883int16 __ovld __cnfn convert_int16_sat_rtn(half16);
5884int16 __ovld __cnfn convert_int16_sat_rtz(half16);
5885long __ovld __cnfn convert_long(half);
5886long __ovld __cnfn convert_long_rte(half);
5887long __ovld __cnfn convert_long_rtp(half);
5888long __ovld __cnfn convert_long_rtn(half);
5889long __ovld __cnfn convert_long_rtz(half);
5890long __ovld __cnfn convert_long_sat(half);
5895long2 __ovld __cnfn convert_long2(half2);
5896long2 __ovld __cnfn convert_long2_rte(half2);
5897long2 __ovld __cnfn convert_long2_rtp(half2);
5898long2 __ovld __cnfn convert_long2_rtn(half2);
5899long2 __ovld __cnfn convert_long2_rtz(half2);
5900long2 __ovld __cnfn convert_long2_sat(half2);
5905long3 __ovld __cnfn convert_long3(half3);
5906long3 __ovld __cnfn convert_long3_rte(half3);
5907long3 __ovld __cnfn convert_long3_rtp(half3);
5908long3 __ovld __cnfn convert_long3_rtn(half3);
5909long3 __ovld __cnfn convert_long3_rtz(half3);
5910long3 __ovld __cnfn convert_long3_sat(half3);
5915long4 __ovld __cnfn convert_long4(half4);
5916long4 __ovld __cnfn convert_long4_rte(half4);
5917long4 __ovld __cnfn convert_long4_rtp(half4);
5918long4 __ovld __cnfn convert_long4_rtn(half4);
5919long4 __ovld __cnfn convert_long4_rtz(half4);
5920long4 __ovld __cnfn convert_long4_sat(half4);
5925long8 __ovld __cnfn convert_long8(half8);
5926long8 __ovld __cnfn convert_long8_rte(half8);
5927long8 __ovld __cnfn convert_long8_rtp(half8);
5928long8 __ovld __cnfn convert_long8_rtn(half8);
5929long8 __ovld __cnfn convert_long8_rtz(half8);
5930long8 __ovld __cnfn convert_long8_sat(half8);
5935long16 __ovld __cnfn convert_long16(half16);
5936long16 __ovld __cnfn convert_long16_rte(half16);
5937long16 __ovld __cnfn convert_long16_rtp(half16);
5938long16 __ovld __cnfn convert_long16_rtn(half16);
5939long16 __ovld __cnfn convert_long16_rtz(half16);
5940long16 __ovld __cnfn convert_long16_sat(half16);
5941long16 __ovld __cnfn convert_long16_sat_rte(half16);
5942long16 __ovld __cnfn convert_long16_sat_rtp(half16);
5943long16 __ovld __cnfn convert_long16_sat_rtn(half16);
5944long16 __ovld __cnfn convert_long16_sat_rtz(half16);
5945float __ovld __cnfn convert_float(half);
5946float __ovld __cnfn convert_float_rte(half);
5947float __ovld __cnfn convert_float_rtp(half);
5948float __ovld __cnfn convert_float_rtn(half);
5949float __ovld __cnfn convert_float_rtz(half);
5950float2 __ovld __cnfn convert_float2(half2);
5951float2 __ovld __cnfn convert_float2_rte(half2);
5952float2 __ovld __cnfn convert_float2_rtp(half2);
5953float2 __ovld __cnfn convert_float2_rtn(half2);
5954float2 __ovld __cnfn convert_float2_rtz(half2);
5955float3 __ovld __cnfn convert_float3(half3);
5956float3 __ovld __cnfn convert_float3_rte(half3);
5957float3 __ovld __cnfn convert_float3_rtp(half3);
5958float3 __ovld __cnfn convert_float3_rtn(half3);
5959float3 __ovld __cnfn convert_float3_rtz(half3);
5960float4 __ovld __cnfn convert_float4(half4);
5961float4 __ovld __cnfn convert_float4_rte(half4);
5962float4 __ovld __cnfn convert_float4_rtp(half4);
5963float4 __ovld __cnfn convert_float4_rtn(half4);
5964float4 __ovld __cnfn convert_float4_rtz(half4);
5965float8 __ovld __cnfn convert_float8(half8);
5966float8 __ovld __cnfn convert_float8_rte(half8);
5967float8 __ovld __cnfn convert_float8_rtp(half8);
5968float8 __ovld __cnfn convert_float8_rtn(half8);
5969float8 __ovld __cnfn convert_float8_rtz(half8);
5970float16 __ovld __cnfn convert_float16(half16);
5971float16 __ovld __cnfn convert_float16_rte(half16);
5972float16 __ovld __cnfn convert_float16_rtp(half16);
5973float16 __ovld __cnfn convert_float16_rtn(half16);
5974float16 __ovld __cnfn convert_float16_rtz(half16);
5975
5976// Convert non-double types to half types.
5977half __ovld __cnfn convert_half(uchar);
5978half __ovld __cnfn convert_half(ushort);
5979half __ovld __cnfn convert_half(uint);
5980half __ovld __cnfn convert_half(ulong);
5981half __ovld __cnfn convert_half(char);
5982half __ovld __cnfn convert_half(short);
5983half __ovld __cnfn convert_half(int);
5984half __ovld __cnfn convert_half(long);
5985half __ovld __cnfn convert_half(float);
5986half __ovld __cnfn convert_half(half);
5987half __ovld __cnfn convert_half_rte(uchar);
5988half __ovld __cnfn convert_half_rte(ushort);
5989half __ovld __cnfn convert_half_rte(uint);
5990half __ovld __cnfn convert_half_rte(ulong);
5991half __ovld __cnfn convert_half_rte(char);
5992half __ovld __cnfn convert_half_rte(short);
5993half __ovld __cnfn convert_half_rte(int);
5994half __ovld __cnfn convert_half_rte(long);
5995half __ovld __cnfn convert_half_rte(float);
5996half __ovld __cnfn convert_half_rte(half);
5997half __ovld __cnfn convert_half_rtp(uchar);
5998half __ovld __cnfn convert_half_rtp(ushort);
5999half __ovld __cnfn convert_half_rtp(uint);
6000half __ovld __cnfn convert_half_rtp(ulong);
6001half __ovld __cnfn convert_half_rtp(char);
6002half __ovld __cnfn convert_half_rtp(short);
6003half __ovld __cnfn convert_half_rtp(int);
6004half __ovld __cnfn convert_half_rtp(long);
6005half __ovld __cnfn convert_half_rtp(float);
6006half __ovld __cnfn convert_half_rtp(half);
6007half __ovld __cnfn convert_half_rtn(uchar);
6008half __ovld __cnfn convert_half_rtn(ushort);
6009half __ovld __cnfn convert_half_rtn(uint);
6010half __ovld __cnfn convert_half_rtn(ulong);
6011half __ovld __cnfn convert_half_rtn(char);
6012half __ovld __cnfn convert_half_rtn(short);
6013half __ovld __cnfn convert_half_rtn(int);
6014half __ovld __cnfn convert_half_rtn(long);
6015half __ovld __cnfn convert_half_rtn(float);
6016half __ovld __cnfn convert_half_rtn(half);
6017half __ovld __cnfn convert_half_rtz(uchar);
6018half __ovld __cnfn convert_half_rtz(ushort);
6019half __ovld __cnfn convert_half_rtz(uint);
6020half __ovld __cnfn convert_half_rtz(ulong);
6021half __ovld __cnfn convert_half_rtz(char);
6022half __ovld __cnfn convert_half_rtz(short);
6023half __ovld __cnfn convert_half_rtz(int);
6024half __ovld __cnfn convert_half_rtz(long);
6025half __ovld __cnfn convert_half_rtz(float);
6026half __ovld __cnfn convert_half_rtz(half);
6027half2 __ovld __cnfn convert_half2(char2);
6028half2 __ovld __cnfn convert_half2(uchar2);
6029half2 __ovld __cnfn convert_half2(short2);
6030half2 __ovld __cnfn convert_half2(ushort2);
6031half2 __ovld __cnfn convert_half2(int2);
6032half2 __ovld __cnfn convert_half2(uint2);
6033half2 __ovld __cnfn convert_half2(long2);
6034half2 __ovld __cnfn convert_half2(ulong2);
6035half2 __ovld __cnfn convert_half2(float2);
6036half2 __ovld __cnfn convert_half2(half2);
6037half2 __ovld __cnfn convert_half2_rte(char2);
6038half2 __ovld __cnfn convert_half2_rte(uchar2);
6039half2 __ovld __cnfn convert_half2_rte(short2);
6040half2 __ovld __cnfn convert_half2_rte(ushort2);
6041half2 __ovld __cnfn convert_half2_rte(int2);
6042half2 __ovld __cnfn convert_half2_rte(uint2);
6043half2 __ovld __cnfn convert_half2_rte(long2);
6044half2 __ovld __cnfn convert_half2_rte(ulong2);
6045half2 __ovld __cnfn convert_half2_rte(float2);
6046half2 __ovld __cnfn convert_half2_rte(half2);
6047half2 __ovld __cnfn convert_half2_rtp(char2);
6048half2 __ovld __cnfn convert_half2_rtp(uchar2);
6049half2 __ovld __cnfn convert_half2_rtp(short2);
6050half2 __ovld __cnfn convert_half2_rtp(ushort2);
6051half2 __ovld __cnfn convert_half2_rtp(int2);
6052half2 __ovld __cnfn convert_half2_rtp(uint2);
6053half2 __ovld __cnfn convert_half2_rtp(long2);
6054half2 __ovld __cnfn convert_half2_rtp(ulong2);
6055half2 __ovld __cnfn convert_half2_rtp(float2);
6056half2 __ovld __cnfn convert_half2_rtp(half2);
6057half2 __ovld __cnfn convert_half2_rtn(char2);
6058half2 __ovld __cnfn convert_half2_rtn(uchar2);
6059half2 __ovld __cnfn convert_half2_rtn(short2);
6060half2 __ovld __cnfn convert_half2_rtn(ushort2);
6061half2 __ovld __cnfn convert_half2_rtn(int2);
6062half2 __ovld __cnfn convert_half2_rtn(uint2);
6063half2 __ovld __cnfn convert_half2_rtn(long2);
6064half2 __ovld __cnfn convert_half2_rtn(ulong2);
6065half2 __ovld __cnfn convert_half2_rtn(float2);
6066half2 __ovld __cnfn convert_half2_rtn(half2);
6067half2 __ovld __cnfn convert_half2_rtz(char2);
6068half2 __ovld __cnfn convert_half2_rtz(uchar2);
6069half2 __ovld __cnfn convert_half2_rtz(short2);
6070half2 __ovld __cnfn convert_half2_rtz(ushort2);
6071half2 __ovld __cnfn convert_half2_rtz(int2);
6072half2 __ovld __cnfn convert_half2_rtz(uint2);
6073half2 __ovld __cnfn convert_half2_rtz(long2);
6074half2 __ovld __cnfn convert_half2_rtz(ulong2);
6075half2 __ovld __cnfn convert_half2_rtz(float2);
6076half2 __ovld __cnfn convert_half2_rtz(half2);
6077half3 __ovld __cnfn convert_half3(char3);
6078half3 __ovld __cnfn convert_half3(uchar3);
6079half3 __ovld __cnfn convert_half3(short3);
6080half3 __ovld __cnfn convert_half3(ushort3);
6081half3 __ovld __cnfn convert_half3(int3);
6082half3 __ovld __cnfn convert_half3(uint3);
6083half3 __ovld __cnfn convert_half3(long3);
6084half3 __ovld __cnfn convert_half3(ulong3);
6085half3 __ovld __cnfn convert_half3(float3);
6086half3 __ovld __cnfn convert_half3(half3);
6087half3 __ovld __cnfn convert_half3_rte(char3);
6088half3 __ovld __cnfn convert_half3_rte(uchar3);
6089half3 __ovld __cnfn convert_half3_rte(short3);
6090half3 __ovld __cnfn convert_half3_rte(ushort3);
6091half3 __ovld __cnfn convert_half3_rte(int3);
6092half3 __ovld __cnfn convert_half3_rte(uint3);
6093half3 __ovld __cnfn convert_half3_rte(long3);
6094half3 __ovld __cnfn convert_half3_rte(ulong3);
6095half3 __ovld __cnfn convert_half3_rte(float3);
6096half3 __ovld __cnfn convert_half3_rte(half3);
6097half3 __ovld __cnfn convert_half3_rtp(char3);
6098half3 __ovld __cnfn convert_half3_rtp(uchar3);
6099half3 __ovld __cnfn convert_half3_rtp(short3);
6100half3 __ovld __cnfn convert_half3_rtp(ushort3);
6101half3 __ovld __cnfn convert_half3_rtp(int3);
6102half3 __ovld __cnfn convert_half3_rtp(uint3);
6103half3 __ovld __cnfn convert_half3_rtp(long3);
6104half3 __ovld __cnfn convert_half3_rtp(ulong3);
6105half3 __ovld __cnfn convert_half3_rtp(float3);
6106half3 __ovld __cnfn convert_half3_rtp(half3);
6107half3 __ovld __cnfn convert_half3_rtn(char3);
6108half3 __ovld __cnfn convert_half3_rtn(uchar3);
6109half3 __ovld __cnfn convert_half3_rtn(short3);
6110half3 __ovld __cnfn convert_half3_rtn(ushort3);
6111half3 __ovld __cnfn convert_half3_rtn(int3);
6112half3 __ovld __cnfn convert_half3_rtn(uint3);
6113half3 __ovld __cnfn convert_half3_rtn(long3);
6114half3 __ovld __cnfn convert_half3_rtn(ulong3);
6115half3 __ovld __cnfn convert_half3_rtn(float3);
6116half3 __ovld __cnfn convert_half3_rtn(half3);
6117half3 __ovld __cnfn convert_half3_rtz(char3);
6118half3 __ovld __cnfn convert_half3_rtz(uchar3);
6119half3 __ovld __cnfn convert_half3_rtz(short3);
6120half3 __ovld __cnfn convert_half3_rtz(ushort3);
6121half3 __ovld __cnfn convert_half3_rtz(int3);
6122half3 __ovld __cnfn convert_half3_rtz(uint3);
6123half3 __ovld __cnfn convert_half3_rtz(long3);
6124half3 __ovld __cnfn convert_half3_rtz(ulong3);
6125half3 __ovld __cnfn convert_half3_rtz(float3);
6126half3 __ovld __cnfn convert_half3_rtz(half3);
6127half4 __ovld __cnfn convert_half4(char4);
6128half4 __ovld __cnfn convert_half4(uchar4);
6129half4 __ovld __cnfn convert_half4(short4);
6130half4 __ovld __cnfn convert_half4(ushort4);
6131half4 __ovld __cnfn convert_half4(int4);
6132half4 __ovld __cnfn convert_half4(uint4);
6133half4 __ovld __cnfn convert_half4(long4);
6134half4 __ovld __cnfn convert_half4(ulong4);
6135half4 __ovld __cnfn convert_half4(float4);
6136half4 __ovld __cnfn convert_half4(half4);
6137half4 __ovld __cnfn convert_half4_rte(char4);
6138half4 __ovld __cnfn convert_half4_rte(uchar4);
6139half4 __ovld __cnfn convert_half4_rte(short4);
6140half4 __ovld __cnfn convert_half4_rte(ushort4);
6141half4 __ovld __cnfn convert_half4_rte(int4);
6142half4 __ovld __cnfn convert_half4_rte(uint4);
6143half4 __ovld __cnfn convert_half4_rte(long4);
6144half4 __ovld __cnfn convert_half4_rte(ulong4);
6145half4 __ovld __cnfn convert_half4_rte(float4);
6146half4 __ovld __cnfn convert_half4_rte(half4);
6147half4 __ovld __cnfn convert_half4_rtp(char4);
6148half4 __ovld __cnfn convert_half4_rtp(uchar4);
6149half4 __ovld __cnfn convert_half4_rtp(short4);
6150half4 __ovld __cnfn convert_half4_rtp(ushort4);
6151half4 __ovld __cnfn convert_half4_rtp(int4);
6152half4 __ovld __cnfn convert_half4_rtp(uint4);
6153half4 __ovld __cnfn convert_half4_rtp(long4);
6154half4 __ovld __cnfn convert_half4_rtp(ulong4);
6155half4 __ovld __cnfn convert_half4_rtp(float4);
6156half4 __ovld __cnfn convert_half4_rtp(half4);
6157half4 __ovld __cnfn convert_half4_rtn(char4);
6158half4 __ovld __cnfn convert_half4_rtn(uchar4);
6159half4 __ovld __cnfn convert_half4_rtn(short4);
6160half4 __ovld __cnfn convert_half4_rtn(ushort4);
6161half4 __ovld __cnfn convert_half4_rtn(int4);
6162half4 __ovld __cnfn convert_half4_rtn(uint4);
6163half4 __ovld __cnfn convert_half4_rtn(long4);
6164half4 __ovld __cnfn convert_half4_rtn(ulong4);
6165half4 __ovld __cnfn convert_half4_rtn(float4);
6166half4 __ovld __cnfn convert_half4_rtn(half4);
6167half4 __ovld __cnfn convert_half4_rtz(char4);
6168half4 __ovld __cnfn convert_half4_rtz(uchar4);
6169half4 __ovld __cnfn convert_half4_rtz(short4);
6170half4 __ovld __cnfn convert_half4_rtz(ushort4);
6171half4 __ovld __cnfn convert_half4_rtz(int4);
6172half4 __ovld __cnfn convert_half4_rtz(uint4);
6173half4 __ovld __cnfn convert_half4_rtz(long4);
6174half4 __ovld __cnfn convert_half4_rtz(ulong4);
6175half4 __ovld __cnfn convert_half4_rtz(float4);
6176half4 __ovld __cnfn convert_half4_rtz(half4);
6177half8 __ovld __cnfn convert_half8(char8);
6178half8 __ovld __cnfn convert_half8(uchar8);
6179half8 __ovld __cnfn convert_half8(short8);
6180half8 __ovld __cnfn convert_half8(ushort8);
6181half8 __ovld __cnfn convert_half8(int8);
6182half8 __ovld __cnfn convert_half8(uint8);
6183half8 __ovld __cnfn convert_half8(long8);
6184half8 __ovld __cnfn convert_half8(ulong8);
6185half8 __ovld __cnfn convert_half8(float8);
6186half8 __ovld __cnfn convert_half8(half8);
6187half8 __ovld __cnfn convert_half8_rte(char8);
6188half8 __ovld __cnfn convert_half8_rte(uchar8);
6189half8 __ovld __cnfn convert_half8_rte(short8);
6190half8 __ovld __cnfn convert_half8_rte(ushort8);
6191half8 __ovld __cnfn convert_half8_rte(int8);
6192half8 __ovld __cnfn convert_half8_rte(uint8);
6193half8 __ovld __cnfn convert_half8_rte(long8);
6194half8 __ovld __cnfn convert_half8_rte(ulong8);
6195half8 __ovld __cnfn convert_half8_rte(float8);
6196half8 __ovld __cnfn convert_half8_rte(half8);
6197half8 __ovld __cnfn convert_half8_rtp(char8);
6198half8 __ovld __cnfn convert_half8_rtp(uchar8);
6199half8 __ovld __cnfn convert_half8_rtp(short8);
6200half8 __ovld __cnfn convert_half8_rtp(ushort8);
6201half8 __ovld __cnfn convert_half8_rtp(int8);
6202half8 __ovld __cnfn convert_half8_rtp(uint8);
6203half8 __ovld __cnfn convert_half8_rtp(long8);
6204half8 __ovld __cnfn convert_half8_rtp(ulong8);
6205half8 __ovld __cnfn convert_half8_rtp(float8);
6206half8 __ovld __cnfn convert_half8_rtp(half8);
6207half8 __ovld __cnfn convert_half8_rtn(char8);
6208half8 __ovld __cnfn convert_half8_rtn(uchar8);
6209half8 __ovld __cnfn convert_half8_rtn(short8);
6210half8 __ovld __cnfn convert_half8_rtn(ushort8);
6211half8 __ovld __cnfn convert_half8_rtn(int8);
6212half8 __ovld __cnfn convert_half8_rtn(uint8);
6213half8 __ovld __cnfn convert_half8_rtn(long8);
6214half8 __ovld __cnfn convert_half8_rtn(ulong8);
6215half8 __ovld __cnfn convert_half8_rtn(float8);
6216half8 __ovld __cnfn convert_half8_rtn(half8);
6217half8 __ovld __cnfn convert_half8_rtz(char8);
6218half8 __ovld __cnfn convert_half8_rtz(uchar8);
6219half8 __ovld __cnfn convert_half8_rtz(short8);
6220half8 __ovld __cnfn convert_half8_rtz(ushort8);
6221half8 __ovld __cnfn convert_half8_rtz(int8);
6222half8 __ovld __cnfn convert_half8_rtz(uint8);
6223half8 __ovld __cnfn convert_half8_rtz(long8);
6224half8 __ovld __cnfn convert_half8_rtz(ulong8);
6225half8 __ovld __cnfn convert_half8_rtz(float8);
6226half8 __ovld __cnfn convert_half8_rtz(half8);
6227half16 __ovld __cnfn convert_half16(char16);
6228half16 __ovld __cnfn convert_half16(uchar16);
6229half16 __ovld __cnfn convert_half16(short16);
6230half16 __ovld __cnfn convert_half16(ushort16);
6231half16 __ovld __cnfn convert_half16(int16);
6232half16 __ovld __cnfn convert_half16(uint16);
6233half16 __ovld __cnfn convert_half16(long16);
6234half16 __ovld __cnfn convert_half16(ulong16);
6235half16 __ovld __cnfn convert_half16(float16);
6236half16 __ovld __cnfn convert_half16(half16);
6237half16 __ovld __cnfn convert_half16_rte(char16);
6238half16 __ovld __cnfn convert_half16_rte(uchar16);
6239half16 __ovld __cnfn convert_half16_rte(short16);
6240half16 __ovld __cnfn convert_half16_rte(ushort16);
6241half16 __ovld __cnfn convert_half16_rte(int16);
6242half16 __ovld __cnfn convert_half16_rte(uint16);
6243half16 __ovld __cnfn convert_half16_rte(long16);
6244half16 __ovld __cnfn convert_half16_rte(ulong16);
6245half16 __ovld __cnfn convert_half16_rte(float16);
6246half16 __ovld __cnfn convert_half16_rte(half16);
6247half16 __ovld __cnfn convert_half16_rtp(char16);
6248half16 __ovld __cnfn convert_half16_rtp(uchar16);
6249half16 __ovld __cnfn convert_half16_rtp(short16);
6250half16 __ovld __cnfn convert_half16_rtp(ushort16);
6251half16 __ovld __cnfn convert_half16_rtp(int16);
6252half16 __ovld __cnfn convert_half16_rtp(uint16);
6253half16 __ovld __cnfn convert_half16_rtp(long16);
6254half16 __ovld __cnfn convert_half16_rtp(ulong16);
6255half16 __ovld __cnfn convert_half16_rtp(float16);
6256half16 __ovld __cnfn convert_half16_rtp(half16);
6257half16 __ovld __cnfn convert_half16_rtn(char16);
6258half16 __ovld __cnfn convert_half16_rtn(uchar16);
6259half16 __ovld __cnfn convert_half16_rtn(short16);
6260half16 __ovld __cnfn convert_half16_rtn(ushort16);
6261half16 __ovld __cnfn convert_half16_rtn(int16);
6262half16 __ovld __cnfn convert_half16_rtn(uint16);
6263half16 __ovld __cnfn convert_half16_rtn(long16);
6264half16 __ovld __cnfn convert_half16_rtn(ulong16);
6265half16 __ovld __cnfn convert_half16_rtn(float16);
6266half16 __ovld __cnfn convert_half16_rtn(half16);
6267half16 __ovld __cnfn convert_half16_rtz(char16);
6268half16 __ovld __cnfn convert_half16_rtz(uchar16);
6269half16 __ovld __cnfn convert_half16_rtz(short16);
6270half16 __ovld __cnfn convert_half16_rtz(ushort16);
6271half16 __ovld __cnfn convert_half16_rtz(int16);
6272half16 __ovld __cnfn convert_half16_rtz(uint16);
6273half16 __ovld __cnfn convert_half16_rtz(long16);
6274half16 __ovld __cnfn convert_half16_rtz(ulong16);
6275half16 __ovld __cnfn convert_half16_rtz(float16);
6276half16 __ovld __cnfn convert_half16_rtz(half16);
6277
6278// Convert half types to double types.
6279#ifdef cl_khr_fp64
6280double __ovld __cnfn convert_double(half);
6281double __ovld __cnfn convert_double_rte(half);
6282double __ovld __cnfn convert_double_rtp(half);
6283double __ovld __cnfn convert_double_rtn(half);
6284double __ovld __cnfn convert_double_rtz(half);
6285double2 __ovld __cnfn convert_double2(half2);
6286double2 __ovld __cnfn convert_double2_rte(half2);
6287double2 __ovld __cnfn convert_double2_rtp(half2);
6288double2 __ovld __cnfn convert_double2_rtn(half2);
6289double2 __ovld __cnfn convert_double2_rtz(half2);
6290double3 __ovld __cnfn convert_double3(half3);
6291double3 __ovld __cnfn convert_double3_rte(half3);
6292double3 __ovld __cnfn convert_double3_rtp(half3);
6293double3 __ovld __cnfn convert_double3_rtn(half3);
6294double3 __ovld __cnfn convert_double3_rtz(half3);
6295double4 __ovld __cnfn convert_double4(half4);
6296double4 __ovld __cnfn convert_double4_rte(half4);
6297double4 __ovld __cnfn convert_double4_rtp(half4);
6298double4 __ovld __cnfn convert_double4_rtn(half4);
6299double4 __ovld __cnfn convert_double4_rtz(half4);
6300double8 __ovld __cnfn convert_double8(half8);
6301double8 __ovld __cnfn convert_double8_rte(half8);
6302double8 __ovld __cnfn convert_double8_rtp(half8);
6303double8 __ovld __cnfn convert_double8_rtn(half8);
6304double8 __ovld __cnfn convert_double8_rtz(half8);
6305double16 __ovld __cnfn convert_double16(half16);
6306double16 __ovld __cnfn convert_double16_rte(half16);
6307double16 __ovld __cnfn convert_double16_rtp(half16);
6308double16 __ovld __cnfn convert_double16_rtn(half16);
6309double16 __ovld __cnfn convert_double16_rtz(half16);
6310
6311// Convert double types to half types.
6312half __ovld __cnfn convert_half(double);
6313half __ovld __cnfn convert_half_rte(double);
6314half __ovld __cnfn convert_half_rtp(double);
6315half __ovld __cnfn convert_half_rtn(double);
6316half __ovld __cnfn convert_half_rtz(double);
6317half2 __ovld __cnfn convert_half2(double2);
6318half2 __ovld __cnfn convert_half2_rte(double2);
6319half2 __ovld __cnfn convert_half2_rtp(double2);
6320half2 __ovld __cnfn convert_half2_rtn(double2);
6321half2 __ovld __cnfn convert_half2_rtz(double2);
6322half3 __ovld __cnfn convert_half3(double3);
6323half3 __ovld __cnfn convert_half3_rte(double3);
6324half3 __ovld __cnfn convert_half3_rtp(double3);
6325half3 __ovld __cnfn convert_half3_rtn(double3);
6326half3 __ovld __cnfn convert_half3_rtz(double3);
6327half4 __ovld __cnfn convert_half4(double4);
6328half4 __ovld __cnfn convert_half4_rte(double4);
6329half4 __ovld __cnfn convert_half4_rtp(double4);
6330half4 __ovld __cnfn convert_half4_rtn(double4);
6331half4 __ovld __cnfn convert_half4_rtz(double4);
6332half8 __ovld __cnfn convert_half8(double8);
6333half8 __ovld __cnfn convert_half8_rte(double8);
6334half8 __ovld __cnfn convert_half8_rtp(double8);
6335half8 __ovld __cnfn convert_half8_rtn(double8);
6336half8 __ovld __cnfn convert_half8_rtz(double8);
6337half16 __ovld __cnfn convert_half16(double16);
6338half16 __ovld __cnfn convert_half16_rte(double16);
6339half16 __ovld __cnfn convert_half16_rtp(double16);
6340half16 __ovld __cnfn convert_half16_rtn(double16);
6341half16 __ovld __cnfn convert_half16_rtz(double16);
6342#endif //cl_khr_fp64
6343
6344#endif // cl_khr_fp16
6345
6346// OpenCL v1.1 s6.11.1, v1.2 s6.12.1, v2.0 s6.13.1 - Work-item Functions
6347
6348/**
6349 * Returns the number of dimensions in use. This is the
6350 * value given to the work_dim argument specified in
6351 * clEnqueueNDRangeKernel.
6352 * For clEnqueueTask, this returns 1.
6353 */
6355
6356/**
6357 * Returns the number of global work-items specified for
6358 * dimension identified by dimindx. This value is given by
6359 * the global_work_size argument to
6360 * clEnqueueNDRangeKernel. Valid values of dimindx
6361 * are 0 to get_work_dim() - 1. For other values of
6362 * dimindx, get_global_size() returns 1.
6363 * For clEnqueueTask, this always returns 1.
6364 */
6366
6367/**
6368 * Returns the unique global work-item ID value for
6369 * dimension identified by dimindx. The global work-item
6370 * ID specifies the work-item ID based on the number of
6371 * global work-items specified to execute the kernel. Valid
6372 * values of dimindx are 0 to get_work_dim() - 1. For
6373 * other values of dimindx, get_global_id() returns 0.
6374 * For clEnqueueTask, this returns 0.
6375 */
6377
6378/**
6379 * Returns the number of local work-items specified in
6380 * dimension identified by dimindx. This value is given by
6381 * the local_work_size argument to
6382 * clEnqueueNDRangeKernel if local_work_size is not
6383 * NULL; otherwise the OpenCL implementation chooses
6384 * an appropriate local_work_size value which is returned
6385 * by this function. Valid values of dimindx are 0 to
6386 * get_work_dim() - 1. For other values of dimindx,
6387 * get_local_size() returns 1.
6388 * For clEnqueueTask, this always returns 1.
6389 */
6391
6392/**
6393 * Returns the unique local work-item ID i.e. a work-item
6394 * within a specific work-group for dimension identified by
6395 * dimindx. Valid values of dimindx are 0 to
6396 * get_work_dim() - 1. For other values of dimindx,
6397 * get_local_id() returns 0.
6398 * For clEnqueueTask, this returns 0.
6399 */
6401
6402/**
6403 * Returns the number of work-groups that will execute a
6404 * kernel for dimension identified by dimindx.
6405 * Valid values of dimindx are 0 to get_work_dim() - 1.
6406 * For other values of dimindx, get_num_groups() returns 1.
6407 * For clEnqueueTask, this always returns 1.
6408 */
6410
6411/**
6412 * get_group_id returns the work-group ID which is a
6413 * number from 0 .. get_num_groups(dimindx) - 1.
6414 * Valid values of dimindx are 0 to get_work_dim() - 1.
6415 * For other values, get_group_id() returns 0.
6416 * For clEnqueueTask, this returns 0.
6417 */
6419
6420/**
6421 * get_global_offset returns the offset values specified in
6422 * global_work_offset argument to
6423 * clEnqueueNDRangeKernel.
6424 * Valid values of dimindx are 0 to get_work_dim() - 1.
6425 * For other values, get_global_offset() returns 0.
6426 * For clEnqueueTask, this returns 0.
6427 */
6429
6430#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
6434#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
6435
6436// OpenCL v1.1 s6.11.2, v1.2 s6.12.2, v2.0 s6.13.2 - Math functions
6437
6438/**
6439 * Arc cosine function.
6440 */
6441float __ovld __cnfn acos(float);
6442float2 __ovld __cnfn acos(float2);
6443float3 __ovld __cnfn acos(float3);
6444float4 __ovld __cnfn acos(float4);
6445float8 __ovld __cnfn acos(float8);
6446float16 __ovld __cnfn acos(float16);
6447#ifdef cl_khr_fp64
6448double __ovld __cnfn acos(double);
6449double2 __ovld __cnfn acos(double2);
6450double3 __ovld __cnfn acos(double3);
6451double4 __ovld __cnfn acos(double4);
6452double8 __ovld __cnfn acos(double8);
6453double16 __ovld __cnfn acos(double16);
6454#endif //cl_khr_fp64
6455#ifdef cl_khr_fp16
6456half __ovld __cnfn acos(half);
6457half2 __ovld __cnfn acos(half2);
6458half3 __ovld __cnfn acos(half3);
6459half4 __ovld __cnfn acos(half4);
6460half8 __ovld __cnfn acos(half8);
6461half16 __ovld __cnfn acos(half16);
6462#endif //cl_khr_fp16
6463
6464/**
6465 * Inverse hyperbolic cosine.
6466 */
6467float __ovld __cnfn acosh(float);
6468float2 __ovld __cnfn acosh(float2);
6469float3 __ovld __cnfn acosh(float3);
6470float4 __ovld __cnfn acosh(float4);
6471float8 __ovld __cnfn acosh(float8);
6472float16 __ovld __cnfn acosh(float16);
6473#ifdef cl_khr_fp64
6474double __ovld __cnfn acosh(double);
6475double2 __ovld __cnfn acosh(double2);
6476double3 __ovld __cnfn acosh(double3);
6477double4 __ovld __cnfn acosh(double4);
6478double8 __ovld __cnfn acosh(double8);
6479double16 __ovld __cnfn acosh(double16);
6480#endif //cl_khr_fp64
6481#ifdef cl_khr_fp16
6482half __ovld __cnfn acosh(half);
6483half2 __ovld __cnfn acosh(half2);
6484half3 __ovld __cnfn acosh(half3);
6485half4 __ovld __cnfn acosh(half4);
6486half8 __ovld __cnfn acosh(half8);
6487half16 __ovld __cnfn acosh(half16);
6488#endif //cl_khr_fp16
6489
6490/**
6491 * Compute acos (x) / PI.
6492 */
6493float __ovld __cnfn acospi(float);
6494float2 __ovld __cnfn acospi(float2);
6495float3 __ovld __cnfn acospi(float3);
6496float4 __ovld __cnfn acospi(float4);
6497float8 __ovld __cnfn acospi(float8);
6498float16 __ovld __cnfn acospi(float16);
6499#ifdef cl_khr_fp64
6500double __ovld __cnfn acospi(double);
6501double2 __ovld __cnfn acospi(double2);
6502double3 __ovld __cnfn acospi(double3);
6503double4 __ovld __cnfn acospi(double4);
6504double8 __ovld __cnfn acospi(double8);
6505double16 __ovld __cnfn acospi(double16);
6506#endif //cl_khr_fp64
6507#ifdef cl_khr_fp16
6508half __ovld __cnfn acospi(half);
6509half2 __ovld __cnfn acospi(half2);
6510half3 __ovld __cnfn acospi(half3);
6511half4 __ovld __cnfn acospi(half4);
6512half8 __ovld __cnfn acospi(half8);
6513half16 __ovld __cnfn acospi(half16);
6514#endif //cl_khr_fp16
6515
6516/**
6517 * Arc sine function.
6518 */
6519float __ovld __cnfn asin(float);
6520float2 __ovld __cnfn asin(float2);
6521float3 __ovld __cnfn asin(float3);
6522float4 __ovld __cnfn asin(float4);
6523float8 __ovld __cnfn asin(float8);
6524float16 __ovld __cnfn asin(float16);
6525#ifdef cl_khr_fp64
6526double __ovld __cnfn asin(double);
6527double2 __ovld __cnfn asin(double2);
6528double3 __ovld __cnfn asin(double3);
6529double4 __ovld __cnfn asin(double4);
6530double8 __ovld __cnfn asin(double8);
6531double16 __ovld __cnfn asin(double16);
6532#endif //cl_khr_fp64
6533#ifdef cl_khr_fp16
6534half __ovld __cnfn asin(half);
6535half2 __ovld __cnfn asin(half2);
6536half3 __ovld __cnfn asin(half3);
6537half4 __ovld __cnfn asin(half4);
6538half8 __ovld __cnfn asin(half8);
6539half16 __ovld __cnfn asin(half16);
6540#endif //cl_khr_fp16
6541
6542/**
6543 * Inverse hyperbolic sine.
6544 */
6545float __ovld __cnfn asinh(float);
6546float2 __ovld __cnfn asinh(float2);
6547float3 __ovld __cnfn asinh(float3);
6548float4 __ovld __cnfn asinh(float4);
6549float8 __ovld __cnfn asinh(float8);
6550float16 __ovld __cnfn asinh(float16);
6551#ifdef cl_khr_fp64
6552double __ovld __cnfn asinh(double);
6553double2 __ovld __cnfn asinh(double2);
6554double3 __ovld __cnfn asinh(double3);
6555double4 __ovld __cnfn asinh(double4);
6556double8 __ovld __cnfn asinh(double8);
6557double16 __ovld __cnfn asinh(double16);
6558#endif //cl_khr_fp64
6559#ifdef cl_khr_fp16
6560half __ovld __cnfn asinh(half);
6561half2 __ovld __cnfn asinh(half2);
6562half3 __ovld __cnfn asinh(half3);
6563half4 __ovld __cnfn asinh(half4);
6564half8 __ovld __cnfn asinh(half8);
6565half16 __ovld __cnfn asinh(half16);
6566#endif //cl_khr_fp16
6567
6568/**
6569 * Compute asin (x) / PI.
6570 */
6571float __ovld __cnfn asinpi(float);
6572float2 __ovld __cnfn asinpi(float2);
6573float3 __ovld __cnfn asinpi(float3);
6574float4 __ovld __cnfn asinpi(float4);
6575float8 __ovld __cnfn asinpi(float8);
6576float16 __ovld __cnfn asinpi(float16);
6577#ifdef cl_khr_fp64
6578double __ovld __cnfn asinpi(double);
6579double2 __ovld __cnfn asinpi(double2);
6580double3 __ovld __cnfn asinpi(double3);
6581double4 __ovld __cnfn asinpi(double4);
6582double8 __ovld __cnfn asinpi(double8);
6583double16 __ovld __cnfn asinpi(double16);
6584#endif //cl_khr_fp64
6585#ifdef cl_khr_fp16
6586half __ovld __cnfn asinpi(half);
6587half2 __ovld __cnfn asinpi(half2);
6588half3 __ovld __cnfn asinpi(half3);
6589half4 __ovld __cnfn asinpi(half4);
6590half8 __ovld __cnfn asinpi(half8);
6591half16 __ovld __cnfn asinpi(half16);
6592#endif //cl_khr_fp16
6593
6594/**
6595 * Arc tangent function.
6596 */
6597float __ovld __cnfn atan(float);
6598float2 __ovld __cnfn atan(float2);
6599float3 __ovld __cnfn atan(float3);
6600float4 __ovld __cnfn atan(float4);
6601float8 __ovld __cnfn atan(float8);
6602float16 __ovld __cnfn atan(float16);
6603#ifdef cl_khr_fp64
6604double __ovld __cnfn atan(double);
6605double2 __ovld __cnfn atan(double2);
6606double3 __ovld __cnfn atan(double3);
6607double4 __ovld __cnfn atan(double4);
6608double8 __ovld __cnfn atan(double8);
6609double16 __ovld __cnfn atan(double16);
6610#endif //cl_khr_fp64
6611#ifdef cl_khr_fp16
6612half __ovld __cnfn atan(half);
6613half2 __ovld __cnfn atan(half2);
6614half3 __ovld __cnfn atan(half3);
6615half4 __ovld __cnfn atan(half4);
6616half8 __ovld __cnfn atan(half8);
6617half16 __ovld __cnfn atan(half16);
6618#endif //cl_khr_fp16
6619
6620/**
6621 * Arc tangent of y / x.
6622 */
6623float __ovld __cnfn atan2(float, float);
6624float2 __ovld __cnfn atan2(float2, float2);
6625float3 __ovld __cnfn atan2(float3, float3);
6626float4 __ovld __cnfn atan2(float4, float4);
6627float8 __ovld __cnfn atan2(float8, float8);
6628float16 __ovld __cnfn atan2(float16, float16);
6629#ifdef cl_khr_fp64
6630double __ovld __cnfn atan2(double, double);
6631double2 __ovld __cnfn atan2(double2, double2);
6632double3 __ovld __cnfn atan2(double3, double3);
6633double4 __ovld __cnfn atan2(double4, double4);
6634double8 __ovld __cnfn atan2(double8, double8);
6635double16 __ovld __cnfn atan2(double16, double16);
6636#endif //cl_khr_fp64
6637#ifdef cl_khr_fp16
6638half __ovld __cnfn atan2(half, half);
6639half2 __ovld __cnfn atan2(half2, half2);
6640half3 __ovld __cnfn atan2(half3, half3);
6641half4 __ovld __cnfn atan2(half4, half4);
6642half8 __ovld __cnfn atan2(half8, half8);
6643half16 __ovld __cnfn atan2(half16, half16);
6644#endif //cl_khr_fp16
6645
6646/**
6647 * Hyperbolic arc tangent.
6648 */
6649float __ovld __cnfn atanh(float);
6650float2 __ovld __cnfn atanh(float2);
6651float3 __ovld __cnfn atanh(float3);
6652float4 __ovld __cnfn atanh(float4);
6653float8 __ovld __cnfn atanh(float8);
6654float16 __ovld __cnfn atanh(float16);
6655#ifdef cl_khr_fp64
6656double __ovld __cnfn atanh(double);
6657double2 __ovld __cnfn atanh(double2);
6658double3 __ovld __cnfn atanh(double3);
6659double4 __ovld __cnfn atanh(double4);
6660double8 __ovld __cnfn atanh(double8);
6661double16 __ovld __cnfn atanh(double16);
6662#endif //cl_khr_fp64
6663#ifdef cl_khr_fp16
6664half __ovld __cnfn atanh(half);
6665half2 __ovld __cnfn atanh(half2);
6666half3 __ovld __cnfn atanh(half3);
6667half4 __ovld __cnfn atanh(half4);
6668half8 __ovld __cnfn atanh(half8);
6669half16 __ovld __cnfn atanh(half16);
6670#endif //cl_khr_fp16
6671
6672/**
6673 * Compute atan (x) / PI.
6674 */
6675float __ovld __cnfn atanpi(float);
6676float2 __ovld __cnfn atanpi(float2);
6677float3 __ovld __cnfn atanpi(float3);
6678float4 __ovld __cnfn atanpi(float4);
6679float8 __ovld __cnfn atanpi(float8);
6680float16 __ovld __cnfn atanpi(float16);
6681#ifdef cl_khr_fp64
6682double __ovld __cnfn atanpi(double);
6683double2 __ovld __cnfn atanpi(double2);
6684double3 __ovld __cnfn atanpi(double3);
6685double4 __ovld __cnfn atanpi(double4);
6686double8 __ovld __cnfn atanpi(double8);
6687double16 __ovld __cnfn atanpi(double16);
6688#endif //cl_khr_fp64
6689#ifdef cl_khr_fp16
6690half __ovld __cnfn atanpi(half);
6691half2 __ovld __cnfn atanpi(half2);
6692half3 __ovld __cnfn atanpi(half3);
6693half4 __ovld __cnfn atanpi(half4);
6694half8 __ovld __cnfn atanpi(half8);
6695half16 __ovld __cnfn atanpi(half16);
6696#endif //cl_khr_fp16
6697
6698/**
6699 * Compute atan2 (y, x) / PI.
6700 */
6701float __ovld __cnfn atan2pi(float, float);
6702float2 __ovld __cnfn atan2pi(float2, float2);
6703float3 __ovld __cnfn atan2pi(float3, float3);
6704float4 __ovld __cnfn atan2pi(float4, float4);
6705float8 __ovld __cnfn atan2pi(float8, float8);
6706float16 __ovld __cnfn atan2pi(float16, float16);
6707#ifdef cl_khr_fp64
6708double __ovld __cnfn atan2pi(double, double);
6709double2 __ovld __cnfn atan2pi(double2, double2);
6710double3 __ovld __cnfn atan2pi(double3, double3);
6711double4 __ovld __cnfn atan2pi(double4, double4);
6712double8 __ovld __cnfn atan2pi(double8, double8);
6713double16 __ovld __cnfn atan2pi(double16, double16);
6714#endif //cl_khr_fp64
6715#ifdef cl_khr_fp16
6716half __ovld __cnfn atan2pi(half, half);
6717half2 __ovld __cnfn atan2pi(half2, half2);
6718half3 __ovld __cnfn atan2pi(half3, half3);
6719half4 __ovld __cnfn atan2pi(half4, half4);
6720half8 __ovld __cnfn atan2pi(half8, half8);
6721half16 __ovld __cnfn atan2pi(half16, half16);
6722#endif //cl_khr_fp16
6723
6724/**
6725 * Compute cube-root.
6726 */
6727float __ovld __cnfn cbrt(float);
6728float2 __ovld __cnfn cbrt(float2);
6729float3 __ovld __cnfn cbrt(float3);
6730float4 __ovld __cnfn cbrt(float4);
6731float8 __ovld __cnfn cbrt(float8);
6732float16 __ovld __cnfn cbrt(float16);
6733#ifdef cl_khr_fp64
6734double __ovld __cnfn cbrt(double);
6735double2 __ovld __cnfn cbrt(double2);
6736double3 __ovld __cnfn cbrt(double3);
6737double4 __ovld __cnfn cbrt(double4);
6738double8 __ovld __cnfn cbrt(double8);
6739double16 __ovld __cnfn cbrt(double16);
6740#endif //cl_khr_fp64
6741#ifdef cl_khr_fp16
6742half __ovld __cnfn cbrt(half);
6743half2 __ovld __cnfn cbrt(half2);
6744half3 __ovld __cnfn cbrt(half3);
6745half4 __ovld __cnfn cbrt(half4);
6746half8 __ovld __cnfn cbrt(half8);
6747half16 __ovld __cnfn cbrt(half16);
6748#endif //cl_khr_fp16
6749
6750/**
6751 * Round to integral value using the round to positive
6752 * infinity rounding mode.
6753 */
6754float __ovld __cnfn ceil(float);
6755float2 __ovld __cnfn ceil(float2);
6756float3 __ovld __cnfn ceil(float3);
6757float4 __ovld __cnfn ceil(float4);
6758float8 __ovld __cnfn ceil(float8);
6759float16 __ovld __cnfn ceil(float16);
6760#ifdef cl_khr_fp64
6761double __ovld __cnfn ceil(double);
6762double2 __ovld __cnfn ceil(double2);
6763double3 __ovld __cnfn ceil(double3);
6764double4 __ovld __cnfn ceil(double4);
6765double8 __ovld __cnfn ceil(double8);
6766double16 __ovld __cnfn ceil(double16);
6767#endif //cl_khr_fp64
6768#ifdef cl_khr_fp16
6769half __ovld __cnfn ceil(half);
6770half2 __ovld __cnfn ceil(half2);
6771half3 __ovld __cnfn ceil(half3);
6772half4 __ovld __cnfn ceil(half4);
6773half8 __ovld __cnfn ceil(half8);
6774half16 __ovld __cnfn ceil(half16);
6775#endif //cl_khr_fp16
6776
6777/**
6778 * Returns x with its sign changed to match the sign of y.
6779 */
6780float __ovld __cnfn copysign(float, float);
6781float2 __ovld __cnfn copysign(float2, float2);
6782float3 __ovld __cnfn copysign(float3, float3);
6783float4 __ovld __cnfn copysign(float4, float4);
6784float8 __ovld __cnfn copysign(float8, float8);
6785float16 __ovld __cnfn copysign(float16, float16);
6786#ifdef cl_khr_fp64
6787double __ovld __cnfn copysign(double, double);
6788double2 __ovld __cnfn copysign(double2, double2);
6789double3 __ovld __cnfn copysign(double3, double3);
6790double4 __ovld __cnfn copysign(double4, double4);
6791double8 __ovld __cnfn copysign(double8, double8);
6792double16 __ovld __cnfn copysign(double16, double16);
6793#endif //cl_khr_fp64
6794#ifdef cl_khr_fp16
6795half __ovld __cnfn copysign(half, half);
6796half2 __ovld __cnfn copysign(half2, half2);
6797half3 __ovld __cnfn copysign(half3, half3);
6798half4 __ovld __cnfn copysign(half4, half4);
6799half8 __ovld __cnfn copysign(half8, half8);
6800half16 __ovld __cnfn copysign(half16, half16);
6801#endif //cl_khr_fp16
6802
6803/**
6804 * Compute cosine.
6805 */
6806float __ovld __cnfn cos(float);
6807float2 __ovld __cnfn cos(float2);
6808float3 __ovld __cnfn cos(float3);
6809float4 __ovld __cnfn cos(float4);
6810float8 __ovld __cnfn cos(float8);
6811float16 __ovld __cnfn cos(float16);
6812#ifdef cl_khr_fp64
6813double __ovld __cnfn cos(double);
6814double2 __ovld __cnfn cos(double2);
6815double3 __ovld __cnfn cos(double3);
6816double4 __ovld __cnfn cos(double4);
6817double8 __ovld __cnfn cos(double8);
6818double16 __ovld __cnfn cos(double16);
6819#endif //cl_khr_fp64
6820#ifdef cl_khr_fp16
6821half __ovld __cnfn cos(half);
6822half2 __ovld __cnfn cos(half2);
6823half3 __ovld __cnfn cos(half3);
6824half4 __ovld __cnfn cos(half4);
6825half8 __ovld __cnfn cos(half8);
6826half16 __ovld __cnfn cos(half16);
6827#endif //cl_khr_fp16
6828
6829/**
6830 * Compute hyperbolic cosine.
6831 */
6832float __ovld __cnfn cosh(float);
6833float2 __ovld __cnfn cosh(float2);
6834float3 __ovld __cnfn cosh(float3);
6835float4 __ovld __cnfn cosh(float4);
6836float8 __ovld __cnfn cosh(float8);
6837float16 __ovld __cnfn cosh(float16);
6838#ifdef cl_khr_fp64
6839double __ovld __cnfn cosh(double);
6840double2 __ovld __cnfn cosh(double2);
6841double3 __ovld __cnfn cosh(double3);
6842double4 __ovld __cnfn cosh(double4);
6843double8 __ovld __cnfn cosh(double8);
6844double16 __ovld __cnfn cosh(double16);
6845#endif //cl_khr_fp64
6846#ifdef cl_khr_fp16
6847half __ovld __cnfn cosh(half);
6848half2 __ovld __cnfn cosh(half2);
6849half3 __ovld __cnfn cosh(half3);
6850half4 __ovld __cnfn cosh(half4);
6851half8 __ovld __cnfn cosh(half8);
6852half16 __ovld __cnfn cosh(half16);
6853#endif //cl_khr_fp16
6854
6855/**
6856 * Compute cos (PI * x).
6857 */
6858float __ovld __cnfn cospi(float);
6859float2 __ovld __cnfn cospi(float2);
6860float3 __ovld __cnfn cospi(float3);
6861float4 __ovld __cnfn cospi(float4);
6862float8 __ovld __cnfn cospi(float8);
6863float16 __ovld __cnfn cospi(float16);
6864#ifdef cl_khr_fp64
6865double __ovld __cnfn cospi(double);
6866double2 __ovld __cnfn cospi(double2);
6867double3 __ovld __cnfn cospi(double3);
6868double4 __ovld __cnfn cospi(double4);
6869double8 __ovld __cnfn cospi(double8);
6870double16 __ovld __cnfn cospi(double16);
6871#endif //cl_khr_fp64
6872#ifdef cl_khr_fp16
6873half __ovld __cnfn cospi(half);
6874half2 __ovld __cnfn cospi(half2);
6875half3 __ovld __cnfn cospi(half3);
6876half4 __ovld __cnfn cospi(half4);
6877half8 __ovld __cnfn cospi(half8);
6878half16 __ovld __cnfn cospi(half16);
6879#endif //cl_khr_fp16
6880
6881/**
6882 * Complementary error function.
6883 */
6884float __ovld __cnfn erfc(float);
6885float2 __ovld __cnfn erfc(float2);
6886float3 __ovld __cnfn erfc(float3);
6887float4 __ovld __cnfn erfc(float4);
6888float8 __ovld __cnfn erfc(float8);
6889float16 __ovld __cnfn erfc(float16);
6890#ifdef cl_khr_fp64
6891double __ovld __cnfn erfc(double);
6892double2 __ovld __cnfn erfc(double2);
6893double3 __ovld __cnfn erfc(double3);
6894double4 __ovld __cnfn erfc(double4);
6895double8 __ovld __cnfn erfc(double8);
6896double16 __ovld __cnfn erfc(double16);
6897#endif //cl_khr_fp64
6898#ifdef cl_khr_fp16
6899half __ovld __cnfn erfc(half);
6900half2 __ovld __cnfn erfc(half2);
6901half3 __ovld __cnfn erfc(half3);
6902half4 __ovld __cnfn erfc(half4);
6903half8 __ovld __cnfn erfc(half8);
6904half16 __ovld __cnfn erfc(half16);
6905#endif //cl_khr_fp16
6906
6907/**
6908 * Error function encountered in integrating the
6909 * normal distribution.
6910 */
6911float __ovld __cnfn erf(float);
6912float2 __ovld __cnfn erf(float2);
6913float3 __ovld __cnfn erf(float3);
6914float4 __ovld __cnfn erf(float4);
6915float8 __ovld __cnfn erf(float8);
6916float16 __ovld __cnfn erf(float16);
6917#ifdef cl_khr_fp64
6918double __ovld __cnfn erf(double);
6919double2 __ovld __cnfn erf(double2);
6920double3 __ovld __cnfn erf(double3);
6921double4 __ovld __cnfn erf(double4);
6922double8 __ovld __cnfn erf(double8);
6923double16 __ovld __cnfn erf(double16);
6924#endif //cl_khr_fp64
6925#ifdef cl_khr_fp16
6926half __ovld __cnfn erf(half);
6927half2 __ovld __cnfn erf(half2);
6928half3 __ovld __cnfn erf(half3);
6929half4 __ovld __cnfn erf(half4);
6930half8 __ovld __cnfn erf(half8);
6931half16 __ovld __cnfn erf(half16);
6932#endif //cl_khr_fp16
6933
6934/**
6935 * Compute the base e exponential function of x.
6936 */
6937float __ovld __cnfn exp(float);
6938float2 __ovld __cnfn exp(float2);
6939float3 __ovld __cnfn exp(float3);
6940float4 __ovld __cnfn exp(float4);
6941float8 __ovld __cnfn exp(float8);
6942float16 __ovld __cnfn exp(float16);
6943#ifdef cl_khr_fp64
6944double __ovld __cnfn exp(double);
6945double2 __ovld __cnfn exp(double2);
6946double3 __ovld __cnfn exp(double3);
6947double4 __ovld __cnfn exp(double4);
6948double8 __ovld __cnfn exp(double8);
6949double16 __ovld __cnfn exp(double16);
6950#endif //cl_khr_fp64
6951#ifdef cl_khr_fp16
6952half __ovld __cnfn exp(half);
6953half2 __ovld __cnfn exp(half2);
6954half3 __ovld __cnfn exp(half3);
6955half4 __ovld __cnfn exp(half4);
6956half8 __ovld __cnfn exp(half8);
6957half16 __ovld __cnfn exp(half16);
6958#endif //cl_khr_fp16
6959
6960/**
6961 * Exponential base 2 function.
6962 */
6963float __ovld __cnfn exp2(float);
6964float2 __ovld __cnfn exp2(float2);
6965float3 __ovld __cnfn exp2(float3);
6966float4 __ovld __cnfn exp2(float4);
6967float8 __ovld __cnfn exp2(float8);
6968float16 __ovld __cnfn exp2(float16);
6969#ifdef cl_khr_fp64
6970double __ovld __cnfn exp2(double);
6971double2 __ovld __cnfn exp2(double2);
6972double3 __ovld __cnfn exp2(double3);
6973double4 __ovld __cnfn exp2(double4);
6974double8 __ovld __cnfn exp2(double8);
6975double16 __ovld __cnfn exp2(double16);
6976#endif //cl_khr_fp64
6977#ifdef cl_khr_fp16
6978half __ovld __cnfn exp2(half);
6979half2 __ovld __cnfn exp2(half2);
6980half3 __ovld __cnfn exp2(half3);
6981half4 __ovld __cnfn exp2(half4);
6982half8 __ovld __cnfn exp2(half8);
6983half16 __ovld __cnfn exp2(half16);
6984#endif //cl_khr_fp16
6985
6986/**
6987 * Exponential base 10 function.
6988 */
6989float __ovld __cnfn exp10(float);
6990float2 __ovld __cnfn exp10(float2);
6991float3 __ovld __cnfn exp10(float3);
6992float4 __ovld __cnfn exp10(float4);
6993float8 __ovld __cnfn exp10(float8);
6994float16 __ovld __cnfn exp10(float16);
6995#ifdef cl_khr_fp64
6996double __ovld __cnfn exp10(double);
6997double2 __ovld __cnfn exp10(double2);
6998double3 __ovld __cnfn exp10(double3);
6999double4 __ovld __cnfn exp10(double4);
7000double8 __ovld __cnfn exp10(double8);
7001double16 __ovld __cnfn exp10(double16);
7002#endif //cl_khr_fp64
7003#ifdef cl_khr_fp16
7004half __ovld __cnfn exp10(half);
7005half2 __ovld __cnfn exp10(half2);
7006half3 __ovld __cnfn exp10(half3);
7007half4 __ovld __cnfn exp10(half4);
7008half8 __ovld __cnfn exp10(half8);
7009half16 __ovld __cnfn exp10(half16);
7010#endif //cl_khr_fp16
7011
7012/**
7013 * Compute e^x- 1.0.
7014 */
7015float __ovld __cnfn expm1(float);
7016float2 __ovld __cnfn expm1(float2);
7017float3 __ovld __cnfn expm1(float3);
7018float4 __ovld __cnfn expm1(float4);
7019float8 __ovld __cnfn expm1(float8);
7020float16 __ovld __cnfn expm1(float16);
7021#ifdef cl_khr_fp64
7022double __ovld __cnfn expm1(double);
7023double2 __ovld __cnfn expm1(double2);
7024double3 __ovld __cnfn expm1(double3);
7025double4 __ovld __cnfn expm1(double4);
7026double8 __ovld __cnfn expm1(double8);
7027double16 __ovld __cnfn expm1(double16);
7028#endif //cl_khr_fp64
7029#ifdef cl_khr_fp16
7030half __ovld __cnfn expm1(half);
7031half2 __ovld __cnfn expm1(half2);
7032half3 __ovld __cnfn expm1(half3);
7033half4 __ovld __cnfn expm1(half4);
7034half8 __ovld __cnfn expm1(half8);
7035half16 __ovld __cnfn expm1(half16);
7036#endif //cl_khr_fp16
7037
7038/**
7039 * Compute absolute value of a floating-point number.
7040 */
7041float __ovld __cnfn fabs(float);
7042float2 __ovld __cnfn fabs(float2);
7043float3 __ovld __cnfn fabs(float3);
7044float4 __ovld __cnfn fabs(float4);
7045float8 __ovld __cnfn fabs(float8);
7046float16 __ovld __cnfn fabs(float16);
7047#ifdef cl_khr_fp64
7048double __ovld __cnfn fabs(double);
7049double2 __ovld __cnfn fabs(double2);
7050double3 __ovld __cnfn fabs(double3);
7051double4 __ovld __cnfn fabs(double4);
7052double8 __ovld __cnfn fabs(double8);
7053double16 __ovld __cnfn fabs(double16);
7054#endif //cl_khr_fp64
7055#ifdef cl_khr_fp16
7056half __ovld __cnfn fabs(half);
7057half2 __ovld __cnfn fabs(half2);
7058half3 __ovld __cnfn fabs(half3);
7059half4 __ovld __cnfn fabs(half4);
7060half8 __ovld __cnfn fabs(half8);
7061half16 __ovld __cnfn fabs(half16);
7062#endif //cl_khr_fp16
7063
7064/**
7065 * x - y if x > y, +0 if x is less than or equal to y.
7066 */
7067float __ovld __cnfn fdim(float, float);
7068float2 __ovld __cnfn fdim(float2, float2);
7069float3 __ovld __cnfn fdim(float3, float3);
7070float4 __ovld __cnfn fdim(float4, float4);
7071float8 __ovld __cnfn fdim(float8, float8);
7072float16 __ovld __cnfn fdim(float16, float16);
7073#ifdef cl_khr_fp64
7074double __ovld __cnfn fdim(double, double);
7075double2 __ovld __cnfn fdim(double2, double2);
7076double3 __ovld __cnfn fdim(double3, double3);
7077double4 __ovld __cnfn fdim(double4, double4);
7078double8 __ovld __cnfn fdim(double8, double8);
7079double16 __ovld __cnfn fdim(double16, double16);
7080#endif //cl_khr_fp64
7081#ifdef cl_khr_fp16
7082half __ovld __cnfn fdim(half, half);
7083half2 __ovld __cnfn fdim(half2, half2);
7084half3 __ovld __cnfn fdim(half3, half3);
7085half4 __ovld __cnfn fdim(half4, half4);
7086half8 __ovld __cnfn fdim(half8, half8);
7087half16 __ovld __cnfn fdim(half16, half16);
7088#endif //cl_khr_fp16
7089
7090/**
7091 * Round to integral value using the round to -ve
7092 * infinity rounding mode.
7093 */
7094float __ovld __cnfn floor(float);
7095float2 __ovld __cnfn floor(float2);
7096float3 __ovld __cnfn floor(float3);
7097float4 __ovld __cnfn floor(float4);
7098float8 __ovld __cnfn floor(float8);
7099float16 __ovld __cnfn floor(float16);
7100#ifdef cl_khr_fp64
7101double __ovld __cnfn floor(double);
7102double2 __ovld __cnfn floor(double2);
7103double3 __ovld __cnfn floor(double3);
7104double4 __ovld __cnfn floor(double4);
7105double8 __ovld __cnfn floor(double8);
7106double16 __ovld __cnfn floor(double16);
7107#endif //cl_khr_fp64
7108#ifdef cl_khr_fp16
7109half __ovld __cnfn floor(half);
7110half2 __ovld __cnfn floor(half2);
7111half3 __ovld __cnfn floor(half3);
7112half4 __ovld __cnfn floor(half4);
7113half8 __ovld __cnfn floor(half8);
7114half16 __ovld __cnfn floor(half16);
7115#endif //cl_khr_fp16
7116
7117/**
7118 * Returns the correctly rounded floating-point
7119 * representation of the sum of c with the infinitely
7120 * precise product of a and b. Rounding of
7121 * intermediate products shall not occur. Edge case
7122 * behavior is per the IEEE 754-2008 standard.
7123 */
7124float __ovld __cnfn fma(float, float, float);
7125float2 __ovld __cnfn fma(float2, float2, float2);
7126float3 __ovld __cnfn fma(float3, float3, float3);
7127float4 __ovld __cnfn fma(float4, float4, float4);
7128float8 __ovld __cnfn fma(float8, float8, float8);
7129float16 __ovld __cnfn fma(float16, float16, float16);
7130#ifdef cl_khr_fp64
7131double __ovld __cnfn fma(double, double, double);
7132double2 __ovld __cnfn fma(double2, double2, double2);
7133double3 __ovld __cnfn fma(double3, double3, double3);
7134double4 __ovld __cnfn fma(double4, double4, double4);
7135double8 __ovld __cnfn fma(double8, double8, double8);
7136double16 __ovld __cnfn fma(double16, double16, double16);
7137#endif //cl_khr_fp64
7138#ifdef cl_khr_fp16
7139half __ovld __cnfn fma(half, half, half);
7140half2 __ovld __cnfn fma(half2, half2, half2);
7141half3 __ovld __cnfn fma(half3, half3, half3);
7142half4 __ovld __cnfn fma(half4, half4, half4);
7143half8 __ovld __cnfn fma(half8, half8, half8);
7144half16 __ovld __cnfn fma(half16, half16, half16);
7145#endif //cl_khr_fp16
7146
7147/**
7148 * Returns y if x < y, otherwise it returns x. If one
7149 * argument is a NaN, fmax() returns the other
7150 * argument. If both arguments are NaNs, fmax()
7151 * returns a NaN.
7152 */
7153float __ovld __cnfn fmax(float, float);
7154float2 __ovld __cnfn fmax(float2, float2);
7155float3 __ovld __cnfn fmax(float3, float3);
7156float4 __ovld __cnfn fmax(float4, float4);
7157float8 __ovld __cnfn fmax(float8, float8);
7158float16 __ovld __cnfn fmax(float16, float16);
7159float2 __ovld __cnfn fmax(float2, float);
7160float3 __ovld __cnfn fmax(float3, float);
7161float4 __ovld __cnfn fmax(float4, float);
7162float8 __ovld __cnfn fmax(float8, float);
7163float16 __ovld __cnfn fmax(float16, float);
7164#ifdef cl_khr_fp64
7165double __ovld __cnfn fmax(double, double);
7166double2 __ovld __cnfn fmax(double2, double2);
7167double3 __ovld __cnfn fmax(double3, double3);
7168double4 __ovld __cnfn fmax(double4, double4);
7169double8 __ovld __cnfn fmax(double8, double8);
7170double16 __ovld __cnfn fmax(double16, double16);
7171double2 __ovld __cnfn fmax(double2, double);
7172double3 __ovld __cnfn fmax(double3, double);
7173double4 __ovld __cnfn fmax(double4, double);
7174double8 __ovld __cnfn fmax(double8, double);
7175double16 __ovld __cnfn fmax(double16, double);
7176#endif //cl_khr_fp64
7177#ifdef cl_khr_fp16
7178half __ovld __cnfn fmax(half, half);
7179half2 __ovld __cnfn fmax(half2, half2);
7180half3 __ovld __cnfn fmax(half3, half3);
7181half4 __ovld __cnfn fmax(half4, half4);
7182half8 __ovld __cnfn fmax(half8, half8);
7183half16 __ovld __cnfn fmax(half16, half16);
7184half2 __ovld __cnfn fmax(half2, half);
7185half3 __ovld __cnfn fmax(half3, half);
7186half4 __ovld __cnfn fmax(half4, half);
7187half8 __ovld __cnfn fmax(half8, half);
7188half16 __ovld __cnfn fmax(half16, half);
7189#endif //cl_khr_fp16
7190
7191/**
7192 * Returns y if y < x, otherwise it returns x. If one
7193 * argument is a NaN, fmin() returns the other
7194 * argument. If both arguments are NaNs, fmin()
7195 * returns a NaN.
7196 */
7197float __ovld __cnfn fmin(float, float);
7198float2 __ovld __cnfn fmin(float2, float2);
7199float3 __ovld __cnfn fmin(float3, float3);
7200float4 __ovld __cnfn fmin(float4, float4);
7201float8 __ovld __cnfn fmin(float8, float8);
7202float16 __ovld __cnfn fmin(float16, float16);
7203float2 __ovld __cnfn fmin(float2, float);
7204float3 __ovld __cnfn fmin(float3, float);
7205float4 __ovld __cnfn fmin(float4, float);
7206float8 __ovld __cnfn fmin(float8, float);
7207float16 __ovld __cnfn fmin(float16, float);
7208#ifdef cl_khr_fp64
7209double __ovld __cnfn fmin(double, double);
7210double2 __ovld __cnfn fmin(double2, double2);
7211double3 __ovld __cnfn fmin(double3, double3);
7212double4 __ovld __cnfn fmin(double4, double4);
7213double8 __ovld __cnfn fmin(double8, double8);
7214double16 __ovld __cnfn fmin(double16, double16);
7215double2 __ovld __cnfn fmin(double2, double);
7216double3 __ovld __cnfn fmin(double3, double);
7217double4 __ovld __cnfn fmin(double4, double);
7218double8 __ovld __cnfn fmin(double8, double);
7219double16 __ovld __cnfn fmin(double16, double);
7220#endif //cl_khr_fp64
7221#ifdef cl_khr_fp16
7222half __ovld __cnfn fmin(half, half);
7223half2 __ovld __cnfn fmin(half2, half2);
7224half3 __ovld __cnfn fmin(half3, half3);
7225half4 __ovld __cnfn fmin(half4, half4);
7226half8 __ovld __cnfn fmin(half8, half8);
7227half16 __ovld __cnfn fmin(half16, half16);
7228half2 __ovld __cnfn fmin(half2, half);
7229half3 __ovld __cnfn fmin(half3, half);
7230half4 __ovld __cnfn fmin(half4, half);
7231half8 __ovld __cnfn fmin(half8, half);
7232half16 __ovld __cnfn fmin(half16, half);
7233#endif //cl_khr_fp16
7234
7235/**
7236 * Modulus. Returns x - y * trunc (x/y).
7237 */
7238float __ovld __cnfn fmod(float, float);
7239float2 __ovld __cnfn fmod(float2, float2);
7240float3 __ovld __cnfn fmod(float3, float3);
7241float4 __ovld __cnfn fmod(float4, float4);
7242float8 __ovld __cnfn fmod(float8, float8);
7243float16 __ovld __cnfn fmod(float16, float16);
7244#ifdef cl_khr_fp64
7245double __ovld __cnfn fmod(double, double);
7246double2 __ovld __cnfn fmod(double2, double2);
7247double3 __ovld __cnfn fmod(double3, double3);
7248double4 __ovld __cnfn fmod(double4, double4);
7249double8 __ovld __cnfn fmod(double8, double8);
7250double16 __ovld __cnfn fmod(double16, double16);
7251#endif //cl_khr_fp64
7252#ifdef cl_khr_fp16
7253half __ovld __cnfn fmod(half, half);
7254half2 __ovld __cnfn fmod(half2, half2);
7255half3 __ovld __cnfn fmod(half3, half3);
7256half4 __ovld __cnfn fmod(half4, half4);
7257half8 __ovld __cnfn fmod(half8, half8);
7258half16 __ovld __cnfn fmod(half16, half16);
7259#endif //cl_khr_fp16
7260
7261/**
7262 * Returns fmin(x - floor (x), 0x1.fffffep-1f ).
7263 * floor(x) is returned in iptr.
7264 */
7265#if defined(__opencl_c_generic_address_space)
7266float __ovld fract(float, float *);
7267float2 __ovld fract(float2, float2 *);
7268float3 __ovld fract(float3, float3 *);
7269float4 __ovld fract(float4, float4 *);
7270float8 __ovld fract(float8, float8 *);
7271float16 __ovld fract(float16, float16 *);
7272#ifdef cl_khr_fp64
7273double __ovld fract(double, double *);
7274double2 __ovld fract(double2, double2 *);
7275double3 __ovld fract(double3, double3 *);
7276double4 __ovld fract(double4, double4 *);
7277double8 __ovld fract(double8, double8 *);
7278double16 __ovld fract(double16, double16 *);
7279#endif //cl_khr_fp64
7280#ifdef cl_khr_fp16
7281half __ovld fract(half, half *);
7282half2 __ovld fract(half2, half2 *);
7283half3 __ovld fract(half3, half3 *);
7284half4 __ovld fract(half4, half4 *);
7285half8 __ovld fract(half8, half8 *);
7286half16 __ovld fract(half16, half16 *);
7287#endif //cl_khr_fp16
7288#endif //defined(__opencl_c_generic_address_space)
7289
7290#if defined(__opencl_c_named_address_space_builtins)
7291float __ovld fract(float, __global float *);
7292float2 __ovld fract(float2, __global float2 *);
7293float3 __ovld fract(float3, __global float3 *);
7294float4 __ovld fract(float4, __global float4 *);
7295float8 __ovld fract(float8, __global float8 *);
7296float16 __ovld fract(float16, __global float16 *);
7297float __ovld fract(float, __local float *);
7298float2 __ovld fract(float2, __local float2 *);
7299float3 __ovld fract(float3, __local float3 *);
7300float4 __ovld fract(float4, __local float4 *);
7301float8 __ovld fract(float8, __local float8 *);
7302float16 __ovld fract(float16, __local float16 *);
7303float __ovld fract(float, __private float *);
7304float2 __ovld fract(float2, __private float2 *);
7305float3 __ovld fract(float3, __private float3 *);
7306float4 __ovld fract(float4, __private float4 *);
7307float8 __ovld fract(float8, __private float8 *);
7308float16 __ovld fract(float16, __private float16 *);
7309#ifdef cl_khr_fp64
7310double __ovld fract(double, __global double *);
7311double2 __ovld fract(double2, __global double2 *);
7312double3 __ovld fract(double3, __global double3 *);
7313double4 __ovld fract(double4, __global double4 *);
7314double8 __ovld fract(double8, __global double8 *);
7315double16 __ovld fract(double16, __global double16 *);
7316double __ovld fract(double, __local double *);
7317double2 __ovld fract(double2, __local double2 *);
7318double3 __ovld fract(double3, __local double3 *);
7319double4 __ovld fract(double4, __local double4 *);
7320double8 __ovld fract(double8, __local double8 *);
7321double16 __ovld fract(double16, __local double16 *);
7322double __ovld fract(double, __private double *);
7323double2 __ovld fract(double2, __private double2 *);
7324double3 __ovld fract(double3, __private double3 *);
7325double4 __ovld fract(double4, __private double4 *);
7326double8 __ovld fract(double8, __private double8 *);
7327double16 __ovld fract(double16, __private double16 *);
7328#endif //cl_khr_fp64
7329#ifdef cl_khr_fp16
7330half __ovld fract(half, __global half *);
7331half2 __ovld fract(half2, __global half2 *);
7332half3 __ovld fract(half3, __global half3 *);
7333half4 __ovld fract(half4, __global half4 *);
7334half8 __ovld fract(half8, __global half8 *);
7335half16 __ovld fract(half16, __global half16 *);
7336half __ovld fract(half, __local half *);
7337half2 __ovld fract(half2, __local half2 *);
7338half3 __ovld fract(half3, __local half3 *);
7339half4 __ovld fract(half4, __local half4 *);
7340half8 __ovld fract(half8, __local half8 *);
7341half16 __ovld fract(half16, __local half16 *);
7342half __ovld fract(half, __private half *);
7343half2 __ovld fract(half2, __private half2 *);
7344half3 __ovld fract(half3, __private half3 *);
7345half4 __ovld fract(half4, __private half4 *);
7346half8 __ovld fract(half8, __private half8 *);
7347half16 __ovld fract(half16, __private half16 *);
7348#endif //cl_khr_fp16
7349#endif //defined(__opencl_c_named_address_space_builtins)
7350
7351/**
7352 * Extract mantissa and exponent from x. For each
7353 * component the mantissa returned is a float with
7354 * magnitude in the interval [1/2, 1) or 0. Each
7355 * component of x equals mantissa returned * 2^exp.
7356 */
7357#if defined(__opencl_c_generic_address_space)
7358float __ovld frexp(float, int *);
7359float2 __ovld frexp(float2, int2 *);
7360float3 __ovld frexp(float3, int3 *);
7361float4 __ovld frexp(float4, int4 *);
7362float8 __ovld frexp(float8, int8 *);
7363float16 __ovld frexp(float16, int16 *);
7364#ifdef cl_khr_fp64
7365double __ovld frexp(double, int *);
7366double2 __ovld frexp(double2, int2 *);
7367double3 __ovld frexp(double3, int3 *);
7368double4 __ovld frexp(double4, int4 *);
7369double8 __ovld frexp(double8, int8 *);
7370double16 __ovld frexp(double16, int16 *);
7371#endif //cl_khr_fp64
7372#ifdef cl_khr_fp16
7373half __ovld frexp(half, int *);
7374half2 __ovld frexp(half2, int2 *);
7375half3 __ovld frexp(half3, int3 *);
7376half4 __ovld frexp(half4, int4 *);
7377half8 __ovld frexp(half8, int8 *);
7378half16 __ovld frexp(half16, int16 *);
7379#endif //cl_khr_fp16
7380#endif //defined(__opencl_c_generic_address_space)
7381
7382#if defined(__opencl_c_named_address_space_builtins)
7383float __ovld frexp(float, __global int *);
7384float2 __ovld frexp(float2, __global int2 *);
7385float3 __ovld frexp(float3, __global int3 *);
7386float4 __ovld frexp(float4, __global int4 *);
7387float8 __ovld frexp(float8, __global int8 *);
7388float16 __ovld frexp(float16, __global int16 *);
7389float __ovld frexp(float, __local int *);
7390float2 __ovld frexp(float2, __local int2 *);
7391float3 __ovld frexp(float3, __local int3 *);
7392float4 __ovld frexp(float4, __local int4 *);
7393float8 __ovld frexp(float8, __local int8 *);
7394float16 __ovld frexp(float16, __local int16 *);
7395float __ovld frexp(float, __private int *);
7396float2 __ovld frexp(float2, __private int2 *);
7397float3 __ovld frexp(float3, __private int3 *);
7398float4 __ovld frexp(float4, __private int4 *);
7399float8 __ovld frexp(float8, __private int8 *);
7400float16 __ovld frexp(float16, __private int16 *);
7401#ifdef cl_khr_fp64
7402double __ovld frexp(double, __global int *);
7403double2 __ovld frexp(double2, __global int2 *);
7404double3 __ovld frexp(double3, __global int3 *);
7405double4 __ovld frexp(double4, __global int4 *);
7406double8 __ovld frexp(double8, __global int8 *);
7407double16 __ovld frexp(double16, __global int16 *);
7408double __ovld frexp(double, __local int *);
7409double2 __ovld frexp(double2, __local int2 *);
7410double3 __ovld frexp(double3, __local int3 *);
7411double4 __ovld frexp(double4, __local int4 *);
7412double8 __ovld frexp(double8, __local int8 *);
7413double16 __ovld frexp(double16, __local int16 *);
7414double __ovld frexp(double, __private int *);
7415double2 __ovld frexp(double2, __private int2 *);
7416double3 __ovld frexp(double3, __private int3 *);
7417double4 __ovld frexp(double4, __private int4 *);
7418double8 __ovld frexp(double8, __private int8 *);
7419double16 __ovld frexp(double16, __private int16 *);
7420#endif //cl_khr_fp64
7421#ifdef cl_khr_fp16
7422half __ovld frexp(half, __global int *);
7423half2 __ovld frexp(half2, __global int2 *);
7424half3 __ovld frexp(half3, __global int3 *);
7425half4 __ovld frexp(half4, __global int4 *);
7426half8 __ovld frexp(half8, __global int8 *);
7427half16 __ovld frexp(half16, __global int16 *);
7428half __ovld frexp(half, __local int *);
7429half2 __ovld frexp(half2, __local int2 *);
7430half3 __ovld frexp(half3, __local int3 *);
7431half4 __ovld frexp(half4, __local int4 *);
7432half8 __ovld frexp(half8, __local int8 *);
7433half16 __ovld frexp(half16, __local int16 *);
7434half __ovld frexp(half, __private int *);
7435half2 __ovld frexp(half2, __private int2 *);
7436half3 __ovld frexp(half3, __private int3 *);
7437half4 __ovld frexp(half4, __private int4 *);
7438half8 __ovld frexp(half8, __private int8 *);
7439half16 __ovld frexp(half16, __private int16 *);
7440#endif //cl_khr_fp16
7441#endif //defined(__opencl_c_named_address_space_builtins)
7442
7443/**
7444 * Compute the value of the square root of x^2 + y^2
7445 * without undue overflow or underflow.
7446 */
7447float __ovld __cnfn hypot(float, float);
7448float2 __ovld __cnfn hypot(float2, float2);
7449float3 __ovld __cnfn hypot(float3, float3);
7450float4 __ovld __cnfn hypot(float4, float4);
7451float8 __ovld __cnfn hypot(float8, float8);
7452float16 __ovld __cnfn hypot(float16, float16);
7453#ifdef cl_khr_fp64
7454double __ovld __cnfn hypot(double, double);
7455double2 __ovld __cnfn hypot(double2, double2);
7456double3 __ovld __cnfn hypot(double3, double3);
7457double4 __ovld __cnfn hypot(double4, double4);
7458double8 __ovld __cnfn hypot(double8, double8);
7459double16 __ovld __cnfn hypot(double16, double16);
7460#endif //cl_khr_fp64
7461#ifdef cl_khr_fp16
7462half __ovld __cnfn hypot(half, half);
7463half2 __ovld __cnfn hypot(half2, half2);
7464half3 __ovld __cnfn hypot(half3, half3);
7465half4 __ovld __cnfn hypot(half4, half4);
7466half8 __ovld __cnfn hypot(half8, half8);
7467half16 __ovld __cnfn hypot(half16, half16);
7468#endif //cl_khr_fp16
7469
7470/**
7471 * Return the exponent as an integer value.
7472 */
7474int2 __ovld __cnfn ilogb(float2);
7475int3 __ovld __cnfn ilogb(float3);
7476int4 __ovld __cnfn ilogb(float4);
7477int8 __ovld __cnfn ilogb(float8);
7478int16 __ovld __cnfn ilogb(float16);
7479#ifdef cl_khr_fp64
7480int __ovld __cnfn ilogb(double);
7481int2 __ovld __cnfn ilogb(double2);
7482int3 __ovld __cnfn ilogb(double3);
7483int4 __ovld __cnfn ilogb(double4);
7484int8 __ovld __cnfn ilogb(double8);
7485int16 __ovld __cnfn ilogb(double16);
7486#endif //cl_khr_fp64
7487#ifdef cl_khr_fp16
7488int __ovld __cnfn ilogb(half);
7489int2 __ovld __cnfn ilogb(half2);
7490int3 __ovld __cnfn ilogb(half3);
7491int4 __ovld __cnfn ilogb(half4);
7492int8 __ovld __cnfn ilogb(half8);
7493int16 __ovld __cnfn ilogb(half16);
7494#endif //cl_khr_fp16
7495
7496/**
7497 * Multiply x by 2 to the power n.
7498 */
7499float __ovld __cnfn ldexp(float, int);
7500float2 __ovld __cnfn ldexp(float2, int2);
7501float3 __ovld __cnfn ldexp(float3, int3);
7502float4 __ovld __cnfn ldexp(float4, int4);
7503float8 __ovld __cnfn ldexp(float8, int8);
7504float16 __ovld __cnfn ldexp(float16, int16);
7505float2 __ovld __cnfn ldexp(float2, int);
7506float3 __ovld __cnfn ldexp(float3, int);
7507float4 __ovld __cnfn ldexp(float4, int);
7508float8 __ovld __cnfn ldexp(float8, int);
7509float16 __ovld __cnfn ldexp(float16, int);
7510#ifdef cl_khr_fp64
7511double __ovld __cnfn ldexp(double, int);
7512double2 __ovld __cnfn ldexp(double2, int2);
7513double3 __ovld __cnfn ldexp(double3, int3);
7514double4 __ovld __cnfn ldexp(double4, int4);
7515double8 __ovld __cnfn ldexp(double8, int8);
7516double16 __ovld __cnfn ldexp(double16, int16);
7517double2 __ovld __cnfn ldexp(double2, int);
7518double3 __ovld __cnfn ldexp(double3, int);
7519double4 __ovld __cnfn ldexp(double4, int);
7520double8 __ovld __cnfn ldexp(double8, int);
7521double16 __ovld __cnfn ldexp(double16, int);
7522#endif //cl_khr_fp64
7523#ifdef cl_khr_fp16
7524half __ovld __cnfn ldexp(half, int);
7525half2 __ovld __cnfn ldexp(half2, int2);
7526half3 __ovld __cnfn ldexp(half3, int3);
7527half4 __ovld __cnfn ldexp(half4, int4);
7528half8 __ovld __cnfn ldexp(half8, int8);
7529half16 __ovld __cnfn ldexp(half16, int16);
7530half2 __ovld __cnfn ldexp(half2, int);
7531half3 __ovld __cnfn ldexp(half3, int);
7532half4 __ovld __cnfn ldexp(half4, int);
7533half8 __ovld __cnfn ldexp(half8, int);
7534half16 __ovld __cnfn ldexp(half16, int);
7535#endif //cl_khr_fp16
7536
7537/**
7538 * Log gamma function. Returns the natural
7539 * logarithm of the absolute value of the gamma
7540 * function. The sign of the gamma function is
7541 * returned in the signp argument of lgamma_r.
7542 */
7543float __ovld __cnfn lgamma(float);
7544float2 __ovld __cnfn lgamma(float2);
7545float3 __ovld __cnfn lgamma(float3);
7546float4 __ovld __cnfn lgamma(float4);
7547float8 __ovld __cnfn lgamma(float8);
7548float16 __ovld __cnfn lgamma(float16);
7549#ifdef cl_khr_fp64
7550double __ovld __cnfn lgamma(double);
7551double2 __ovld __cnfn lgamma(double2);
7552double3 __ovld __cnfn lgamma(double3);
7553double4 __ovld __cnfn lgamma(double4);
7554double8 __ovld __cnfn lgamma(double8);
7555double16 __ovld __cnfn lgamma(double16);
7556#endif //cl_khr_fp64
7557#ifdef cl_khr_fp16
7558half __ovld __cnfn lgamma(half);
7559half2 __ovld __cnfn lgamma(half2);
7560half3 __ovld __cnfn lgamma(half3);
7561half4 __ovld __cnfn lgamma(half4);
7562half8 __ovld __cnfn lgamma(half8);
7563half16 __ovld __cnfn lgamma(half16);
7564#endif //cl_khr_fp16
7565
7566#if defined(__opencl_c_generic_address_space)
7567float __ovld lgamma_r(float, int *);
7568float2 __ovld lgamma_r(float2, int2 *);
7569float3 __ovld lgamma_r(float3, int3 *);
7570float4 __ovld lgamma_r(float4, int4 *);
7571float8 __ovld lgamma_r(float8, int8 *);
7572float16 __ovld lgamma_r(float16, int16 *);
7573#ifdef cl_khr_fp64
7574double __ovld lgamma_r(double, int *);
7575double2 __ovld lgamma_r(double2, int2 *);
7576double3 __ovld lgamma_r(double3, int3 *);
7577double4 __ovld lgamma_r(double4, int4 *);
7578double8 __ovld lgamma_r(double8, int8 *);
7579double16 __ovld lgamma_r(double16, int16 *);
7580#endif //cl_khr_fp64
7581#ifdef cl_khr_fp16
7582half __ovld lgamma_r(half, int *);
7583half2 __ovld lgamma_r(half2, int2 *);
7584half3 __ovld lgamma_r(half3, int3 *);
7585half4 __ovld lgamma_r(half4, int4 *);
7586half8 __ovld lgamma_r(half8, int8 *);
7587half16 __ovld lgamma_r(half16, int16 *);
7588#endif //cl_khr_fp16
7589#endif //defined(__opencl_c_generic_address_space)
7590
7591#if defined(__opencl_c_named_address_space_builtins)
7592float __ovld lgamma_r(float, __global int *);
7593float2 __ovld lgamma_r(float2, __global int2 *);
7594float3 __ovld lgamma_r(float3, __global int3 *);
7595float4 __ovld lgamma_r(float4, __global int4 *);
7596float8 __ovld lgamma_r(float8, __global int8 *);
7597float16 __ovld lgamma_r(float16, __global int16 *);
7598float __ovld lgamma_r(float, __local int *);
7599float2 __ovld lgamma_r(float2, __local int2 *);
7600float3 __ovld lgamma_r(float3, __local int3 *);
7601float4 __ovld lgamma_r(float4, __local int4 *);
7602float8 __ovld lgamma_r(float8, __local int8 *);
7603float16 __ovld lgamma_r(float16, __local int16 *);
7604float __ovld lgamma_r(float, __private int *);
7605float2 __ovld lgamma_r(float2, __private int2 *);
7606float3 __ovld lgamma_r(float3, __private int3 *);
7607float4 __ovld lgamma_r(float4, __private int4 *);
7608float8 __ovld lgamma_r(float8, __private int8 *);
7609float16 __ovld lgamma_r(float16, __private int16 *);
7610#ifdef cl_khr_fp64
7611double __ovld lgamma_r(double, __global int *);
7612double2 __ovld lgamma_r(double2, __global int2 *);
7613double3 __ovld lgamma_r(double3, __global int3 *);
7614double4 __ovld lgamma_r(double4, __global int4 *);
7615double8 __ovld lgamma_r(double8, __global int8 *);
7616double16 __ovld lgamma_r(double16, __global int16 *);
7617double __ovld lgamma_r(double, __local int *);
7618double2 __ovld lgamma_r(double2, __local int2 *);
7619double3 __ovld lgamma_r(double3, __local int3 *);
7620double4 __ovld lgamma_r(double4, __local int4 *);
7621double8 __ovld lgamma_r(double8, __local int8 *);
7622double16 __ovld lgamma_r(double16, __local int16 *);
7623double __ovld lgamma_r(double, __private int *);
7624double2 __ovld lgamma_r(double2, __private int2 *);
7625double3 __ovld lgamma_r(double3, __private int3 *);
7626double4 __ovld lgamma_r(double4, __private int4 *);
7627double8 __ovld lgamma_r(double8, __private int8 *);
7628double16 __ovld lgamma_r(double16, __private int16 *);
7629#endif //cl_khr_fp64
7630#ifdef cl_khr_fp16
7631half __ovld lgamma_r(half, __global int *);
7632half2 __ovld lgamma_r(half2, __global int2 *);
7633half3 __ovld lgamma_r(half3, __global int3 *);
7634half4 __ovld lgamma_r(half4, __global int4 *);
7635half8 __ovld lgamma_r(half8, __global int8 *);
7636half16 __ovld lgamma_r(half16, __global int16 *);
7637half __ovld lgamma_r(half, __local int *);
7638half2 __ovld lgamma_r(half2, __local int2 *);
7639half3 __ovld lgamma_r(half3, __local int3 *);
7640half4 __ovld lgamma_r(half4, __local int4 *);
7641half8 __ovld lgamma_r(half8, __local int8 *);
7642half16 __ovld lgamma_r(half16, __local int16 *);
7643half __ovld lgamma_r(half, __private int *);
7644half2 __ovld lgamma_r(half2, __private int2 *);
7645half3 __ovld lgamma_r(half3, __private int3 *);
7646half4 __ovld lgamma_r(half4, __private int4 *);
7647half8 __ovld lgamma_r(half8, __private int8 *);
7648half16 __ovld lgamma_r(half16, __private int16 *);
7649#endif //cl_khr_fp16
7650#endif //defined(__opencl_c_named_address_space_builtins)
7651
7652/**
7653 * Compute natural logarithm.
7654 */
7655float __ovld __cnfn log(float);
7656float2 __ovld __cnfn log(float2);
7657float3 __ovld __cnfn log(float3);
7658float4 __ovld __cnfn log(float4);
7659float8 __ovld __cnfn log(float8);
7660float16 __ovld __cnfn log(float16);
7661#ifdef cl_khr_fp64
7662double __ovld __cnfn log(double);
7663double2 __ovld __cnfn log(double2);
7664double3 __ovld __cnfn log(double3);
7665double4 __ovld __cnfn log(double4);
7666double8 __ovld __cnfn log(double8);
7667double16 __ovld __cnfn log(double16);
7668#endif //cl_khr_fp64
7669#ifdef cl_khr_fp16
7670half __ovld __cnfn log(half);
7671half2 __ovld __cnfn log(half2);
7672half3 __ovld __cnfn log(half3);
7673half4 __ovld __cnfn log(half4);
7674half8 __ovld __cnfn log(half8);
7675half16 __ovld __cnfn log(half16);
7676#endif //cl_khr_fp16
7677
7678/**
7679 * Compute a base 2 logarithm.
7680 */
7681float __ovld __cnfn log2(float);
7682float2 __ovld __cnfn log2(float2);
7683float3 __ovld __cnfn log2(float3);
7684float4 __ovld __cnfn log2(float4);
7685float8 __ovld __cnfn log2(float8);
7686float16 __ovld __cnfn log2(float16);
7687#ifdef cl_khr_fp64
7688double __ovld __cnfn log2(double);
7689double2 __ovld __cnfn log2(double2);
7690double3 __ovld __cnfn log2(double3);
7691double4 __ovld __cnfn log2(double4);
7692double8 __ovld __cnfn log2(double8);
7693double16 __ovld __cnfn log2(double16);
7694#endif //cl_khr_fp64
7695#ifdef cl_khr_fp16
7696half __ovld __cnfn log2(half);
7697half2 __ovld __cnfn log2(half2);
7698half3 __ovld __cnfn log2(half3);
7699half4 __ovld __cnfn log2(half4);
7700half8 __ovld __cnfn log2(half8);
7701half16 __ovld __cnfn log2(half16);
7702#endif //cl_khr_fp16
7703
7704/**
7705 * Compute a base 10 logarithm.
7706 */
7707float __ovld __cnfn log10(float);
7708float2 __ovld __cnfn log10(float2);
7709float3 __ovld __cnfn log10(float3);
7710float4 __ovld __cnfn log10(float4);
7711float8 __ovld __cnfn log10(float8);
7712float16 __ovld __cnfn log10(float16);
7713#ifdef cl_khr_fp64
7714double __ovld __cnfn log10(double);
7715double2 __ovld __cnfn log10(double2);
7716double3 __ovld __cnfn log10(double3);
7717double4 __ovld __cnfn log10(double4);
7718double8 __ovld __cnfn log10(double8);
7719double16 __ovld __cnfn log10(double16);
7720#endif //cl_khr_fp64
7721#ifdef cl_khr_fp16
7722half __ovld __cnfn log10(half);
7723half2 __ovld __cnfn log10(half2);
7724half3 __ovld __cnfn log10(half3);
7725half4 __ovld __cnfn log10(half4);
7726half8 __ovld __cnfn log10(half8);
7727half16 __ovld __cnfn log10(half16);
7728#endif //cl_khr_fp16
7729
7730/**
7731 * Compute a base e logarithm of (1.0 + x).
7732 */
7733float __ovld __cnfn log1p(float);
7734float2 __ovld __cnfn log1p(float2);
7735float3 __ovld __cnfn log1p(float3);
7736float4 __ovld __cnfn log1p(float4);
7737float8 __ovld __cnfn log1p(float8);
7738float16 __ovld __cnfn log1p(float16);
7739#ifdef cl_khr_fp64
7740double __ovld __cnfn log1p(double);
7741double2 __ovld __cnfn log1p(double2);
7742double3 __ovld __cnfn log1p(double3);
7743double4 __ovld __cnfn log1p(double4);
7744double8 __ovld __cnfn log1p(double8);
7745double16 __ovld __cnfn log1p(double16);
7746#endif //cl_khr_fp64
7747#ifdef cl_khr_fp16
7748half __ovld __cnfn log1p(half);
7749half2 __ovld __cnfn log1p(half2);
7750half3 __ovld __cnfn log1p(half3);
7751half4 __ovld __cnfn log1p(half4);
7752half8 __ovld __cnfn log1p(half8);
7753half16 __ovld __cnfn log1p(half16);
7754#endif //cl_khr_fp16
7755
7756/**
7757 * Compute the exponent of x, which is the integral
7758 * part of logr | x |.
7759 */
7760float __ovld __cnfn logb(float);
7761float2 __ovld __cnfn logb(float2);
7762float3 __ovld __cnfn logb(float3);
7763float4 __ovld __cnfn logb(float4);
7764float8 __ovld __cnfn logb(float8);
7765float16 __ovld __cnfn logb(float16);
7766#ifdef cl_khr_fp64
7767double __ovld __cnfn logb(double);
7768double2 __ovld __cnfn logb(double2);
7769double3 __ovld __cnfn logb(double3);
7770double4 __ovld __cnfn logb(double4);
7771double8 __ovld __cnfn logb(double8);
7772double16 __ovld __cnfn logb(double16);
7773#endif //cl_khr_fp64
7774#ifdef cl_khr_fp16
7775half __ovld __cnfn logb(half);
7776half2 __ovld __cnfn logb(half2);
7777half3 __ovld __cnfn logb(half3);
7778half4 __ovld __cnfn logb(half4);
7779half8 __ovld __cnfn logb(half8);
7780half16 __ovld __cnfn logb(half16);
7781#endif //cl_khr_fp16
7782
7783/**
7784 * mad approximates a * b + c. Whether or how the
7785 * product of a * b is rounded and how supernormal or
7786 * subnormal intermediate products are handled is not
7787 * defined. mad is intended to be used where speed is
7788 * preferred over accuracy.
7789 */
7790float __ovld __cnfn mad(float, float, float);
7791float2 __ovld __cnfn mad(float2, float2, float2);
7792float3 __ovld __cnfn mad(float3, float3, float3);
7793float4 __ovld __cnfn mad(float4, float4, float4);
7794float8 __ovld __cnfn mad(float8, float8, float8);
7795float16 __ovld __cnfn mad(float16, float16, float16);
7796#ifdef cl_khr_fp64
7797double __ovld __cnfn mad(double, double, double);
7798double2 __ovld __cnfn mad(double2, double2, double2);
7799double3 __ovld __cnfn mad(double3, double3, double3);
7800double4 __ovld __cnfn mad(double4, double4, double4);
7801double8 __ovld __cnfn mad(double8, double8, double8);
7802double16 __ovld __cnfn mad(double16, double16, double16);
7803#endif //cl_khr_fp64
7804#ifdef cl_khr_fp16
7805half __ovld __cnfn mad(half, half, half);
7806half2 __ovld __cnfn mad(half2, half2, half2);
7807half3 __ovld __cnfn mad(half3, half3, half3);
7808half4 __ovld __cnfn mad(half4, half4, half4);
7809half8 __ovld __cnfn mad(half8, half8, half8);
7810half16 __ovld __cnfn mad(half16, half16, half16);
7811#endif //cl_khr_fp16
7812
7813/**
7814 * Returns x if | x | > | y |, y if | y | > | x |, otherwise
7815 * fmax(x, y).
7816 */
7817float __ovld __cnfn maxmag(float, float);
7818float2 __ovld __cnfn maxmag(float2, float2);
7819float3 __ovld __cnfn maxmag(float3, float3);
7820float4 __ovld __cnfn maxmag(float4, float4);
7821float8 __ovld __cnfn maxmag(float8, float8);
7822float16 __ovld __cnfn maxmag(float16, float16);
7823#ifdef cl_khr_fp64
7824double __ovld __cnfn maxmag(double, double);
7825double2 __ovld __cnfn maxmag(double2, double2);
7826double3 __ovld __cnfn maxmag(double3, double3);
7827double4 __ovld __cnfn maxmag(double4, double4);
7828double8 __ovld __cnfn maxmag(double8, double8);
7829double16 __ovld __cnfn maxmag(double16, double16);
7830#endif //cl_khr_fp64
7831#ifdef cl_khr_fp16
7832half __ovld __cnfn maxmag(half, half);
7833half2 __ovld __cnfn maxmag(half2, half2);
7834half3 __ovld __cnfn maxmag(half3, half3);
7835half4 __ovld __cnfn maxmag(half4, half4);
7836half8 __ovld __cnfn maxmag(half8, half8);
7837half16 __ovld __cnfn maxmag(half16, half16);
7838#endif //cl_khr_fp16
7839
7840/**
7841 * Returns x if | x | < | y |, y if | y | < | x |, otherwise
7842 * fmin(x, y).
7843 */
7844float __ovld __cnfn minmag(float, float);
7845float2 __ovld __cnfn minmag(float2, float2);
7846float3 __ovld __cnfn minmag(float3, float3);
7847float4 __ovld __cnfn minmag(float4, float4);
7848float8 __ovld __cnfn minmag(float8, float8);
7849float16 __ovld __cnfn minmag(float16, float16);
7850#ifdef cl_khr_fp64
7851double __ovld __cnfn minmag(double, double);
7852double2 __ovld __cnfn minmag(double2, double2);
7853double3 __ovld __cnfn minmag(double3, double3);
7854double4 __ovld __cnfn minmag(double4, double4);
7855double8 __ovld __cnfn minmag(double8, double8);
7856double16 __ovld __cnfn minmag(double16, double16);
7857#endif //cl_khr_fp64
7858#ifdef cl_khr_fp16
7859half __ovld __cnfn minmag(half, half);
7860half2 __ovld __cnfn minmag(half2, half2);
7861half3 __ovld __cnfn minmag(half3, half3);
7862half4 __ovld __cnfn minmag(half4, half4);
7863half8 __ovld __cnfn minmag(half8, half8);
7864half16 __ovld __cnfn minmag(half16, half16);
7865#endif //cl_khr_fp16
7866
7867/**
7868 * Decompose a floating-point number. The modf
7869 * function breaks the argument x into integral and
7870 * fractional parts, each of which has the same sign as
7871 * the argument. It stores the integral part in the object
7872 * pointed to by iptr.
7873 */
7874#if defined(__opencl_c_generic_address_space)
7875float __ovld modf(float, float *);
7876float2 __ovld modf(float2, float2 *);
7877float3 __ovld modf(float3, float3 *);
7878float4 __ovld modf(float4, float4 *);
7879float8 __ovld modf(float8, float8 *);
7880float16 __ovld modf(float16, float16 *);
7881#ifdef cl_khr_fp64
7882double __ovld modf(double, double *);
7883double2 __ovld modf(double2, double2 *);
7884double3 __ovld modf(double3, double3 *);
7885double4 __ovld modf(double4, double4 *);
7886double8 __ovld modf(double8, double8 *);
7887double16 __ovld modf(double16, double16 *);
7888#endif //cl_khr_fp64
7889#ifdef cl_khr_fp16
7890half __ovld modf(half, half *);
7891half2 __ovld modf(half2, half2 *);
7892half3 __ovld modf(half3, half3 *);
7893half4 __ovld modf(half4, half4 *);
7894half8 __ovld modf(half8, half8 *);
7895half16 __ovld modf(half16, half16 *);
7896#endif //cl_khr_fp16
7897#endif //defined(__opencl_c_generic_address_space)
7898
7899#if defined(__opencl_c_named_address_space_builtins)
7900float __ovld modf(float, __global float *);
7901float2 __ovld modf(float2, __global float2 *);
7902float3 __ovld modf(float3, __global float3 *);
7903float4 __ovld modf(float4, __global float4 *);
7904float8 __ovld modf(float8, __global float8 *);
7905float16 __ovld modf(float16, __global float16 *);
7906float __ovld modf(float, __local float *);
7907float2 __ovld modf(float2, __local float2 *);
7908float3 __ovld modf(float3, __local float3 *);
7909float4 __ovld modf(float4, __local float4 *);
7910float8 __ovld modf(float8, __local float8 *);
7911float16 __ovld modf(float16, __local float16 *);
7912float __ovld modf(float, __private float *);
7913float2 __ovld modf(float2, __private float2 *);
7914float3 __ovld modf(float3, __private float3 *);
7915float4 __ovld modf(float4, __private float4 *);
7916float8 __ovld modf(float8, __private float8 *);
7917float16 __ovld modf(float16, __private float16 *);
7918#ifdef cl_khr_fp64
7919double __ovld modf(double, __global double *);
7920double2 __ovld modf(double2, __global double2 *);
7921double3 __ovld modf(double3, __global double3 *);
7922double4 __ovld modf(double4, __global double4 *);
7923double8 __ovld modf(double8, __global double8 *);
7924double16 __ovld modf(double16, __global double16 *);
7925double __ovld modf(double, __local double *);
7926double2 __ovld modf(double2, __local double2 *);
7927double3 __ovld modf(double3, __local double3 *);
7928double4 __ovld modf(double4, __local double4 *);
7929double8 __ovld modf(double8, __local double8 *);
7930double16 __ovld modf(double16, __local double16 *);
7931double __ovld modf(double, __private double *);
7932double2 __ovld modf(double2, __private double2 *);
7933double3 __ovld modf(double3, __private double3 *);
7934double4 __ovld modf(double4, __private double4 *);
7935double8 __ovld modf(double8, __private double8 *);
7936double16 __ovld modf(double16, __private double16 *);
7937#endif //cl_khr_fp64
7938#ifdef cl_khr_fp16
7939half __ovld modf(half, __global half *);
7940half2 __ovld modf(half2, __global half2 *);
7941half3 __ovld modf(half3, __global half3 *);
7942half4 __ovld modf(half4, __global half4 *);
7943half8 __ovld modf(half8, __global half8 *);
7944half16 __ovld modf(half16, __global half16 *);
7945half __ovld modf(half, __local half *);
7946half2 __ovld modf(half2, __local half2 *);
7947half3 __ovld modf(half3, __local half3 *);
7948half4 __ovld modf(half4, __local half4 *);
7949half8 __ovld modf(half8, __local half8 *);
7950half16 __ovld modf(half16, __local half16 *);
7951half __ovld modf(half, __private half *);
7952half2 __ovld modf(half2, __private half2 *);
7953half3 __ovld modf(half3, __private half3 *);
7954half4 __ovld modf(half4, __private half4 *);
7955half8 __ovld modf(half8, __private half8 *);
7956half16 __ovld modf(half16, __private half16 *);
7957#endif //cl_khr_fp16
7958#endif //defined(__opencl_c_named_address_space_builtins)
7959
7960/**
7961 * Returns a quiet NaN. The nancode may be placed
7962 * in the significand of the resulting NaN.
7963 */
7964float __ovld __cnfn nan(uint);
7965float2 __ovld __cnfn nan(uint2);
7966float3 __ovld __cnfn nan(uint3);
7967float4 __ovld __cnfn nan(uint4);
7968float8 __ovld __cnfn nan(uint8);
7969float16 __ovld __cnfn nan(uint16);
7970#ifdef cl_khr_fp64
7971double __ovld __cnfn nan(ulong);
7972double2 __ovld __cnfn nan(ulong2);
7973double3 __ovld __cnfn nan(ulong3);
7974double4 __ovld __cnfn nan(ulong4);
7975double8 __ovld __cnfn nan(ulong8);
7976double16 __ovld __cnfn nan(ulong16);
7977#endif //cl_khr_fp64
7978#ifdef cl_khr_fp16
7979half __ovld __cnfn nan(ushort);
7980half2 __ovld __cnfn nan(ushort2);
7981half3 __ovld __cnfn nan(ushort3);
7982half4 __ovld __cnfn nan(ushort4);
7983half8 __ovld __cnfn nan(ushort8);
7984half16 __ovld __cnfn nan(ushort16);
7985#endif //cl_khr_fp16
7986
7987/**
7988 * Computes the next representable single-precision
7989 * floating-point value following x in the direction of
7990 * y. Thus, if y is less than x, nextafter() returns the
7991 * largest representable floating-point number less
7992 * than x.
7993 */
7994float __ovld __cnfn nextafter(float, float);
7995float2 __ovld __cnfn nextafter(float2, float2);
7996float3 __ovld __cnfn nextafter(float3, float3);
7997float4 __ovld __cnfn nextafter(float4, float4);
7998float8 __ovld __cnfn nextafter(float8, float8);
7999float16 __ovld __cnfn nextafter(float16, float16);
8000#ifdef cl_khr_fp64
8001double __ovld __cnfn nextafter(double, double);
8002double2 __ovld __cnfn nextafter(double2, double2);
8003double3 __ovld __cnfn nextafter(double3, double3);
8004double4 __ovld __cnfn nextafter(double4, double4);
8005double8 __ovld __cnfn nextafter(double8, double8);
8006double16 __ovld __cnfn nextafter(double16, double16);
8007#endif //cl_khr_fp64
8008#ifdef cl_khr_fp16
8009half __ovld __cnfn nextafter(half, half);
8010half2 __ovld __cnfn nextafter(half2, half2);
8011half3 __ovld __cnfn nextafter(half3, half3);
8012half4 __ovld __cnfn nextafter(half4, half4);
8013half8 __ovld __cnfn nextafter(half8, half8);
8014half16 __ovld __cnfn nextafter(half16, half16);
8015#endif //cl_khr_fp16
8016
8017/**
8018 * Compute x to the power y.
8019 */
8020float __ovld __cnfn pow(float, float);
8021float2 __ovld __cnfn pow(float2, float2);
8022float3 __ovld __cnfn pow(float3, float3);
8023float4 __ovld __cnfn pow(float4, float4);
8024float8 __ovld __cnfn pow(float8, float8);
8025float16 __ovld __cnfn pow(float16, float16);
8026#ifdef cl_khr_fp64
8027double __ovld __cnfn pow(double, double);
8028double2 __ovld __cnfn pow(double2, double2);
8029double3 __ovld __cnfn pow(double3, double3);
8030double4 __ovld __cnfn pow(double4, double4);
8031double8 __ovld __cnfn pow(double8, double8);
8032double16 __ovld __cnfn pow(double16, double16);
8033#endif //cl_khr_fp64
8034#ifdef cl_khr_fp16
8035half __ovld __cnfn pow(half, half);
8036half2 __ovld __cnfn pow(half2, half2);
8037half3 __ovld __cnfn pow(half3, half3);
8038half4 __ovld __cnfn pow(half4, half4);
8039half8 __ovld __cnfn pow(half8, half8);
8040half16 __ovld __cnfn pow(half16, half16);
8041#endif //cl_khr_fp16
8042
8043/**
8044 * Compute x to the power y, where y is an integer.
8045 */
8046float __ovld __cnfn pown(float, int);
8047float2 __ovld __cnfn pown(float2, int2);
8048float3 __ovld __cnfn pown(float3, int3);
8049float4 __ovld __cnfn pown(float4, int4);
8050float8 __ovld __cnfn pown(float8, int8);
8051float16 __ovld __cnfn pown(float16, int16);
8052#ifdef cl_khr_fp64
8053double __ovld __cnfn pown(double, int);
8054double2 __ovld __cnfn pown(double2, int2);
8055double3 __ovld __cnfn pown(double3, int3);
8056double4 __ovld __cnfn pown(double4, int4);
8057double8 __ovld __cnfn pown(double8, int8);
8058double16 __ovld __cnfn pown(double16, int16);
8059#endif //cl_khr_fp64
8060#ifdef cl_khr_fp16
8061half __ovld __cnfn pown(half, int);
8062half2 __ovld __cnfn pown(half2, int2);
8063half3 __ovld __cnfn pown(half3, int3);
8064half4 __ovld __cnfn pown(half4, int4);
8065half8 __ovld __cnfn pown(half8, int8);
8066half16 __ovld __cnfn pown(half16, int16);
8067#endif //cl_khr_fp16
8068
8069/**
8070 * Compute x to the power y, where x is >= 0.
8071 */
8072float __ovld __cnfn powr(float, float);
8073float2 __ovld __cnfn powr(float2, float2);
8074float3 __ovld __cnfn powr(float3, float3);
8075float4 __ovld __cnfn powr(float4, float4);
8076float8 __ovld __cnfn powr(float8, float8);
8077float16 __ovld __cnfn powr(float16, float16);
8078#ifdef cl_khr_fp64
8079double __ovld __cnfn powr(double, double);
8080double2 __ovld __cnfn powr(double2, double2);
8081double3 __ovld __cnfn powr(double3, double3);
8082double4 __ovld __cnfn powr(double4, double4);
8083double8 __ovld __cnfn powr(double8, double8);
8084double16 __ovld __cnfn powr(double16, double16);
8085#endif //cl_khr_fp64
8086#ifdef cl_khr_fp16
8087half __ovld __cnfn powr(half, half);
8088half2 __ovld __cnfn powr(half2, half2);
8089half3 __ovld __cnfn powr(half3, half3);
8090half4 __ovld __cnfn powr(half4, half4);
8091half8 __ovld __cnfn powr(half8, half8);
8092half16 __ovld __cnfn powr(half16, half16);
8093#endif //cl_khr_fp16
8094
8095/**
8096 * Compute the value r such that r = x - n*y, where n
8097 * is the integer nearest the exact value of x/y. If there
8098 * are two integers closest to x/y, n shall be the even
8099 * one. If r is zero, it is given the same sign as x.
8100 */
8101float __ovld __cnfn remainder(float, float);
8102float2 __ovld __cnfn remainder(float2, float2);
8103float3 __ovld __cnfn remainder(float3, float3);
8104float4 __ovld __cnfn remainder(float4, float4);
8105float8 __ovld __cnfn remainder(float8, float8);
8106float16 __ovld __cnfn remainder(float16, float16);
8107#ifdef cl_khr_fp64
8108double __ovld __cnfn remainder(double, double);
8109double2 __ovld __cnfn remainder(double2, double2);
8110double3 __ovld __cnfn remainder(double3, double3);
8111double4 __ovld __cnfn remainder(double4, double4);
8112double8 __ovld __cnfn remainder(double8, double8);
8113double16 __ovld __cnfn remainder(double16, double16);
8114#endif //cl_khr_fp64
8115#ifdef cl_khr_fp16
8116half __ovld __cnfn remainder(half, half);
8117half2 __ovld __cnfn remainder(half2, half2);
8118half3 __ovld __cnfn remainder(half3, half3);
8119half4 __ovld __cnfn remainder(half4, half4);
8120half8 __ovld __cnfn remainder(half8, half8);
8121half16 __ovld __cnfn remainder(half16, half16);
8122#endif //cl_khr_fp16
8123
8124/**
8125 * The remquo function computes the value r such
8126 * that r = x - n*y, where n is the integer nearest the
8127 * exact value of x/y. If there are two integers closest
8128 * to x/y, n shall be the even one. If r is zero, it is
8129 * given the same sign as x. This is the same value
8130 * that is returned by the remainder function.
8131 * remquo also calculates the lower seven bits of the
8132 * integral quotient x/y, and gives that value the same
8133 * sign as x/y. It stores this signed value in the object
8134 * pointed to by quo.
8135 */
8136#if defined(__opencl_c_generic_address_space)
8137float __ovld remquo(float, float, int *);
8138float2 __ovld remquo(float2, float2, int2 *);
8139float3 __ovld remquo(float3, float3, int3 *);
8140float4 __ovld remquo(float4, float4, int4 *);
8141float8 __ovld remquo(float8, float8, int8 *);
8142float16 __ovld remquo(float16, float16, int16 *);
8143#ifdef cl_khr_fp64
8144double __ovld remquo(double, double, int *);
8145double2 __ovld remquo(double2, double2, int2 *);
8146double3 __ovld remquo(double3, double3, int3 *);
8147double4 __ovld remquo(double4, double4, int4 *);
8148double8 __ovld remquo(double8, double8, int8 *);
8149double16 __ovld remquo(double16, double16, int16 *);
8150#endif //cl_khr_fp64
8151#ifdef cl_khr_fp16
8152half __ovld remquo(half, half, int *);
8153half2 __ovld remquo(half2, half2, int2 *);
8154half3 __ovld remquo(half3, half3, int3 *);
8155half4 __ovld remquo(half4, half4, int4 *);
8156half8 __ovld remquo(half8, half8, int8 *);
8157half16 __ovld remquo(half16, half16, int16 *);
8158#endif //cl_khr_fp16
8159#endif //defined(__opencl_c_generic_address_space)
8160
8161#if defined(__opencl_c_named_address_space_builtins)
8162float __ovld remquo(float, float, __global int *);
8163float2 __ovld remquo(float2, float2, __global int2 *);
8164float3 __ovld remquo(float3, float3, __global int3 *);
8165float4 __ovld remquo(float4, float4, __global int4 *);
8166float8 __ovld remquo(float8, float8, __global int8 *);
8167float16 __ovld remquo(float16, float16, __global int16 *);
8168float __ovld remquo(float, float, __local int *);
8169float2 __ovld remquo(float2, float2, __local int2 *);
8170float3 __ovld remquo(float3, float3, __local int3 *);
8171float4 __ovld remquo(float4, float4, __local int4 *);
8172float8 __ovld remquo(float8, float8, __local int8 *);
8173float16 __ovld remquo(float16, float16, __local int16 *);
8174float __ovld remquo(float, float, __private int *);
8175float2 __ovld remquo(float2, float2, __private int2 *);
8176float3 __ovld remquo(float3, float3, __private int3 *);
8177float4 __ovld remquo(float4, float4, __private int4 *);
8178float8 __ovld remquo(float8, float8, __private int8 *);
8179float16 __ovld remquo(float16, float16, __private int16 *);
8180#ifdef cl_khr_fp64
8181double __ovld remquo(double, double, __global int *);
8182double2 __ovld remquo(double2, double2, __global int2 *);
8183double3 __ovld remquo(double3, double3, __global int3 *);
8184double4 __ovld remquo(double4, double4, __global int4 *);
8185double8 __ovld remquo(double8, double8, __global int8 *);
8186double16 __ovld remquo(double16, double16, __global int16 *);
8187double __ovld remquo(double, double, __local int *);
8188double2 __ovld remquo(double2, double2, __local int2 *);
8189double3 __ovld remquo(double3, double3, __local int3 *);
8190double4 __ovld remquo(double4, double4, __local int4 *);
8191double8 __ovld remquo(double8, double8, __local int8 *);
8192double16 __ovld remquo(double16, double16, __local int16 *);
8193double __ovld remquo(double, double, __private int *);
8194double2 __ovld remquo(double2, double2, __private int2 *);
8195double3 __ovld remquo(double3, double3, __private int3 *);
8196double4 __ovld remquo(double4, double4, __private int4 *);
8197double8 __ovld remquo(double8, double8, __private int8 *);
8198double16 __ovld remquo(double16, double16, __private int16 *);
8199#endif //cl_khr_fp64
8200#ifdef cl_khr_fp16
8201half __ovld remquo(half, half, __global int *);
8202half2 __ovld remquo(half2, half2, __global int2 *);
8203half3 __ovld remquo(half3, half3, __global int3 *);
8204half4 __ovld remquo(half4, half4, __global int4 *);
8205half8 __ovld remquo(half8, half8, __global int8 *);
8206half16 __ovld remquo(half16, half16, __global int16 *);
8207half __ovld remquo(half, half, __local int *);
8208half2 __ovld remquo(half2, half2, __local int2 *);
8209half3 __ovld remquo(half3, half3, __local int3 *);
8210half4 __ovld remquo(half4, half4, __local int4 *);
8211half8 __ovld remquo(half8, half8, __local int8 *);
8212half16 __ovld remquo(half16, half16, __local int16 *);
8213half __ovld remquo(half, half, __private int *);
8214half2 __ovld remquo(half2, half2, __private int2 *);
8215half3 __ovld remquo(half3, half3, __private int3 *);
8216half4 __ovld remquo(half4, half4, __private int4 *);
8217half8 __ovld remquo(half8, half8, __private int8 *);
8218half16 __ovld remquo(half16, half16, __private int16 *);
8219#endif //cl_khr_fp16
8220#endif //defined(__opencl_c_named_address_space_builtins)
8221/**
8222 * Round to integral value (using round to nearest
8223 * even rounding mode) in floating-point format.
8224 * Refer to section 7.1 for description of rounding
8225 * modes.
8226 */
8227float __ovld __cnfn rint(float);
8228float2 __ovld __cnfn rint(float2);
8229float3 __ovld __cnfn rint(float3);
8230float4 __ovld __cnfn rint(float4);
8231float8 __ovld __cnfn rint(float8);
8232float16 __ovld __cnfn rint(float16);
8233#ifdef cl_khr_fp64
8234double __ovld __cnfn rint(double);
8235double2 __ovld __cnfn rint(double2);
8236double3 __ovld __cnfn rint(double3);
8237double4 __ovld __cnfn rint(double4);
8238double8 __ovld __cnfn rint(double8);
8239double16 __ovld __cnfn rint(double16);
8240#endif //cl_khr_fp64
8241#ifdef cl_khr_fp16
8242half __ovld __cnfn rint(half);
8243half2 __ovld __cnfn rint(half2);
8244half3 __ovld __cnfn rint(half3);
8245half4 __ovld __cnfn rint(half4);
8246half8 __ovld __cnfn rint(half8);
8247half16 __ovld __cnfn rint(half16);
8248#endif //cl_khr_fp16
8249
8250/**
8251 * Compute x to the power 1/y.
8252 */
8253float __ovld __cnfn rootn(float, int);
8254float2 __ovld __cnfn rootn(float2, int2);
8255float3 __ovld __cnfn rootn(float3, int3);
8256float4 __ovld __cnfn rootn(float4, int4);
8257float8 __ovld __cnfn rootn(float8, int8);
8258float16 __ovld __cnfn rootn(float16, int16);
8259#ifdef cl_khr_fp64
8260double __ovld __cnfn rootn(double, int);
8261double2 __ovld __cnfn rootn(double2, int2);
8262double3 __ovld __cnfn rootn(double3, int3);
8263double4 __ovld __cnfn rootn(double4, int4);
8264double8 __ovld __cnfn rootn(double8, int8);
8265double16 __ovld __cnfn rootn(double16, int16);
8266#endif //cl_khr_fp64
8267#ifdef cl_khr_fp16
8268half __ovld __cnfn rootn(half, int);
8269half2 __ovld __cnfn rootn(half2, int2);
8270half3 __ovld __cnfn rootn(half3, int3);
8271half4 __ovld __cnfn rootn(half4, int4);
8272half8 __ovld __cnfn rootn(half8, int8);
8273half16 __ovld __cnfn rootn(half16, int16);
8274#endif //cl_khr_fp16
8275
8276/**
8277 * Return the integral value nearest to x rounding
8278 * halfway cases away from zero, regardless of the
8279 * current rounding direction.
8280 */
8281float __ovld __cnfn round(float);
8282float2 __ovld __cnfn round(float2);
8283float3 __ovld __cnfn round(float3);
8284float4 __ovld __cnfn round(float4);
8285float8 __ovld __cnfn round(float8);
8286float16 __ovld __cnfn round(float16);
8287#ifdef cl_khr_fp64
8288double __ovld __cnfn round(double);
8289double2 __ovld __cnfn round(double2);
8290double3 __ovld __cnfn round(double3);
8291double4 __ovld __cnfn round(double4);
8292double8 __ovld __cnfn round(double8);
8293double16 __ovld __cnfn round(double16);
8294#endif //cl_khr_fp64
8295#ifdef cl_khr_fp16
8296half __ovld __cnfn round(half);
8297half2 __ovld __cnfn round(half2);
8298half3 __ovld __cnfn round(half3);
8299half4 __ovld __cnfn round(half4);
8300half8 __ovld __cnfn round(half8);
8301half16 __ovld __cnfn round(half16);
8302#endif //cl_khr_fp16
8303
8304/**
8305 * Compute inverse square root.
8306 */
8307float __ovld __cnfn rsqrt(float);
8308float2 __ovld __cnfn rsqrt(float2);
8309float3 __ovld __cnfn rsqrt(float3);
8310float4 __ovld __cnfn rsqrt(float4);
8311float8 __ovld __cnfn rsqrt(float8);
8312float16 __ovld __cnfn rsqrt(float16);
8313#ifdef cl_khr_fp64
8314double __ovld __cnfn rsqrt(double);
8315double2 __ovld __cnfn rsqrt(double2);
8316double3 __ovld __cnfn rsqrt(double3);
8317double4 __ovld __cnfn rsqrt(double4);
8318double8 __ovld __cnfn rsqrt(double8);
8319double16 __ovld __cnfn rsqrt(double16);
8320#endif //cl_khr_fp64
8321#ifdef cl_khr_fp16
8322half __ovld __cnfn rsqrt(half);
8323half2 __ovld __cnfn rsqrt(half2);
8324half3 __ovld __cnfn rsqrt(half3);
8325half4 __ovld __cnfn rsqrt(half4);
8326half8 __ovld __cnfn rsqrt(half8);
8327half16 __ovld __cnfn rsqrt(half16);
8328#endif //cl_khr_fp16
8329
8330/**
8331 * Compute sine.
8332 */
8333float __ovld __cnfn sin(float);
8334float2 __ovld __cnfn sin(float2);
8335float3 __ovld __cnfn sin(float3);
8336float4 __ovld __cnfn sin(float4);
8337float8 __ovld __cnfn sin(float8);
8338float16 __ovld __cnfn sin(float16);
8339#ifdef cl_khr_fp64
8340double __ovld __cnfn sin(double);
8341double2 __ovld __cnfn sin(double2);
8342double3 __ovld __cnfn sin(double3);
8343double4 __ovld __cnfn sin(double4);
8344double8 __ovld __cnfn sin(double8);
8345double16 __ovld __cnfn sin(double16);
8346#endif //cl_khr_fp64
8347#ifdef cl_khr_fp16
8348half __ovld __cnfn sin(half);
8349half2 __ovld __cnfn sin(half2);
8350half3 __ovld __cnfn sin(half3);
8351half4 __ovld __cnfn sin(half4);
8352half8 __ovld __cnfn sin(half8);
8353half16 __ovld __cnfn sin(half16);
8354#endif //cl_khr_fp16
8355
8356/**
8357 * Compute sine and cosine of x. The computed sine
8358 * is the return value and computed cosine is returned
8359 * in cosval.
8360 */
8361#if defined(__opencl_c_generic_address_space)
8362float __ovld sincos(float, float *);
8363float2 __ovld sincos(float2, float2 *);
8364float3 __ovld sincos(float3, float3 *);
8365float4 __ovld sincos(float4, float4 *);
8366float8 __ovld sincos(float8, float8 *);
8367float16 __ovld sincos(float16, float16 *);
8368#ifdef cl_khr_fp64
8369double __ovld sincos(double, double *);
8370double2 __ovld sincos(double2, double2 *);
8371double3 __ovld sincos(double3, double3 *);
8372double4 __ovld sincos(double4, double4 *);
8373double8 __ovld sincos(double8, double8 *);
8374double16 __ovld sincos(double16, double16 *);
8375#endif //cl_khr_fp64
8376#ifdef cl_khr_fp16
8377half __ovld sincos(half, half *);
8378half2 __ovld sincos(half2, half2 *);
8379half3 __ovld sincos(half3, half3 *);
8380half4 __ovld sincos(half4, half4 *);
8381half8 __ovld sincos(half8, half8 *);
8382half16 __ovld sincos(half16, half16 *);
8383#endif //cl_khr_fp16
8384#endif //defined(__opencl_c_generic_address_space)
8385
8386#if defined(__opencl_c_named_address_space_builtins)
8387float __ovld sincos(float, __global float *);
8388float2 __ovld sincos(float2, __global float2 *);
8389float3 __ovld sincos(float3, __global float3 *);
8390float4 __ovld sincos(float4, __global float4 *);
8391float8 __ovld sincos(float8, __global float8 *);
8392float16 __ovld sincos(float16, __global float16 *);
8393float __ovld sincos(float, __local float *);
8394float2 __ovld sincos(float2, __local float2 *);
8395float3 __ovld sincos(float3, __local float3 *);
8396float4 __ovld sincos(float4, __local float4 *);
8397float8 __ovld sincos(float8, __local float8 *);
8398float16 __ovld sincos(float16, __local float16 *);
8399float __ovld sincos(float, __private float *);
8400float2 __ovld sincos(float2, __private float2 *);
8401float3 __ovld sincos(float3, __private float3 *);
8402float4 __ovld sincos(float4, __private float4 *);
8403float8 __ovld sincos(float8, __private float8 *);
8404float16 __ovld sincos(float16, __private float16 *);
8405#ifdef cl_khr_fp64
8406double __ovld sincos(double, __global double *);
8407double2 __ovld sincos(double2, __global double2 *);
8408double3 __ovld sincos(double3, __global double3 *);
8409double4 __ovld sincos(double4, __global double4 *);
8410double8 __ovld sincos(double8, __global double8 *);
8411double16 __ovld sincos(double16, __global double16 *);
8412double __ovld sincos(double, __local double *);
8413double2 __ovld sincos(double2, __local double2 *);
8414double3 __ovld sincos(double3, __local double3 *);
8415double4 __ovld sincos(double4, __local double4 *);
8416double8 __ovld sincos(double8, __local double8 *);
8417double16 __ovld sincos(double16, __local double16 *);
8418double __ovld sincos(double, __private double *);
8419double2 __ovld sincos(double2, __private double2 *);
8420double3 __ovld sincos(double3, __private double3 *);
8421double4 __ovld sincos(double4, __private double4 *);
8422double8 __ovld sincos(double8, __private double8 *);
8423double16 __ovld sincos(double16, __private double16 *);
8424#endif //cl_khr_fp64
8425#ifdef cl_khr_fp16
8426half __ovld sincos(half, __global half *);
8427half2 __ovld sincos(half2, __global half2 *);
8428half3 __ovld sincos(half3, __global half3 *);
8429half4 __ovld sincos(half4, __global half4 *);
8430half8 __ovld sincos(half8, __global half8 *);
8431half16 __ovld sincos(half16, __global half16 *);
8432half __ovld sincos(half, __local half *);
8433half2 __ovld sincos(half2, __local half2 *);
8434half3 __ovld sincos(half3, __local half3 *);
8435half4 __ovld sincos(half4, __local half4 *);
8436half8 __ovld sincos(half8, __local half8 *);
8437half16 __ovld sincos(half16, __local half16 *);
8438half __ovld sincos(half, __private half *);
8439half2 __ovld sincos(half2, __private half2 *);
8440half3 __ovld sincos(half3, __private half3 *);
8441half4 __ovld sincos(half4, __private half4 *);
8442half8 __ovld sincos(half8, __private half8 *);
8443half16 __ovld sincos(half16, __private half16 *);
8444#endif //cl_khr_fp16
8445#endif //defined(__opencl_c_named_address_space_builtins)
8446
8447/**
8448 * Compute hyperbolic sine.
8449 */
8450float __ovld __cnfn sinh(float);
8451float2 __ovld __cnfn sinh(float2);
8452float3 __ovld __cnfn sinh(float3);
8453float4 __ovld __cnfn sinh(float4);
8454float8 __ovld __cnfn sinh(float8);
8455float16 __ovld __cnfn sinh(float16);
8456#ifdef cl_khr_fp64
8457double __ovld __cnfn sinh(double);
8458double2 __ovld __cnfn sinh(double2);
8459double3 __ovld __cnfn sinh(double3);
8460double4 __ovld __cnfn sinh(double4);
8461double8 __ovld __cnfn sinh(double8);
8462double16 __ovld __cnfn sinh(double16);
8463#endif //cl_khr_fp64
8464#ifdef cl_khr_fp16
8465half __ovld __cnfn sinh(half);
8466half2 __ovld __cnfn sinh(half2);
8467half3 __ovld __cnfn sinh(half3);
8468half4 __ovld __cnfn sinh(half4);
8469half8 __ovld __cnfn sinh(half8);
8470half16 __ovld __cnfn sinh(half16);
8471#endif //cl_khr_fp16
8472
8473/**
8474 * Compute sin (PI * x).
8475 */
8476float __ovld __cnfn sinpi(float);
8477float2 __ovld __cnfn sinpi(float2);
8478float3 __ovld __cnfn sinpi(float3);
8479float4 __ovld __cnfn sinpi(float4);
8480float8 __ovld __cnfn sinpi(float8);
8481float16 __ovld __cnfn sinpi(float16);
8482#ifdef cl_khr_fp64
8483double __ovld __cnfn sinpi(double);
8484double2 __ovld __cnfn sinpi(double2);
8485double3 __ovld __cnfn sinpi(double3);
8486double4 __ovld __cnfn sinpi(double4);
8487double8 __ovld __cnfn sinpi(double8);
8488double16 __ovld __cnfn sinpi(double16);
8489#endif //cl_khr_fp64
8490#ifdef cl_khr_fp16
8491half __ovld __cnfn sinpi(half);
8492half2 __ovld __cnfn sinpi(half2);
8493half3 __ovld __cnfn sinpi(half3);
8494half4 __ovld __cnfn sinpi(half4);
8495half8 __ovld __cnfn sinpi(half8);
8496half16 __ovld __cnfn sinpi(half16);
8497#endif //cl_khr_fp16
8498
8499/**
8500 * Compute square root.
8501 */
8502float __ovld __cnfn sqrt(float);
8503float2 __ovld __cnfn sqrt(float2);
8504float3 __ovld __cnfn sqrt(float3);
8505float4 __ovld __cnfn sqrt(float4);
8506float8 __ovld __cnfn sqrt(float8);
8507float16 __ovld __cnfn sqrt(float16);
8508#ifdef cl_khr_fp64
8509double __ovld __cnfn sqrt(double);
8510double2 __ovld __cnfn sqrt(double2);
8511double3 __ovld __cnfn sqrt(double3);
8512double4 __ovld __cnfn sqrt(double4);
8513double8 __ovld __cnfn sqrt(double8);
8514double16 __ovld __cnfn sqrt(double16);
8515#endif //cl_khr_fp64
8516#ifdef cl_khr_fp16
8517half __ovld __cnfn sqrt(half);
8518half2 __ovld __cnfn sqrt(half2);
8519half3 __ovld __cnfn sqrt(half3);
8520half4 __ovld __cnfn sqrt(half4);
8521half8 __ovld __cnfn sqrt(half8);
8522half16 __ovld __cnfn sqrt(half16);
8523#endif //cl_khr_fp16
8524
8525/**
8526 * Compute tangent.
8527 */
8528float __ovld __cnfn tan(float);
8529float2 __ovld __cnfn tan(float2);
8530float3 __ovld __cnfn tan(float3);
8531float4 __ovld __cnfn tan(float4);
8532float8 __ovld __cnfn tan(float8);
8533float16 __ovld __cnfn tan(float16);
8534#ifdef cl_khr_fp64
8535double __ovld __cnfn tan(double);
8536double2 __ovld __cnfn tan(double2);
8537double3 __ovld __cnfn tan(double3);
8538double4 __ovld __cnfn tan(double4);
8539double8 __ovld __cnfn tan(double8);
8540double16 __ovld __cnfn tan(double16);
8541#endif //cl_khr_fp64
8542#ifdef cl_khr_fp16
8543half __ovld __cnfn tan(half);
8544half2 __ovld __cnfn tan(half2);
8545half3 __ovld __cnfn tan(half3);
8546half4 __ovld __cnfn tan(half4);
8547half8 __ovld __cnfn tan(half8);
8548half16 __ovld __cnfn tan(half16);
8549#endif //cl_khr_fp16
8550
8551/**
8552 * Compute hyperbolic tangent.
8553 */
8554float __ovld __cnfn tanh(float);
8555float2 __ovld __cnfn tanh(float2);
8556float3 __ovld __cnfn tanh(float3);
8557float4 __ovld __cnfn tanh(float4);
8558float8 __ovld __cnfn tanh(float8);
8559float16 __ovld __cnfn tanh(float16);
8560#ifdef cl_khr_fp64
8561double __ovld __cnfn tanh(double);
8562double2 __ovld __cnfn tanh(double2);
8563double3 __ovld __cnfn tanh(double3);
8564double4 __ovld __cnfn tanh(double4);
8565double8 __ovld __cnfn tanh(double8);
8566double16 __ovld __cnfn tanh(double16);
8567#endif //cl_khr_fp64
8568#ifdef cl_khr_fp16
8569half __ovld __cnfn tanh(half);
8570half2 __ovld __cnfn tanh(half2);
8571half3 __ovld __cnfn tanh(half3);
8572half4 __ovld __cnfn tanh(half4);
8573half8 __ovld __cnfn tanh(half8);
8574half16 __ovld __cnfn tanh(half16);
8575#endif //cl_khr_fp16
8576
8577/**
8578 * Compute tan (PI * x).
8579 */
8580float __ovld __cnfn tanpi(float);
8581float2 __ovld __cnfn tanpi(float2);
8582float3 __ovld __cnfn tanpi(float3);
8583float4 __ovld __cnfn tanpi(float4);
8584float8 __ovld __cnfn tanpi(float8);
8585float16 __ovld __cnfn tanpi(float16);
8586#ifdef cl_khr_fp64
8587double __ovld __cnfn tanpi(double);
8588double2 __ovld __cnfn tanpi(double2);
8589double3 __ovld __cnfn tanpi(double3);
8590double4 __ovld __cnfn tanpi(double4);
8591double8 __ovld __cnfn tanpi(double8);
8592double16 __ovld __cnfn tanpi(double16);
8593#endif //cl_khr_fp64
8594#ifdef cl_khr_fp16
8595half __ovld __cnfn tanpi(half);
8596half2 __ovld __cnfn tanpi(half2);
8597half3 __ovld __cnfn tanpi(half3);
8598half4 __ovld __cnfn tanpi(half4);
8599half8 __ovld __cnfn tanpi(half8);
8600half16 __ovld __cnfn tanpi(half16);
8601#endif //cl_khr_fp16
8602
8603/**
8604 * Compute the gamma function.
8605 */
8606float __ovld __cnfn tgamma(float);
8607float2 __ovld __cnfn tgamma(float2);
8608float3 __ovld __cnfn tgamma(float3);
8609float4 __ovld __cnfn tgamma(float4);
8610float8 __ovld __cnfn tgamma(float8);
8611float16 __ovld __cnfn tgamma(float16);
8612#ifdef cl_khr_fp64
8613double __ovld __cnfn tgamma(double);
8614double2 __ovld __cnfn tgamma(double2);
8615double3 __ovld __cnfn tgamma(double3);
8616double4 __ovld __cnfn tgamma(double4);
8617double8 __ovld __cnfn tgamma(double8);
8618double16 __ovld __cnfn tgamma(double16);
8619#endif //cl_khr_fp64
8620#ifdef cl_khr_fp16
8621half __ovld __cnfn tgamma(half);
8622half2 __ovld __cnfn tgamma(half2);
8623half3 __ovld __cnfn tgamma(half3);
8624half4 __ovld __cnfn tgamma(half4);
8625half8 __ovld __cnfn tgamma(half8);
8626half16 __ovld __cnfn tgamma(half16);
8627#endif //cl_khr_fp16
8628
8629/**
8630 * Round to integral value using the round to zero
8631 * rounding mode.
8632 */
8633float __ovld __cnfn trunc(float);
8634float2 __ovld __cnfn trunc(float2);
8635float3 __ovld __cnfn trunc(float3);
8636float4 __ovld __cnfn trunc(float4);
8637float8 __ovld __cnfn trunc(float8);
8638float16 __ovld __cnfn trunc(float16);
8639#ifdef cl_khr_fp64
8640double __ovld __cnfn trunc(double);
8641double2 __ovld __cnfn trunc(double2);
8642double3 __ovld __cnfn trunc(double3);
8643double4 __ovld __cnfn trunc(double4);
8644double8 __ovld __cnfn trunc(double8);
8645double16 __ovld __cnfn trunc(double16);
8646#endif //cl_khr_fp64
8647#ifdef cl_khr_fp16
8648half __ovld __cnfn trunc(half);
8649half2 __ovld __cnfn trunc(half2);
8650half3 __ovld __cnfn trunc(half3);
8651half4 __ovld __cnfn trunc(half4);
8652half8 __ovld __cnfn trunc(half8);
8653half16 __ovld __cnfn trunc(half16);
8654#endif //cl_khr_fp16
8655
8656/**
8657 * Compute cosine. x must be in the range -2^16 ... +2^16.
8658 */
8660float2 __ovld __cnfn half_cos(float2);
8661float3 __ovld __cnfn half_cos(float3);
8662float4 __ovld __cnfn half_cos(float4);
8663float8 __ovld __cnfn half_cos(float8);
8664float16 __ovld __cnfn half_cos(float16);
8665
8666/**
8667 * Compute x / y.
8668 */
8669float __ovld __cnfn half_divide(float, float);
8670float2 __ovld __cnfn half_divide(float2, float2);
8671float3 __ovld __cnfn half_divide(float3, float3);
8672float4 __ovld __cnfn half_divide(float4, float4);
8673float8 __ovld __cnfn half_divide(float8, float8);
8674float16 __ovld __cnfn half_divide(float16, float16);
8675
8676/**
8677 * Compute the base- e exponential of x.
8678 */
8680float2 __ovld __cnfn half_exp(float2);
8681float3 __ovld __cnfn half_exp(float3);
8682float4 __ovld __cnfn half_exp(float4);
8683float8 __ovld __cnfn half_exp(float8);
8684float16 __ovld __cnfn half_exp(float16);
8685
8686/**
8687 * Compute the base- 2 exponential of x.
8688 */
8690float2 __ovld __cnfn half_exp2(float2);
8691float3 __ovld __cnfn half_exp2(float3);
8692float4 __ovld __cnfn half_exp2(float4);
8693float8 __ovld __cnfn half_exp2(float8);
8694float16 __ovld __cnfn half_exp2(float16);
8695
8696/**
8697 * Compute the base- 10 exponential of x.
8698 */
8700float2 __ovld __cnfn half_exp10(float2);
8701float3 __ovld __cnfn half_exp10(float3);
8702float4 __ovld __cnfn half_exp10(float4);
8703float8 __ovld __cnfn half_exp10(float8);
8704float16 __ovld __cnfn half_exp10(float16);
8705
8706/**
8707 * Compute natural logarithm.
8708 */
8710float2 __ovld __cnfn half_log(float2);
8711float3 __ovld __cnfn half_log(float3);
8712float4 __ovld __cnfn half_log(float4);
8713float8 __ovld __cnfn half_log(float8);
8714float16 __ovld __cnfn half_log(float16);
8715
8716/**
8717 * Compute a base 2 logarithm.
8718 */
8720float2 __ovld __cnfn half_log2(float2);
8721float3 __ovld __cnfn half_log2(float3);
8722float4 __ovld __cnfn half_log2(float4);
8723float8 __ovld __cnfn half_log2(float8);
8724float16 __ovld __cnfn half_log2(float16);
8725
8726/**
8727 * Compute a base 10 logarithm.
8728 */
8730float2 __ovld __cnfn half_log10(float2);
8731float3 __ovld __cnfn half_log10(float3);
8732float4 __ovld __cnfn half_log10(float4);
8733float8 __ovld __cnfn half_log10(float8);
8734float16 __ovld __cnfn half_log10(float16);
8735
8736/**
8737 * Compute x to the power y, where x is >= 0.
8738 */
8739float __ovld __cnfn half_powr(float, float);
8740float2 __ovld __cnfn half_powr(float2, float2);
8741float3 __ovld __cnfn half_powr(float3, float3);
8742float4 __ovld __cnfn half_powr(float4, float4);
8743float8 __ovld __cnfn half_powr(float8, float8);
8744float16 __ovld __cnfn half_powr(float16, float16);
8745
8746/**
8747 * Compute reciprocal.
8748 */
8750float2 __ovld __cnfn half_recip(float2);
8751float3 __ovld __cnfn half_recip(float3);
8752float4 __ovld __cnfn half_recip(float4);
8753float8 __ovld __cnfn half_recip(float8);
8754float16 __ovld __cnfn half_recip(float16);
8755
8756/**
8757 * Compute inverse square root.
8758 */
8760float2 __ovld __cnfn half_rsqrt(float2);
8761float3 __ovld __cnfn half_rsqrt(float3);
8762float4 __ovld __cnfn half_rsqrt(float4);
8763float8 __ovld __cnfn half_rsqrt(float8);
8764float16 __ovld __cnfn half_rsqrt(float16);
8765
8766/**
8767 * Compute sine. x must be in the range -2^16 ... +2^16.
8768 */
8770float2 __ovld __cnfn half_sin(float2);
8771float3 __ovld __cnfn half_sin(float3);
8772float4 __ovld __cnfn half_sin(float4);
8773float8 __ovld __cnfn half_sin(float8);
8774float16 __ovld __cnfn half_sin(float16);
8775
8776/**
8777 * Compute square root.
8778 */
8780float2 __ovld __cnfn half_sqrt(float2);
8781float3 __ovld __cnfn half_sqrt(float3);
8782float4 __ovld __cnfn half_sqrt(float4);
8783float8 __ovld __cnfn half_sqrt(float8);
8784float16 __ovld __cnfn half_sqrt(float16);
8785
8786/**
8787 * Compute tangent. x must be in the range -216 ... +216.
8788 */
8790float2 __ovld __cnfn half_tan(float2);
8791float3 __ovld __cnfn half_tan(float3);
8792float4 __ovld __cnfn half_tan(float4);
8793float8 __ovld __cnfn half_tan(float8);
8794float16 __ovld __cnfn half_tan(float16);
8795
8796/**
8797 * Compute cosine over an implementation-defined range.
8798 * The maximum error is implementation-defined.
8799 */
8801float2 __ovld __cnfn native_cos(float2);
8802float3 __ovld __cnfn native_cos(float3);
8803float4 __ovld __cnfn native_cos(float4);
8804float8 __ovld __cnfn native_cos(float8);
8805float16 __ovld __cnfn native_cos(float16);
8806
8807/**
8808 * Compute x / y over an implementation-defined range.
8809 * The maximum error is implementation-defined.
8810 */
8811float __ovld __cnfn native_divide(float, float);
8812float2 __ovld __cnfn native_divide(float2, float2);
8813float3 __ovld __cnfn native_divide(float3, float3);
8814float4 __ovld __cnfn native_divide(float4, float4);
8815float8 __ovld __cnfn native_divide(float8, float8);
8816float16 __ovld __cnfn native_divide(float16, float16);
8817
8818/**
8819 * Compute the base- e exponential of x over an
8820 * implementation-defined range. The maximum error is
8821 * implementation-defined.
8822 */
8824float2 __ovld __cnfn native_exp(float2);
8825float3 __ovld __cnfn native_exp(float3);
8826float4 __ovld __cnfn native_exp(float4);
8827float8 __ovld __cnfn native_exp(float8);
8828float16 __ovld __cnfn native_exp(float16);
8829
8830/**
8831 * Compute the base- 2 exponential of x over an
8832 * implementation-defined range. The maximum error is
8833 * implementation-defined.
8834 */
8840float16 __ovld __cnfn native_exp2(float16);
8841
8842/**
8843 * Compute the base- 10 exponential of x over an
8844 * implementation-defined range. The maximum error is
8845 * implementation-defined.
8846 */
8852float16 __ovld __cnfn native_exp10(float16);
8853
8854/**
8855 * Compute natural logarithm over an implementationdefined
8856 * range. The maximum error is implementation
8857 * defined.
8858 */
8860float2 __ovld __cnfn native_log(float2);
8861float3 __ovld __cnfn native_log(float3);
8862float4 __ovld __cnfn native_log(float4);
8863float8 __ovld __cnfn native_log(float8);
8864float16 __ovld __cnfn native_log(float16);
8865
8866/**
8867 * Compute a base 2 logarithm over an implementationdefined
8868 * range. The maximum error is implementationdefined.
8869 */
8875float16 __ovld __cnfn native_log2(float16);
8876
8877/**
8878 * Compute a base 10 logarithm over an implementationdefined
8879 * range. The maximum error is implementationdefined.
8880 */
8886float16 __ovld __cnfn native_log10(float16);
8887
8888/**
8889 * Compute x to the power y, where x is >= 0. The range of
8890 * x and y are implementation-defined. The maximum error
8891 * is implementation-defined.
8892 */
8893float __ovld __cnfn native_powr(float, float);
8894float2 __ovld __cnfn native_powr(float2, float2);
8895float3 __ovld __cnfn native_powr(float3, float3);
8896float4 __ovld __cnfn native_powr(float4, float4);
8897float8 __ovld __cnfn native_powr(float8, float8);
8898float16 __ovld __cnfn native_powr(float16, float16);
8899
8900/**
8901 * Compute reciprocal over an implementation-defined
8902 * range. The maximum error is implementation-defined.
8903 */
8909float16 __ovld __cnfn native_recip(float16);
8910
8911/**
8912 * Compute inverse square root over an implementationdefined
8913 * range. The maximum error is implementationdefined.
8914 */
8920float16 __ovld __cnfn native_rsqrt(float16);
8921
8922/**
8923 * Compute sine over an implementation-defined range.
8924 * The maximum error is implementation-defined.
8925 */
8927float2 __ovld __cnfn native_sin(float2);
8928float3 __ovld __cnfn native_sin(float3);
8929float4 __ovld __cnfn native_sin(float4);
8930float8 __ovld __cnfn native_sin(float8);
8931float16 __ovld __cnfn native_sin(float16);
8932
8933/**
8934 * Compute square root over an implementation-defined
8935 * range. The maximum error is implementation-defined.
8936 */
8942float16 __ovld __cnfn native_sqrt(float16);
8943
8944/**
8945 * Compute tangent over an implementation-defined range.
8946 * The maximum error is implementation-defined.
8947 */
8949float2 __ovld __cnfn native_tan(float2);
8950float3 __ovld __cnfn native_tan(float3);
8951float4 __ovld __cnfn native_tan(float4);
8952float8 __ovld __cnfn native_tan(float8);
8953float16 __ovld __cnfn native_tan(float16);
8954
8955// OpenCL v1.1 s6.11.3, v1.2 s6.12.3, v2.0 s6.13.3 - Integer Functions
8956
8957/**
8958 * Returns | x |.
8959 */
8962uchar2 __ovld __cnfn abs(char2);
8963uchar2 __ovld __cnfn abs(uchar2);
8964uchar3 __ovld __cnfn abs(char3);
8965uchar3 __ovld __cnfn abs(uchar3);
8966uchar4 __ovld __cnfn abs(char4);
8967uchar4 __ovld __cnfn abs(uchar4);
8968uchar8 __ovld __cnfn abs(char8);
8969uchar8 __ovld __cnfn abs(uchar8);
8970uchar16 __ovld __cnfn abs(char16);
8971uchar16 __ovld __cnfn abs(uchar16);
8974ushort2 __ovld __cnfn abs(short2);
8975ushort2 __ovld __cnfn abs(ushort2);
8976ushort3 __ovld __cnfn abs(short3);
8977ushort3 __ovld __cnfn abs(ushort3);
8978ushort4 __ovld __cnfn abs(short4);
8979ushort4 __ovld __cnfn abs(ushort4);
8980ushort8 __ovld __cnfn abs(short8);
8981ushort8 __ovld __cnfn abs(ushort8);
8982ushort16 __ovld __cnfn abs(short16);
8983ushort16 __ovld __cnfn abs(ushort16);
8984uint __ovld __cnfn abs(int);
8985uint __ovld __cnfn abs(uint);
8986uint2 __ovld __cnfn abs(int2);
8987uint2 __ovld __cnfn abs(uint2);
8988uint3 __ovld __cnfn abs(int3);
8989uint3 __ovld __cnfn abs(uint3);
8990uint4 __ovld __cnfn abs(int4);
8991uint4 __ovld __cnfn abs(uint4);
8992uint8 __ovld __cnfn abs(int8);
8993uint8 __ovld __cnfn abs(uint8);
8994uint16 __ovld __cnfn abs(int16);
8995uint16 __ovld __cnfn abs(uint16);
8996ulong __ovld __cnfn abs(long);
8998ulong2 __ovld __cnfn abs(long2);
8999ulong2 __ovld __cnfn abs(ulong2);
9000ulong3 __ovld __cnfn abs(long3);
9001ulong3 __ovld __cnfn abs(ulong3);
9002ulong4 __ovld __cnfn abs(long4);
9003ulong4 __ovld __cnfn abs(ulong4);
9004ulong8 __ovld __cnfn abs(long8);
9005ulong8 __ovld __cnfn abs(ulong8);
9006ulong16 __ovld __cnfn abs(long16);
9007ulong16 __ovld __cnfn abs(ulong16);
9008
9009/**
9010 * Returns | x - y | without modulo overflow.
9011 */
9014uchar2 __ovld __cnfn abs_diff(char2, char2);
9015uchar2 __ovld __cnfn abs_diff(uchar2, uchar2);
9016uchar3 __ovld __cnfn abs_diff(char3, char3);
9017uchar3 __ovld __cnfn abs_diff(uchar3, uchar3);
9018uchar4 __ovld __cnfn abs_diff(char4, char4);
9019uchar4 __ovld __cnfn abs_diff(uchar4, uchar4);
9020uchar8 __ovld __cnfn abs_diff(char8, char8);
9021uchar8 __ovld __cnfn abs_diff(uchar8, uchar8);
9022uchar16 __ovld __cnfn abs_diff(char16, char16);
9023uchar16 __ovld __cnfn abs_diff(uchar16, uchar16);
9026ushort2 __ovld __cnfn abs_diff(short2, short2);
9027ushort2 __ovld __cnfn abs_diff(ushort2, ushort2);
9028ushort3 __ovld __cnfn abs_diff(short3, short3);
9029ushort3 __ovld __cnfn abs_diff(ushort3, ushort3);
9030ushort4 __ovld __cnfn abs_diff(short4, short4);
9031ushort4 __ovld __cnfn abs_diff(ushort4, ushort4);
9032ushort8 __ovld __cnfn abs_diff(short8, short8);
9033ushort8 __ovld __cnfn abs_diff(ushort8, ushort8);
9034ushort16 __ovld __cnfn abs_diff(short16, short16);
9035ushort16 __ovld __cnfn abs_diff(ushort16, ushort16);
9036uint __ovld __cnfn abs_diff(int, int);
9037uint __ovld __cnfn abs_diff(uint, uint);
9038uint2 __ovld __cnfn abs_diff(int2, int2);
9039uint2 __ovld __cnfn abs_diff(uint2, uint2);
9040uint3 __ovld __cnfn abs_diff(int3, int3);
9041uint3 __ovld __cnfn abs_diff(uint3, uint3);
9042uint4 __ovld __cnfn abs_diff(int4, int4);
9043uint4 __ovld __cnfn abs_diff(uint4, uint4);
9044uint8 __ovld __cnfn abs_diff(int8, int8);
9045uint8 __ovld __cnfn abs_diff(uint8, uint8);
9046uint16 __ovld __cnfn abs_diff(int16, int16);
9047uint16 __ovld __cnfn abs_diff(uint16, uint16);
9050ulong2 __ovld __cnfn abs_diff(long2, long2);
9051ulong2 __ovld __cnfn abs_diff(ulong2, ulong2);
9052ulong3 __ovld __cnfn abs_diff(long3, long3);
9053ulong3 __ovld __cnfn abs_diff(ulong3, ulong3);
9054ulong4 __ovld __cnfn abs_diff(long4, long4);
9055ulong4 __ovld __cnfn abs_diff(ulong4, ulong4);
9056ulong8 __ovld __cnfn abs_diff(long8, long8);
9057ulong8 __ovld __cnfn abs_diff(ulong8, ulong8);
9058ulong16 __ovld __cnfn abs_diff(long16, long16);
9059ulong16 __ovld __cnfn abs_diff(ulong16, ulong16);
9060
9061/**
9062 * Returns x + y and saturates the result.
9063 */
9064char __ovld __cnfn add_sat(char, char);
9066char2 __ovld __cnfn add_sat(char2, char2);
9067uchar2 __ovld __cnfn add_sat(uchar2, uchar2);
9068char3 __ovld __cnfn add_sat(char3, char3);
9069uchar3 __ovld __cnfn add_sat(uchar3, uchar3);
9070char4 __ovld __cnfn add_sat(char4, char4);
9071uchar4 __ovld __cnfn add_sat(uchar4, uchar4);
9072char8 __ovld __cnfn add_sat(char8, char8);
9073uchar8 __ovld __cnfn add_sat(uchar8, uchar8);
9074char16 __ovld __cnfn add_sat(char16, char16);
9075uchar16 __ovld __cnfn add_sat(uchar16, uchar16);
9076short __ovld __cnfn add_sat(short, short);
9078short2 __ovld __cnfn add_sat(short2, short2);
9079ushort2 __ovld __cnfn add_sat(ushort2, ushort2);
9080short3 __ovld __cnfn add_sat(short3, short3);
9081ushort3 __ovld __cnfn add_sat(ushort3, ushort3);
9082short4 __ovld __cnfn add_sat(short4, short4);
9083ushort4 __ovld __cnfn add_sat(ushort4, ushort4);
9084short8 __ovld __cnfn add_sat(short8, short8);
9085ushort8 __ovld __cnfn add_sat(ushort8, ushort8);
9086short16 __ovld __cnfn add_sat(short16, short16);
9087ushort16 __ovld __cnfn add_sat(ushort16, ushort16);
9088int __ovld __cnfn add_sat(int, int);
9089uint __ovld __cnfn add_sat(uint, uint);
9090int2 __ovld __cnfn add_sat(int2, int2);
9091uint2 __ovld __cnfn add_sat(uint2, uint2);
9092int3 __ovld __cnfn add_sat(int3, int3);
9093uint3 __ovld __cnfn add_sat(uint3, uint3);
9094int4 __ovld __cnfn add_sat(int4, int4);
9095uint4 __ovld __cnfn add_sat(uint4, uint4);
9096int8 __ovld __cnfn add_sat(int8, int8);
9097uint8 __ovld __cnfn add_sat(uint8, uint8);
9098int16 __ovld __cnfn add_sat(int16, int16);
9099uint16 __ovld __cnfn add_sat(uint16, uint16);
9100long __ovld __cnfn add_sat(long, long);
9102long2 __ovld __cnfn add_sat(long2, long2);
9103ulong2 __ovld __cnfn add_sat(ulong2, ulong2);
9104long3 __ovld __cnfn add_sat(long3, long3);
9105ulong3 __ovld __cnfn add_sat(ulong3, ulong3);
9106long4 __ovld __cnfn add_sat(long4, long4);
9107ulong4 __ovld __cnfn add_sat(ulong4, ulong4);
9108long8 __ovld __cnfn add_sat(long8, long8);
9109ulong8 __ovld __cnfn add_sat(ulong8, ulong8);
9110long16 __ovld __cnfn add_sat(long16, long16);
9111ulong16 __ovld __cnfn add_sat(ulong16, ulong16);
9112
9113/**
9114 * Returns (x + y) >> 1. The intermediate sum does
9115 * not modulo overflow.
9116 */
9117char __ovld __cnfn hadd(char, char);
9119char2 __ovld __cnfn hadd(char2, char2);
9120uchar2 __ovld __cnfn hadd(uchar2, uchar2);
9121char3 __ovld __cnfn hadd(char3, char3);
9122uchar3 __ovld __cnfn hadd(uchar3, uchar3);
9123char4 __ovld __cnfn hadd(char4, char4);
9124uchar4 __ovld __cnfn hadd(uchar4, uchar4);
9125char8 __ovld __cnfn hadd(char8, char8);
9126uchar8 __ovld __cnfn hadd(uchar8, uchar8);
9127char16 __ovld __cnfn hadd(char16, char16);
9128uchar16 __ovld __cnfn hadd(uchar16, uchar16);
9129short __ovld __cnfn hadd(short, short);
9131short2 __ovld __cnfn hadd(short2, short2);
9132ushort2 __ovld __cnfn hadd(ushort2, ushort2);
9133short3 __ovld __cnfn hadd(short3, short3);
9134ushort3 __ovld __cnfn hadd(ushort3, ushort3);
9135short4 __ovld __cnfn hadd(short4, short4);
9136ushort4 __ovld __cnfn hadd(ushort4, ushort4);
9137short8 __ovld __cnfn hadd(short8, short8);
9138ushort8 __ovld __cnfn hadd(ushort8, ushort8);
9139short16 __ovld __cnfn hadd(short16, short16);
9140ushort16 __ovld __cnfn hadd(ushort16, ushort16);
9141int __ovld __cnfn hadd(int, int);
9142uint __ovld __cnfn hadd(uint, uint);
9143int2 __ovld __cnfn hadd(int2, int2);
9144uint2 __ovld __cnfn hadd(uint2, uint2);
9145int3 __ovld __cnfn hadd(int3, int3);
9146uint3 __ovld __cnfn hadd(uint3, uint3);
9147int4 __ovld __cnfn hadd(int4, int4);
9148uint4 __ovld __cnfn hadd(uint4, uint4);
9149int8 __ovld __cnfn hadd(int8, int8);
9150uint8 __ovld __cnfn hadd(uint8, uint8);
9151int16 __ovld __cnfn hadd(int16, int16);
9152uint16 __ovld __cnfn hadd(uint16, uint16);
9153long __ovld __cnfn hadd(long, long);
9155long2 __ovld __cnfn hadd(long2, long2);
9156ulong2 __ovld __cnfn hadd(ulong2, ulong2);
9157long3 __ovld __cnfn hadd(long3, long3);
9158ulong3 __ovld __cnfn hadd(ulong3, ulong3);
9159long4 __ovld __cnfn hadd(long4, long4);
9160ulong4 __ovld __cnfn hadd(ulong4, ulong4);
9161long8 __ovld __cnfn hadd(long8, long8);
9162ulong8 __ovld __cnfn hadd(ulong8, ulong8);
9163long16 __ovld __cnfn hadd(long16, long16);
9164ulong16 __ovld __cnfn hadd(ulong16, ulong16);
9165
9166/**
9167 * Returns (x + y + 1) >> 1. The intermediate sum
9168 * does not modulo overflow.
9169 */
9170char __ovld __cnfn rhadd(char, char);
9172char2 __ovld __cnfn rhadd(char2, char2);
9173uchar2 __ovld __cnfn rhadd(uchar2, uchar2);
9174char3 __ovld __cnfn rhadd(char3, char3);
9175uchar3 __ovld __cnfn rhadd(uchar3, uchar3);
9176char4 __ovld __cnfn rhadd(char4, char4);
9177uchar4 __ovld __cnfn rhadd(uchar4, uchar4);
9178char8 __ovld __cnfn rhadd(char8, char8);
9179uchar8 __ovld __cnfn rhadd(uchar8, uchar8);
9180char16 __ovld __cnfn rhadd(char16, char16);
9181uchar16 __ovld __cnfn rhadd(uchar16, uchar16);
9182short __ovld __cnfn rhadd(short, short);
9184short2 __ovld __cnfn rhadd(short2, short2);
9185ushort2 __ovld __cnfn rhadd(ushort2, ushort2);
9186short3 __ovld __cnfn rhadd(short3, short3);
9187ushort3 __ovld __cnfn rhadd(ushort3, ushort3);
9188short4 __ovld __cnfn rhadd(short4, short4);
9189ushort4 __ovld __cnfn rhadd(ushort4, ushort4);
9190short8 __ovld __cnfn rhadd(short8, short8);
9191ushort8 __ovld __cnfn rhadd(ushort8, ushort8);
9192short16 __ovld __cnfn rhadd(short16, short16);
9193ushort16 __ovld __cnfn rhadd(ushort16, ushort16);
9194int __ovld __cnfn rhadd(int, int);
9195uint __ovld __cnfn rhadd(uint, uint);
9196int2 __ovld __cnfn rhadd(int2, int2);
9197uint2 __ovld __cnfn rhadd(uint2, uint2);
9198int3 __ovld __cnfn rhadd(int3, int3);
9199uint3 __ovld __cnfn rhadd(uint3, uint3);
9200int4 __ovld __cnfn rhadd(int4, int4);
9201uint4 __ovld __cnfn rhadd(uint4, uint4);
9202int8 __ovld __cnfn rhadd(int8, int8);
9203uint8 __ovld __cnfn rhadd(uint8, uint8);
9204int16 __ovld __cnfn rhadd(int16, int16);
9205uint16 __ovld __cnfn rhadd(uint16, uint16);
9206long __ovld __cnfn rhadd(long, long);
9208long2 __ovld __cnfn rhadd(long2, long2);
9209ulong2 __ovld __cnfn rhadd(ulong2, ulong2);
9210long3 __ovld __cnfn rhadd(long3, long3);
9211ulong3 __ovld __cnfn rhadd(ulong3, ulong3);
9212long4 __ovld __cnfn rhadd(long4, long4);
9213ulong4 __ovld __cnfn rhadd(ulong4, ulong4);
9214long8 __ovld __cnfn rhadd(long8, long8);
9215ulong8 __ovld __cnfn rhadd(ulong8, ulong8);
9216long16 __ovld __cnfn rhadd(long16, long16);
9217ulong16 __ovld __cnfn rhadd(ulong16, ulong16);
9218
9219/**
9220 * Returns min(max(x, minval), maxval).
9221 * Results are undefined if minval > maxval.
9222 */
9223char __ovld __cnfn clamp(char, char, char);
9225char2 __ovld __cnfn clamp(char2, char2, char2);
9226uchar2 __ovld __cnfn clamp(uchar2, uchar2, uchar2);
9227char3 __ovld __cnfn clamp(char3, char3, char3);
9228uchar3 __ovld __cnfn clamp(uchar3, uchar3, uchar3);
9229char4 __ovld __cnfn clamp(char4, char4, char4);
9230uchar4 __ovld __cnfn clamp(uchar4, uchar4, uchar4);
9231char8 __ovld __cnfn clamp(char8, char8, char8);
9232uchar8 __ovld __cnfn clamp(uchar8, uchar8, uchar8);
9233char16 __ovld __cnfn clamp(char16, char16, char16);
9234uchar16 __ovld __cnfn clamp(uchar16, uchar16, uchar16);
9235short __ovld __cnfn clamp(short, short, short);
9237short2 __ovld __cnfn clamp(short2, short2, short2);
9238ushort2 __ovld __cnfn clamp(ushort2, ushort2, ushort2);
9239short3 __ovld __cnfn clamp(short3, short3, short3);
9240ushort3 __ovld __cnfn clamp(ushort3, ushort3, ushort3);
9241short4 __ovld __cnfn clamp(short4, short4, short4);
9242ushort4 __ovld __cnfn clamp(ushort4, ushort4, ushort4);
9243short8 __ovld __cnfn clamp(short8, short8, short8);
9244ushort8 __ovld __cnfn clamp(ushort8, ushort8, ushort8);
9245short16 __ovld __cnfn clamp(short16, short16, short16);
9246ushort16 __ovld __cnfn clamp(ushort16, ushort16, ushort16);
9247int __ovld __cnfn clamp(int, int, int);
9248uint __ovld __cnfn clamp(uint, uint, uint);
9249int2 __ovld __cnfn clamp(int2, int2, int2);
9250uint2 __ovld __cnfn clamp(uint2, uint2, uint2);
9251int3 __ovld __cnfn clamp(int3, int3, int3);
9252uint3 __ovld __cnfn clamp(uint3, uint3, uint3);
9253int4 __ovld __cnfn clamp(int4, int4, int4);
9254uint4 __ovld __cnfn clamp(uint4, uint4, uint4);
9255int8 __ovld __cnfn clamp(int8, int8, int8);
9256uint8 __ovld __cnfn clamp(uint8, uint8, uint8);
9257int16 __ovld __cnfn clamp(int16, int16, int16);
9258uint16 __ovld __cnfn clamp(uint16, uint16, uint16);
9259long __ovld __cnfn clamp(long, long, long);
9261long2 __ovld __cnfn clamp(long2, long2, long2);
9262ulong2 __ovld __cnfn clamp(ulong2, ulong2, ulong2);
9263long3 __ovld __cnfn clamp(long3, long3, long3);
9264ulong3 __ovld __cnfn clamp(ulong3, ulong3, ulong3);
9265long4 __ovld __cnfn clamp(long4, long4, long4);
9266ulong4 __ovld __cnfn clamp(ulong4, ulong4, ulong4);
9267long8 __ovld __cnfn clamp(long8, long8, long8);
9268ulong8 __ovld __cnfn clamp(ulong8, ulong8, ulong8);
9269long16 __ovld __cnfn clamp(long16, long16, long16);
9270ulong16 __ovld __cnfn clamp(ulong16, ulong16, ulong16);
9271char2 __ovld __cnfn clamp(char2, char, char);
9272uchar2 __ovld __cnfn clamp(uchar2, uchar, uchar);
9273char3 __ovld __cnfn clamp(char3, char, char);
9274uchar3 __ovld __cnfn clamp(uchar3, uchar, uchar);
9275char4 __ovld __cnfn clamp(char4, char, char);
9276uchar4 __ovld __cnfn clamp(uchar4, uchar, uchar);
9277char8 __ovld __cnfn clamp(char8, char, char);
9278uchar8 __ovld __cnfn clamp(uchar8, uchar, uchar);
9279char16 __ovld __cnfn clamp(char16, char, char);
9280uchar16 __ovld __cnfn clamp(uchar16, uchar, uchar);
9281short2 __ovld __cnfn clamp(short2, short, short);
9282ushort2 __ovld __cnfn clamp(ushort2, ushort, ushort);
9283short3 __ovld __cnfn clamp(short3, short, short);
9284ushort3 __ovld __cnfn clamp(ushort3, ushort, ushort);
9285short4 __ovld __cnfn clamp(short4, short, short);
9286ushort4 __ovld __cnfn clamp(ushort4, ushort, ushort);
9287short8 __ovld __cnfn clamp(short8, short, short);
9288ushort8 __ovld __cnfn clamp(ushort8, ushort, ushort);
9289short16 __ovld __cnfn clamp(short16, short, short);
9290ushort16 __ovld __cnfn clamp(ushort16, ushort, ushort);
9291int2 __ovld __cnfn clamp(int2, int, int);
9292uint2 __ovld __cnfn clamp(uint2, uint, uint);
9293int3 __ovld __cnfn clamp(int3, int, int);
9294uint3 __ovld __cnfn clamp(uint3, uint, uint);
9295int4 __ovld __cnfn clamp(int4, int, int);
9296uint4 __ovld __cnfn clamp(uint4, uint, uint);
9297int8 __ovld __cnfn clamp(int8, int, int);
9298uint8 __ovld __cnfn clamp(uint8, uint, uint);
9299int16 __ovld __cnfn clamp(int16, int, int);
9300uint16 __ovld __cnfn clamp(uint16, uint, uint);
9301long2 __ovld __cnfn clamp(long2, long, long);
9302ulong2 __ovld __cnfn clamp(ulong2, ulong, ulong);
9303long3 __ovld __cnfn clamp(long3, long, long);
9304ulong3 __ovld __cnfn clamp(ulong3, ulong, ulong);
9305long4 __ovld __cnfn clamp(long4, long, long);
9306ulong4 __ovld __cnfn clamp(ulong4, ulong, ulong);
9307long8 __ovld __cnfn clamp(long8, long, long);
9308ulong8 __ovld __cnfn clamp(ulong8, ulong, ulong);
9309long16 __ovld __cnfn clamp(long16, long, long);
9310ulong16 __ovld __cnfn clamp(ulong16, ulong, ulong);
9311
9312/**
9313 * Returns the number of leading 0-bits in x, starting
9314 * at the most significant bit position.
9315 */
9316char __ovld __cnfn clz(char);
9318char2 __ovld __cnfn clz(char2);
9319uchar2 __ovld __cnfn clz(uchar2);
9320char3 __ovld __cnfn clz(char3);
9321uchar3 __ovld __cnfn clz(uchar3);
9322char4 __ovld __cnfn clz(char4);
9323uchar4 __ovld __cnfn clz(uchar4);
9324char8 __ovld __cnfn clz(char8);
9325uchar8 __ovld __cnfn clz(uchar8);
9326char16 __ovld __cnfn clz(char16);
9327uchar16 __ovld __cnfn clz(uchar16);
9328short __ovld __cnfn clz(short);
9330short2 __ovld __cnfn clz(short2);
9331ushort2 __ovld __cnfn clz(ushort2);
9332short3 __ovld __cnfn clz(short3);
9333ushort3 __ovld __cnfn clz(ushort3);
9334short4 __ovld __cnfn clz(short4);
9335ushort4 __ovld __cnfn clz(ushort4);
9336short8 __ovld __cnfn clz(short8);
9337ushort8 __ovld __cnfn clz(ushort8);
9338short16 __ovld __cnfn clz(short16);
9339ushort16 __ovld __cnfn clz(ushort16);
9341uint __ovld __cnfn clz(uint);
9342int2 __ovld __cnfn clz(int2);
9343uint2 __ovld __cnfn clz(uint2);
9344int3 __ovld __cnfn clz(int3);
9345uint3 __ovld __cnfn clz(uint3);
9346int4 __ovld __cnfn clz(int4);
9347uint4 __ovld __cnfn clz(uint4);
9348int8 __ovld __cnfn clz(int8);
9349uint8 __ovld __cnfn clz(uint8);
9350int16 __ovld __cnfn clz(int16);
9351uint16 __ovld __cnfn clz(uint16);
9352long __ovld __cnfn clz(long);
9354long2 __ovld __cnfn clz(long2);
9355ulong2 __ovld __cnfn clz(ulong2);
9356long3 __ovld __cnfn clz(long3);
9357ulong3 __ovld __cnfn clz(ulong3);
9358long4 __ovld __cnfn clz(long4);
9359ulong4 __ovld __cnfn clz(ulong4);
9360long8 __ovld __cnfn clz(long8);
9361ulong8 __ovld __cnfn clz(ulong8);
9362long16 __ovld __cnfn clz(long16);
9363ulong16 __ovld __cnfn clz(ulong16);
9364
9365/**
9366 * Returns the count of trailing 0-bits in x. If x is 0,
9367 * returns the size in bits of the type of x or
9368 * component type of x, if x is a vector.
9369 */
9370#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9371char __ovld __cnfn ctz(char);
9373char2 __ovld __cnfn ctz(char2);
9374uchar2 __ovld __cnfn ctz(uchar2);
9375char3 __ovld __cnfn ctz(char3);
9376uchar3 __ovld __cnfn ctz(uchar3);
9377char4 __ovld __cnfn ctz(char4);
9378uchar4 __ovld __cnfn ctz(uchar4);
9379char8 __ovld __cnfn ctz(char8);
9380uchar8 __ovld __cnfn ctz(uchar8);
9381char16 __ovld __cnfn ctz(char16);
9382uchar16 __ovld __cnfn ctz(uchar16);
9383short __ovld __cnfn ctz(short);
9385short2 __ovld __cnfn ctz(short2);
9386ushort2 __ovld __cnfn ctz(ushort2);
9387short3 __ovld __cnfn ctz(short3);
9388ushort3 __ovld __cnfn ctz(ushort3);
9389short4 __ovld __cnfn ctz(short4);
9390ushort4 __ovld __cnfn ctz(ushort4);
9391short8 __ovld __cnfn ctz(short8);
9392ushort8 __ovld __cnfn ctz(ushort8);
9393short16 __ovld __cnfn ctz(short16);
9394ushort16 __ovld __cnfn ctz(ushort16);
9396uint __ovld __cnfn ctz(uint);
9397int2 __ovld __cnfn ctz(int2);
9398uint2 __ovld __cnfn ctz(uint2);
9399int3 __ovld __cnfn ctz(int3);
9400uint3 __ovld __cnfn ctz(uint3);
9401int4 __ovld __cnfn ctz(int4);
9402uint4 __ovld __cnfn ctz(uint4);
9403int8 __ovld __cnfn ctz(int8);
9404uint8 __ovld __cnfn ctz(uint8);
9405int16 __ovld __cnfn ctz(int16);
9406uint16 __ovld __cnfn ctz(uint16);
9407long __ovld __cnfn ctz(long);
9409long2 __ovld __cnfn ctz(long2);
9410ulong2 __ovld __cnfn ctz(ulong2);
9411long3 __ovld __cnfn ctz(long3);
9412ulong3 __ovld __cnfn ctz(ulong3);
9413long4 __ovld __cnfn ctz(long4);
9414ulong4 __ovld __cnfn ctz(ulong4);
9415long8 __ovld __cnfn ctz(long8);
9416ulong8 __ovld __cnfn ctz(ulong8);
9417long16 __ovld __cnfn ctz(long16);
9418ulong16 __ovld __cnfn ctz(ulong16);
9419#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0)
9420
9421/**
9422 * Returns mul_hi(a, b) + c.
9423 */
9424char __ovld __cnfn mad_hi(char, char, char);
9426char2 __ovld __cnfn mad_hi(char2, char2, char2);
9427uchar2 __ovld __cnfn mad_hi(uchar2, uchar2, uchar2);
9428char3 __ovld __cnfn mad_hi(char3, char3, char3);
9429uchar3 __ovld __cnfn mad_hi(uchar3, uchar3, uchar3);
9430char4 __ovld __cnfn mad_hi(char4, char4, char4);
9431uchar4 __ovld __cnfn mad_hi(uchar4, uchar4, uchar4);
9432char8 __ovld __cnfn mad_hi(char8, char8, char8);
9433uchar8 __ovld __cnfn mad_hi(uchar8, uchar8, uchar8);
9434char16 __ovld __cnfn mad_hi(char16, char16, char16);
9435uchar16 __ovld __cnfn mad_hi(uchar16, uchar16, uchar16);
9436short __ovld __cnfn mad_hi(short, short, short);
9438short2 __ovld __cnfn mad_hi(short2, short2, short2);
9439ushort2 __ovld __cnfn mad_hi(ushort2, ushort2, ushort2);
9440short3 __ovld __cnfn mad_hi(short3, short3, short3);
9441ushort3 __ovld __cnfn mad_hi(ushort3, ushort3, ushort3);
9442short4 __ovld __cnfn mad_hi(short4, short4, short4);
9443ushort4 __ovld __cnfn mad_hi(ushort4, ushort4, ushort4);
9444short8 __ovld __cnfn mad_hi(short8, short8, short8);
9445ushort8 __ovld __cnfn mad_hi(ushort8, ushort8, ushort8);
9446short16 __ovld __cnfn mad_hi(short16, short16, short16);
9447ushort16 __ovld __cnfn mad_hi(ushort16, ushort16, ushort16);
9448int __ovld __cnfn mad_hi(int, int, int);
9449uint __ovld __cnfn mad_hi(uint, uint, uint);
9450int2 __ovld __cnfn mad_hi(int2, int2, int2);
9451uint2 __ovld __cnfn mad_hi(uint2, uint2, uint2);
9452int3 __ovld __cnfn mad_hi(int3, int3, int3);
9453uint3 __ovld __cnfn mad_hi(uint3, uint3, uint3);
9454int4 __ovld __cnfn mad_hi(int4, int4, int4);
9455uint4 __ovld __cnfn mad_hi(uint4, uint4, uint4);
9456int8 __ovld __cnfn mad_hi(int8, int8, int8);
9457uint8 __ovld __cnfn mad_hi(uint8, uint8, uint8);
9458int16 __ovld __cnfn mad_hi(int16, int16, int16);
9459uint16 __ovld __cnfn mad_hi(uint16, uint16, uint16);
9460long __ovld __cnfn mad_hi(long, long, long);
9462long2 __ovld __cnfn mad_hi(long2, long2, long2);
9463ulong2 __ovld __cnfn mad_hi(ulong2, ulong2, ulong2);
9464long3 __ovld __cnfn mad_hi(long3, long3, long3);
9465ulong3 __ovld __cnfn mad_hi(ulong3, ulong3, ulong3);
9466long4 __ovld __cnfn mad_hi(long4, long4, long4);
9467ulong4 __ovld __cnfn mad_hi(ulong4, ulong4, ulong4);
9468long8 __ovld __cnfn mad_hi(long8, long8, long8);
9469ulong8 __ovld __cnfn mad_hi(ulong8, ulong8, ulong8);
9470long16 __ovld __cnfn mad_hi(long16, long16, long16);
9471ulong16 __ovld __cnfn mad_hi(ulong16, ulong16, ulong16);
9472
9473/**
9474 * Returns a * b + c and saturates the result.
9475 */
9476char __ovld __cnfn mad_sat(char, char, char);
9478char2 __ovld __cnfn mad_sat(char2, char2, char2);
9479uchar2 __ovld __cnfn mad_sat(uchar2, uchar2, uchar2);
9480char3 __ovld __cnfn mad_sat(char3, char3, char3);
9481uchar3 __ovld __cnfn mad_sat(uchar3, uchar3, uchar3);
9482char4 __ovld __cnfn mad_sat(char4, char4, char4);
9483uchar4 __ovld __cnfn mad_sat(uchar4, uchar4, uchar4);
9484char8 __ovld __cnfn mad_sat(char8, char8, char8);
9485uchar8 __ovld __cnfn mad_sat(uchar8, uchar8, uchar8);
9486char16 __ovld __cnfn mad_sat(char16, char16, char16);
9487uchar16 __ovld __cnfn mad_sat(uchar16, uchar16, uchar16);
9488short __ovld __cnfn mad_sat(short, short, short);
9490short2 __ovld __cnfn mad_sat(short2, short2, short2);
9491ushort2 __ovld __cnfn mad_sat(ushort2, ushort2, ushort2);
9492short3 __ovld __cnfn mad_sat(short3, short3, short3);
9493ushort3 __ovld __cnfn mad_sat(ushort3, ushort3, ushort3);
9494short4 __ovld __cnfn mad_sat(short4, short4, short4);
9495ushort4 __ovld __cnfn mad_sat(ushort4, ushort4, ushort4);
9496short8 __ovld __cnfn mad_sat(short8, short8, short8);
9497ushort8 __ovld __cnfn mad_sat(ushort8, ushort8, ushort8);
9498short16 __ovld __cnfn mad_sat(short16, short16, short16);
9499ushort16 __ovld __cnfn mad_sat(ushort16, ushort16, ushort16);
9500int __ovld __cnfn mad_sat(int, int, int);
9501uint __ovld __cnfn mad_sat(uint, uint, uint);
9502int2 __ovld __cnfn mad_sat(int2, int2, int2);
9503uint2 __ovld __cnfn mad_sat(uint2, uint2, uint2);
9504int3 __ovld __cnfn mad_sat(int3, int3, int3);
9505uint3 __ovld __cnfn mad_sat(uint3, uint3, uint3);
9506int4 __ovld __cnfn mad_sat(int4, int4, int4);
9507uint4 __ovld __cnfn mad_sat(uint4, uint4, uint4);
9508int8 __ovld __cnfn mad_sat(int8, int8, int8);
9509uint8 __ovld __cnfn mad_sat(uint8, uint8, uint8);
9510int16 __ovld __cnfn mad_sat(int16, int16, int16);
9511uint16 __ovld __cnfn mad_sat(uint16, uint16, uint16);
9512long __ovld __cnfn mad_sat(long, long, long);
9514long2 __ovld __cnfn mad_sat(long2, long2, long2);
9515ulong2 __ovld __cnfn mad_sat(ulong2, ulong2, ulong2);
9516long3 __ovld __cnfn mad_sat(long3, long3, long3);
9517ulong3 __ovld __cnfn mad_sat(ulong3, ulong3, ulong3);
9518long4 __ovld __cnfn mad_sat(long4, long4, long4);
9519ulong4 __ovld __cnfn mad_sat(ulong4, ulong4, ulong4);
9520long8 __ovld __cnfn mad_sat(long8, long8, long8);
9521ulong8 __ovld __cnfn mad_sat(ulong8, ulong8, ulong8);
9522long16 __ovld __cnfn mad_sat(long16, long16, long16);
9523ulong16 __ovld __cnfn mad_sat(ulong16, ulong16, ulong16);
9524
9525/**
9526 * Returns y if x < y, otherwise it returns x.
9527 */
9528char __ovld __cnfn max(char, char);
9530char2 __ovld __cnfn max(char2, char2);
9531uchar2 __ovld __cnfn max(uchar2, uchar2);
9532char3 __ovld __cnfn max(char3, char3);
9533uchar3 __ovld __cnfn max(uchar3, uchar3);
9534char4 __ovld __cnfn max(char4, char4);
9535uchar4 __ovld __cnfn max(uchar4, uchar4);
9536char8 __ovld __cnfn max(char8, char8);
9537uchar8 __ovld __cnfn max(uchar8, uchar8);
9538char16 __ovld __cnfn max(char16, char16);
9539uchar16 __ovld __cnfn max(uchar16, uchar16);
9540short __ovld __cnfn max(short, short);
9542short2 __ovld __cnfn max(short2, short2);
9543ushort2 __ovld __cnfn max(ushort2, ushort2);
9544short3 __ovld __cnfn max(short3, short3);
9545ushort3 __ovld __cnfn max(ushort3, ushort3);
9546short4 __ovld __cnfn max(short4, short4);
9547ushort4 __ovld __cnfn max(ushort4, ushort4);
9548short8 __ovld __cnfn max(short8, short8);
9549ushort8 __ovld __cnfn max(ushort8, ushort8);
9550short16 __ovld __cnfn max(short16, short16);
9551ushort16 __ovld __cnfn max(ushort16, ushort16);
9552int __ovld __cnfn max(int, int);
9553uint __ovld __cnfn max(uint, uint);
9554int2 __ovld __cnfn max(int2, int2);
9555uint2 __ovld __cnfn max(uint2, uint2);
9556int3 __ovld __cnfn max(int3, int3);
9557uint3 __ovld __cnfn max(uint3, uint3);
9558int4 __ovld __cnfn max(int4, int4);
9559uint4 __ovld __cnfn max(uint4, uint4);
9560int8 __ovld __cnfn max(int8, int8);
9561uint8 __ovld __cnfn max(uint8, uint8);
9562int16 __ovld __cnfn max(int16, int16);
9563uint16 __ovld __cnfn max(uint16, uint16);
9564long __ovld __cnfn max(long, long);
9566long2 __ovld __cnfn max(long2, long2);
9567ulong2 __ovld __cnfn max(ulong2, ulong2);
9568long3 __ovld __cnfn max(long3, long3);
9569ulong3 __ovld __cnfn max(ulong3, ulong3);
9570long4 __ovld __cnfn max(long4, long4);
9571ulong4 __ovld __cnfn max(ulong4, ulong4);
9572long8 __ovld __cnfn max(long8, long8);
9573ulong8 __ovld __cnfn max(ulong8, ulong8);
9574long16 __ovld __cnfn max(long16, long16);
9575ulong16 __ovld __cnfn max(ulong16, ulong16);
9576char2 __ovld __cnfn max(char2, char);
9577uchar2 __ovld __cnfn max(uchar2, uchar);
9578char3 __ovld __cnfn max(char3, char);
9579uchar3 __ovld __cnfn max(uchar3, uchar);
9580char4 __ovld __cnfn max(char4, char);
9581uchar4 __ovld __cnfn max(uchar4, uchar);
9582char8 __ovld __cnfn max(char8, char);
9583uchar8 __ovld __cnfn max(uchar8, uchar);
9584char16 __ovld __cnfn max(char16, char);
9585uchar16 __ovld __cnfn max(uchar16, uchar);
9586short2 __ovld __cnfn max(short2, short);
9587ushort2 __ovld __cnfn max(ushort2, ushort);
9588short3 __ovld __cnfn max(short3, short);
9589ushort3 __ovld __cnfn max(ushort3, ushort);
9590short4 __ovld __cnfn max(short4, short);
9591ushort4 __ovld __cnfn max(ushort4, ushort);
9592short8 __ovld __cnfn max(short8, short);
9593ushort8 __ovld __cnfn max(ushort8, ushort);
9594short16 __ovld __cnfn max(short16, short);
9595ushort16 __ovld __cnfn max(ushort16, ushort);
9596int2 __ovld __cnfn max(int2, int);
9597uint2 __ovld __cnfn max(uint2, uint);
9598int3 __ovld __cnfn max(int3, int);
9599uint3 __ovld __cnfn max(uint3, uint);
9600int4 __ovld __cnfn max(int4, int);
9601uint4 __ovld __cnfn max(uint4, uint);
9602int8 __ovld __cnfn max(int8, int);
9603uint8 __ovld __cnfn max(uint8, uint);
9604int16 __ovld __cnfn max(int16, int);
9605uint16 __ovld __cnfn max(uint16, uint);
9606long2 __ovld __cnfn max(long2, long);
9607ulong2 __ovld __cnfn max(ulong2, ulong);
9608long3 __ovld __cnfn max(long3, long);
9609ulong3 __ovld __cnfn max(ulong3, ulong);
9610long4 __ovld __cnfn max(long4, long);
9611ulong4 __ovld __cnfn max(ulong4, ulong);
9612long8 __ovld __cnfn max(long8, long);
9613ulong8 __ovld __cnfn max(ulong8, ulong);
9614long16 __ovld __cnfn max(long16, long);
9615ulong16 __ovld __cnfn max(ulong16, ulong);
9616
9617/**
9618 * Returns y if y < x, otherwise it returns x.
9619 */
9620char __ovld __cnfn min(char, char);
9622char2 __ovld __cnfn min(char2, char2);
9623uchar2 __ovld __cnfn min(uchar2, uchar2);
9624char3 __ovld __cnfn min(char3, char3);
9625uchar3 __ovld __cnfn min(uchar3, uchar3);
9626char4 __ovld __cnfn min(char4, char4);
9627uchar4 __ovld __cnfn min(uchar4, uchar4);
9628char8 __ovld __cnfn min(char8, char8);
9629uchar8 __ovld __cnfn min(uchar8, uchar8);
9630char16 __ovld __cnfn min(char16, char16);
9631uchar16 __ovld __cnfn min(uchar16, uchar16);
9632short __ovld __cnfn min(short, short);
9634short2 __ovld __cnfn min(short2, short2);
9635ushort2 __ovld __cnfn min(ushort2, ushort2);
9636short3 __ovld __cnfn min(short3, short3);
9637ushort3 __ovld __cnfn min(ushort3, ushort3);
9638short4 __ovld __cnfn min(short4, short4);
9639ushort4 __ovld __cnfn min(ushort4, ushort4);
9640short8 __ovld __cnfn min(short8, short8);
9641ushort8 __ovld __cnfn min(ushort8, ushort8);
9642short16 __ovld __cnfn min(short16, short16);
9643ushort16 __ovld __cnfn min(ushort16, ushort16);
9644int __ovld __cnfn min(int, int);
9645uint __ovld __cnfn min(uint, uint);
9646int2 __ovld __cnfn min(int2, int2);
9647uint2 __ovld __cnfn min(uint2, uint2);
9648int3 __ovld __cnfn min(int3, int3);
9649uint3 __ovld __cnfn min(uint3, uint3);
9650int4 __ovld __cnfn min(int4, int4);
9651uint4 __ovld __cnfn min(uint4, uint4);
9652int8 __ovld __cnfn min(int8, int8);
9653uint8 __ovld __cnfn min(uint8, uint8);
9654int16 __ovld __cnfn min(int16, int16);
9655uint16 __ovld __cnfn min(uint16, uint16);
9656long __ovld __cnfn min(long, long);
9658long2 __ovld __cnfn min(long2, long2);
9659ulong2 __ovld __cnfn min(ulong2, ulong2);
9660long3 __ovld __cnfn min(long3, long3);
9661ulong3 __ovld __cnfn min(ulong3, ulong3);
9662long4 __ovld __cnfn min(long4, long4);
9663ulong4 __ovld __cnfn min(ulong4, ulong4);
9664long8 __ovld __cnfn min(long8, long8);
9665ulong8 __ovld __cnfn min(ulong8, ulong8);
9666long16 __ovld __cnfn min(long16, long16);
9667ulong16 __ovld __cnfn min(ulong16, ulong16);
9668char2 __ovld __cnfn min(char2, char);
9669uchar2 __ovld __cnfn min(uchar2, uchar);
9670char3 __ovld __cnfn min(char3, char);
9671uchar3 __ovld __cnfn min(uchar3, uchar);
9672char4 __ovld __cnfn min(char4, char);
9673uchar4 __ovld __cnfn min(uchar4, uchar);
9674char8 __ovld __cnfn min(char8, char);
9675uchar8 __ovld __cnfn min(uchar8, uchar);
9676char16 __ovld __cnfn min(char16, char);
9677uchar16 __ovld __cnfn min(uchar16, uchar);
9678short2 __ovld __cnfn min(short2, short);
9679ushort2 __ovld __cnfn min(ushort2, ushort);
9680short3 __ovld __cnfn min(short3, short);
9681ushort3 __ovld __cnfn min(ushort3, ushort);
9682short4 __ovld __cnfn min(short4, short);
9683ushort4 __ovld __cnfn min(ushort4, ushort);
9684short8 __ovld __cnfn min(short8, short);
9685ushort8 __ovld __cnfn min(ushort8, ushort);
9686short16 __ovld __cnfn min(short16, short);
9687ushort16 __ovld __cnfn min(ushort16, ushort);
9688int2 __ovld __cnfn min(int2, int);
9689uint2 __ovld __cnfn min(uint2, uint);
9690int3 __ovld __cnfn min(int3, int);
9691uint3 __ovld __cnfn min(uint3, uint);
9692int4 __ovld __cnfn min(int4, int);
9693uint4 __ovld __cnfn min(uint4, uint);
9694int8 __ovld __cnfn min(int8, int);
9695uint8 __ovld __cnfn min(uint8, uint);
9696int16 __ovld __cnfn min(int16, int);
9697uint16 __ovld __cnfn min(uint16, uint);
9698long2 __ovld __cnfn min(long2, long);
9699ulong2 __ovld __cnfn min(ulong2, ulong);
9700long3 __ovld __cnfn min(long3, long);
9701ulong3 __ovld __cnfn min(ulong3, ulong);
9702long4 __ovld __cnfn min(long4, long);
9703ulong4 __ovld __cnfn min(ulong4, ulong);
9704long8 __ovld __cnfn min(long8, long);
9705ulong8 __ovld __cnfn min(ulong8, ulong);
9706long16 __ovld __cnfn min(long16, long);
9707ulong16 __ovld __cnfn min(ulong16, ulong);
9708
9709/**
9710 * Computes x * y and returns the high half of the
9711 * product of x and y.
9712 */
9713char __ovld __cnfn mul_hi(char, char);
9715char2 __ovld __cnfn mul_hi(char2, char2);
9716uchar2 __ovld __cnfn mul_hi(uchar2, uchar2);
9717char3 __ovld __cnfn mul_hi(char3, char3);
9718uchar3 __ovld __cnfn mul_hi(uchar3, uchar3);
9719char4 __ovld __cnfn mul_hi(char4, char4);
9720uchar4 __ovld __cnfn mul_hi(uchar4, uchar4);
9721char8 __ovld __cnfn mul_hi(char8, char8);
9722uchar8 __ovld __cnfn mul_hi(uchar8, uchar8);
9723char16 __ovld __cnfn mul_hi(char16, char16);
9724uchar16 __ovld __cnfn mul_hi(uchar16, uchar16);
9725short __ovld __cnfn mul_hi(short, short);
9727short2 __ovld __cnfn mul_hi(short2, short2);
9728ushort2 __ovld __cnfn mul_hi(ushort2, ushort2);
9729short3 __ovld __cnfn mul_hi(short3, short3);
9730ushort3 __ovld __cnfn mul_hi(ushort3, ushort3);
9731short4 __ovld __cnfn mul_hi(short4, short4);
9732ushort4 __ovld __cnfn mul_hi(ushort4, ushort4);
9733short8 __ovld __cnfn mul_hi(short8, short8);
9734ushort8 __ovld __cnfn mul_hi(ushort8, ushort8);
9735short16 __ovld __cnfn mul_hi(short16, short16);
9736ushort16 __ovld __cnfn mul_hi(ushort16, ushort16);
9737int __ovld __cnfn mul_hi(int, int);
9738uint __ovld __cnfn mul_hi(uint, uint);
9739int2 __ovld __cnfn mul_hi(int2, int2);
9740uint2 __ovld __cnfn mul_hi(uint2, uint2);
9741int3 __ovld __cnfn mul_hi(int3, int3);
9742uint3 __ovld __cnfn mul_hi(uint3, uint3);
9743int4 __ovld __cnfn mul_hi(int4, int4);
9744uint4 __ovld __cnfn mul_hi(uint4, uint4);
9745int8 __ovld __cnfn mul_hi(int8, int8);
9746uint8 __ovld __cnfn mul_hi(uint8, uint8);
9747int16 __ovld __cnfn mul_hi(int16, int16);
9748uint16 __ovld __cnfn mul_hi(uint16, uint16);
9749long __ovld __cnfn mul_hi(long, long);
9751long2 __ovld __cnfn mul_hi(long2, long2);
9752ulong2 __ovld __cnfn mul_hi(ulong2, ulong2);
9753long3 __ovld __cnfn mul_hi(long3, long3);
9754ulong3 __ovld __cnfn mul_hi(ulong3, ulong3);
9755long4 __ovld __cnfn mul_hi(long4, long4);
9756ulong4 __ovld __cnfn mul_hi(ulong4, ulong4);
9757long8 __ovld __cnfn mul_hi(long8, long8);
9758ulong8 __ovld __cnfn mul_hi(ulong8, ulong8);
9759long16 __ovld __cnfn mul_hi(long16, long16);
9760ulong16 __ovld __cnfn mul_hi(ulong16, ulong16);
9761
9762/**
9763 * For each element in v, the bits are shifted left by
9764 * the number of bits given by the corresponding
9765 * element in i (subject to usual shift modulo rules
9766 * described in section 6.3). Bits shifted off the left
9767 * side of the element are shifted back in from the
9768 * right.
9769 */
9770char __ovld __cnfn rotate(char, char);
9772char2 __ovld __cnfn rotate(char2, char2);
9773uchar2 __ovld __cnfn rotate(uchar2, uchar2);
9774char3 __ovld __cnfn rotate(char3, char3);
9775uchar3 __ovld __cnfn rotate(uchar3, uchar3);
9776char4 __ovld __cnfn rotate(char4, char4);
9777uchar4 __ovld __cnfn rotate(uchar4, uchar4);
9778char8 __ovld __cnfn rotate(char8, char8);
9779uchar8 __ovld __cnfn rotate(uchar8, uchar8);
9780char16 __ovld __cnfn rotate(char16, char16);
9781uchar16 __ovld __cnfn rotate(uchar16, uchar16);
9782short __ovld __cnfn rotate(short, short);
9784short2 __ovld __cnfn rotate(short2, short2);
9785ushort2 __ovld __cnfn rotate(ushort2, ushort2);
9786short3 __ovld __cnfn rotate(short3, short3);
9787ushort3 __ovld __cnfn rotate(ushort3, ushort3);
9788short4 __ovld __cnfn rotate(short4, short4);
9789ushort4 __ovld __cnfn rotate(ushort4, ushort4);
9790short8 __ovld __cnfn rotate(short8, short8);
9791ushort8 __ovld __cnfn rotate(ushort8, ushort8);
9792short16 __ovld __cnfn rotate(short16, short16);
9793ushort16 __ovld __cnfn rotate(ushort16, ushort16);
9794int __ovld __cnfn rotate(int, int);
9795uint __ovld __cnfn rotate(uint, uint);
9796int2 __ovld __cnfn rotate(int2, int2);
9797uint2 __ovld __cnfn rotate(uint2, uint2);
9798int3 __ovld __cnfn rotate(int3, int3);
9799uint3 __ovld __cnfn rotate(uint3, uint3);
9800int4 __ovld __cnfn rotate(int4, int4);
9801uint4 __ovld __cnfn rotate(uint4, uint4);
9802int8 __ovld __cnfn rotate(int8, int8);
9803uint8 __ovld __cnfn rotate(uint8, uint8);
9804int16 __ovld __cnfn rotate(int16, int16);
9805uint16 __ovld __cnfn rotate(uint16, uint16);
9806long __ovld __cnfn rotate(long, long);
9808long2 __ovld __cnfn rotate(long2, long2);
9809ulong2 __ovld __cnfn rotate(ulong2, ulong2);
9810long3 __ovld __cnfn rotate(long3, long3);
9811ulong3 __ovld __cnfn rotate(ulong3, ulong3);
9812long4 __ovld __cnfn rotate(long4, long4);
9813ulong4 __ovld __cnfn rotate(ulong4, ulong4);
9814long8 __ovld __cnfn rotate(long8, long8);
9815ulong8 __ovld __cnfn rotate(ulong8, ulong8);
9816long16 __ovld __cnfn rotate(long16, long16);
9817ulong16 __ovld __cnfn rotate(ulong16, ulong16);
9818
9819/**
9820 * Returns x - y and saturates the result.
9821 */
9822char __ovld __cnfn sub_sat(char, char);
9824char2 __ovld __cnfn sub_sat(char2, char2);
9825uchar2 __ovld __cnfn sub_sat(uchar2, uchar2);
9826char3 __ovld __cnfn sub_sat(char3, char3);
9827uchar3 __ovld __cnfn sub_sat(uchar3, uchar3);
9828char4 __ovld __cnfn sub_sat(char4, char4);
9829uchar4 __ovld __cnfn sub_sat(uchar4, uchar4);
9830char8 __ovld __cnfn sub_sat(char8, char8);
9831uchar8 __ovld __cnfn sub_sat(uchar8, uchar8);
9832char16 __ovld __cnfn sub_sat(char16, char16);
9833uchar16 __ovld __cnfn sub_sat(uchar16, uchar16);
9834short __ovld __cnfn sub_sat(short, short);
9836short2 __ovld __cnfn sub_sat(short2, short2);
9837ushort2 __ovld __cnfn sub_sat(ushort2, ushort2);
9838short3 __ovld __cnfn sub_sat(short3, short3);
9839ushort3 __ovld __cnfn sub_sat(ushort3, ushort3);
9840short4 __ovld __cnfn sub_sat(short4, short4);
9841ushort4 __ovld __cnfn sub_sat(ushort4, ushort4);
9842short8 __ovld __cnfn sub_sat(short8, short8);
9843ushort8 __ovld __cnfn sub_sat(ushort8, ushort8);
9844short16 __ovld __cnfn sub_sat(short16, short16);
9845ushort16 __ovld __cnfn sub_sat(ushort16, ushort16);
9846int __ovld __cnfn sub_sat(int, int);
9847uint __ovld __cnfn sub_sat(uint, uint);
9848int2 __ovld __cnfn sub_sat(int2, int2);
9849uint2 __ovld __cnfn sub_sat(uint2, uint2);
9850int3 __ovld __cnfn sub_sat(int3, int3);
9851uint3 __ovld __cnfn sub_sat(uint3, uint3);
9852int4 __ovld __cnfn sub_sat(int4, int4);
9853uint4 __ovld __cnfn sub_sat(uint4, uint4);
9854int8 __ovld __cnfn sub_sat(int8, int8);
9855uint8 __ovld __cnfn sub_sat(uint8, uint8);
9856int16 __ovld __cnfn sub_sat(int16, int16);
9857uint16 __ovld __cnfn sub_sat(uint16, uint16);
9858long __ovld __cnfn sub_sat(long, long);
9860long2 __ovld __cnfn sub_sat(long2, long2);
9861ulong2 __ovld __cnfn sub_sat(ulong2, ulong2);
9862long3 __ovld __cnfn sub_sat(long3, long3);
9863ulong3 __ovld __cnfn sub_sat(ulong3, ulong3);
9864long4 __ovld __cnfn sub_sat(long4, long4);
9865ulong4 __ovld __cnfn sub_sat(ulong4, ulong4);
9866long8 __ovld __cnfn sub_sat(long8, long8);
9867ulong8 __ovld __cnfn sub_sat(ulong8, ulong8);
9868long16 __ovld __cnfn sub_sat(long16, long16);
9869ulong16 __ovld __cnfn sub_sat(ulong16, ulong16);
9870
9871/**
9872 * result[i] = ((short)hi[i] << 8) | lo[i]
9873 * result[i] = ((ushort)hi[i] << 8) | lo[i]
9874 */
9877short2 __ovld __cnfn upsample(char2, uchar2);
9878short3 __ovld __cnfn upsample(char3, uchar3);
9879short4 __ovld __cnfn upsample(char4, uchar4);
9880short8 __ovld __cnfn upsample(char8, uchar8);
9881short16 __ovld __cnfn upsample(char16, uchar16);
9882ushort2 __ovld __cnfn upsample(uchar2, uchar2);
9883ushort3 __ovld __cnfn upsample(uchar3, uchar3);
9884ushort4 __ovld __cnfn upsample(uchar4, uchar4);
9885ushort8 __ovld __cnfn upsample(uchar8, uchar8);
9886ushort16 __ovld __cnfn upsample(uchar16, uchar16);
9887
9888/**
9889 * result[i] = ((int)hi[i] << 16) | lo[i]
9890 * result[i] = ((uint)hi[i] << 16) | lo[i]
9891 */
9894int2 __ovld __cnfn upsample(short2, ushort2);
9895int3 __ovld __cnfn upsample(short3, ushort3);
9896int4 __ovld __cnfn upsample(short4, ushort4);
9897int8 __ovld __cnfn upsample(short8, ushort8);
9898int16 __ovld __cnfn upsample(short16, ushort16);
9899uint2 __ovld __cnfn upsample(ushort2, ushort2);
9900uint3 __ovld __cnfn upsample(ushort3, ushort3);
9901uint4 __ovld __cnfn upsample(ushort4, ushort4);
9902uint8 __ovld __cnfn upsample(ushort8, ushort8);
9903uint16 __ovld __cnfn upsample(ushort16, ushort16);
9904/**
9905 * result[i] = ((long)hi[i] << 32) | lo[i]
9906 * result[i] = ((ulong)hi[i] << 32) | lo[i]
9907 */
9908long __ovld __cnfn upsample(int, uint);
9910long2 __ovld __cnfn upsample(int2, uint2);
9911long3 __ovld __cnfn upsample(int3, uint3);
9912long4 __ovld __cnfn upsample(int4, uint4);
9913long8 __ovld __cnfn upsample(int8, uint8);
9914long16 __ovld __cnfn upsample(int16, uint16);
9915ulong2 __ovld __cnfn upsample(uint2, uint2);
9916ulong3 __ovld __cnfn upsample(uint3, uint3);
9917ulong4 __ovld __cnfn upsample(uint4, uint4);
9918ulong8 __ovld __cnfn upsample(uint8, uint8);
9919ulong16 __ovld __cnfn upsample(uint16, uint16);
9920
9921/*
9922 * popcount(x): returns the number of set bit in x
9923 */
9924#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
9928uchar2 __ovld __cnfn popcount(uchar2);
9930uchar3 __ovld __cnfn popcount(uchar3);
9932uchar4 __ovld __cnfn popcount(uchar4);
9934uchar8 __ovld __cnfn popcount(uchar8);
9935char16 __ovld __cnfn popcount(char16);
9936uchar16 __ovld __cnfn popcount(uchar16);
9939short2 __ovld __cnfn popcount(short2);
9940ushort2 __ovld __cnfn popcount(ushort2);
9941short3 __ovld __cnfn popcount(short3);
9942ushort3 __ovld __cnfn popcount(ushort3);
9943short4 __ovld __cnfn popcount(short4);
9944ushort4 __ovld __cnfn popcount(ushort4);
9945short8 __ovld __cnfn popcount(short8);
9946ushort8 __ovld __cnfn popcount(ushort8);
9947short16 __ovld __cnfn popcount(short16);
9948ushort16 __ovld __cnfn popcount(ushort16);
9960uint16 __ovld __cnfn popcount(uint16);
9964ulong2 __ovld __cnfn popcount(ulong2);
9966ulong3 __ovld __cnfn popcount(ulong3);
9968ulong4 __ovld __cnfn popcount(ulong4);
9970ulong8 __ovld __cnfn popcount(ulong8);
9971long16 __ovld __cnfn popcount(long16);
9972ulong16 __ovld __cnfn popcount(ulong16);
9973#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)
9974
9975/**
9976 * Multiply two 24-bit integer values x and y and add
9977 * the 32-bit integer result to the 32-bit integer z.
9978 * Refer to definition of mul24 to see how the 24-bit
9979 * integer multiplication is performed.
9980 */
9981int __ovld __cnfn mad24(int, int, int);
9982uint __ovld __cnfn mad24(uint, uint, uint);
9983int2 __ovld __cnfn mad24(int2, int2, int2);
9984uint2 __ovld __cnfn mad24(uint2, uint2, uint2);
9985int3 __ovld __cnfn mad24(int3, int3, int3);
9986uint3 __ovld __cnfn mad24(uint3, uint3, uint3);
9987int4 __ovld __cnfn mad24(int4, int4, int4);
9988uint4 __ovld __cnfn mad24(uint4, uint4, uint4);
9989int8 __ovld __cnfn mad24(int8, int8, int8);
9990uint8 __ovld __cnfn mad24(uint8, uint8, uint8);
9991int16 __ovld __cnfn mad24(int16, int16, int16);
9992uint16 __ovld __cnfn mad24(uint16, uint16, uint16);
9993
9994/**
9995 * Multiply two 24-bit integer values x and y. x and y
9996 * are 32-bit integers but only the low 24-bits are used
9997 * to perform the multiplication. mul24 should only
9998 * be used when values in x and y are in the range [-
9999 * 2^23, 2^23-1] if x and y are signed integers and in the
10000 * range [0, 2^24-1] if x and y are unsigned integers. If
10001 * x and y are not in this range, the multiplication
10002 * result is implementation-defined.
10003 */
10004int __ovld __cnfn mul24(int, int);
10005uint __ovld __cnfn mul24(uint, uint);
10006int2 __ovld __cnfn mul24(int2, int2);
10007uint2 __ovld __cnfn mul24(uint2, uint2);
10008int3 __ovld __cnfn mul24(int3, int3);
10009uint3 __ovld __cnfn mul24(uint3, uint3);
10010int4 __ovld __cnfn mul24(int4, int4);
10011uint4 __ovld __cnfn mul24(uint4, uint4);
10012int8 __ovld __cnfn mul24(int8, int8);
10013uint8 __ovld __cnfn mul24(uint8, uint8);
10014int16 __ovld __cnfn mul24(int16, int16);
10015uint16 __ovld __cnfn mul24(uint16, uint16);
10016
10017// OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions
10018
10019/**
10020 * Returns fmin(fmax(x, minval), maxval).
10021 * Results are undefined if minval > maxval.
10022 */
10023float __ovld __cnfn clamp(float, float, float);
10024float2 __ovld __cnfn clamp(float2, float2, float2);
10025float3 __ovld __cnfn clamp(float3, float3, float3);
10026float4 __ovld __cnfn clamp(float4, float4, float4);
10027float8 __ovld __cnfn clamp(float8, float8, float8);
10028float16 __ovld __cnfn clamp(float16, float16, float16);
10029float2 __ovld __cnfn clamp(float2, float, float);
10030float3 __ovld __cnfn clamp(float3, float, float);
10031float4 __ovld __cnfn clamp(float4, float, float);
10032float8 __ovld __cnfn clamp(float8, float, float);
10033float16 __ovld __cnfn clamp(float16, float, float);
10034#ifdef cl_khr_fp64
10035double __ovld __cnfn clamp(double, double, double);
10036double2 __ovld __cnfn clamp(double2, double2, double2);
10037double3 __ovld __cnfn clamp(double3, double3, double3);
10038double4 __ovld __cnfn clamp(double4, double4, double4);
10039double8 __ovld __cnfn clamp(double8, double8, double8);
10040double16 __ovld __cnfn clamp(double16, double16, double16);
10041double2 __ovld __cnfn clamp(double2, double, double);
10042double3 __ovld __cnfn clamp(double3, double, double);
10043double4 __ovld __cnfn clamp(double4, double, double);
10044double8 __ovld __cnfn clamp(double8, double, double);
10045double16 __ovld __cnfn clamp(double16, double, double);
10046#endif //cl_khr_fp64
10047#ifdef cl_khr_fp16
10048half __ovld __cnfn clamp(half, half, half);
10049half2 __ovld __cnfn clamp(half2, half2, half2);
10050half3 __ovld __cnfn clamp(half3, half3, half3);
10051half4 __ovld __cnfn clamp(half4, half4, half4);
10052half8 __ovld __cnfn clamp(half8, half8, half8);
10053half16 __ovld __cnfn clamp(half16, half16, half16);
10054half2 __ovld __cnfn clamp(half2, half, half);
10055half3 __ovld __cnfn clamp(half3, half, half);
10056half4 __ovld __cnfn clamp(half4, half, half);
10057half8 __ovld __cnfn clamp(half8, half, half);
10058half16 __ovld __cnfn clamp(half16, half, half);
10059#endif //cl_khr_fp16
10060
10061/**
10062 * Converts radians to degrees, i.e. (180 / PI) *
10063 * radians.
10064 */
10065float __ovld __cnfn degrees(float);
10066float2 __ovld __cnfn degrees(float2);
10067float3 __ovld __cnfn degrees(float3);
10068float4 __ovld __cnfn degrees(float4);
10069float8 __ovld __cnfn degrees(float8);
10070float16 __ovld __cnfn degrees(float16);
10071#ifdef cl_khr_fp64
10072double __ovld __cnfn degrees(double);
10073double2 __ovld __cnfn degrees(double2);
10074double3 __ovld __cnfn degrees(double3);
10075double4 __ovld __cnfn degrees(double4);
10076double8 __ovld __cnfn degrees(double8);
10077double16 __ovld __cnfn degrees(double16);
10078#endif //cl_khr_fp64
10079#ifdef cl_khr_fp16
10080half __ovld __cnfn degrees(half);
10081half2 __ovld __cnfn degrees(half2);
10082half3 __ovld __cnfn degrees(half3);
10083half4 __ovld __cnfn degrees(half4);
10084half8 __ovld __cnfn degrees(half8);
10085half16 __ovld __cnfn degrees(half16);
10086#endif //cl_khr_fp16
10087
10088/**
10089 * Returns y if x < y, otherwise it returns x. If x and y
10090 * are infinite or NaN, the return values are undefined.
10091 */
10092float __ovld __cnfn max(float, float);
10093float2 __ovld __cnfn max(float2, float2);
10094float3 __ovld __cnfn max(float3, float3);
10095float4 __ovld __cnfn max(float4, float4);
10096float8 __ovld __cnfn max(float8, float8);
10097float16 __ovld __cnfn max(float16, float16);
10098float2 __ovld __cnfn max(float2, float);
10099float3 __ovld __cnfn max(float3, float);
10100float4 __ovld __cnfn max(float4, float);
10101float8 __ovld __cnfn max(float8, float);
10102float16 __ovld __cnfn max(float16, float);
10103#ifdef cl_khr_fp64
10104double __ovld __cnfn max(double, double);
10105double2 __ovld __cnfn max(double2, double2);
10106double3 __ovld __cnfn max(double3, double3);
10107double4 __ovld __cnfn max(double4, double4);
10108double8 __ovld __cnfn max(double8, double8);
10109double16 __ovld __cnfn max(double16, double16);
10110double2 __ovld __cnfn max(double2, double);
10111double3 __ovld __cnfn max(double3, double);
10112double4 __ovld __cnfn max(double4, double);
10113double8 __ovld __cnfn max(double8, double);
10114double16 __ovld __cnfn max(double16, double);
10115#endif //cl_khr_fp64
10116#ifdef cl_khr_fp16
10117half __ovld __cnfn max(half, half);
10118half2 __ovld __cnfn max(half2, half2);
10119half3 __ovld __cnfn max(half3, half3);
10120half4 __ovld __cnfn max(half4, half4);
10121half8 __ovld __cnfn max(half8, half8);
10122half16 __ovld __cnfn max(half16, half16);
10123half2 __ovld __cnfn max(half2, half);
10124half3 __ovld __cnfn max(half3, half);
10125half4 __ovld __cnfn max(half4, half);
10126half8 __ovld __cnfn max(half8, half);
10127half16 __ovld __cnfn max(half16, half);
10128#endif //cl_khr_fp16
10129
10130/**
10131 * Returns y if y < x, otherwise it returns x. If x and y
10132 * are infinite or NaN, the return values are undefined.
10133 */
10134float __ovld __cnfn min(float, float);
10135float2 __ovld __cnfn min(float2, float2);
10136float3 __ovld __cnfn min(float3, float3);
10137float4 __ovld __cnfn min(float4, float4);
10138float8 __ovld __cnfn min(float8, float8);
10139float16 __ovld __cnfn min(float16, float16);
10140float2 __ovld __cnfn min(float2, float);
10141float3 __ovld __cnfn min(float3, float);
10142float4 __ovld __cnfn min(float4, float);
10143float8 __ovld __cnfn min(float8, float);
10144float16 __ovld __cnfn min(float16, float);
10145#ifdef cl_khr_fp64
10146double __ovld __cnfn min(double, double);
10147double2 __ovld __cnfn min(double2, double2);
10148double3 __ovld __cnfn min(double3, double3);
10149double4 __ovld __cnfn min(double4, double4);
10150double8 __ovld __cnfn min(double8, double8);
10151double16 __ovld __cnfn min(double16, double16);
10152double2 __ovld __cnfn min(double2, double);
10153double3 __ovld __cnfn min(double3, double);
10154double4 __ovld __cnfn min(double4, double);
10155double8 __ovld __cnfn min(double8, double);
10156double16 __ovld __cnfn min(double16, double);
10157#endif //cl_khr_fp64
10158#ifdef cl_khr_fp16
10159half __ovld __cnfn min(half, half);
10160half2 __ovld __cnfn min(half2, half2);
10161half3 __ovld __cnfn min(half3, half3);
10162half4 __ovld __cnfn min(half4, half4);
10163half8 __ovld __cnfn min(half8, half8);
10164half16 __ovld __cnfn min(half16, half16);
10165half2 __ovld __cnfn min(half2, half);
10166half3 __ovld __cnfn min(half3, half);
10167half4 __ovld __cnfn min(half4, half);
10168half8 __ovld __cnfn min(half8, half);
10169half16 __ovld __cnfn min(half16, half);
10170#endif //cl_khr_fp16
10171
10172/**
10173 * Returns the linear blend of x & y implemented as:
10174 * x + (y - x) * a
10175 * a must be a value in the range 0.0 ... 1.0. If a is not
10176 * in the range 0.0 ... 1.0, the return values are
10177 * undefined.
10178 */
10179float __ovld __cnfn mix(float, float, float);
10180float2 __ovld __cnfn mix(float2, float2, float2);
10181float3 __ovld __cnfn mix(float3, float3, float3);
10182float4 __ovld __cnfn mix(float4, float4, float4);
10183float8 __ovld __cnfn mix(float8, float8, float8);
10184float16 __ovld __cnfn mix(float16, float16, float16);
10185float2 __ovld __cnfn mix(float2, float2, float);
10186float3 __ovld __cnfn mix(float3, float3, float);
10187float4 __ovld __cnfn mix(float4, float4, float);
10188float8 __ovld __cnfn mix(float8, float8, float);
10189float16 __ovld __cnfn mix(float16, float16, float);
10190#ifdef cl_khr_fp64
10191double __ovld __cnfn mix(double, double, double);
10192double2 __ovld __cnfn mix(double2, double2, double2);
10193double3 __ovld __cnfn mix(double3, double3, double3);
10194double4 __ovld __cnfn mix(double4, double4, double4);
10195double8 __ovld __cnfn mix(double8, double8, double8);
10196double16 __ovld __cnfn mix(double16, double16, double16);
10197double2 __ovld __cnfn mix(double2, double2, double);
10198double3 __ovld __cnfn mix(double3, double3, double);
10199double4 __ovld __cnfn mix(double4, double4, double);
10200double8 __ovld __cnfn mix(double8, double8, double);
10201double16 __ovld __cnfn mix(double16, double16, double);
10202#endif //cl_khr_fp64
10203#ifdef cl_khr_fp16
10204half __ovld __cnfn mix(half, half, half);
10205half2 __ovld __cnfn mix(half2, half2, half2);
10206half3 __ovld __cnfn mix(half3, half3, half3);
10207half4 __ovld __cnfn mix(half4, half4, half4);
10208half8 __ovld __cnfn mix(half8, half8, half8);
10209half16 __ovld __cnfn mix(half16, half16, half16);
10210half2 __ovld __cnfn mix(half2, half2, half);
10211half3 __ovld __cnfn mix(half3, half3, half);
10212half4 __ovld __cnfn mix(half4, half4, half);
10213half8 __ovld __cnfn mix(half8, half8, half);
10214half16 __ovld __cnfn mix(half16, half16, half);
10215#endif //cl_khr_fp16
10216
10217/**
10218 * Converts degrees to radians, i.e. (PI / 180) *
10219 * degrees.
10220 */
10221float __ovld __cnfn radians(float);
10222float2 __ovld __cnfn radians(float2);
10223float3 __ovld __cnfn radians(float3);
10224float4 __ovld __cnfn radians(float4);
10225float8 __ovld __cnfn radians(float8);
10226float16 __ovld __cnfn radians(float16);
10227#ifdef cl_khr_fp64
10228double __ovld __cnfn radians(double);
10229double2 __ovld __cnfn radians(double2);
10230double3 __ovld __cnfn radians(double3);
10231double4 __ovld __cnfn radians(double4);
10232double8 __ovld __cnfn radians(double8);
10233double16 __ovld __cnfn radians(double16);
10234#endif //cl_khr_fp64
10235#ifdef cl_khr_fp16
10236half __ovld __cnfn radians(half);
10237half2 __ovld __cnfn radians(half2);
10238half3 __ovld __cnfn radians(half3);
10239half4 __ovld __cnfn radians(half4);
10240half8 __ovld __cnfn radians(half8);
10241half16 __ovld __cnfn radians(half16);
10242#endif //cl_khr_fp16
10243
10244/**
10245 * Returns 0.0 if x < edge, otherwise it returns 1.0.
10246 */
10247float __ovld __cnfn step(float, float);
10248float2 __ovld __cnfn step(float2, float2);
10249float3 __ovld __cnfn step(float3, float3);
10250float4 __ovld __cnfn step(float4, float4);
10251float8 __ovld __cnfn step(float8, float8);
10252float16 __ovld __cnfn step(float16, float16);
10253float2 __ovld __cnfn step(float, float2);
10254float3 __ovld __cnfn step(float, float3);
10255float4 __ovld __cnfn step(float, float4);
10256float8 __ovld __cnfn step(float, float8);
10257float16 __ovld __cnfn step(float, float16);
10258#ifdef cl_khr_fp64
10259double __ovld __cnfn step(double, double);
10260double2 __ovld __cnfn step(double2, double2);
10261double3 __ovld __cnfn step(double3, double3);
10262double4 __ovld __cnfn step(double4, double4);
10263double8 __ovld __cnfn step(double8, double8);
10264double16 __ovld __cnfn step(double16, double16);
10265double2 __ovld __cnfn step(double, double2);
10266double3 __ovld __cnfn step(double, double3);
10267double4 __ovld __cnfn step(double, double4);
10268double8 __ovld __cnfn step(double, double8);
10269double16 __ovld __cnfn step(double, double16);
10270#endif //cl_khr_fp64
10271#ifdef cl_khr_fp16
10272half __ovld __cnfn step(half, half);
10273half2 __ovld __cnfn step(half2, half2);
10274half3 __ovld __cnfn step(half3, half3);
10275half4 __ovld __cnfn step(half4, half4);
10276half8 __ovld __cnfn step(half8, half8);
10277half16 __ovld __cnfn step(half16, half16);
10278half2 __ovld __cnfn step(half, half2);
10279half3 __ovld __cnfn step(half, half3);
10280half4 __ovld __cnfn step(half, half4);
10281half8 __ovld __cnfn step(half, half8);
10282half16 __ovld __cnfn step(half, half16);
10283#endif //cl_khr_fp16
10284
10285/**
10286 * Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and
10287 * performs smooth Hermite interpolation between 0
10288 * and 1when edge0 < x < edge1. This is useful in
10289 * cases where you would want a threshold function
10290 * with a smooth transition.
10291 * This is equivalent to:
10292 * gentype t;
10293 * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1);
10294 * return t * t * (3 - 2 * t);
10295 * Results are undefined if edge0 >= edge1 or if x,
10296 * edge0 or edge1 is a NaN.
10297 */
10298float __ovld __cnfn smoothstep(float, float, float);
10299float2 __ovld __cnfn smoothstep(float2, float2, float2);
10300float3 __ovld __cnfn smoothstep(float3, float3, float3);
10301float4 __ovld __cnfn smoothstep(float4, float4, float4);
10302float8 __ovld __cnfn smoothstep(float8, float8, float8);
10303float16 __ovld __cnfn smoothstep(float16, float16, float16);
10304float2 __ovld __cnfn smoothstep(float, float, float2);
10305float3 __ovld __cnfn smoothstep(float, float, float3);
10306float4 __ovld __cnfn smoothstep(float, float, float4);
10307float8 __ovld __cnfn smoothstep(float, float, float8);
10308float16 __ovld __cnfn smoothstep(float, float, float16);
10309#ifdef cl_khr_fp64
10310double __ovld __cnfn smoothstep(double, double, double);
10311double2 __ovld __cnfn smoothstep(double2, double2, double2);
10312double3 __ovld __cnfn smoothstep(double3, double3, double3);
10313double4 __ovld __cnfn smoothstep(double4, double4, double4);
10314double8 __ovld __cnfn smoothstep(double8, double8, double8);
10315double16 __ovld __cnfn smoothstep(double16, double16, double16);
10316double2 __ovld __cnfn smoothstep(double, double, double2);
10317double3 __ovld __cnfn smoothstep(double, double, double3);
10318double4 __ovld __cnfn smoothstep(double, double, double4);
10319double8 __ovld __cnfn smoothstep(double, double, double8);
10320double16 __ovld __cnfn smoothstep(double, double, double16);
10321#endif //cl_khr_fp64
10322#ifdef cl_khr_fp16
10323half __ovld __cnfn smoothstep(half, half, half);
10324half2 __ovld __cnfn smoothstep(half2, half2, half2);
10325half3 __ovld __cnfn smoothstep(half3, half3, half3);
10326half4 __ovld __cnfn smoothstep(half4, half4, half4);
10327half8 __ovld __cnfn smoothstep(half8, half8, half8);
10328half16 __ovld __cnfn smoothstep(half16, half16, half16);
10329half2 __ovld __cnfn smoothstep(half, half, half2);
10330half3 __ovld __cnfn smoothstep(half, half, half3);
10331half4 __ovld __cnfn smoothstep(half, half, half4);
10332half8 __ovld __cnfn smoothstep(half, half, half8);
10333half16 __ovld __cnfn smoothstep(half, half, half16);
10334#endif //cl_khr_fp16
10335
10336/**
10337 * Returns 1.0 if x > 0, -0.0 if x = -0.0, +0.0 if x =
10338 * +0.0, or -1.0 if x < 0. Returns 0.0 if x is a NaN.
10339 */
10340float __ovld __cnfn sign(float);
10341float2 __ovld __cnfn sign(float2);
10342float3 __ovld __cnfn sign(float3);
10343float4 __ovld __cnfn sign(float4);
10344float8 __ovld __cnfn sign(float8);
10345float16 __ovld __cnfn sign(float16);
10346#ifdef cl_khr_fp64
10347double __ovld __cnfn sign(double);
10348double2 __ovld __cnfn sign(double2);
10349double3 __ovld __cnfn sign(double3);
10350double4 __ovld __cnfn sign(double4);
10351double8 __ovld __cnfn sign(double8);
10352double16 __ovld __cnfn sign(double16);
10353#endif //cl_khr_fp64
10354#ifdef cl_khr_fp16
10355half __ovld __cnfn sign(half);
10356half2 __ovld __cnfn sign(half2);
10357half3 __ovld __cnfn sign(half3);
10358half4 __ovld __cnfn sign(half4);
10359half8 __ovld __cnfn sign(half8);
10360half16 __ovld __cnfn sign(half16);
10361#endif //cl_khr_fp16
10362
10363// OpenCL v1.1 s6.11.5, v1.2 s6.12.5, v2.0 s6.13.5 - Geometric Functions
10364
10365/**
10366 * Returns the cross product of p0.xyz and p1.xyz. The
10367 * w component of float4 result returned will be 0.0.
10368 */
10369float4 __ovld __cnfn cross(float4, float4);
10370float3 __ovld __cnfn cross(float3, float3);
10371#ifdef cl_khr_fp64
10372double4 __ovld __cnfn cross(double4, double4);
10373double3 __ovld __cnfn cross(double3, double3);
10374#endif //cl_khr_fp64
10375#ifdef cl_khr_fp16
10376half4 __ovld __cnfn cross(half4, half4);
10377half3 __ovld __cnfn cross(half3, half3);
10378#endif //cl_khr_fp16
10379
10380/**
10381 * Compute dot product.
10382 */
10383float __ovld __cnfn dot(float, float);
10384float __ovld __cnfn dot(float2, float2);
10385float __ovld __cnfn dot(float3, float3);
10386float __ovld __cnfn dot(float4, float4);
10387#ifdef cl_khr_fp64
10388double __ovld __cnfn dot(double, double);
10389double __ovld __cnfn dot(double2, double2);
10390double __ovld __cnfn dot(double3, double3);
10391double __ovld __cnfn dot(double4, double4);
10392#endif //cl_khr_fp64
10393#ifdef cl_khr_fp16
10394half __ovld __cnfn dot(half, half);
10395half __ovld __cnfn dot(half2, half2);
10396half __ovld __cnfn dot(half3, half3);
10397half __ovld __cnfn dot(half4, half4);
10398#endif //cl_khr_fp16
10399
10400/**
10401 * Returns the distance between p0 and p1. This is
10402 * calculated as length(p0 - p1).
10403 */
10404float __ovld __cnfn distance(float, float);
10405float __ovld __cnfn distance(float2, float2);
10406float __ovld __cnfn distance(float3, float3);
10407float __ovld __cnfn distance(float4, float4);
10408#ifdef cl_khr_fp64
10409double __ovld __cnfn distance(double, double);
10410double __ovld __cnfn distance(double2, double2);
10411double __ovld __cnfn distance(double3, double3);
10412double __ovld __cnfn distance(double4, double4);
10413#endif //cl_khr_fp64
10414#ifdef cl_khr_fp16
10415half __ovld __cnfn distance(half, half);
10416half __ovld __cnfn distance(half2, half2);
10417half __ovld __cnfn distance(half3, half3);
10418half __ovld __cnfn distance(half4, half4);
10419#endif //cl_khr_fp16
10420
10421/**
10422 * Return the length of vector p, i.e.,
10423 * sqrt(p.x2 + p.y 2 + ...)
10424 */
10425float __ovld __cnfn length(float);
10426float __ovld __cnfn length(float2);
10427float __ovld __cnfn length(float3);
10428float __ovld __cnfn length(float4);
10429#ifdef cl_khr_fp64
10430double __ovld __cnfn length(double);
10431double __ovld __cnfn length(double2);
10432double __ovld __cnfn length(double3);
10433double __ovld __cnfn length(double4);
10434#endif //cl_khr_fp64
10435#ifdef cl_khr_fp16
10436half __ovld __cnfn length(half);
10437half __ovld __cnfn length(half2);
10438half __ovld __cnfn length(half3);
10439half __ovld __cnfn length(half4);
10440#endif //cl_khr_fp16
10441
10442/**
10443 * Returns a vector in the same direction as p but with a
10444 * length of 1.
10445 */
10447float2 __ovld __cnfn normalize(float2);
10448float3 __ovld __cnfn normalize(float3);
10449float4 __ovld __cnfn normalize(float4);
10450#ifdef cl_khr_fp64
10451double __ovld __cnfn normalize(double);
10452double2 __ovld __cnfn normalize(double2);
10453double3 __ovld __cnfn normalize(double3);
10454double4 __ovld __cnfn normalize(double4);
10455#endif //cl_khr_fp64
10456#ifdef cl_khr_fp16
10457half __ovld __cnfn normalize(half);
10458half2 __ovld __cnfn normalize(half2);
10459half3 __ovld __cnfn normalize(half3);
10460half4 __ovld __cnfn normalize(half4);
10461#endif //cl_khr_fp16
10462
10463/**
10464 * Returns fast_length(p0 - p1).
10465 */
10466float __ovld __cnfn fast_distance(float, float);
10467float __ovld __cnfn fast_distance(float2, float2);
10468float __ovld __cnfn fast_distance(float3, float3);
10469float __ovld __cnfn fast_distance(float4, float4);
10470
10471/**
10472 * Returns the length of vector p computed as:
10473 * half_sqrt(p.x2 + p.y2 + ...)
10474 */
10479
10480/**
10481 * Returns a vector in the same direction as p but with a
10482 * length of 1. fast_normalize is computed as:
10483 * p * half_rsqrt (p.x^2 + p.y^2 + ... )
10484 * The result shall be within 8192 ulps error from the
10485 * infinitely precise result of
10486 * if (all(p == 0.0f))
10487 * result = p;
10488 * else
10489 * result = p / sqrt (p.x^2 + p.y^2 + ...);
10490 * with the following exceptions:
10491 * 1) If the sum of squares is greater than FLT_MAX
10492 * then the value of the floating-point values in the
10493 * result vector are undefined.
10494 * 2) If the sum of squares is less than FLT_MIN then
10495 * the implementation may return back p.
10496 * 3) If the device is in "denorms are flushed to zero"
10497 * mode, individual operand elements with magnitude
10498 * less than sqrt(FLT_MIN) may be flushed to zero
10499 * before proceeding with the calculation.
10500 */
10505
10506// OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions
10507
10508/**
10509 * intn isequal (floatn x, floatn y)
10510 * Returns the component-wise compare of x == y.
10511 */
10512int __ovld __cnfn isequal(float, float);
10513int2 __ovld __cnfn isequal(float2, float2);
10514int3 __ovld __cnfn isequal(float3, float3);
10515int4 __ovld __cnfn isequal(float4, float4);
10516int8 __ovld __cnfn isequal(float8, float8);
10517int16 __ovld __cnfn isequal(float16, float16);
10518#ifdef cl_khr_fp64
10519int __ovld __cnfn isequal(double, double);
10520long2 __ovld __cnfn isequal(double2, double2);
10521long3 __ovld __cnfn isequal(double3, double3);
10522long4 __ovld __cnfn isequal(double4, double4);
10523long8 __ovld __cnfn isequal(double8, double8);
10524long16 __ovld __cnfn isequal(double16, double16);
10525#endif //cl_khr_fp64
10526#ifdef cl_khr_fp16
10527int __ovld __cnfn isequal(half, half);
10528short2 __ovld __cnfn isequal(half2, half2);
10529short3 __ovld __cnfn isequal(half3, half3);
10530short4 __ovld __cnfn isequal(half4, half4);
10531short8 __ovld __cnfn isequal(half8, half8);
10532short16 __ovld __cnfn isequal(half16, half16);
10533#endif //cl_khr_fp16
10534
10535/**
10536 * Returns the component-wise compare of x != y.
10537 */
10538int __ovld __cnfn isnotequal(float, float);
10539int2 __ovld __cnfn isnotequal(float2, float2);
10540int3 __ovld __cnfn isnotequal(float3, float3);
10541int4 __ovld __cnfn isnotequal(float4, float4);
10542int8 __ovld __cnfn isnotequal(float8, float8);
10543int16 __ovld __cnfn isnotequal(float16, float16);
10544#ifdef cl_khr_fp64
10545int __ovld __cnfn isnotequal(double, double);
10546long2 __ovld __cnfn isnotequal(double2, double2);
10547long3 __ovld __cnfn isnotequal(double3, double3);
10548long4 __ovld __cnfn isnotequal(double4, double4);
10549long8 __ovld __cnfn isnotequal(double8, double8);
10550long16 __ovld __cnfn isnotequal(double16, double16);
10551#endif //cl_khr_fp64
10552#ifdef cl_khr_fp16
10553int __ovld __cnfn isnotequal(half, half);
10554short2 __ovld __cnfn isnotequal(half2, half2);
10555short3 __ovld __cnfn isnotequal(half3, half3);
10556short4 __ovld __cnfn isnotequal(half4, half4);
10557short8 __ovld __cnfn isnotequal(half8, half8);
10558short16 __ovld __cnfn isnotequal(half16, half16);
10559#endif //cl_khr_fp16
10560
10561/**
10562 * Returns the component-wise compare of x > y.
10563 */
10564int __ovld __cnfn isgreater(float, float);
10565int2 __ovld __cnfn isgreater(float2, float2);
10566int3 __ovld __cnfn isgreater(float3, float3);
10567int4 __ovld __cnfn isgreater(float4, float4);
10568int8 __ovld __cnfn isgreater(float8, float8);
10569int16 __ovld __cnfn isgreater(float16, float16);
10570#ifdef cl_khr_fp64
10571int __ovld __cnfn isgreater(double, double);
10572long2 __ovld __cnfn isgreater(double2, double2);
10573long3 __ovld __cnfn isgreater(double3, double3);
10574long4 __ovld __cnfn isgreater(double4, double4);
10575long8 __ovld __cnfn isgreater(double8, double8);
10576long16 __ovld __cnfn isgreater(double16, double16);
10577#endif //cl_khr_fp64
10578#ifdef cl_khr_fp16
10579int __ovld __cnfn isgreater(half, half);
10580short2 __ovld __cnfn isgreater(half2, half2);
10581short3 __ovld __cnfn isgreater(half3, half3);
10582short4 __ovld __cnfn isgreater(half4, half4);
10583short8 __ovld __cnfn isgreater(half8, half8);
10584short16 __ovld __cnfn isgreater(half16, half16);
10585#endif //cl_khr_fp16
10586
10587/**
10588 * Returns the component-wise compare of x >= y.
10589 */
10590int __ovld __cnfn isgreaterequal(float, float);
10591int2 __ovld __cnfn isgreaterequal(float2, float2);
10592int3 __ovld __cnfn isgreaterequal(float3, float3);
10593int4 __ovld __cnfn isgreaterequal(float4, float4);
10594int8 __ovld __cnfn isgreaterequal(float8, float8);
10595int16 __ovld __cnfn isgreaterequal(float16, float16);
10596#ifdef cl_khr_fp64
10597int __ovld __cnfn isgreaterequal(double, double);
10598long2 __ovld __cnfn isgreaterequal(double2, double2);
10599long3 __ovld __cnfn isgreaterequal(double3, double3);
10600long4 __ovld __cnfn isgreaterequal(double4, double4);
10601long8 __ovld __cnfn isgreaterequal(double8, double8);
10602long16 __ovld __cnfn isgreaterequal(double16, double16);
10603#endif //cl_khr_fp64
10604#ifdef cl_khr_fp16
10605int __ovld __cnfn isgreaterequal(half, half);
10606short2 __ovld __cnfn isgreaterequal(half2, half2);
10607short3 __ovld __cnfn isgreaterequal(half3, half3);
10608short4 __ovld __cnfn isgreaterequal(half4, half4);
10609short8 __ovld __cnfn isgreaterequal(half8, half8);
10610short16 __ovld __cnfn isgreaterequal(half16, half16);
10611#endif //cl_khr_fp16
10612
10613/**
10614 * Returns the component-wise compare of x < y.
10615 */
10616int __ovld __cnfn isless(float, float);
10617int2 __ovld __cnfn isless(float2, float2);
10618int3 __ovld __cnfn isless(float3, float3);
10619int4 __ovld __cnfn isless(float4, float4);
10620int8 __ovld __cnfn isless(float8, float8);
10621int16 __ovld __cnfn isless(float16, float16);
10622#ifdef cl_khr_fp64
10623int __ovld __cnfn isless(double, double);
10624long2 __ovld __cnfn isless(double2, double2);
10625long3 __ovld __cnfn isless(double3, double3);
10626long4 __ovld __cnfn isless(double4, double4);
10627long8 __ovld __cnfn isless(double8, double8);
10628long16 __ovld __cnfn isless(double16, double16);
10629#endif //cl_khr_fp64
10630#ifdef cl_khr_fp16
10631int __ovld __cnfn isless(half, half);
10632short2 __ovld __cnfn isless(half2, half2);
10633short3 __ovld __cnfn isless(half3, half3);
10634short4 __ovld __cnfn isless(half4, half4);
10635short8 __ovld __cnfn isless(half8, half8);
10636short16 __ovld __cnfn isless(half16, half16);
10637#endif //cl_khr_fp16
10638
10639/**
10640 * Returns the component-wise compare of x <= y.
10641 */
10642int __ovld __cnfn islessequal(float, float);
10643int2 __ovld __cnfn islessequal(float2, float2);
10644int3 __ovld __cnfn islessequal(float3, float3);
10645int4 __ovld __cnfn islessequal(float4, float4);
10646int8 __ovld __cnfn islessequal(float8, float8);
10647int16 __ovld __cnfn islessequal(float16, float16);
10648#ifdef cl_khr_fp64
10649int __ovld __cnfn islessequal(double, double);
10650long2 __ovld __cnfn islessequal(double2, double2);
10651long3 __ovld __cnfn islessequal(double3, double3);
10652long4 __ovld __cnfn islessequal(double4, double4);
10653long8 __ovld __cnfn islessequal(double8, double8);
10654long16 __ovld __cnfn islessequal(double16, double16);
10655#endif //cl_khr_fp64
10656#ifdef cl_khr_fp16
10657int __ovld __cnfn islessequal(half, half);
10658short2 __ovld __cnfn islessequal(half2, half2);
10659short3 __ovld __cnfn islessequal(half3, half3);
10660short4 __ovld __cnfn islessequal(half4, half4);
10661short8 __ovld __cnfn islessequal(half8, half8);
10662short16 __ovld __cnfn islessequal(half16, half16);
10663#endif //cl_khr_fp16
10664
10665/**
10666 * Returns the component-wise compare of
10667 * (x < y) || (x > y) .
10668 */
10669int __ovld __cnfn islessgreater(float, float);
10670int2 __ovld __cnfn islessgreater(float2, float2);
10671int3 __ovld __cnfn islessgreater(float3, float3);
10672int4 __ovld __cnfn islessgreater(float4, float4);
10673int8 __ovld __cnfn islessgreater(float8, float8);
10674int16 __ovld __cnfn islessgreater(float16, float16);
10675#ifdef cl_khr_fp64
10676int __ovld __cnfn islessgreater(double, double);
10677long2 __ovld __cnfn islessgreater(double2, double2);
10678long3 __ovld __cnfn islessgreater(double3, double3);
10679long4 __ovld __cnfn islessgreater(double4, double4);
10680long8 __ovld __cnfn islessgreater(double8, double8);
10681long16 __ovld __cnfn islessgreater(double16, double16);
10682#endif //cl_khr_fp64
10683#ifdef cl_khr_fp16
10684int __ovld __cnfn islessgreater(half, half);
10685short2 __ovld __cnfn islessgreater(half2, half2);
10686short3 __ovld __cnfn islessgreater(half3, half3);
10687short4 __ovld __cnfn islessgreater(half4, half4);
10688short8 __ovld __cnfn islessgreater(half8, half8);
10689short16 __ovld __cnfn islessgreater(half16, half16);
10690#endif //cl_khr_fp16
10691
10692/**
10693 * Test for finite value.
10694 */
10695int __ovld __cnfn isfinite(float);
10700int16 __ovld __cnfn isfinite(float16);
10701#ifdef cl_khr_fp64
10702int __ovld __cnfn isfinite(double);
10703long2 __ovld __cnfn isfinite(double2);
10704long3 __ovld __cnfn isfinite(double3);
10705long4 __ovld __cnfn isfinite(double4);
10706long8 __ovld __cnfn isfinite(double8);
10707long16 __ovld __cnfn isfinite(double16);
10708#endif //cl_khr_fp64
10709#ifdef cl_khr_fp16
10710int __ovld __cnfn isfinite(half);
10711short2 __ovld __cnfn isfinite(half2);
10712short3 __ovld __cnfn isfinite(half3);
10713short4 __ovld __cnfn isfinite(half4);
10714short8 __ovld __cnfn isfinite(half8);
10715short16 __ovld __cnfn isfinite(half16);
10716#endif //cl_khr_fp16
10717
10718/**
10719 * Test for infinity value (+ve or -ve) .
10720 */
10721int __ovld __cnfn isinf(float);
10722int2 __ovld __cnfn isinf(float2);
10723int3 __ovld __cnfn isinf(float3);
10724int4 __ovld __cnfn isinf(float4);
10725int8 __ovld __cnfn isinf(float8);
10726int16 __ovld __cnfn isinf(float16);
10727#ifdef cl_khr_fp64
10728int __ovld __cnfn isinf(double);
10729long2 __ovld __cnfn isinf(double2);
10730long3 __ovld __cnfn isinf(double3);
10731long4 __ovld __cnfn isinf(double4);
10732long8 __ovld __cnfn isinf(double8);
10733long16 __ovld __cnfn isinf(double16);
10734#endif //cl_khr_fp64
10735#ifdef cl_khr_fp16
10736int __ovld __cnfn isinf(half);
10737short2 __ovld __cnfn isinf(half2);
10738short3 __ovld __cnfn isinf(half3);
10739short4 __ovld __cnfn isinf(half4);
10740short8 __ovld __cnfn isinf(half8);
10741short16 __ovld __cnfn isinf(half16);
10742#endif //cl_khr_fp16
10743
10744/**
10745 * Test for a NaN.
10746 */
10747int __ovld __cnfn isnan(float);
10748int2 __ovld __cnfn isnan(float2);
10749int3 __ovld __cnfn isnan(float3);
10750int4 __ovld __cnfn isnan(float4);
10751int8 __ovld __cnfn isnan(float8);
10752int16 __ovld __cnfn isnan(float16);
10753#ifdef cl_khr_fp64
10754int __ovld __cnfn isnan(double);
10755long2 __ovld __cnfn isnan(double2);
10756long3 __ovld __cnfn isnan(double3);
10757long4 __ovld __cnfn isnan(double4);
10758long8 __ovld __cnfn isnan(double8);
10759long16 __ovld __cnfn isnan(double16);
10760#endif //cl_khr_fp64
10761#ifdef cl_khr_fp16
10762int __ovld __cnfn isnan(half);
10763short2 __ovld __cnfn isnan(half2);
10764short3 __ovld __cnfn isnan(half3);
10765short4 __ovld __cnfn isnan(half4);
10766short8 __ovld __cnfn isnan(half8);
10767short16 __ovld __cnfn isnan(half16);
10768#endif //cl_khr_fp16
10769
10770/**
10771 * Test for a normal value.
10772 */
10773int __ovld __cnfn isnormal(float);
10778int16 __ovld __cnfn isnormal(float16);
10779#ifdef cl_khr_fp64
10780int __ovld __cnfn isnormal(double);
10781long2 __ovld __cnfn isnormal(double2);
10782long3 __ovld __cnfn isnormal(double3);
10783long4 __ovld __cnfn isnormal(double4);
10784long8 __ovld __cnfn isnormal(double8);
10785long16 __ovld __cnfn isnormal(double16);
10786#endif //cl_khr_fp64
10787#ifdef cl_khr_fp16
10788int __ovld __cnfn isnormal(half);
10789short2 __ovld __cnfn isnormal(half2);
10790short3 __ovld __cnfn isnormal(half3);
10791short4 __ovld __cnfn isnormal(half4);
10792short8 __ovld __cnfn isnormal(half8);
10793short16 __ovld __cnfn isnormal(half16);
10794#endif //cl_khr_fp16
10795
10796/**
10797 * Test if arguments are ordered. isordered() takes
10798 * arguments x and y, and returns the result
10799 * isequal(x, x) && isequal(y, y).
10800 */
10801int __ovld __cnfn isordered(float, float);
10802int2 __ovld __cnfn isordered(float2, float2);
10803int3 __ovld __cnfn isordered(float3, float3);
10804int4 __ovld __cnfn isordered(float4, float4);
10805int8 __ovld __cnfn isordered(float8, float8);
10806int16 __ovld __cnfn isordered(float16, float16);
10807#ifdef cl_khr_fp64
10808int __ovld __cnfn isordered(double, double);
10809long2 __ovld __cnfn isordered(double2, double2);
10810long3 __ovld __cnfn isordered(double3, double3);
10811long4 __ovld __cnfn isordered(double4, double4);
10812long8 __ovld __cnfn isordered(double8, double8);
10813long16 __ovld __cnfn isordered(double16, double16);
10814#endif //cl_khr_fp64
10815#ifdef cl_khr_fp16
10816int __ovld __cnfn isordered(half, half);
10817short2 __ovld __cnfn isordered(half2, half2);
10818short3 __ovld __cnfn isordered(half3, half3);
10819short4 __ovld __cnfn isordered(half4, half4);
10820short8 __ovld __cnfn isordered(half8, half8);
10821short16 __ovld __cnfn isordered(half16, half16);
10822#endif //cl_khr_fp16
10823
10824/**
10825 * Test if arguments are unordered. isunordered()
10826 * takes arguments x and y, returning non-zero if x or y
10827 * is NaN, and zero otherwise.
10828 */
10829int __ovld __cnfn isunordered(float, float);
10830int2 __ovld __cnfn isunordered(float2, float2);
10831int3 __ovld __cnfn isunordered(float3, float3);
10832int4 __ovld __cnfn isunordered(float4, float4);
10833int8 __ovld __cnfn isunordered(float8, float8);
10834int16 __ovld __cnfn isunordered(float16, float16);
10835#ifdef cl_khr_fp64
10836int __ovld __cnfn isunordered(double, double);
10837long2 __ovld __cnfn isunordered(double2, double2);
10838long3 __ovld __cnfn isunordered(double3, double3);
10839long4 __ovld __cnfn isunordered(double4, double4);
10840long8 __ovld __cnfn isunordered(double8, double8);
10841long16 __ovld __cnfn isunordered(double16, double16);
10842#endif //cl_khr_fp64
10843#ifdef cl_khr_fp16
10844int __ovld __cnfn isunordered(half, half);
10845short2 __ovld __cnfn isunordered(half2, half2);
10846short3 __ovld __cnfn isunordered(half3, half3);
10847short4 __ovld __cnfn isunordered(half4, half4);
10848short8 __ovld __cnfn isunordered(half8, half8);
10849short16 __ovld __cnfn isunordered(half16, half16);
10850#endif //cl_khr_fp16
10851
10852/**
10853 * Test for sign bit. The scalar version of the function
10854 * returns a 1 if the sign bit in the float is set else returns
10855 * 0. The vector version of the function returns the
10856 * following for each component in floatn: a -1 if the
10857 * sign bit in the float is set else returns 0.
10858 */
10859int __ovld __cnfn signbit(float);
10860int2 __ovld __cnfn signbit(float2);
10861int3 __ovld __cnfn signbit(float3);
10862int4 __ovld __cnfn signbit(float4);
10863int8 __ovld __cnfn signbit(float8);
10864int16 __ovld __cnfn signbit(float16);
10865#ifdef cl_khr_fp64
10866int __ovld __cnfn signbit(double);
10867long2 __ovld __cnfn signbit(double2);
10868long3 __ovld __cnfn signbit(double3);
10869long4 __ovld __cnfn signbit(double4);
10870long8 __ovld __cnfn signbit(double8);
10871long16 __ovld __cnfn signbit(double16);
10872#endif //cl_khr_fp64
10873#ifdef cl_khr_fp16
10874int __ovld __cnfn signbit(half);
10875short2 __ovld __cnfn signbit(half2);
10876short3 __ovld __cnfn signbit(half3);
10877short4 __ovld __cnfn signbit(half4);
10878short8 __ovld __cnfn signbit(half8);
10879short16 __ovld __cnfn signbit(half16);
10880#endif //cl_khr_fp16
10881
10882/**
10883 * Returns 1 if the most significant bit in any component
10884 * of x is set; otherwise returns 0.
10885 */
10887int __ovld __cnfn any(char2);
10888int __ovld __cnfn any(char3);
10889int __ovld __cnfn any(char4);
10890int __ovld __cnfn any(char8);
10891int __ovld __cnfn any(char16);
10892int __ovld __cnfn any(short);
10893int __ovld __cnfn any(short2);
10894int __ovld __cnfn any(short3);
10895int __ovld __cnfn any(short4);
10896int __ovld __cnfn any(short8);
10897int __ovld __cnfn any(short16);
10903int __ovld __cnfn any(int16);
10905int __ovld __cnfn any(long2);
10906int __ovld __cnfn any(long3);
10907int __ovld __cnfn any(long4);
10908int __ovld __cnfn any(long8);
10909int __ovld __cnfn any(long16);
10910
10911/**
10912 * Returns 1 if the most significant bit in all components
10913 * of x is set; otherwise returns 0.
10914 */
10916int __ovld __cnfn all(char2);
10917int __ovld __cnfn all(char3);
10918int __ovld __cnfn all(char4);
10919int __ovld __cnfn all(char8);
10920int __ovld __cnfn all(char16);
10921int __ovld __cnfn all(short);
10922int __ovld __cnfn all(short2);
10923int __ovld __cnfn all(short3);
10924int __ovld __cnfn all(short4);
10925int __ovld __cnfn all(short8);
10926int __ovld __cnfn all(short16);
10932int __ovld __cnfn all(int16);
10934int __ovld __cnfn all(long2);
10935int __ovld __cnfn all(long3);
10936int __ovld __cnfn all(long4);
10937int __ovld __cnfn all(long8);
10938int __ovld __cnfn all(long16);
10939
10940/**
10941 * Each bit of the result is the corresponding bit of a if
10942 * the corresponding bit of c is 0. Otherwise it is the
10943 * corresponding bit of b.
10944 */
10945char __ovld __cnfn bitselect(char, char, char);
10947char2 __ovld __cnfn bitselect(char2, char2, char2);
10948uchar2 __ovld __cnfn bitselect(uchar2, uchar2, uchar2);
10949char3 __ovld __cnfn bitselect(char3, char3, char3);
10950uchar3 __ovld __cnfn bitselect(uchar3, uchar3, uchar3);
10951char4 __ovld __cnfn bitselect(char4, char4, char4);
10952uchar4 __ovld __cnfn bitselect(uchar4, uchar4, uchar4);
10953char8 __ovld __cnfn bitselect(char8, char8, char8);
10954uchar8 __ovld __cnfn bitselect(uchar8, uchar8, uchar8);
10955char16 __ovld __cnfn bitselect(char16, char16, char16);
10956uchar16 __ovld __cnfn bitselect(uchar16, uchar16, uchar16);
10957short __ovld __cnfn bitselect(short, short, short);
10959short2 __ovld __cnfn bitselect(short2, short2, short2);
10960ushort2 __ovld __cnfn bitselect(ushort2, ushort2, ushort2);
10961short3 __ovld __cnfn bitselect(short3, short3, short3);
10962ushort3 __ovld __cnfn bitselect(ushort3, ushort3, ushort3);
10963short4 __ovld __cnfn bitselect(short4, short4, short4);
10964ushort4 __ovld __cnfn bitselect(ushort4, ushort4, ushort4);
10965short8 __ovld __cnfn bitselect(short8, short8, short8);
10966ushort8 __ovld __cnfn bitselect(ushort8, ushort8, ushort8);
10967short16 __ovld __cnfn bitselect(short16, short16, short16);
10968ushort16 __ovld __cnfn bitselect(ushort16, ushort16, ushort16);
10969int __ovld __cnfn bitselect(int, int, int);
10970uint __ovld __cnfn bitselect(uint, uint, uint);
10971int2 __ovld __cnfn bitselect(int2, int2, int2);
10972uint2 __ovld __cnfn bitselect(uint2, uint2, uint2);
10973int3 __ovld __cnfn bitselect(int3, int3, int3);
10974uint3 __ovld __cnfn bitselect(uint3, uint3, uint3);
10975int4 __ovld __cnfn bitselect(int4, int4, int4);
10976uint4 __ovld __cnfn bitselect(uint4, uint4, uint4);
10977int8 __ovld __cnfn bitselect(int8, int8, int8);
10978uint8 __ovld __cnfn bitselect(uint8, uint8, uint8);
10979int16 __ovld __cnfn bitselect(int16, int16, int16);
10980uint16 __ovld __cnfn bitselect(uint16, uint16, uint16);
10981long __ovld __cnfn bitselect(long, long, long);
10983long2 __ovld __cnfn bitselect(long2, long2, long2);
10984ulong2 __ovld __cnfn bitselect(ulong2, ulong2, ulong2);
10985long3 __ovld __cnfn bitselect(long3, long3, long3);
10986ulong3 __ovld __cnfn bitselect(ulong3, ulong3, ulong3);
10987long4 __ovld __cnfn bitselect(long4, long4, long4);
10988ulong4 __ovld __cnfn bitselect(ulong4, ulong4, ulong4);
10989long8 __ovld __cnfn bitselect(long8, long8, long8);
10990ulong8 __ovld __cnfn bitselect(ulong8, ulong8, ulong8);
10991long16 __ovld __cnfn bitselect(long16, long16, long16);
10992ulong16 __ovld __cnfn bitselect(ulong16, ulong16, ulong16);
10993float __ovld __cnfn bitselect(float, float, float);
10994float2 __ovld __cnfn bitselect(float2, float2, float2);
10995float3 __ovld __cnfn bitselect(float3, float3, float3);
10996float4 __ovld __cnfn bitselect(float4, float4, float4);
10997float8 __ovld __cnfn bitselect(float8, float8, float8);
10998float16 __ovld __cnfn bitselect(float16, float16, float16);
10999#ifdef cl_khr_fp64
11000double __ovld __cnfn bitselect(double, double, double);
11001double2 __ovld __cnfn bitselect(double2, double2, double2);
11002double3 __ovld __cnfn bitselect(double3, double3, double3);
11003double4 __ovld __cnfn bitselect(double4, double4, double4);
11004double8 __ovld __cnfn bitselect(double8, double8, double8);
11005double16 __ovld __cnfn bitselect(double16, double16, double16);
11006#endif //cl_khr_fp64
11007#ifdef cl_khr_fp16
11008half __ovld __cnfn bitselect(half, half, half);
11009half2 __ovld __cnfn bitselect(half2, half2, half2);
11010half3 __ovld __cnfn bitselect(half3, half3, half3);
11011half4 __ovld __cnfn bitselect(half4, half4, half4);
11012half8 __ovld __cnfn bitselect(half8, half8, half8);
11013half16 __ovld __cnfn bitselect(half16, half16, half16);
11014#endif //cl_khr_fp16
11015
11016/**
11017 * For each component of a vector type,
11018 * result[i] = if MSB of c[i] is set ? b[i] : a[i].
11019 * For a scalar type, result = c ? b : a.
11020 * b and a must have the same type.
11021 * c must have the same number of elements and bits as a.
11022 */
11023char __ovld __cnfn select(char, char, char);
11025char2 __ovld __cnfn select(char2, char2, char2);
11026uchar2 __ovld __cnfn select(uchar2, uchar2, char2);
11027char3 __ovld __cnfn select(char3, char3, char3);
11028uchar3 __ovld __cnfn select(uchar3, uchar3, char3);
11029char4 __ovld __cnfn select(char4, char4, char4);
11030uchar4 __ovld __cnfn select(uchar4, uchar4, char4);
11031char8 __ovld __cnfn select(char8, char8, char8);
11032uchar8 __ovld __cnfn select(uchar8, uchar8, char8);
11033char16 __ovld __cnfn select(char16, char16, char16);
11034uchar16 __ovld __cnfn select(uchar16, uchar16, char16);
11035
11036short __ovld __cnfn select(short, short, short);
11038short2 __ovld __cnfn select(short2, short2, short2);
11039ushort2 __ovld __cnfn select(ushort2, ushort2, short2);
11040short3 __ovld __cnfn select(short3, short3, short3);
11041ushort3 __ovld __cnfn select(ushort3, ushort3, short3);
11042short4 __ovld __cnfn select(short4, short4, short4);
11043ushort4 __ovld __cnfn select(ushort4, ushort4, short4);
11044short8 __ovld __cnfn select(short8, short8, short8);
11045ushort8 __ovld __cnfn select(ushort8, ushort8, short8);
11046short16 __ovld __cnfn select(short16, short16, short16);
11047ushort16 __ovld __cnfn select(ushort16, ushort16, short16);
11048
11049int __ovld __cnfn select(int, int, int);
11050uint __ovld __cnfn select(uint, uint, int);
11051int2 __ovld __cnfn select(int2, int2, int2);
11052uint2 __ovld __cnfn select(uint2, uint2, int2);
11053int3 __ovld __cnfn select(int3, int3, int3);
11054uint3 __ovld __cnfn select(uint3, uint3, int3);
11055int4 __ovld __cnfn select(int4, int4, int4);
11056uint4 __ovld __cnfn select(uint4, uint4, int4);
11057int8 __ovld __cnfn select(int8, int8, int8);
11058uint8 __ovld __cnfn select(uint8, uint8, int8);
11059int16 __ovld __cnfn select(int16, int16, int16);
11060uint16 __ovld __cnfn select(uint16, uint16, int16);
11061float __ovld __cnfn select(float, float, int);
11062float2 __ovld __cnfn select(float2, float2, int2);
11063float3 __ovld __cnfn select(float3, float3, int3);
11064float4 __ovld __cnfn select(float4, float4, int4);
11065float8 __ovld __cnfn select(float8, float8, int8);
11066float16 __ovld __cnfn select(float16, float16, int16);
11067
11068long __ovld __cnfn select(long, long, long);
11070long2 __ovld __cnfn select(long2, long2, long2);
11071ulong2 __ovld __cnfn select(ulong2, ulong2, long2);
11072long3 __ovld __cnfn select(long3, long3, long3);
11073ulong3 __ovld __cnfn select(ulong3, ulong3, long3);
11074long4 __ovld __cnfn select(long4, long4, long4);
11075ulong4 __ovld __cnfn select(ulong4, ulong4, long4);
11076long8 __ovld __cnfn select(long8, long8, long8);
11077ulong8 __ovld __cnfn select(ulong8, ulong8, long8);
11078long16 __ovld __cnfn select(long16, long16, long16);
11079ulong16 __ovld __cnfn select(ulong16, ulong16, long16);
11080
11081char __ovld __cnfn select(char, char, uchar);
11083char2 __ovld __cnfn select(char2, char2, uchar2);
11084uchar2 __ovld __cnfn select(uchar2, uchar2, uchar2);
11085char3 __ovld __cnfn select(char3, char3, uchar3);
11086uchar3 __ovld __cnfn select(uchar3, uchar3, uchar3);
11087char4 __ovld __cnfn select(char4, char4, uchar4);
11088uchar4 __ovld __cnfn select(uchar4, uchar4, uchar4);
11089char8 __ovld __cnfn select(char8, char8, uchar8);
11090uchar8 __ovld __cnfn select(uchar8, uchar8, uchar8);
11091char16 __ovld __cnfn select(char16, char16, uchar16);
11092uchar16 __ovld __cnfn select(uchar16, uchar16, uchar16);
11093
11094short __ovld __cnfn select(short, short, ushort);
11096short2 __ovld __cnfn select(short2, short2, ushort2);
11097ushort2 __ovld __cnfn select(ushort2, ushort2, ushort2);
11098short3 __ovld __cnfn select(short3, short3, ushort3);
11099ushort3 __ovld __cnfn select(ushort3, ushort3, ushort3);
11100short4 __ovld __cnfn select(short4, short4, ushort4);
11101ushort4 __ovld __cnfn select(ushort4, ushort4, ushort4);
11102short8 __ovld __cnfn select(short8, short8, ushort8);
11103ushort8 __ovld __cnfn select(ushort8, ushort8, ushort8);
11104short16 __ovld __cnfn select(short16, short16, ushort16);
11105ushort16 __ovld __cnfn select(ushort16, ushort16, ushort16);
11106
11107int __ovld __cnfn select(int, int, uint);
11108uint __ovld __cnfn select(uint, uint, uint);
11109int2 __ovld __cnfn select(int2, int2, uint2);
11110uint2 __ovld __cnfn select(uint2, uint2, uint2);
11111int3 __ovld __cnfn select(int3, int3, uint3);
11112uint3 __ovld __cnfn select(uint3, uint3, uint3);
11113int4 __ovld __cnfn select(int4, int4, uint4);
11114uint4 __ovld __cnfn select(uint4, uint4, uint4);
11115int8 __ovld __cnfn select(int8, int8, uint8);
11116uint8 __ovld __cnfn select(uint8, uint8, uint8);
11117int16 __ovld __cnfn select(int16, int16, uint16);
11118uint16 __ovld __cnfn select(uint16, uint16, uint16);
11119float __ovld __cnfn select(float, float, uint);
11120float2 __ovld __cnfn select(float2, float2, uint2);
11121float3 __ovld __cnfn select(float3, float3, uint3);
11122float4 __ovld __cnfn select(float4, float4, uint4);
11123float8 __ovld __cnfn select(float8, float8, uint8);
11124float16 __ovld __cnfn select(float16, float16, uint16);
11125
11126long __ovld __cnfn select(long, long, ulong);
11128long2 __ovld __cnfn select(long2, long2, ulong2);
11129ulong2 __ovld __cnfn select(ulong2, ulong2, ulong2);
11130long3 __ovld __cnfn select(long3, long3, ulong3);
11131ulong3 __ovld __cnfn select(ulong3, ulong3, ulong3);
11132long4 __ovld __cnfn select(long4, long4, ulong4);
11133ulong4 __ovld __cnfn select(ulong4, ulong4, ulong4);
11134long8 __ovld __cnfn select(long8, long8, ulong8);
11135ulong8 __ovld __cnfn select(ulong8, ulong8, ulong8);
11136long16 __ovld __cnfn select(long16, long16, ulong16);
11137ulong16 __ovld __cnfn select(ulong16, ulong16, ulong16);
11138
11139#ifdef cl_khr_fp64
11140double __ovld __cnfn select(double, double, long);
11141double2 __ovld __cnfn select(double2, double2, long2);
11142double3 __ovld __cnfn select(double3, double3, long3);
11143double4 __ovld __cnfn select(double4, double4, long4);
11144double8 __ovld __cnfn select(double8, double8, long8);
11145double16 __ovld __cnfn select(double16, double16, long16);
11146double __ovld __cnfn select(double, double, ulong);
11147double2 __ovld __cnfn select(double2, double2, ulong2);
11148double3 __ovld __cnfn select(double3, double3, ulong3);
11149double4 __ovld __cnfn select(double4, double4, ulong4);
11150double8 __ovld __cnfn select(double8, double8, ulong8);
11151double16 __ovld __cnfn select(double16, double16, ulong16);
11152#endif //cl_khr_fp64
11153#ifdef cl_khr_fp16
11154half __ovld __cnfn select(half, half, short);
11155half2 __ovld __cnfn select(half2, half2, short2);
11156half3 __ovld __cnfn select(half3, half3, short3);
11157half4 __ovld __cnfn select(half4, half4, short4);
11158half8 __ovld __cnfn select(half8, half8, short8);
11159half16 __ovld __cnfn select(half16, half16, short16);
11160half __ovld __cnfn select(half, half, ushort);
11161half2 __ovld __cnfn select(half2, half2, ushort2);
11162half3 __ovld __cnfn select(half3, half3, ushort3);
11163half4 __ovld __cnfn select(half4, half4, ushort4);
11164half8 __ovld __cnfn select(half8, half8, ushort8);
11165half16 __ovld __cnfn select(half16, half16, ushort16);
11166#endif //cl_khr_fp16
11167
11168// OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions
11169// 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
11170/**
11171 * Use generic type gentype to indicate the built-in data types
11172 * char, uchar, short, ushort, int, uint, long, ulong, float,
11173 * double or half.
11174 *
11175 * vloadn return sizeof (gentypen) bytes of data read from address (p + (offset * n)).
11176 *
11177 * vstoren write sizeof (gentypen) bytes given by data to address (p + (offset * n)).
11178 *
11179 * The address computed as (p + (offset * n)) must be
11180 * 8-bit aligned if gentype is char, uchar;
11181 * 16-bit aligned if gentype is short, ushort, half;
11182 * 32-bit aligned if gentype is int, uint, float;
11183 * 64-bit aligned if gentype is long, ulong, double.
11184 */
11185
11186char2 __ovld __purefn vload2(size_t, const __constant char *);
11187uchar2 __ovld __purefn vload2(size_t, const __constant uchar *);
11188short2 __ovld __purefn vload2(size_t, const __constant short *);
11189ushort2 __ovld __purefn vload2(size_t, const __constant ushort *);
11190int2 __ovld __purefn vload2(size_t, const __constant int *);
11191uint2 __ovld __purefn vload2(size_t, const __constant uint *);
11192long2 __ovld __purefn vload2(size_t, const __constant long *);
11193ulong2 __ovld __purefn vload2(size_t, const __constant ulong *);
11194float2 __ovld __purefn vload2(size_t, const __constant float *);
11195char3 __ovld __purefn vload3(size_t, const __constant char *);
11196uchar3 __ovld __purefn vload3(size_t, const __constant uchar *);
11197short3 __ovld __purefn vload3(size_t, const __constant short *);
11198ushort3 __ovld __purefn vload3(size_t, const __constant ushort *);
11199int3 __ovld __purefn vload3(size_t, const __constant int *);
11200uint3 __ovld __purefn vload3(size_t, const __constant uint *);
11201long3 __ovld __purefn vload3(size_t, const __constant long *);
11202ulong3 __ovld __purefn vload3(size_t, const __constant ulong *);
11203float3 __ovld __purefn vload3(size_t, const __constant float *);
11204char4 __ovld __purefn vload4(size_t, const __constant char *);
11205uchar4 __ovld __purefn vload4(size_t, const __constant uchar *);
11206short4 __ovld __purefn vload4(size_t, const __constant short *);
11207ushort4 __ovld __purefn vload4(size_t, const __constant ushort *);
11208int4 __ovld __purefn vload4(size_t, const __constant int *);
11209uint4 __ovld __purefn vload4(size_t, const __constant uint *);
11210long4 __ovld __purefn vload4(size_t, const __constant long *);
11211ulong4 __ovld __purefn vload4(size_t, const __constant ulong *);
11212float4 __ovld __purefn vload4(size_t, const __constant float *);
11213char8 __ovld __purefn vload8(size_t, const __constant char *);
11214uchar8 __ovld __purefn vload8(size_t, const __constant uchar *);
11215short8 __ovld __purefn vload8(size_t, const __constant short *);
11216ushort8 __ovld __purefn vload8(size_t, const __constant ushort *);
11217int8 __ovld __purefn vload8(size_t, const __constant int *);
11218uint8 __ovld __purefn vload8(size_t, const __constant uint *);
11219long8 __ovld __purefn vload8(size_t, const __constant long *);
11220ulong8 __ovld __purefn vload8(size_t, const __constant ulong *);
11221float8 __ovld __purefn vload8(size_t, const __constant float *);
11222char16 __ovld __purefn vload16(size_t, const __constant char *);
11223uchar16 __ovld __purefn vload16(size_t, const __constant uchar *);
11224short16 __ovld __purefn vload16(size_t, const __constant short *);
11225ushort16 __ovld __purefn vload16(size_t, const __constant ushort *);
11226int16 __ovld __purefn vload16(size_t, const __constant int *);
11227uint16 __ovld __purefn vload16(size_t, const __constant uint *);
11228long16 __ovld __purefn vload16(size_t, const __constant long *);
11229ulong16 __ovld __purefn vload16(size_t, const __constant ulong *);
11230float16 __ovld __purefn vload16(size_t, const __constant float *);
11231#ifdef cl_khr_fp64
11232double2 __ovld __purefn vload2(size_t, const __constant double *);
11233double3 __ovld __purefn vload3(size_t, const __constant double *);
11234double4 __ovld __purefn vload4(size_t, const __constant double *);
11235double8 __ovld __purefn vload8(size_t, const __constant double *);
11236double16 __ovld __purefn vload16(size_t, const __constant double *);
11237#endif //cl_khr_fp64
11238
11239#ifdef cl_khr_fp16
11240half2 __ovld __purefn vload2(size_t, const __constant half *);
11241half3 __ovld __purefn vload3(size_t, const __constant half *);
11242half4 __ovld __purefn vload4(size_t, const __constant half *);
11243half8 __ovld __purefn vload8(size_t, const __constant half *);
11244half16 __ovld __purefn vload16(size_t, const __constant half *);
11245#endif //cl_khr_fp16
11246
11247#if defined(__opencl_c_generic_address_space)
11248char2 __ovld __purefn vload2(size_t, const char *);
11249uchar2 __ovld __purefn vload2(size_t, const uchar *);
11250short2 __ovld __purefn vload2(size_t, const short *);
11251ushort2 __ovld __purefn vload2(size_t, const ushort *);
11252int2 __ovld __purefn vload2(size_t, const int *);
11253uint2 __ovld __purefn vload2(size_t, const uint *);
11254long2 __ovld __purefn vload2(size_t, const long *);
11255ulong2 __ovld __purefn vload2(size_t, const ulong *);
11256float2 __ovld __purefn vload2(size_t, const float *);
11257char3 __ovld __purefn vload3(size_t, const char *);
11258uchar3 __ovld __purefn vload3(size_t, const uchar *);
11259short3 __ovld __purefn vload3(size_t, const short *);
11260ushort3 __ovld __purefn vload3(size_t, const ushort *);
11261int3 __ovld __purefn vload3(size_t, const int *);
11262uint3 __ovld __purefn vload3(size_t, const uint *);
11263long3 __ovld __purefn vload3(size_t, const long *);
11264ulong3 __ovld __purefn vload3(size_t, const ulong *);
11265float3 __ovld __purefn vload3(size_t, const float *);
11266char4 __ovld __purefn vload4(size_t, const char *);
11267uchar4 __ovld __purefn vload4(size_t, const uchar *);
11268short4 __ovld __purefn vload4(size_t, const short *);
11269ushort4 __ovld __purefn vload4(size_t, const ushort *);
11270int4 __ovld __purefn vload4(size_t, const int *);
11271uint4 __ovld __purefn vload4(size_t, const uint *);
11272long4 __ovld __purefn vload4(size_t, const long *);
11273ulong4 __ovld __purefn vload4(size_t, const ulong *);
11274float4 __ovld __purefn vload4(size_t, const float *);
11275char8 __ovld __purefn vload8(size_t, const char *);
11276uchar8 __ovld __purefn vload8(size_t, const uchar *);
11277short8 __ovld __purefn vload8(size_t, const short *);
11278ushort8 __ovld __purefn vload8(size_t, const ushort *);
11279int8 __ovld __purefn vload8(size_t, const int *);
11280uint8 __ovld __purefn vload8(size_t, const uint *);
11281long8 __ovld __purefn vload8(size_t, const long *);
11282ulong8 __ovld __purefn vload8(size_t, const ulong *);
11283float8 __ovld __purefn vload8(size_t, const float *);
11284char16 __ovld __purefn vload16(size_t, const char *);
11285uchar16 __ovld __purefn vload16(size_t, const uchar *);
11286short16 __ovld __purefn vload16(size_t, const short *);
11287ushort16 __ovld __purefn vload16(size_t, const ushort *);
11288int16 __ovld __purefn vload16(size_t, const int *);
11289uint16 __ovld __purefn vload16(size_t, const uint *);
11290long16 __ovld __purefn vload16(size_t, const long *);
11291ulong16 __ovld __purefn vload16(size_t, const ulong *);
11292float16 __ovld __purefn vload16(size_t, const float *);
11293
11294#ifdef cl_khr_fp64
11295double2 __ovld __purefn vload2(size_t, const double *);
11296double3 __ovld __purefn vload3(size_t, const double *);
11297double4 __ovld __purefn vload4(size_t, const double *);
11298double8 __ovld __purefn vload8(size_t, const double *);
11299double16 __ovld __purefn vload16(size_t, const double *);
11300#endif //cl_khr_fp64
11301
11302#ifdef cl_khr_fp16
11303half2 __ovld __purefn vload2(size_t, const half *);
11304half3 __ovld __purefn vload3(size_t, const half *);
11305half4 __ovld __purefn vload4(size_t, const half *);
11306half8 __ovld __purefn vload8(size_t, const half *);
11307half16 __ovld __purefn vload16(size_t, const half *);
11308#endif //cl_khr_fp16
11309#endif //defined(__opencl_c_generic_address_space)
11310
11311#if defined(__opencl_c_named_address_space_builtins)
11312char2 __ovld __purefn vload2(size_t, const __global char *);
11313uchar2 __ovld __purefn vload2(size_t, const __global uchar *);
11314short2 __ovld __purefn vload2(size_t, const __global short *);
11315ushort2 __ovld __purefn vload2(size_t, const __global ushort *);
11316int2 __ovld __purefn vload2(size_t, const __global int *);
11317uint2 __ovld __purefn vload2(size_t, const __global uint *);
11318long2 __ovld __purefn vload2(size_t, const __global long *);
11319ulong2 __ovld __purefn vload2(size_t, const __global ulong *);
11320float2 __ovld __purefn vload2(size_t, const __global float *);
11321char3 __ovld __purefn vload3(size_t, const __global char *);
11322uchar3 __ovld __purefn vload3(size_t, const __global uchar *);
11323short3 __ovld __purefn vload3(size_t, const __global short *);
11324ushort3 __ovld __purefn vload3(size_t, const __global ushort *);
11325int3 __ovld __purefn vload3(size_t, const __global int *);
11326uint3 __ovld __purefn vload3(size_t, const __global uint *);
11327long3 __ovld __purefn vload3(size_t, const __global long *);
11328ulong3 __ovld __purefn vload3(size_t, const __global ulong *);
11329float3 __ovld __purefn vload3(size_t, const __global float *);
11330char4 __ovld __purefn vload4(size_t, const __global char *);
11331uchar4 __ovld __purefn vload4(size_t, const __global uchar *);
11332short4 __ovld __purefn vload4(size_t, const __global short *);
11333ushort4 __ovld __purefn vload4(size_t, const __global ushort *);
11334int4 __ovld __purefn vload4(size_t, const __global int *);
11335uint4 __ovld __purefn vload4(size_t, const __global uint *);
11336long4 __ovld __purefn vload4(size_t, const __global long *);
11337ulong4 __ovld __purefn vload4(size_t, const __global ulong *);
11338float4 __ovld __purefn vload4(size_t, const __global float *);
11339char8 __ovld __purefn vload8(size_t, const __global char *);
11340uchar8 __ovld __purefn vload8(size_t, const __global uchar *);
11341short8 __ovld __purefn vload8(size_t, const __global short *);
11342ushort8 __ovld __purefn vload8(size_t, const __global ushort *);
11343int8 __ovld __purefn vload8(size_t, const __global int *);
11344uint8 __ovld __purefn vload8(size_t, const __global uint *);
11345long8 __ovld __purefn vload8(size_t, const __global long *);
11346ulong8 __ovld __purefn vload8(size_t, const __global ulong *);
11347float8 __ovld __purefn vload8(size_t, const __global float *);
11348char16 __ovld __purefn vload16(size_t, const __global char *);
11349uchar16 __ovld __purefn vload16(size_t, const __global uchar *);
11350short16 __ovld __purefn vload16(size_t, const __global short *);
11351ushort16 __ovld __purefn vload16(size_t, const __global ushort *);
11352int16 __ovld __purefn vload16(size_t, const __global int *);
11353uint16 __ovld __purefn vload16(size_t, const __global uint *);
11354long16 __ovld __purefn vload16(size_t, const __global long *);
11355ulong16 __ovld __purefn vload16(size_t, const __global ulong *);
11356float16 __ovld __purefn vload16(size_t, const __global float *);
11357char2 __ovld __purefn vload2(size_t, const __local char *);
11358uchar2 __ovld __purefn vload2(size_t, const __local uchar *);
11359short2 __ovld __purefn vload2(size_t, const __local short *);
11360ushort2 __ovld __purefn vload2(size_t, const __local ushort *);
11361int2 __ovld __purefn vload2(size_t, const __local int *);
11362uint2 __ovld __purefn vload2(size_t, const __local uint *);
11363long2 __ovld __purefn vload2(size_t, const __local long *);
11364ulong2 __ovld __purefn vload2(size_t, const __local ulong *);
11365float2 __ovld __purefn vload2(size_t, const __local float *);
11366char3 __ovld __purefn vload3(size_t, const __local char *);
11367uchar3 __ovld __purefn vload3(size_t, const __local uchar *);
11368short3 __ovld __purefn vload3(size_t, const __local short *);
11369ushort3 __ovld __purefn vload3(size_t, const __local ushort *);
11370int3 __ovld __purefn vload3(size_t, const __local int *);
11371uint3 __ovld __purefn vload3(size_t, const __local uint *);
11372long3 __ovld __purefn vload3(size_t, const __local long *);
11373ulong3 __ovld __purefn vload3(size_t, const __local ulong *);
11374float3 __ovld __purefn vload3(size_t, const __local float *);
11375char4 __ovld __purefn vload4(size_t, const __local char *);
11376uchar4 __ovld __purefn vload4(size_t, const __local uchar *);
11377short4 __ovld __purefn vload4(size_t, const __local short *);
11378ushort4 __ovld __purefn vload4(size_t, const __local ushort *);
11379int4 __ovld __purefn vload4(size_t, const __local int *);
11380uint4 __ovld __purefn vload4(size_t, const __local uint *);
11381long4 __ovld __purefn vload4(size_t, const __local long *);
11382ulong4 __ovld __purefn vload4(size_t, const __local ulong *);
11383float4 __ovld __purefn vload4(size_t, const __local float *);
11384char8 __ovld __purefn vload8(size_t, const __local char *);
11385uchar8 __ovld __purefn vload8(size_t, const __local uchar *);
11386short8 __ovld __purefn vload8(size_t, const __local short *);
11387ushort8 __ovld __purefn vload8(size_t, const __local ushort *);
11388int8 __ovld __purefn vload8(size_t, const __local int *);
11389uint8 __ovld __purefn vload8(size_t, const __local uint *);
11390long8 __ovld __purefn vload8(size_t, const __local long *);
11391ulong8 __ovld __purefn vload8(size_t, const __local ulong *);
11392float8 __ovld __purefn vload8(size_t, const __local float *);
11393char16 __ovld __purefn vload16(size_t, const __local char *);
11394uchar16 __ovld __purefn vload16(size_t, const __local uchar *);
11395short16 __ovld __purefn vload16(size_t, const __local short *);
11396ushort16 __ovld __purefn vload16(size_t, const __local ushort *);
11397int16 __ovld __purefn vload16(size_t, const __local int *);
11398uint16 __ovld __purefn vload16(size_t, const __local uint *);
11399long16 __ovld __purefn vload16(size_t, const __local long *);
11400ulong16 __ovld __purefn vload16(size_t, const __local ulong *);
11401float16 __ovld __purefn vload16(size_t, const __local float *);
11402char2 __ovld __purefn vload2(size_t, const __private char *);
11403uchar2 __ovld __purefn vload2(size_t, const __private uchar *);
11404short2 __ovld __purefn vload2(size_t, const __private short *);
11405ushort2 __ovld __purefn vload2(size_t, const __private ushort *);
11406int2 __ovld __purefn vload2(size_t, const __private int *);
11407uint2 __ovld __purefn vload2(size_t, const __private uint *);
11408long2 __ovld __purefn vload2(size_t, const __private long *);
11409ulong2 __ovld __purefn vload2(size_t, const __private ulong *);
11410float2 __ovld __purefn vload2(size_t, const __private float *);
11411char3 __ovld __purefn vload3(size_t, const __private char *);
11412uchar3 __ovld __purefn vload3(size_t, const __private uchar *);
11413short3 __ovld __purefn vload3(size_t, const __private short *);
11414ushort3 __ovld __purefn vload3(size_t, const __private ushort *);
11415int3 __ovld __purefn vload3(size_t, const __private int *);
11416uint3 __ovld __purefn vload3(size_t, const __private uint *);
11417long3 __ovld __purefn vload3(size_t, const __private long *);
11418ulong3 __ovld __purefn vload3(size_t, const __private ulong *);
11419float3 __ovld __purefn vload3(size_t, const __private float *);
11420char4 __ovld __purefn vload4(size_t, const __private char *);
11421uchar4 __ovld __purefn vload4(size_t, const __private uchar *);
11422short4 __ovld __purefn vload4(size_t, const __private short *);
11423ushort4 __ovld __purefn vload4(size_t, const __private ushort *);
11424int4 __ovld __purefn vload4(size_t, const __private int *);
11425uint4 __ovld __purefn vload4(size_t, const __private uint *);
11426long4 __ovld __purefn vload4(size_t, const __private long *);
11427ulong4 __ovld __purefn vload4(size_t, const __private ulong *);
11428float4 __ovld __purefn vload4(size_t, const __private float *);
11429char8 __ovld __purefn vload8(size_t, const __private char *);
11430uchar8 __ovld __purefn vload8(size_t, const __private uchar *);
11431short8 __ovld __purefn vload8(size_t, const __private short *);
11432ushort8 __ovld __purefn vload8(size_t, const __private ushort *);
11433int8 __ovld __purefn vload8(size_t, const __private int *);
11434uint8 __ovld __purefn vload8(size_t, const __private uint *);
11435long8 __ovld __purefn vload8(size_t, const __private long *);
11436ulong8 __ovld __purefn vload8(size_t, const __private ulong *);
11437float8 __ovld __purefn vload8(size_t, const __private float *);
11438char16 __ovld __purefn vload16(size_t, const __private char *);
11439uchar16 __ovld __purefn vload16(size_t, const __private uchar *);
11440short16 __ovld __purefn vload16(size_t, const __private short *);
11441ushort16 __ovld __purefn vload16(size_t, const __private ushort *);
11442int16 __ovld __purefn vload16(size_t, const __private int *);
11443uint16 __ovld __purefn vload16(size_t, const __private uint *);
11444long16 __ovld __purefn vload16(size_t, const __private long *);
11445ulong16 __ovld __purefn vload16(size_t, const __private ulong *);
11446float16 __ovld __purefn vload16(size_t, const __private float *);
11447
11448#ifdef cl_khr_fp64
11449double2 __ovld __purefn vload2(size_t, const __global double *);
11450double3 __ovld __purefn vload3(size_t, const __global double *);
11451double4 __ovld __purefn vload4(size_t, const __global double *);
11452double8 __ovld __purefn vload8(size_t, const __global double *);
11453double16 __ovld __purefn vload16(size_t, const __global double *);
11454double2 __ovld __purefn vload2(size_t, const __local double *);
11455double3 __ovld __purefn vload3(size_t, const __local double *);
11456double4 __ovld __purefn vload4(size_t, const __local double *);
11457double8 __ovld __purefn vload8(size_t, const __local double *);
11458double16 __ovld __purefn vload16(size_t, const __local double *);
11459double2 __ovld __purefn vload2(size_t, const __private double *);
11460double3 __ovld __purefn vload3(size_t, const __private double *);
11461double4 __ovld __purefn vload4(size_t, const __private double *);
11462double8 __ovld __purefn vload8(size_t, const __private double *);
11463double16 __ovld __purefn vload16(size_t, const __private double *);
11464#endif //cl_khr_fp64
11465
11466#ifdef cl_khr_fp16
11467half2 __ovld __purefn vload2(size_t, const __global half *);
11468half3 __ovld __purefn vload3(size_t, const __global half *);
11469half4 __ovld __purefn vload4(size_t, const __global half *);
11470half8 __ovld __purefn vload8(size_t, const __global half *);
11471half16 __ovld __purefn vload16(size_t, const __global half *);
11472half2 __ovld __purefn vload2(size_t, const __local half *);
11473half3 __ovld __purefn vload3(size_t, const __local half *);
11474half4 __ovld __purefn vload4(size_t, const __local half *);
11475half8 __ovld __purefn vload8(size_t, const __local half *);
11476half16 __ovld __purefn vload16(size_t, const __local half *);
11477half2 __ovld __purefn vload2(size_t, const __private half *);
11478half3 __ovld __purefn vload3(size_t, const __private half *);
11479half4 __ovld __purefn vload4(size_t, const __private half *);
11480half8 __ovld __purefn vload8(size_t, const __private half *);
11481half16 __ovld __purefn vload16(size_t, const __private half *);
11482#endif //cl_khr_fp16
11483#endif //defined(__opencl_c_named_address_space_builtins)
11484
11485#if defined(__opencl_c_generic_address_space)
11486void __ovld vstore2(char2, size_t, char *);
11487void __ovld vstore2(uchar2, size_t, uchar *);
11488void __ovld vstore2(short2, size_t, short *);
11489void __ovld vstore2(ushort2, size_t, ushort *);
11490void __ovld vstore2(int2, size_t, int *);
11491void __ovld vstore2(uint2, size_t, uint *);
11492void __ovld vstore2(long2, size_t, long *);
11493void __ovld vstore2(ulong2, size_t, ulong *);
11494void __ovld vstore2(float2, size_t, float *);
11495void __ovld vstore3(char3, size_t, char *);
11496void __ovld vstore3(uchar3, size_t, uchar *);
11497void __ovld vstore3(short3, size_t, short *);
11498void __ovld vstore3(ushort3, size_t, ushort *);
11499void __ovld vstore3(int3, size_t, int *);
11500void __ovld vstore3(uint3, size_t, uint *);
11501void __ovld vstore3(long3, size_t, long *);
11502void __ovld vstore3(ulong3, size_t, ulong *);
11503void __ovld vstore3(float3, size_t, float *);
11504void __ovld vstore4(char4, size_t, char *);
11505void __ovld vstore4(uchar4, size_t, uchar *);
11506void __ovld vstore4(short4, size_t, short *);
11507void __ovld vstore4(ushort4, size_t, ushort *);
11508void __ovld vstore4(int4, size_t, int *);
11509void __ovld vstore4(uint4, size_t, uint *);
11510void __ovld vstore4(long4, size_t, long *);
11511void __ovld vstore4(ulong4, size_t, ulong *);
11512void __ovld vstore4(float4, size_t, float *);
11513void __ovld vstore8(char8, size_t, char *);
11514void __ovld vstore8(uchar8, size_t, uchar *);
11515void __ovld vstore8(short8, size_t, short *);
11516void __ovld vstore8(ushort8, size_t, ushort *);
11517void __ovld vstore8(int8, size_t, int *);
11518void __ovld vstore8(uint8, size_t, uint *);
11519void __ovld vstore8(long8, size_t, long *);
11520void __ovld vstore8(ulong8, size_t, ulong *);
11521void __ovld vstore8(float8, size_t, float *);
11522void __ovld vstore16(char16, size_t, char *);
11523void __ovld vstore16(uchar16, size_t, uchar *);
11524void __ovld vstore16(short16, size_t, short *);
11525void __ovld vstore16(ushort16, size_t, ushort *);
11526void __ovld vstore16(int16, size_t, int *);
11527void __ovld vstore16(uint16, size_t, uint *);
11528void __ovld vstore16(long16, size_t, long *);
11529void __ovld vstore16(ulong16, size_t, ulong *);
11530void __ovld vstore16(float16, size_t, float *);
11531#ifdef cl_khr_fp64
11532void __ovld vstore2(double2, size_t, double *);
11533void __ovld vstore3(double3, size_t, double *);
11534void __ovld vstore4(double4, size_t, double *);
11535void __ovld vstore8(double8, size_t, double *);
11536void __ovld vstore16(double16, size_t, double *);
11537#endif //cl_khr_fp64
11538#ifdef cl_khr_fp16
11539void __ovld vstore2(half2, size_t, half *);
11540void __ovld vstore3(half3, size_t, half *);
11541void __ovld vstore4(half4, size_t, half *);
11542void __ovld vstore8(half8, size_t, half *);
11543void __ovld vstore16(half16, size_t, half *);
11544#endif //cl_khr_fp16
11545#endif //defined(__opencl_c_generic_address_space)
11546
11547#if defined(__opencl_c_named_address_space_builtins)
11548void __ovld vstore2(char2, size_t, __global char *);
11549void __ovld vstore2(uchar2, size_t, __global uchar *);
11550void __ovld vstore2(short2, size_t, __global short *);
11551void __ovld vstore2(ushort2, size_t, __global ushort *);
11552void __ovld vstore2(int2, size_t, __global int *);
11553void __ovld vstore2(uint2, size_t, __global uint *);
11554void __ovld vstore2(long2, size_t, __global long *);
11555void __ovld vstore2(ulong2, size_t, __global ulong *);
11556void __ovld vstore2(float2, size_t, __global float *);
11557void __ovld vstore3(char3, size_t, __global char *);
11558void __ovld vstore3(uchar3, size_t, __global uchar *);
11559void __ovld vstore3(short3, size_t, __global short *);
11560void __ovld vstore3(ushort3, size_t, __global ushort *);
11561void __ovld vstore3(int3, size_t, __global int *);
11562void __ovld vstore3(uint3, size_t, __global uint *);
11563void __ovld vstore3(long3, size_t, __global long *);
11564void __ovld vstore3(ulong3, size_t, __global ulong *);
11565void __ovld vstore3(float3, size_t, __global float *);
11566void __ovld vstore4(char4, size_t, __global char *);
11567void __ovld vstore4(uchar4, size_t, __global uchar *);
11568void __ovld vstore4(short4, size_t, __global short *);
11569void __ovld vstore4(ushort4, size_t, __global ushort *);
11570void __ovld vstore4(int4, size_t, __global int *);
11571void __ovld vstore4(uint4, size_t, __global uint *);
11572void __ovld vstore4(long4, size_t, __global long *);
11573void __ovld vstore4(ulong4, size_t, __global ulong *);
11574void __ovld vstore4(float4, size_t, __global float *);
11575void __ovld vstore8(char8, size_t, __global char *);
11576void __ovld vstore8(uchar8, size_t, __global uchar *);
11577void __ovld vstore8(short8, size_t, __global short *);
11578void __ovld vstore8(ushort8, size_t, __global ushort *);
11579void __ovld vstore8(int8, size_t, __global int *);
11580void __ovld vstore8(uint8, size_t, __global uint *);
11581void __ovld vstore8(long8, size_t, __global long *);
11582void __ovld vstore8(ulong8, size_t, __global ulong *);
11583void __ovld vstore8(float8, size_t, __global float *);
11584void __ovld vstore16(char16, size_t, __global char *);
11585void __ovld vstore16(uchar16, size_t, __global uchar *);
11586void __ovld vstore16(short16, size_t, __global short *);
11587void __ovld vstore16(ushort16, size_t, __global ushort *);
11588void __ovld vstore16(int16, size_t, __global int *);
11589void __ovld vstore16(uint16, size_t, __global uint *);
11590void __ovld vstore16(long16, size_t, __global long *);
11591void __ovld vstore16(ulong16, size_t, __global ulong *);
11592void __ovld vstore16(float16, size_t, __global float *);
11593void __ovld vstore2(char2, size_t, __local char *);
11594void __ovld vstore2(uchar2, size_t, __local uchar *);
11595void __ovld vstore2(short2, size_t, __local short *);
11596void __ovld vstore2(ushort2, size_t, __local ushort *);
11597void __ovld vstore2(int2, size_t, __local int *);
11598void __ovld vstore2(uint2, size_t, __local uint *);
11599void __ovld vstore2(long2, size_t, __local long *);
11600void __ovld vstore2(ulong2, size_t, __local ulong *);
11601void __ovld vstore2(float2, size_t, __local float *);
11602void __ovld vstore3(char3, size_t, __local char *);
11603void __ovld vstore3(uchar3, size_t, __local uchar *);
11604void __ovld vstore3(short3, size_t, __local short *);
11605void __ovld vstore3(ushort3, size_t, __local ushort *);
11606void __ovld vstore3(int3, size_t, __local int *);
11607void __ovld vstore3(uint3, size_t, __local uint *);
11608void __ovld vstore3(long3, size_t, __local long *);
11609void __ovld vstore3(ulong3, size_t, __local ulong *);
11610void __ovld vstore3(float3, size_t, __local float *);
11611void __ovld vstore4(char4, size_t, __local char *);
11612void __ovld vstore4(uchar4, size_t, __local uchar *);
11613void __ovld vstore4(short4, size_t, __local short *);
11614void __ovld vstore4(ushort4, size_t, __local ushort *);
11615void __ovld vstore4(int4, size_t, __local int *);
11616void __ovld vstore4(uint4, size_t, __local uint *);
11617void __ovld vstore4(long4, size_t, __local long *);
11618void __ovld vstore4(ulong4, size_t, __local ulong *);
11619void __ovld vstore4(float4, size_t, __local float *);
11620void __ovld vstore8(char8, size_t, __local char *);
11621void __ovld vstore8(uchar8, size_t, __local uchar *);
11622void __ovld vstore8(short8, size_t, __local short *);
11623void __ovld vstore8(ushort8, size_t, __local ushort *);
11624void __ovld vstore8(int8, size_t, __local int *);
11625void __ovld vstore8(uint8, size_t, __local uint *);
11626void __ovld vstore8(long8, size_t, __local long *);
11627void __ovld vstore8(ulong8, size_t, __local ulong *);
11628void __ovld vstore8(float8, size_t, __local float *);
11629void __ovld vstore16(char16, size_t, __local char *);
11630void __ovld vstore16(uchar16, size_t, __local uchar *);
11631void __ovld vstore16(short16, size_t, __local short *);
11632void __ovld vstore16(ushort16, size_t, __local ushort *);
11633void __ovld vstore16(int16, size_t, __local int *);
11634void __ovld vstore16(uint16, size_t, __local uint *);
11635void __ovld vstore16(long16, size_t, __local long *);
11636void __ovld vstore16(ulong16, size_t, __local ulong *);
11637void __ovld vstore16(float16, size_t, __local float *);
11638void __ovld vstore2(char2, size_t, __private char *);
11639void __ovld vstore2(uchar2, size_t, __private uchar *);
11640void __ovld vstore2(short2, size_t, __private short *);
11641void __ovld vstore2(ushort2, size_t, __private ushort *);
11642void __ovld vstore2(int2, size_t, __private int *);
11643void __ovld vstore2(uint2, size_t, __private uint *);
11644void __ovld vstore2(long2, size_t, __private long *);
11645void __ovld vstore2(ulong2, size_t, __private ulong *);
11646void __ovld vstore2(float2, size_t, __private float *);
11647void __ovld vstore3(char3, size_t, __private char *);
11648void __ovld vstore3(uchar3, size_t, __private uchar *);
11649void __ovld vstore3(short3, size_t, __private short *);
11650void __ovld vstore3(ushort3, size_t, __private ushort *);
11651void __ovld vstore3(int3, size_t, __private int *);
11652void __ovld vstore3(uint3, size_t, __private uint *);
11653void __ovld vstore3(long3, size_t, __private long *);
11654void __ovld vstore3(ulong3, size_t, __private ulong *);
11655void __ovld vstore3(float3, size_t, __private float *);
11656void __ovld vstore4(char4, size_t, __private char *);
11657void __ovld vstore4(uchar4, size_t, __private uchar *);
11658void __ovld vstore4(short4, size_t, __private short *);
11659void __ovld vstore4(ushort4, size_t, __private ushort *);
11660void __ovld vstore4(int4, size_t, __private int *);
11661void __ovld vstore4(uint4, size_t, __private uint *);
11662void __ovld vstore4(long4, size_t, __private long *);
11663void __ovld vstore4(ulong4, size_t, __private ulong *);
11664void __ovld vstore4(float4, size_t, __private float *);
11665void __ovld vstore8(char8, size_t, __private char *);
11666void __ovld vstore8(uchar8, size_t, __private uchar *);
11667void __ovld vstore8(short8, size_t, __private short *);
11668void __ovld vstore8(ushort8, size_t, __private ushort *);
11669void __ovld vstore8(int8, size_t, __private int *);
11670void __ovld vstore8(uint8, size_t, __private uint *);
11671void __ovld vstore8(long8, size_t, __private long *);
11672void __ovld vstore8(ulong8, size_t, __private ulong *);
11673void __ovld vstore8(float8, size_t, __private float *);
11674void __ovld vstore16(char16, size_t, __private char *);
11675void __ovld vstore16(uchar16, size_t, __private uchar *);
11676void __ovld vstore16(short16, size_t, __private short *);
11677void __ovld vstore16(ushort16, size_t, __private ushort *);
11678void __ovld vstore16(int16, size_t, __private int *);
11679void __ovld vstore16(uint16, size_t, __private uint *);
11680void __ovld vstore16(long16, size_t, __private long *);
11681void __ovld vstore16(ulong16, size_t, __private ulong *);
11682void __ovld vstore16(float16, size_t, __private float *);
11683#ifdef cl_khr_fp64
11684void __ovld vstore2(double2, size_t, __global double *);
11685void __ovld vstore3(double3, size_t, __global double *);
11686void __ovld vstore4(double4, size_t, __global double *);
11687void __ovld vstore8(double8, size_t, __global double *);
11688void __ovld vstore16(double16, size_t, __global double *);
11689void __ovld vstore2(double2, size_t, __local double *);
11690void __ovld vstore3(double3, size_t, __local double *);
11691void __ovld vstore4(double4, size_t, __local double *);
11692void __ovld vstore8(double8, size_t, __local double *);
11693void __ovld vstore16(double16, size_t, __local double *);
11694void __ovld vstore2(double2, size_t, __private double *);
11695void __ovld vstore3(double3, size_t, __private double *);
11696void __ovld vstore4(double4, size_t, __private double *);
11697void __ovld vstore8(double8, size_t, __private double *);
11698void __ovld vstore16(double16, size_t, __private double *);
11699#endif //cl_khr_fp64
11700#ifdef cl_khr_fp16
11701void __ovld vstore2(half2, size_t, __global half *);
11702void __ovld vstore3(half3, size_t, __global half *);
11703void __ovld vstore4(half4, size_t, __global half *);
11704void __ovld vstore8(half8, size_t, __global half *);
11705void __ovld vstore16(half16, size_t, __global half *);
11706void __ovld vstore2(half2, size_t, __local half *);
11707void __ovld vstore3(half3, size_t, __local half *);
11708void __ovld vstore4(half4, size_t, __local half *);
11709void __ovld vstore8(half8, size_t, __local half *);
11710void __ovld vstore16(half16, size_t, __local half *);
11711void __ovld vstore2(half2, size_t, __private half *);
11712void __ovld vstore3(half3, size_t, __private half *);
11713void __ovld vstore4(half4, size_t, __private half *);
11714void __ovld vstore8(half8, size_t, __private half *);
11715void __ovld vstore16(half16, size_t, __private half *);
11716#endif //cl_khr_fp16
11717#endif //defined(__opencl_c_named_address_space_builtins)
11718
11719/**
11720 * Read sizeof (half) bytes of data from address
11721 * (p + offset). The data read is interpreted as a
11722 * half value. The half value is converted to a
11723 * float value and the float value is returned.
11724 * The read address computed as (p + offset)
11725 * must be 16-bit aligned.
11726 */
11727float __ovld __purefn vload_half(size_t, const __constant half *);
11728#if defined(__opencl_c_generic_address_space)
11729float __ovld __purefn vload_half(size_t, const half *);
11730#endif //defined(__opencl_c_generic_address_space)
11731
11732#if defined(__opencl_c_named_address_space_builtins)
11733float __ovld __purefn vload_half(size_t, const __global half *);
11734float __ovld __purefn vload_half(size_t, const __local half *);
11735float __ovld __purefn vload_half(size_t, const __private half *);
11736#endif //defined(__opencl_c_named_address_space_builtins)
11737
11738/**
11739 * Read sizeof (halfn) bytes of data from address
11740 * (p + (offset * n)). The data read is interpreted
11741 * as a halfn value. The halfn value read is
11742 * converted to a floatn value and the floatn
11743 * value is returned. The read address computed
11744 * as (p + (offset * n)) must be 16-bit aligned.
11745 */
11746float2 __ovld __purefn vload_half2(size_t, const __constant half *);
11747float3 __ovld __purefn vload_half3(size_t, const __constant half *);
11748float4 __ovld __purefn vload_half4(size_t, const __constant half *);
11749float8 __ovld __purefn vload_half8(size_t, const __constant half *);
11750float16 __ovld __purefn vload_half16(size_t, const __constant half *);
11751#if defined(__opencl_c_generic_address_space)
11752float2 __ovld __purefn vload_half2(size_t, const half *);
11753float3 __ovld __purefn vload_half3(size_t, const half *);
11754float4 __ovld __purefn vload_half4(size_t, const half *);
11755float8 __ovld __purefn vload_half8(size_t, const half *);
11756float16 __ovld __purefn vload_half16(size_t, const half *);
11757#endif //defined(__opencl_c_generic_address_space)
11758
11759#if defined(__opencl_c_named_address_space_builtins)
11760float2 __ovld __purefn vload_half2(size_t, const __global half *);
11761float3 __ovld __purefn vload_half3(size_t, const __global half *);
11762float4 __ovld __purefn vload_half4(size_t, const __global half *);
11763float8 __ovld __purefn vload_half8(size_t, const __global half *);
11764float16 __ovld __purefn vload_half16(size_t, const __global half *);
11765float2 __ovld __purefn vload_half2(size_t, const __local half *);
11766float3 __ovld __purefn vload_half3(size_t, const __local half *);
11767float4 __ovld __purefn vload_half4(size_t, const __local half *);
11768float8 __ovld __purefn vload_half8(size_t, const __local half *);
11769float16 __ovld __purefn vload_half16(size_t, const __local half *);
11770float2 __ovld __purefn vload_half2(size_t, const __private half *);
11771float3 __ovld __purefn vload_half3(size_t, const __private half *);
11772float4 __ovld __purefn vload_half4(size_t, const __private half *);
11773float8 __ovld __purefn vload_half8(size_t, const __private half *);
11774float16 __ovld __purefn vload_half16(size_t, const __private half *);
11775#endif //defined(__opencl_c_named_address_space_builtins)
11776
11777/**
11778 * The float value given by data is first
11779 * converted to a half value using the appropriate
11780 * rounding mode. The half value is then written
11781 * to address computed as (p + offset). The
11782 * address computed as (p + offset) must be 16-
11783 * bit aligned.
11784 * vstore_half use the current rounding mode.
11785 * The default current rounding mode is round to
11786 * nearest even.
11787 */
11788#if defined(__opencl_c_generic_address_space)
11789void __ovld vstore_half(float, size_t, half *);
11790void __ovld vstore_half_rte(float, size_t, half *);
11791void __ovld vstore_half_rtz(float, size_t, half *);
11792void __ovld vstore_half_rtp(float, size_t, half *);
11793void __ovld vstore_half_rtn(float, size_t, half *);
11794#ifdef cl_khr_fp64
11795void __ovld vstore_half(double, size_t, half *);
11796void __ovld vstore_half_rte(double, size_t, half *);
11797void __ovld vstore_half_rtz(double, size_t, half *);
11798void __ovld vstore_half_rtp(double, size_t, half *);
11799void __ovld vstore_half_rtn(double, size_t, half *);
11800#endif //cl_khr_fp64
11801#endif //defined(__opencl_c_generic_address_space)
11802
11803#if defined(__opencl_c_named_address_space_builtins)
11804void __ovld vstore_half(float, size_t, __global half *);
11805void __ovld vstore_half_rte(float, size_t, __global half *);
11806void __ovld vstore_half_rtz(float, size_t, __global half *);
11807void __ovld vstore_half_rtp(float, size_t, __global half *);
11808void __ovld vstore_half_rtn(float, size_t, __global half *);
11809void __ovld vstore_half(float, size_t, __local half *);
11810void __ovld vstore_half_rte(float, size_t, __local half *);
11811void __ovld vstore_half_rtz(float, size_t, __local half *);
11812void __ovld vstore_half_rtp(float, size_t, __local half *);
11813void __ovld vstore_half_rtn(float, size_t, __local half *);
11814void __ovld vstore_half(float, size_t, __private half *);
11815void __ovld vstore_half_rte(float, size_t, __private half *);
11816void __ovld vstore_half_rtz(float, size_t, __private half *);
11817void __ovld vstore_half_rtp(float, size_t, __private half *);
11818void __ovld vstore_half_rtn(float, size_t, __private half *);
11819#ifdef cl_khr_fp64
11820void __ovld vstore_half(double, size_t, __global half *);
11821void __ovld vstore_half_rte(double, size_t, __global half *);
11822void __ovld vstore_half_rtz(double, size_t, __global half *);
11823void __ovld vstore_half_rtp(double, size_t, __global half *);
11824void __ovld vstore_half_rtn(double, size_t, __global half *);
11825void __ovld vstore_half(double, size_t, __local half *);
11826void __ovld vstore_half_rte(double, size_t, __local half *);
11827void __ovld vstore_half_rtz(double, size_t, __local half *);
11828void __ovld vstore_half_rtp(double, size_t, __local half *);
11829void __ovld vstore_half_rtn(double, size_t, __local half *);
11830void __ovld vstore_half(double, size_t, __private half *);
11831void __ovld vstore_half_rte(double, size_t, __private half *);
11832void __ovld vstore_half_rtz(double, size_t, __private half *);
11833void __ovld vstore_half_rtp(double, size_t, __private half *);
11834void __ovld vstore_half_rtn(double, size_t, __private half *);
11835#endif //cl_khr_fp64
11836#endif //defined(__opencl_c_named_address_space_builtins)
11837
11838/**
11839 * The floatn value given by data is converted to
11840 * a halfn value using the appropriate rounding
11841 * mode. The halfn value is then written to
11842 * address computed as (p + (offset * n)). The
11843 * address computed as (p + (offset * n)) must be
11844 * 16-bit aligned.
11845 * vstore_halfn uses the current rounding mode.
11846 * The default current rounding mode is round to
11847 * nearest even.
11848 */
11849#if defined(__opencl_c_generic_address_space)
11850void __ovld vstore_half2(float2, size_t, half *);
11851void __ovld vstore_half3(float3, size_t, half *);
11852void __ovld vstore_half4(float4, size_t, half *);
11853void __ovld vstore_half8(float8, size_t, half *);
11854void __ovld vstore_half16(float16, size_t, half *);
11855void __ovld vstore_half2_rte(float2, size_t, half *);
11856void __ovld vstore_half3_rte(float3, size_t, half *);
11857void __ovld vstore_half4_rte(float4, size_t, half *);
11858void __ovld vstore_half8_rte(float8, size_t, half *);
11859void __ovld vstore_half16_rte(float16, size_t, half *);
11860void __ovld vstore_half2_rtz(float2, size_t, half *);
11861void __ovld vstore_half3_rtz(float3, size_t, half *);
11862void __ovld vstore_half4_rtz(float4, size_t, half *);
11863void __ovld vstore_half8_rtz(float8, size_t, half *);
11864void __ovld vstore_half16_rtz(float16, size_t, half *);
11865void __ovld vstore_half2_rtp(float2, size_t, half *);
11866void __ovld vstore_half3_rtp(float3, size_t, half *);
11867void __ovld vstore_half4_rtp(float4, size_t, half *);
11868void __ovld vstore_half8_rtp(float8, size_t, half *);
11869void __ovld vstore_half16_rtp(float16, size_t, half *);
11870void __ovld vstore_half2_rtn(float2, size_t, half *);
11871void __ovld vstore_half3_rtn(float3, size_t, half *);
11872void __ovld vstore_half4_rtn(float4, size_t, half *);
11873void __ovld vstore_half8_rtn(float8, size_t, half *);
11874void __ovld vstore_half16_rtn(float16, size_t, half *);
11875#ifdef cl_khr_fp64
11876void __ovld vstore_half2(double2, size_t, half *);
11877void __ovld vstore_half3(double3, size_t, half *);
11878void __ovld vstore_half4(double4, size_t, half *);
11879void __ovld vstore_half8(double8, size_t, half *);
11880void __ovld vstore_half16(double16, size_t, half *);
11881void __ovld vstore_half2_rte(double2, size_t, half *);
11882void __ovld vstore_half3_rte(double3, size_t, half *);
11883void __ovld vstore_half4_rte(double4, size_t, half *);
11884void __ovld vstore_half8_rte(double8, size_t, half *);
11885void __ovld vstore_half16_rte(double16, size_t, half *);
11886void __ovld vstore_half2_rtz(double2, size_t, half *);
11887void __ovld vstore_half3_rtz(double3, size_t, half *);
11888void __ovld vstore_half4_rtz(double4, size_t, half *);
11889void __ovld vstore_half8_rtz(double8, size_t, half *);
11890void __ovld vstore_half16_rtz(double16, size_t, half *);
11891void __ovld vstore_half2_rtp(double2, size_t, half *);
11892void __ovld vstore_half3_rtp(double3, size_t, half *);
11893void __ovld vstore_half4_rtp(double4, size_t, half *);
11894void __ovld vstore_half8_rtp(double8, size_t, half *);
11895void __ovld vstore_half16_rtp(double16, size_t, half *);
11896void __ovld vstore_half2_rtn(double2, size_t, half *);
11897void __ovld vstore_half3_rtn(double3, size_t, half *);
11898void __ovld vstore_half4_rtn(double4, size_t, half *);
11899void __ovld vstore_half8_rtn(double8, size_t, half *);
11900void __ovld vstore_half16_rtn(double16, size_t, half *);
11901#endif //cl_khr_fp64
11902#endif //defined(__opencl_c_generic_address_space)
11903
11904#if defined(__opencl_c_named_address_space_builtins)
11905void __ovld vstore_half2(float2, size_t, __global half *);
11906void __ovld vstore_half3(float3, size_t, __global half *);
11907void __ovld vstore_half4(float4, size_t, __global half *);
11908void __ovld vstore_half8(float8, size_t, __global half *);
11909void __ovld vstore_half16(float16, size_t, __global half *);
11910void __ovld vstore_half2_rte(float2, size_t, __global half *);
11911void __ovld vstore_half3_rte(float3, size_t, __global half *);
11912void __ovld vstore_half4_rte(float4, size_t, __global half *);
11913void __ovld vstore_half8_rte(float8, size_t, __global half *);
11914void __ovld vstore_half16_rte(float16, size_t, __global half *);
11915void __ovld vstore_half2_rtz(float2, size_t, __global half *);
11916void __ovld vstore_half3_rtz(float3, size_t, __global half *);
11917void __ovld vstore_half4_rtz(float4, size_t, __global half *);
11918void __ovld vstore_half8_rtz(float8, size_t, __global half *);
11919void __ovld vstore_half16_rtz(float16, size_t, __global half *);
11920void __ovld vstore_half2_rtp(float2, size_t, __global half *);
11921void __ovld vstore_half3_rtp(float3, size_t, __global half *);
11922void __ovld vstore_half4_rtp(float4, size_t, __global half *);
11923void __ovld vstore_half8_rtp(float8, size_t, __global half *);
11924void __ovld vstore_half16_rtp(float16, size_t, __global half *);
11925void __ovld vstore_half2_rtn(float2, size_t, __global half *);
11926void __ovld vstore_half3_rtn(float3, size_t, __global half *);
11927void __ovld vstore_half4_rtn(float4, size_t, __global half *);
11928void __ovld vstore_half8_rtn(float8, size_t, __global half *);
11929void __ovld vstore_half16_rtn(float16, size_t, __global half *);
11930void __ovld vstore_half2(float2, size_t, __local half *);
11931void __ovld vstore_half3(float3, size_t, __local half *);
11932void __ovld vstore_half4(float4, size_t, __local half *);
11933void __ovld vstore_half8(float8, size_t, __local half *);
11934void __ovld vstore_half16(float16, size_t, __local half *);
11935void __ovld vstore_half2_rte(float2, size_t, __local half *);
11936void __ovld vstore_half3_rte(float3, size_t, __local half *);
11937void __ovld vstore_half4_rte(float4, size_t, __local half *);
11938void __ovld vstore_half8_rte(float8, size_t, __local half *);
11939void __ovld vstore_half16_rte(float16, size_t, __local half *);
11940void __ovld vstore_half2_rtz(float2, size_t, __local half *);
11941void __ovld vstore_half3_rtz(float3, size_t, __local half *);
11942void __ovld vstore_half4_rtz(float4, size_t, __local half *);
11943void __ovld vstore_half8_rtz(float8, size_t, __local half *);
11944void __ovld vstore_half16_rtz(float16, size_t, __local half *);
11945void __ovld vstore_half2_rtp(float2, size_t, __local half *);
11946void __ovld vstore_half3_rtp(float3, size_t, __local half *);
11947void __ovld vstore_half4_rtp(float4, size_t, __local half *);
11948void __ovld vstore_half8_rtp(float8, size_t, __local half *);
11949void __ovld vstore_half16_rtp(float16, size_t, __local half *);
11950void __ovld vstore_half2_rtn(float2, size_t, __local half *);
11951void __ovld vstore_half3_rtn(float3, size_t, __local half *);
11952void __ovld vstore_half4_rtn(float4, size_t, __local half *);
11953void __ovld vstore_half8_rtn(float8, size_t, __local half *);
11954void __ovld vstore_half16_rtn(float16, size_t, __local half *);
11955void __ovld vstore_half2(float2, size_t, __private half *);
11956void __ovld vstore_half3(float3, size_t, __private half *);
11957void __ovld vstore_half4(float4, size_t, __private half *);
11958void __ovld vstore_half8(float8, size_t, __private half *);
11959void __ovld vstore_half16(float16, size_t, __private half *);
11960void __ovld vstore_half2_rte(float2, size_t, __private half *);
11961void __ovld vstore_half3_rte(float3, size_t, __private half *);
11962void __ovld vstore_half4_rte(float4, size_t, __private half *);
11963void __ovld vstore_half8_rte(float8, size_t, __private half *);
11964void __ovld vstore_half16_rte(float16, size_t, __private half *);
11965void __ovld vstore_half2_rtz(float2, size_t, __private half *);
11966void __ovld vstore_half3_rtz(float3, size_t, __private half *);
11967void __ovld vstore_half4_rtz(float4, size_t, __private half *);
11968void __ovld vstore_half8_rtz(float8, size_t, __private half *);
11969void __ovld vstore_half16_rtz(float16, size_t, __private half *);
11970void __ovld vstore_half2_rtp(float2, size_t, __private half *);
11971void __ovld vstore_half3_rtp(float3, size_t, __private half *);
11972void __ovld vstore_half4_rtp(float4, size_t, __private half *);
11973void __ovld vstore_half8_rtp(float8, size_t, __private half *);
11974void __ovld vstore_half16_rtp(float16, size_t, __private half *);
11975void __ovld vstore_half2_rtn(float2, size_t, __private half *);
11976void __ovld vstore_half3_rtn(float3, size_t, __private half *);
11977void __ovld vstore_half4_rtn(float4, size_t, __private half *);
11978void __ovld vstore_half8_rtn(float8, size_t, __private half *);
11979void __ovld vstore_half16_rtn(float16, size_t, __private half *);
11980#ifdef cl_khr_fp64
11981void __ovld vstore_half2(double2, size_t, __global half *);
11982void __ovld vstore_half3(double3, size_t, __global half *);
11983void __ovld vstore_half4(double4, size_t, __global half *);
11984void __ovld vstore_half8(double8, size_t, __global half *);
11985void __ovld vstore_half16(double16, size_t, __global half *);
11986void __ovld vstore_half2_rte(double2, size_t, __global half *);
11987void __ovld vstore_half3_rte(double3, size_t, __global half *);
11988void __ovld vstore_half4_rte(double4, size_t, __global half *);
11989void __ovld vstore_half8_rte(double8, size_t, __global half *);
11990void __ovld vstore_half16_rte(double16, size_t, __global half *);
11991void __ovld vstore_half2_rtz(double2, size_t, __global half *);
11992void __ovld vstore_half3_rtz(double3, size_t, __global half *);
11993void __ovld vstore_half4_rtz(double4, size_t, __global half *);
11994void __ovld vstore_half8_rtz(double8, size_t, __global half *);
11995void __ovld vstore_half16_rtz(double16, size_t, __global half *);
11996void __ovld vstore_half2_rtp(double2, size_t, __global half *);
11997void __ovld vstore_half3_rtp(double3, size_t, __global half *);
11998void __ovld vstore_half4_rtp(double4, size_t, __global half *);
11999void __ovld vstore_half8_rtp(double8, size_t, __global half *);
12000void __ovld vstore_half16_rtp(double16, size_t, __global half *);
12001void __ovld vstore_half2_rtn(double2, size_t, __global half *);
12002void __ovld vstore_half3_rtn(double3, size_t, __global half *);
12003void __ovld vstore_half4_rtn(double4, size_t, __global half *);
12004void __ovld vstore_half8_rtn(double8, size_t, __global half *);
12005void __ovld vstore_half16_rtn(double16, size_t, __global half *);
12006void __ovld vstore_half2(double2, size_t, __local half *);
12007void __ovld vstore_half3(double3, size_t, __local half *);
12008void __ovld vstore_half4(double4, size_t, __local half *);
12009void __ovld vstore_half8(double8, size_t, __local half *);
12010void __ovld vstore_half16(double16, size_t, __local half *);
12011void __ovld vstore_half2_rte(double2, size_t, __local half *);
12012void __ovld vstore_half3_rte(double3, size_t, __local half *);
12013void __ovld vstore_half4_rte(double4, size_t, __local half *);
12014void __ovld vstore_half8_rte(double8, size_t, __local half *);
12015void __ovld vstore_half16_rte(double16, size_t, __local half *);
12016void __ovld vstore_half2_rtz(double2, size_t, __local half *);
12017void __ovld vstore_half3_rtz(double3, size_t, __local half *);
12018void __ovld vstore_half4_rtz(double4, size_t, __local half *);
12019void __ovld vstore_half8_rtz(double8, size_t, __local half *);
12020void __ovld vstore_half16_rtz(double16, size_t, __local half *);
12021void __ovld vstore_half2_rtp(double2, size_t, __local half *);
12022void __ovld vstore_half3_rtp(double3, size_t, __local half *);
12023void __ovld vstore_half4_rtp(double4, size_t, __local half *);
12024void __ovld vstore_half8_rtp(double8, size_t, __local half *);
12025void __ovld vstore_half16_rtp(double16, size_t, __local half *);
12026void __ovld vstore_half2_rtn(double2, size_t, __local half *);
12027void __ovld vstore_half3_rtn(double3, size_t, __local half *);
12028void __ovld vstore_half4_rtn(double4, size_t, __local half *);
12029void __ovld vstore_half8_rtn(double8, size_t, __local half *);
12030void __ovld vstore_half16_rtn(double16, size_t, __local half *);
12031void __ovld vstore_half2(double2, size_t, __private half *);
12032void __ovld vstore_half3(double3, size_t, __private half *);
12033void __ovld vstore_half4(double4, size_t, __private half *);
12034void __ovld vstore_half8(double8, size_t, __private half *);
12035void __ovld vstore_half16(double16, size_t, __private half *);
12036void __ovld vstore_half2_rte(double2, size_t, __private half *);
12037void __ovld vstore_half3_rte(double3, size_t, __private half *);
12038void __ovld vstore_half4_rte(double4, size_t, __private half *);
12039void __ovld vstore_half8_rte(double8, size_t, __private half *);
12040void __ovld vstore_half16_rte(double16, size_t, __private half *);
12041void __ovld vstore_half2_rtz(double2, size_t, __private half *);
12042void __ovld vstore_half3_rtz(double3, size_t, __private half *);
12043void __ovld vstore_half4_rtz(double4, size_t, __private half *);
12044void __ovld vstore_half8_rtz(double8, size_t, __private half *);
12045void __ovld vstore_half16_rtz(double16, size_t, __private half *);
12046void __ovld vstore_half2_rtp(double2, size_t, __private half *);
12047void __ovld vstore_half3_rtp(double3, size_t, __private half *);
12048void __ovld vstore_half4_rtp(double4, size_t, __private half *);
12049void __ovld vstore_half8_rtp(double8, size_t, __private half *);
12050void __ovld vstore_half16_rtp(double16, size_t, __private half *);
12051void __ovld vstore_half2_rtn(double2, size_t, __private half *);
12052void __ovld vstore_half3_rtn(double3, size_t, __private half *);
12053void __ovld vstore_half4_rtn(double4, size_t, __private half *);
12054void __ovld vstore_half8_rtn(double8, size_t, __private half *);
12055void __ovld vstore_half16_rtn(double16, size_t, __private half *);
12056#endif //cl_khr_fp64
12057#endif //defined(__opencl_c_named_address_space_builtins)
12058
12059/**
12060 * For n = 1, 2, 4, 8 and 16 read sizeof (halfn)
12061 * bytes of data from address (p + (offset * n)).
12062 * The data read is interpreted as a halfn value.
12063 * The halfn value read is converted to a floatn
12064 * value and the floatn value is returned.
12065 * The address computed as (p + (offset * n))
12066 * must be aligned to sizeof (halfn) bytes.
12067 * For n = 3, vloada_half3 reads a half3 from
12068 * address (p + (offset * 4)) and returns a float3.
12069 * The address computed as (p + (offset * 4))
12070 * must be aligned to sizeof (half) * 4 bytes.
12071 */
12072float2 __ovld __purefn vloada_half2(size_t, const __constant half *);
12073float3 __ovld __purefn vloada_half3(size_t, const __constant half *);
12074float4 __ovld __purefn vloada_half4(size_t, const __constant half *);
12075float8 __ovld __purefn vloada_half8(size_t, const __constant half *);
12076float16 __ovld __purefn vloada_half16(size_t, const __constant half *);
12077#if defined(__opencl_c_generic_address_space)
12078float2 __ovld __purefn vloada_half2(size_t, const half *);
12079float3 __ovld __purefn vloada_half3(size_t, const half *);
12080float4 __ovld __purefn vloada_half4(size_t, const half *);
12081float8 __ovld __purefn vloada_half8(size_t, const half *);
12082float16 __ovld __purefn vloada_half16(size_t, const half *);
12083#endif //defined(__opencl_c_generic_address_space)
12084
12085#if defined(__opencl_c_named_address_space_builtins)
12086float2 __ovld __purefn vloada_half2(size_t, const __global half *);
12087float3 __ovld __purefn vloada_half3(size_t, const __global half *);
12088float4 __ovld __purefn vloada_half4(size_t, const __global half *);
12089float8 __ovld __purefn vloada_half8(size_t, const __global half *);
12090float16 __ovld __purefn vloada_half16(size_t, const __global half *);
12091float2 __ovld __purefn vloada_half2(size_t, const __local half *);
12092float3 __ovld __purefn vloada_half3(size_t, const __local half *);
12093float4 __ovld __purefn vloada_half4(size_t, const __local half *);
12094float8 __ovld __purefn vloada_half8(size_t, const __local half *);
12095float16 __ovld __purefn vloada_half16(size_t, const __local half *);
12096float2 __ovld __purefn vloada_half2(size_t, const __private half *);
12097float3 __ovld __purefn vloada_half3(size_t, const __private half *);
12098float4 __ovld __purefn vloada_half4(size_t, const __private half *);
12099float8 __ovld __purefn vloada_half8(size_t, const __private half *);
12100float16 __ovld __purefn vloada_half16(size_t, const __private half *);
12101#endif //defined(__opencl_c_named_address_space_builtins)
12102
12103/**
12104 * The floatn value given by data is converted to
12105 * a halfn value using the appropriate rounding
12106 * mode.
12107 * For n = 1, 2, 4, 8 and 16, the halfn value is
12108 * written to the address computed as (p + (offset
12109 * * n)). The address computed as (p + (offset *
12110 * n)) must be aligned to sizeof (halfn) bytes.
12111 * For n = 3, the half3 value is written to the
12112 * address computed as (p + (offset * 4)). The
12113 * address computed as (p + (offset * 4)) must be
12114 * aligned to sizeof (half) * 4 bytes.
12115 * vstorea_halfn uses the current rounding
12116 * mode. The default current rounding mode is
12117 * round to nearest even.
12118 */
12119#if defined(__opencl_c_generic_address_space)
12120void __ovld vstorea_half2(float2, size_t, half *);
12121void __ovld vstorea_half3(float3, size_t, half *);
12122void __ovld vstorea_half4(float4, size_t, half *);
12123void __ovld vstorea_half8(float8, size_t, half *);
12124void __ovld vstorea_half16(float16, size_t, half *);
12125
12126void __ovld vstorea_half2_rte(float2, size_t, half *);
12127void __ovld vstorea_half3_rte(float3, size_t, half *);
12128void __ovld vstorea_half4_rte(float4, size_t, half *);
12129void __ovld vstorea_half8_rte(float8, size_t, half *);
12130void __ovld vstorea_half16_rte(float16, size_t, half *);
12131
12132void __ovld vstorea_half2_rtz(float2, size_t, half *);
12133void __ovld vstorea_half3_rtz(float3, size_t, half *);
12134void __ovld vstorea_half4_rtz(float4, size_t, half *);
12135void __ovld vstorea_half8_rtz(float8, size_t, half *);
12136void __ovld vstorea_half16_rtz(float16, size_t, half *);
12137
12138void __ovld vstorea_half2_rtp(float2, size_t, half *);
12139void __ovld vstorea_half3_rtp(float3, size_t, half *);
12140void __ovld vstorea_half4_rtp(float4, size_t, half *);
12141void __ovld vstorea_half8_rtp(float8, size_t, half *);
12142void __ovld vstorea_half16_rtp(float16, size_t, half *);
12143
12144void __ovld vstorea_half2_rtn(float2, size_t, half *);
12145void