diff --git a/libclc/built_libs/nvptx--nvidiacl.bc b/libclc/built_libs/nvptx--nvidiacl.bc
deleted file mode 100644
index 2029cff09cd4fd0335e22062ec317023e164cdb2..0000000000000000000000000000000000000000
Binary files a/libclc/built_libs/nvptx--nvidiacl.bc and /dev/null differ
diff --git a/libclc/built_libs/nvptx64--nvidiacl.bc b/libclc/built_libs/nvptx64--nvidiacl.bc
deleted file mode 100644
index 52f0427eda623fc7106cf3acfe269353f7949ad3..0000000000000000000000000000000000000000
Binary files a/libclc/built_libs/nvptx64--nvidiacl.bc and /dev/null differ
diff --git a/libclc/generic/include/clc/as_type.h b/libclc/generic/include/clc/as_type.h
deleted file mode 100644
index 0bb9ee2e8313b59698965b20f10b36d3e22fe585..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/as_type.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#define as_char(x) __builtin_astype(x, char)
-#define as_uchar(x) __builtin_astype(x, uchar)
-#define as_short(x) __builtin_astype(x, short)
-#define as_ushort(x) __builtin_astype(x, ushort)
-#define as_int(x) __builtin_astype(x, int)
-#define as_uint(x) __builtin_astype(x, uint)
-#define as_long(x) __builtin_astype(x, long)
-#define as_ulong(x) __builtin_astype(x, ulong)
-#define as_float(x) __builtin_astype(x, float)
-
-#define as_char2(x) __builtin_astype(x, char2)
-#define as_uchar2(x) __builtin_astype(x, uchar2)
-#define as_short2(x) __builtin_astype(x, short2)
-#define as_ushort2(x) __builtin_astype(x, ushort2)
-#define as_int2(x) __builtin_astype(x, int2)
-#define as_uint2(x) __builtin_astype(x, uint2)
-#define as_long2(x) __builtin_astype(x, long2)
-#define as_ulong2(x) __builtin_astype(x, ulong2)
-#define as_float2(x) __builtin_astype(x, float2)
-
-#define as_char3(x) __builtin_astype(x, char3)
-#define as_uchar3(x) __builtin_astype(x, uchar3)
-#define as_short3(x) __builtin_astype(x, short3)
-#define as_ushort3(x) __builtin_astype(x, ushort3)
-#define as_int3(x) __builtin_astype(x, int3)
-#define as_uint3(x) __builtin_astype(x, uint3)
-#define as_long3(x) __builtin_astype(x, long3)
-#define as_ulong3(x) __builtin_astype(x, ulong3)
-#define as_float3(x) __builtin_astype(x, float3)
-
-#define as_char4(x) __builtin_astype(x, char4)
-#define as_uchar4(x) __builtin_astype(x, uchar4)
-#define as_short4(x) __builtin_astype(x, short4)
-#define as_ushort4(x) __builtin_astype(x, ushort4)
-#define as_int4(x) __builtin_astype(x, int4)
-#define as_uint4(x) __builtin_astype(x, uint4)
-#define as_long4(x) __builtin_astype(x, long4)
-#define as_ulong4(x) __builtin_astype(x, ulong4)
-#define as_float4(x) __builtin_astype(x, float4)
-
-#define as_char8(x) __builtin_astype(x, char8)
-#define as_uchar8(x) __builtin_astype(x, uchar8)
-#define as_short8(x) __builtin_astype(x, short8)
-#define as_ushort8(x) __builtin_astype(x, ushort8)
-#define as_int8(x) __builtin_astype(x, int8)
-#define as_uint8(x) __builtin_astype(x, uint8)
-#define as_long8(x) __builtin_astype(x, long8)
-#define as_ulong8(x) __builtin_astype(x, ulong8)
-#define as_float8(x) __builtin_astype(x, float8)
-
-#define as_char16(x) __builtin_astype(x, char16)
-#define as_uchar16(x) __builtin_astype(x, uchar16)
-#define as_short16(x) __builtin_astype(x, short16)
-#define as_ushort16(x) __builtin_astype(x, ushort16)
-#define as_int16(x) __builtin_astype(x, int16)
-#define as_uint16(x) __builtin_astype(x, uint16)
-#define as_long16(x) __builtin_astype(x, long16)
-#define as_ulong16(x) __builtin_astype(x, ulong16)
-#define as_float16(x) __builtin_astype(x, float16)
-
-#ifdef cl_khr_fp64
-#define as_double(x) __builtin_astype(x, double)
-#define as_double2(x) __builtin_astype(x, double2)
-#define as_double3(x) __builtin_astype(x, double3)
-#define as_double4(x) __builtin_astype(x, double4)
-#define as_double8(x) __builtin_astype(x, double8)
-#define as_double16(x) __builtin_astype(x, double16)
-#endif
diff --git a/libclc/generic/include/clc/atomic/atomic_add.h b/libclc/generic/include/clc/atomic/atomic_add.h
deleted file mode 100644
index 66d897805ca4cee0779211217a4ad42f9013ef54..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/atomic/atomic_add.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __CLC_FUNCTION atomic_add
-#include <clc/atomic/atomic_decl.inc>
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/atomic/atomic_dec.h b/libclc/generic/include/clc/atomic/atomic_dec.h
deleted file mode 100644
index 621905f21d3e7a9f55a2ce9d3f59eba6e988de88..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/atomic/atomic_dec.h
+++ /dev/null
@@ -1 +0,0 @@
-#define atomic_dec(p) atomic_sub(p, 1);
diff --git a/libclc/generic/include/clc/atomic/atomic_decl.inc b/libclc/generic/include/clc/atomic/atomic_decl.inc
deleted file mode 100644
index 03d01aa045e30c86576cb403c84afd1b6abe3b98..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/atomic/atomic_decl.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-
-#define __CLC_DECLARE_ATOMIC(ADDRSPACE, TYPE) \
-	_CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE);
-
-#define __CLC_DECLARE_ATOMIC_ADDRSPACE(TYPE) \
-	__CLC_DECLARE_ATOMIC(global, TYPE); \
-	__CLC_DECLARE_ATOMIC(local, TYPE);
-
-__CLC_DECLARE_ATOMIC_ADDRSPACE(int);
-__CLC_DECLARE_ATOMIC_ADDRSPACE(uint);
diff --git a/libclc/generic/include/clc/atomic/atomic_inc.h b/libclc/generic/include/clc/atomic/atomic_inc.h
deleted file mode 100644
index 2137391980418ae3ddc667907022b623d896cc00..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/atomic/atomic_inc.h
+++ /dev/null
@@ -1 +0,0 @@
-#define atomic_inc(p) atomic_add(p, 1);
diff --git a/libclc/generic/include/clc/atomic/atomic_sub.h b/libclc/generic/include/clc/atomic/atomic_sub.h
deleted file mode 100644
index 576a3ab1f395f91af324152e73e86e279956a40c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/atomic/atomic_sub.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __CLC_FUNCTION atomic_sub
-#include <clc/atomic/atomic_decl.inc>
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
deleted file mode 100644
index 9740b3ddab63183c10cbc4a931ebeec0792373ac..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_add.h
+++ /dev/null
@@ -1,2 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL int atom_add(global int *p, int val);
-_CLC_OVERLOAD _CLC_DECL unsigned int atom_add(global unsigned int *p, unsigned int val);
diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
deleted file mode 100644
index bbc872ce0527e37713dcf3c55b9fc4c82846b774..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_dec.h
+++ /dev/null
@@ -1,2 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL int atom_dec(global int *p);
-_CLC_OVERLOAD _CLC_DECL unsigned int atom_dec(global unsigned int *p);
diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
deleted file mode 100644
index 050747c7940342a1043a6228ccdc73aa5f9f46ca..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_inc.h
+++ /dev/null
@@ -1,2 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL int atom_inc(global int *p);
-_CLC_OVERLOAD _CLC_DECL unsigned int atom_inc(global unsigned int *p);
diff --git a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h b/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
deleted file mode 100644
index c435c726798ced2aa6a70afa150cd4d7b8cedb75..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/cl_khr_global_int32_base_atomics/atom_sub.h
+++ /dev/null
@@ -1,2 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL int atom_sub(global int *p, int val);
-_CLC_OVERLOAD _CLC_DECL unsigned int atom_sub(global unsigned int *p, unsigned int val);
diff --git a/libclc/generic/include/clc/clc.h b/libclc/generic/include/clc/clc.h
deleted file mode 100644
index 9815c56e3b5a03dc6bae72817d386833ddba14f8..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/clc.h
+++ /dev/null
@@ -1,146 +0,0 @@
-#ifndef cl_clang_storage_class_specifiers
-#error Implementation requires cl_clang_storage_class_specifiers extension!
-#endif
-
-#pragma OPENCL EXTENSION cl_clang_storage_class_specifiers : enable
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-/* Function Attributes */
-#include <clc/clcfunc.h>
-
-/* 6.1 Supported Data Types */
-#include <clc/clctypes.h>
-
-/* 6.2.3 Explicit Conversions */
-#include <clc/convert.h>
-
-/* 6.2.4.2 Reinterpreting Types Using as_type() and as_typen() */
-#include <clc/as_type.h>
-
-/* 6.9 Preprocessor Directives and Macros */
-#include <clc/clcversion.h>
-
-/* 6.11.1 Work-Item Functions */
-#include <clc/workitem/get_global_size.h>
-#include <clc/workitem/get_global_id.h>
-#include <clc/workitem/get_local_size.h>
-#include <clc/workitem/get_local_id.h>
-#include <clc/workitem/get_num_groups.h>
-#include <clc/workitem/get_group_id.h>
-
-/* 6.11.2 Math Functions */
-#include <clc/math/atan.h>
-#include <clc/math/atan2.h>
-#include <clc/math/copysign.h>
-#include <clc/math/cos.h>
-#include <clc/math/ceil.h>
-#include <clc/math/exp.h>
-#include <clc/math/exp10.h>
-#include <clc/math/exp2.h>
-#include <clc/math/fabs.h>
-#include <clc/math/floor.h>
-#include <clc/math/fma.h>
-#include <clc/math/fmax.h>
-#include <clc/math/fmin.h>
-#include <clc/math/hypot.h>
-#include <clc/math/log.h>
-#include <clc/math/log2.h>
-#include <clc/math/mad.h>
-#include <clc/math/mix.h>
-#include <clc/math/nextafter.h>
-#include <clc/math/pow.h>
-#include <clc/math/pown.h>
-#include <clc/math/rint.h>
-#include <clc/math/round.h>
-#include <clc/math/sin.h>
-#include <clc/math/sincos.h>
-#include <clc/math/sqrt.h>
-#include <clc/math/trunc.h>
-#include <clc/math/native_cos.h>
-#include <clc/math/native_divide.h>
-#include <clc/math/native_exp.h>
-#include <clc/math/native_exp10.h>
-#include <clc/math/native_exp2.h>
-#include <clc/math/native_log.h>
-#include <clc/math/native_log2.h>
-#include <clc/math/native_powr.h>
-#include <clc/math/native_sin.h>
-#include <clc/math/native_sqrt.h>
-#include <clc/math/rsqrt.h>
-
-/* 6.11.2.1 Floating-point macros */
-#include <clc/float/definitions.h>
-
-/* 6.11.3 Integer Functions */
-#include <clc/integer/abs.h>
-#include <clc/integer/abs_diff.h>
-#include <clc/integer/add_sat.h>
-#include <clc/integer/clz.h>
-#include <clc/integer/hadd.h>
-#include <clc/integer/mad24.h>
-#include <clc/integer/mad_hi.h>
-#include <clc/integer/mul24.h>
-#include <clc/integer/mul_hi.h>
-#include <clc/integer/rhadd.h>
-#include <clc/integer/rotate.h>
-#include <clc/integer/sub_sat.h>
-#include <clc/integer/upsample.h>
-
-/* 6.11.3 Integer Definitions */
-#include <clc/integer/definitions.h>
-
-/* 6.11.2 and 6.11.3 Shared Integer/Math Functions */
-#include <clc/shared/clamp.h>
-#include <clc/shared/max.h>
-#include <clc/shared/min.h>
-#include <clc/shared/vload.h>
-#include <clc/shared/vstore.h>
-
-/* 6.11.4 Common Functions */
-#include <clc/common/sign.h>
-
-/* 6.11.5 Geometric Functions */
-#include <clc/geometric/cross.h>
-#include <clc/geometric/dot.h>
-#include <clc/geometric/length.h>
-#include <clc/geometric/normalize.h>
-
-/* 6.11.6 Relational Functions */
-#include <clc/relational/all.h>
-#include <clc/relational/any.h>
-#include <clc/relational/bitselect.h>
-#include <clc/relational/isequal.h>
-#include <clc/relational/isgreater.h>
-#include <clc/relational/isgreaterequal.h>
-#include <clc/relational/isless.h>
-#include <clc/relational/islessequal.h>
-#include <clc/relational/isnan.h>
-#include <clc/relational/isnotequal.h>
-#include <clc/relational/select.h>
-#include <clc/relational/signbit.h>
-
-/* 6.11.8 Synchronization Functions */
-#include <clc/synchronization/cl_mem_fence_flags.h>
-#include <clc/synchronization/barrier.h>
-
-/* 6.11.11 Atomic Functions */
-#include <clc/atomic/atomic_add.h>
-#include <clc/atomic/atomic_dec.h>
-#include <clc/atomic/atomic_inc.h>
-#include <clc/atomic/atomic_sub.h>
-
-/* cl_khr_global_int32_base_atomics Extension Functions */
-#include <clc/cl_khr_global_int32_base_atomics/atom_add.h>
-#include <clc/cl_khr_global_int32_base_atomics/atom_dec.h>
-#include <clc/cl_khr_global_int32_base_atomics/atom_inc.h>
-#include <clc/cl_khr_global_int32_base_atomics/atom_sub.h>
-
-/* libclc internal defintions */
-#ifdef __CLC_INTERNAL
-#include <math/clc_nextafter.h>
-#endif
-
-#pragma OPENCL EXTENSION all : disable
diff --git a/libclc/generic/include/clc/clcfunc.h b/libclc/generic/include/clc/clcfunc.h
deleted file mode 100644
index 5f166c5a4143e1ac3a97b00285a7a714a04bd189..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/clcfunc.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#define _CLC_OVERLOAD __attribute__((overloadable))
-#define _CLC_DECL
-#define _CLC_DEF __attribute__((always_inline))
-#define _CLC_INLINE __attribute__((always_inline)) inline
diff --git a/libclc/generic/include/clc/clctypes.h b/libclc/generic/include/clc/clctypes.h
deleted file mode 100644
index ca1372d0892720b7949c667ca2c05657d76556b3..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/clctypes.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* 6.1.1 Built-in Scalar Data Types */
-
-#include <stddef.h>
-
-typedef unsigned char uchar;
-typedef unsigned short ushort;
-typedef unsigned int uint;
-typedef unsigned long ulong;
-
-#define __stdint_join3(a,b,c) a ## b ## c
-
-#define  __intn_t(n) __stdint_join3(__INT, n, _TYPE__)
-#define __uintn_t(n) __stdint_join3(unsigned __INT, n, _TYPE__)
-
-typedef  __intn_t(__INTPTR_WIDTH__)  intptr_t;
-typedef __uintn_t(__INTPTR_WIDTH__) uintptr_t;
-
-#undef __uintn_t
-#undef __intn_t
-#undef __stdint_join3
-
-/* 6.1.2 Built-in Vector Data Types */
-
-typedef __attribute__((ext_vector_type(2))) char char2;
-typedef __attribute__((ext_vector_type(3))) char char3;
-typedef __attribute__((ext_vector_type(4))) char char4;
-typedef __attribute__((ext_vector_type(8))) char char8;
-typedef __attribute__((ext_vector_type(16))) char char16;
-
-typedef __attribute__((ext_vector_type(2))) uchar uchar2;
-typedef __attribute__((ext_vector_type(3))) uchar uchar3;
-typedef __attribute__((ext_vector_type(4))) uchar uchar4;
-typedef __attribute__((ext_vector_type(8))) uchar uchar8;
-typedef __attribute__((ext_vector_type(16))) uchar uchar16;
-
-typedef __attribute__((ext_vector_type(2))) short short2;
-typedef __attribute__((ext_vector_type(3))) short short3;
-typedef __attribute__((ext_vector_type(4))) short short4;
-typedef __attribute__((ext_vector_type(8))) short short8;
-typedef __attribute__((ext_vector_type(16))) short short16;
-
-typedef __attribute__((ext_vector_type(2))) ushort ushort2;
-typedef __attribute__((ext_vector_type(3))) ushort ushort3;
-typedef __attribute__((ext_vector_type(4))) ushort ushort4;
-typedef __attribute__((ext_vector_type(8))) ushort ushort8;
-typedef __attribute__((ext_vector_type(16))) ushort ushort16;
-
-typedef __attribute__((ext_vector_type(2))) int int2;
-typedef __attribute__((ext_vector_type(3))) int int3;
-typedef __attribute__((ext_vector_type(4))) int int4;
-typedef __attribute__((ext_vector_type(8))) int int8;
-typedef __attribute__((ext_vector_type(16))) int int16;
-
-typedef __attribute__((ext_vector_type(2))) uint uint2;
-typedef __attribute__((ext_vector_type(3))) uint uint3;
-typedef __attribute__((ext_vector_type(4))) uint uint4;
-typedef __attribute__((ext_vector_type(8))) uint uint8;
-typedef __attribute__((ext_vector_type(16))) uint uint16;
-
-typedef __attribute__((ext_vector_type(2))) long long2;
-typedef __attribute__((ext_vector_type(3))) long long3;
-typedef __attribute__((ext_vector_type(4))) long long4;
-typedef __attribute__((ext_vector_type(8))) long long8;
-typedef __attribute__((ext_vector_type(16))) long long16;
-
-typedef __attribute__((ext_vector_type(2))) ulong ulong2;
-typedef __attribute__((ext_vector_type(3))) ulong ulong3;
-typedef __attribute__((ext_vector_type(4))) ulong ulong4;
-typedef __attribute__((ext_vector_type(8))) ulong ulong8;
-typedef __attribute__((ext_vector_type(16))) ulong ulong16;
-
-typedef __attribute__((ext_vector_type(2))) float float2;
-typedef __attribute__((ext_vector_type(3))) float float3;
-typedef __attribute__((ext_vector_type(4))) float float4;
-typedef __attribute__((ext_vector_type(8))) float float8;
-typedef __attribute__((ext_vector_type(16))) float float16;
-
-/* 9.3 Double Precision Floating-Point */
-
-#ifdef cl_khr_fp64
-typedef __attribute__((ext_vector_type(2))) double double2;
-typedef __attribute__((ext_vector_type(3))) double double3;
-typedef __attribute__((ext_vector_type(4))) double double4;
-typedef __attribute__((ext_vector_type(8))) double double8;
-typedef __attribute__((ext_vector_type(16))) double double16;
-#endif
diff --git a/libclc/generic/include/clc/clcversion.h b/libclc/generic/include/clc/clcversion.h
deleted file mode 100644
index 57c989e3b713bb70530d99ff66a511b0ad6a647b..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/clcversion.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#if __OPENCL_VERSION__ >= 110
-#define CLC_VERSION_1_0 100
-#define CLC_VERSION_1_1 110
-#endif
-
-#if __OPENCL_VERSION__ >= 120
-#define CLC_VERSION_1_2 120
-#endif
diff --git a/libclc/generic/include/clc/common/sign.h b/libclc/generic/include/clc/common/sign.h
deleted file mode 100644
index fa9aa096541f19e426687dcb80e5b279fcf690c2..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/common/sign.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __CLC_FUNCTION sign
-#define __CLC_BODY <clc/math/unary_decl.inc>
-#include <clc/math/gentype.inc>
-#undef __CLC_FUNCTION
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/convert.h b/libclc/generic/include/clc/convert.h
deleted file mode 100644
index f0ba796864d4dd6645582c802a3128f250ca46ed..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/convert.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#define _CLC_CONVERT_DECL(FROM_TYPE, TO_TYPE, SUFFIX) \
-  _CLC_OVERLOAD _CLC_DECL TO_TYPE convert_##TO_TYPE##SUFFIX(FROM_TYPE x);
-
-#define _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, TO_TYPE, SUFFIX) \
-  _CLC_CONVERT_DECL(FROM_TYPE, TO_TYPE, SUFFIX) \
-  _CLC_CONVERT_DECL(FROM_TYPE##2, TO_TYPE##2, SUFFIX) \
-  _CLC_CONVERT_DECL(FROM_TYPE##3, TO_TYPE##3, SUFFIX) \
-  _CLC_CONVERT_DECL(FROM_TYPE##4, TO_TYPE##4, SUFFIX) \
-  _CLC_CONVERT_DECL(FROM_TYPE##8, TO_TYPE##8, SUFFIX) \
-  _CLC_CONVERT_DECL(FROM_TYPE##16, TO_TYPE##16, SUFFIX)
-
-#define _CLC_VECTOR_CONVERT_FROM1(FROM_TYPE, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, char, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, uchar, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, int, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, uint, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, short, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, ushort, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, long, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, ulong, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, float, SUFFIX)
-
-#ifdef cl_khr_fp64
-#define _CLC_VECTOR_CONVERT_FROM(FROM_TYPE, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM1(FROM_TYPE, SUFFIX) \
-  _CLC_VECTOR_CONVERT_DECL(FROM_TYPE, double, SUFFIX)
-#else
-#define _CLC_VECTOR_CONVERT_FROM(FROM_TYPE, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM1(FROM_TYPE, SUFFIX)
-#endif
-
-#define _CLC_VECTOR_CONVERT_TO1(SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(char, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(uchar, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(int, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(uint, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(short, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(ushort, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(long, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(ulong, SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(float, SUFFIX)
-
-#ifdef cl_khr_fp64
-#define _CLC_VECTOR_CONVERT_TO(SUFFIX) \
-  _CLC_VECTOR_CONVERT_TO1(SUFFIX) \
-  _CLC_VECTOR_CONVERT_FROM(double, SUFFIX)
-#else
-#define _CLC_VECTOR_CONVERT_TO(SUFFIX) \
-  _CLC_VECTOR_CONVERT_TO1(SUFFIX)
-#endif
-
-#define _CLC_VECTOR_CONVERT_TO_SUFFIX(ROUND) \
-  _CLC_VECTOR_CONVERT_TO(_sat##ROUND) \
-  _CLC_VECTOR_CONVERT_TO(ROUND)
-
-_CLC_VECTOR_CONVERT_TO_SUFFIX(_rtn)
-_CLC_VECTOR_CONVERT_TO_SUFFIX(_rte)
-_CLC_VECTOR_CONVERT_TO_SUFFIX(_rtz)
-_CLC_VECTOR_CONVERT_TO_SUFFIX(_rtp)
-_CLC_VECTOR_CONVERT_TO_SUFFIX()
diff --git a/libclc/generic/include/clc/float/definitions.h b/libclc/generic/include/clc/float/definitions.h
deleted file mode 100644
index 329b6238c3f494c224c9d03f68362085acab3f27..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/float/definitions.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#define MAXFLOAT        0x1.fffffep127f
-#define HUGE_VALF       __builtin_huge_valf()
-#define INFINITY        __builtin_inff()
-#define NAN             __builtin_nanf("")
-
-#define FLT_DIG         6
-#define FLT_MANT_DIG    24
-#define FLT_MAX_10_EXP  +38
-#define FLT_MAX_EXP     +128
-#define FLT_MIN_10_EXP  -37
-#define FLT_MIN_EXP     -125
-#define FLT_RADIX       2
-#define FLT_MAX         MAXFLOAT
-#define FLT_MIN         0x1.0p-126f
-#define FLT_EPSILON     0x1.0p-23f
-
-#define M_E_F           0x1.5bf0a8p+1f
-#define M_LOG2E_F       0x1.715476p+0f
-#define M_LOG10E_F      0x1.bcb7b2p-2f
-#define M_LN2_F         0x1.62e430p-1f
-#define M_LN10_F        0x1.26bb1cp+1f
-#define M_PI_F          0x1.921fb6p+1f
-#define M_PI_2_F        0x1.921fb6p+0f
-#define M_PI_4_F        0x1.921fb6p-1f
-#define M_1_PI_F        0x1.45f306p-2f
-#define M_2_PI_F        0x1.45f306p-1f
-#define M_2_SQRTPI_F    0x1.20dd76p+0f
-#define M_SQRT2_F       0x1.6a09e6p+0f
-#define M_SQRT1_2_F     0x1.6a09e6p-1f
-
-#ifdef cl_khr_fp64
-
-#define HUGE_VAL        __builtin_huge_val()
-
-#define DBL_DIG         15
-#define DBL_MANT_DIG    53
-#define DBL_MAX_10_EXP  +308
-#define DBL_MAX_EXP     +1024
-#define DBL_MIN_10_EXP  -307
-#define DBL_MIN_EXP     -1021
-#define DBL_MAX         0x1.fffffffffffffp1023
-#define DBL_MIN         0x1.0p-1022
-#define DBL_EPSILON     0x1.0p-52
-
-#define M_E             0x1.5bf0a8b145769p+1
-#define M_LOG2E         0x1.71547652b82fep+0
-#define M_LOG10E        0x1.bcb7b1526e50ep-2
-#define M_LN2           0x1.62e42fefa39efp-1
-#define M_LN10          0x1.26bb1bbb55516p+1
-#define M_PI            0x1.921fb54442d18p+1
-#define M_PI_2          0x1.921fb54442d18p+0
-#define M_PI_4          0x1.921fb54442d18p-1
-#define M_1_PI          0x1.45f306dc9c883p-2
-#define M_2_PI          0x1.45f306dc9c883p-1
-#define M_2_SQRTPI      0x1.20dd750429b6dp+0
-#define M_SQRT2         0x1.6a09e667f3bcdp+0
-#define M_SQRT1_2       0x1.6a09e667f3bcdp-1
-
-#endif
-
-#ifdef cl_khr_fp16
-
-#if __OPENCL_VERSION__ >= 120
-
-#define HALF_DIG        3
-#define HALF_MANT_DIG   11
-#define HALF_MAX_10_EXP +4
-#define HALF_MAX_EXP    +16
-#define HALF_MIN_10_EXP -4
-#define HALF_MIN_EXP    -13
-
-#endif
-
-#endif
diff --git a/libclc/generic/include/clc/geometric/cross.h b/libclc/generic/include/clc/geometric/cross.h
deleted file mode 100644
index eee0cc81bb924ae773240aaf987e410853a9358d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/cross.h
+++ /dev/null
@@ -1,7 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL float3 cross(float3 p0, float3 p1);
-_CLC_OVERLOAD _CLC_DECL float4 cross(float4 p0, float4 p1);
-
-#ifdef cl_khr_fp64
-_CLC_OVERLOAD _CLC_DECL double3 cross(double3 p0, double3 p1);
-_CLC_OVERLOAD _CLC_DECL double4 cross(double4 p0, double4 p1);
-#endif
diff --git a/libclc/generic/include/clc/geometric/distance.h b/libclc/generic/include/clc/geometric/distance.h
deleted file mode 100644
index 3e91332d78380c10730a9614e85c1753f0b16d29..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/distance.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/geometric/distance.inc>
-#include <clc/geometric/floatn.inc>
diff --git a/libclc/generic/include/clc/geometric/dot.h b/libclc/generic/include/clc/geometric/dot.h
deleted file mode 100644
index 7f65fed9760d422ed2af5b520e78c8635a002951..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/dot.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/geometric/dot.inc>
-#include <clc/geometric/floatn.inc>
diff --git a/libclc/generic/include/clc/geometric/dot.inc b/libclc/generic/include/clc/geometric/dot.inc
deleted file mode 100644
index 34245e2935a47337edba02582bfce70e990d08a7..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/dot.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_FLOAT dot(__CLC_FLOATN p0, __CLC_FLOATN p1);
diff --git a/libclc/generic/include/clc/geometric/floatn.inc b/libclc/generic/include/clc/geometric/floatn.inc
deleted file mode 100644
index fb7a9ae601cd3ba0183f50e9bee71ed1f308ae29..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/floatn.inc
+++ /dev/null
@@ -1,45 +0,0 @@
-#define __CLC_FLOAT float
-
-#define __CLC_FLOATN float
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float2
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float3
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float4
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#undef __CLC_FLOAT
-
-#ifdef cl_khr_fp64
-
-#define __CLC_FLOAT double
-
-#define __CLC_FLOATN double
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double2
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double3
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double4
-#include __CLC_BODY
-#undef __CLC_FLOATN
-
-#undef __CLC_FLOAT
-
-#endif
-
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/geometric/length.h b/libclc/generic/include/clc/geometric/length.h
deleted file mode 100644
index cb992b9bc72ec79b699100a59a8240ace5c4b090..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/length.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/geometric/length.inc>
-#include <clc/geometric/floatn.inc>
diff --git a/libclc/generic/include/clc/geometric/length.inc b/libclc/generic/include/clc/geometric/length.inc
deleted file mode 100644
index c2d95e876831b8896acec310b2d27773e4b85f63..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/length.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_FLOAT length(__CLC_FLOATN p0);
diff --git a/libclc/generic/include/clc/geometric/normalize.h b/libclc/generic/include/clc/geometric/normalize.h
deleted file mode 100644
index dccff9b4e0414203f79395ccaa59fcfe2d8fdefa..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/normalize.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/geometric/normalize.inc>
-#include <clc/geometric/floatn.inc>
diff --git a/libclc/generic/include/clc/geometric/normalize.inc b/libclc/generic/include/clc/geometric/normalize.inc
deleted file mode 100644
index 6eb13150603e6f7e64d905b442bfb22a64cb13ea..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/geometric/normalize.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_FLOATN normalize(__CLC_FLOATN p);
diff --git a/libclc/generic/include/clc/integer/abs.h b/libclc/generic/include/clc/integer/abs.h
deleted file mode 100644
index 77a4cbeb4fe37a3aa60a8ffc76cf2afe2a452f42..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/abs.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/abs.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/abs.inc b/libclc/generic/include/clc/integer/abs.inc
deleted file mode 100644
index 952bce7e29e36323472ecfd6d1047d899b261603..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/abs.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_U_GENTYPE abs(__CLC_GENTYPE x);
diff --git a/libclc/generic/include/clc/integer/abs_diff.h b/libclc/generic/include/clc/integer/abs_diff.h
deleted file mode 100644
index 3f3b4b43c5d7ca830a1920625c77dbc8dc5d709a..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/abs_diff.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/abs_diff.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/abs_diff.inc b/libclc/generic/include/clc/integer/abs_diff.inc
deleted file mode 100644
index e844d46e808bbc4944a0e6b7169c9b85e958f0d4..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/abs_diff.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_U_GENTYPE abs_diff(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/add_sat.h b/libclc/generic/include/clc/integer/add_sat.h
deleted file mode 100644
index 2e5e69851442c387fbebe2c4476b600efe329998..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/add_sat.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/add_sat.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/add_sat.inc b/libclc/generic/include/clc/integer/add_sat.inc
deleted file mode 100644
index 913841a1dada557f84498bf309c0d2715f5ac733..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/add_sat.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE add_sat(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/clz.h b/libclc/generic/include/clc/integer/clz.h
deleted file mode 100644
index f7cdbf78ec06075517fef47733b01f17e8457bd3..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/clz.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/clz.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/clz.inc b/libclc/generic/include/clc/integer/clz.inc
deleted file mode 100644
index 45826d10c9fafe429c3ea4d1f80fc35c92177e47..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/clz.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE clz(__CLC_GENTYPE x);
diff --git a/libclc/generic/include/clc/integer/definitions.h b/libclc/generic/include/clc/integer/definitions.h
deleted file mode 100644
index a407974a0d4e9aa221b3644b47986df87f920957..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/definitions.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#define CHAR_BIT 8
-#define INT_MAX 2147483647
-#define INT_MIN -2147483648
-#define LONG_MAX  0x7fffffffffffffffL
-#define LONG_MIN -0x8000000000000000L
-#define SCHAR_MAX 127
-#define SCHAR_MIN -128
-#define CHAR_MAX 127
-#define CHAR_MIN -128
-#define SHRT_MAX 32767
-#define SHRT_MIN -32768
-#define UCHAR_MAX 255
-#define USHRT_MAX 65535
-#define UINT_MAX 0xffffffff
-#define ULONG_MAX 0xffffffffffffffffUL
diff --git a/libclc/generic/include/clc/integer/gentype.inc b/libclc/generic/include/clc/integer/gentype.inc
deleted file mode 100644
index 6f4d6996d8f59aa801b0de6406f5f26edf1b7667..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/gentype.inc
+++ /dev/null
@@ -1,435 +0,0 @@
-//These 2 defines only change when switching between data sizes or base types to
-//keep this file manageable.
-#define __CLC_GENSIZE 8
-#define __CLC_SCALAR_GENTYPE char
-
-#define __CLC_GENTYPE char
-#define __CLC_U_GENTYPE uchar
-#define __CLC_S_GENTYPE char
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE char2
-#define __CLC_U_GENTYPE uchar2
-#define __CLC_S_GENTYPE char2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE char3
-#define __CLC_U_GENTYPE uchar3
-#define __CLC_S_GENTYPE char3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE char4
-#define __CLC_U_GENTYPE uchar4
-#define __CLC_S_GENTYPE char4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE char8
-#define __CLC_U_GENTYPE uchar8
-#define __CLC_S_GENTYPE char8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE char16
-#define __CLC_U_GENTYPE uchar16
-#define __CLC_S_GENTYPE char16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE uchar
-
-#define __CLC_GENTYPE uchar
-#define __CLC_U_GENTYPE uchar
-#define __CLC_S_GENTYPE char
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uchar2
-#define __CLC_U_GENTYPE uchar2
-#define __CLC_S_GENTYPE char2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uchar3
-#define __CLC_U_GENTYPE uchar3
-#define __CLC_S_GENTYPE char3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uchar4
-#define __CLC_U_GENTYPE uchar4
-#define __CLC_S_GENTYPE char4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uchar8
-#define __CLC_U_GENTYPE uchar8
-#define __CLC_S_GENTYPE char8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uchar16
-#define __CLC_U_GENTYPE uchar16
-#define __CLC_S_GENTYPE char16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_GENSIZE
-#define __CLC_GENSIZE 16
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE short
-
-#define __CLC_GENTYPE short
-#define __CLC_U_GENTYPE ushort
-#define __CLC_S_GENTYPE short
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE short2
-#define __CLC_U_GENTYPE ushort2
-#define __CLC_S_GENTYPE short2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE short3
-#define __CLC_U_GENTYPE ushort3
-#define __CLC_S_GENTYPE short3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE short4
-#define __CLC_U_GENTYPE ushort4
-#define __CLC_S_GENTYPE short4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE short8
-#define __CLC_U_GENTYPE ushort8
-#define __CLC_S_GENTYPE short8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE short16
-#define __CLC_U_GENTYPE ushort16
-#define __CLC_S_GENTYPE short16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE ushort
-
-#define __CLC_GENTYPE ushort
-#define __CLC_U_GENTYPE ushort
-#define __CLC_S_GENTYPE short
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ushort2
-#define __CLC_U_GENTYPE ushort2
-#define __CLC_S_GENTYPE short2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ushort3
-#define __CLC_U_GENTYPE ushort3
-#define __CLC_S_GENTYPE short3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ushort4
-#define __CLC_U_GENTYPE ushort4
-#define __CLC_S_GENTYPE short4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ushort8
-#define __CLC_U_GENTYPE ushort8
-#define __CLC_S_GENTYPE short8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ushort16
-#define __CLC_U_GENTYPE ushort16
-#define __CLC_S_GENTYPE short16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_GENSIZE
-#define __CLC_GENSIZE 32
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE int
-
-#define __CLC_GENTYPE int
-#define __CLC_U_GENTYPE uint
-#define __CLC_S_GENTYPE int
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE int2
-#define __CLC_U_GENTYPE uint2
-#define __CLC_S_GENTYPE int2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE int3
-#define __CLC_U_GENTYPE uint3
-#define __CLC_S_GENTYPE int3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE int4
-#define __CLC_U_GENTYPE uint4
-#define __CLC_S_GENTYPE int4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE int8
-#define __CLC_U_GENTYPE uint8
-#define __CLC_S_GENTYPE int8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE int16
-#define __CLC_U_GENTYPE uint16
-#define __CLC_S_GENTYPE int16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE uint
-
-#define __CLC_GENTYPE uint
-#define __CLC_U_GENTYPE uint
-#define __CLC_S_GENTYPE int
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uint2
-#define __CLC_U_GENTYPE uint2
-#define __CLC_S_GENTYPE int2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uint3
-#define __CLC_U_GENTYPE uint3
-#define __CLC_S_GENTYPE int3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uint4
-#define __CLC_U_GENTYPE uint4
-#define __CLC_S_GENTYPE int4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uint8
-#define __CLC_U_GENTYPE uint8
-#define __CLC_S_GENTYPE int8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE uint16
-#define __CLC_U_GENTYPE uint16
-#define __CLC_S_GENTYPE int16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_GENSIZE
-#define __CLC_GENSIZE 64
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE long
-
-#define __CLC_GENTYPE long
-#define __CLC_U_GENTYPE ulong
-#define __CLC_S_GENTYPE long
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE long2
-#define __CLC_U_GENTYPE ulong2
-#define __CLC_S_GENTYPE long2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE long3
-#define __CLC_U_GENTYPE ulong3
-#define __CLC_S_GENTYPE long3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE long4
-#define __CLC_U_GENTYPE ulong4
-#define __CLC_S_GENTYPE long4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE long8
-#define __CLC_U_GENTYPE ulong8
-#define __CLC_S_GENTYPE long8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE long16
-#define __CLC_U_GENTYPE ulong16
-#define __CLC_S_GENTYPE long16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_SCALAR_GENTYPE
-#define __CLC_SCALAR_GENTYPE ulong
-
-#define __CLC_GENTYPE ulong
-#define __CLC_U_GENTYPE ulong
-#define __CLC_S_GENTYPE long
-#define __CLC_SCALAR 1
-#include __CLC_BODY
-#undef __CLC_SCALAR
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ulong2
-#define __CLC_U_GENTYPE ulong2
-#define __CLC_S_GENTYPE long2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ulong3
-#define __CLC_U_GENTYPE ulong3
-#define __CLC_S_GENTYPE long3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ulong4
-#define __CLC_U_GENTYPE ulong4
-#define __CLC_S_GENTYPE long4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ulong8
-#define __CLC_U_GENTYPE ulong8
-#define __CLC_S_GENTYPE long8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#define __CLC_GENTYPE ulong16
-#define __CLC_U_GENTYPE ulong16
-#define __CLC_S_GENTYPE long16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_U_GENTYPE
-#undef __CLC_S_GENTYPE
-
-#undef __CLC_GENSIZE
-#undef __CLC_SCALAR_GENTYPE
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/integer/hadd.h b/libclc/generic/include/clc/integer/hadd.h
deleted file mode 100644
index 37304e26cc2d628d580e2cfb810732a26898b3b9..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/hadd.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/hadd.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/hadd.inc b/libclc/generic/include/clc/integer/hadd.inc
deleted file mode 100644
index f698989cef2026b8e8868175ece6060389adc13c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/hadd.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE hadd(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/integer-gentype.inc b/libclc/generic/include/clc/integer/integer-gentype.inc
deleted file mode 100644
index 6470eb3ae9743e4f255d1a70b3ce83563aeb7304..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/integer-gentype.inc
+++ /dev/null
@@ -1,39 +0,0 @@
-#define __CLC_GENTYPE int
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE int2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE int4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE int8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE int16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE uint
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE uint2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE uint4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE uint8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE uint16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
diff --git a/libclc/generic/include/clc/integer/mad24.h b/libclc/generic/include/clc/integer/mad24.h
deleted file mode 100644
index 0c120faac2b15b3d0eddb6450001cbd8b142f0ca..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mad24.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __CLC_BODY <clc/integer/mad24.inc>
-#include <clc/integer/integer-gentype.inc>
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/integer/mad24.inc b/libclc/generic/include/clc/integer/mad24.inc
deleted file mode 100644
index 81fe0c2a89266c30861c95c0cb64ce32c2893e85..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mad24.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE mad24(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_GENTYPE z);
diff --git a/libclc/generic/include/clc/integer/mad_hi.h b/libclc/generic/include/clc/integer/mad_hi.h
deleted file mode 100644
index 863ce92d9f2d8c2bdb3b9f06788d2c67706984d4..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mad_hi.h
+++ /dev/null
@@ -1 +0,0 @@
-#define mad_hi(a, b, c) (mul_hi((a),(b))+(c))
diff --git a/libclc/generic/include/clc/integer/mul24.h b/libclc/generic/include/clc/integer/mul24.h
deleted file mode 100644
index 4f97098d70f0f407204f42aed945251e788da061..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mul24.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __CLC_BODY <clc/integer/mul24.inc>
-#include <clc/integer/integer-gentype.inc>
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/integer/mul24.inc b/libclc/generic/include/clc/integer/mul24.inc
deleted file mode 100644
index 8cbf7c10ac447d43fb95e56c8a79e469d05f8b26..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mul24.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE mul24(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/mul_hi.h b/libclc/generic/include/clc/integer/mul_hi.h
deleted file mode 100644
index 27b95d83442f97adb8030a8a0500592f80dba369..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mul_hi.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/mul_hi.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/mul_hi.inc b/libclc/generic/include/clc/integer/mul_hi.inc
deleted file mode 100644
index ce9e5c0b2c18c85362fc53b5b25144e736bf164a..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/mul_hi.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE mul_hi(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/rhadd.h b/libclc/generic/include/clc/integer/rhadd.h
deleted file mode 100644
index 69b43faeebd246c6129a03379502eb8b0c6c5cf7..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/rhadd.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/rhadd.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/rhadd.inc b/libclc/generic/include/clc/integer/rhadd.inc
deleted file mode 100644
index 88ccaf09fd5ef8708dc53355858c345178e11bfb..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/rhadd.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE rhadd(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/rotate.h b/libclc/generic/include/clc/integer/rotate.h
deleted file mode 100644
index 6320223e7cf2ced365fe6bbca1d137ab3f7c405a..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/rotate.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/rotate.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/rotate.inc b/libclc/generic/include/clc/integer/rotate.inc
deleted file mode 100644
index c97711ecf88281b001a0d923af425fd20b998035..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/rotate.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE rotate(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/sub_sat.h b/libclc/generic/include/clc/integer/sub_sat.h
deleted file mode 100644
index f84152944817e1c953c86c3e89d03f142b1c52ec..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/sub_sat.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/integer/sub_sat.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/include/clc/integer/sub_sat.inc b/libclc/generic/include/clc/integer/sub_sat.inc
deleted file mode 100644
index 425df2e4b6964f0c646f3b4eaaf659bf471289e5..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/sub_sat.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE sub_sat(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/integer/upsample.h b/libclc/generic/include/clc/integer/upsample.h
deleted file mode 100644
index 0b36b692a2c8d3da0a7db4ca475594b8f1710cd6..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/integer/upsample.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#define __CLC_UPSAMPLE_DECL(BGENTYPE, GENTYPE, UGENTYPE) \
-    _CLC_OVERLOAD _CLC_DECL BGENTYPE upsample(GENTYPE hi, UGENTYPE lo);
-
-#define __CLC_UPSAMPLE_VEC(BGENTYPE, GENTYPE, UGENTYPE) \
-    __CLC_UPSAMPLE_DECL(BGENTYPE, GENTYPE, UGENTYPE) \
-    __CLC_UPSAMPLE_DECL(BGENTYPE##2, GENTYPE##2, UGENTYPE##2) \
-    __CLC_UPSAMPLE_DECL(BGENTYPE##3, GENTYPE##3, UGENTYPE##3) \
-    __CLC_UPSAMPLE_DECL(BGENTYPE##4, GENTYPE##4, UGENTYPE##4) \
-    __CLC_UPSAMPLE_DECL(BGENTYPE##8, GENTYPE##8, UGENTYPE##8) \
-    __CLC_UPSAMPLE_DECL(BGENTYPE##16, GENTYPE##16, UGENTYPE##16) \
-
-#define __CLC_UPSAMPLE_TYPES() \
-    __CLC_UPSAMPLE_VEC(short, char, uchar) \
-    __CLC_UPSAMPLE_VEC(ushort, uchar, uchar) \
-    __CLC_UPSAMPLE_VEC(int, short, ushort) \
-    __CLC_UPSAMPLE_VEC(uint, ushort, ushort) \
-    __CLC_UPSAMPLE_VEC(long, int, uint) \
-    __CLC_UPSAMPLE_VEC(ulong, uint, uint) \
-
-__CLC_UPSAMPLE_TYPES()
-
-#undef __CLC_UPSAMPLE_TYPES
-#undef __CLC_UPSAMPLE_DECL
-#undef __CLC_UPSAMPLE_VEC
-
diff --git a/libclc/generic/include/clc/math/atan.h b/libclc/generic/include/clc/math/atan.h
deleted file mode 100644
index d9697194ee8a600d67a3f93206dc9db1ec5eedda..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/atan.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#define __CLC_BODY <clc/math/atan.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/math/atan.inc b/libclc/generic/include/clc/math/atan.inc
deleted file mode 100644
index d217c955593fc1ad6ec20b9337a3de08a8c78c6e..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/atan.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE atan(__CLC_GENTYPE a);
diff --git a/libclc/generic/include/clc/math/atan2.h b/libclc/generic/include/clc/math/atan2.h
deleted file mode 100644
index 9c082a082f0aaad4b26d1c46f5313731770539c5..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/atan2.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#define __CLC_BODY <clc/math/atan2.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/math/atan2.inc b/libclc/generic/include/clc/math/atan2.inc
deleted file mode 100644
index ce273da5334639ab908a2e7d9e989eb397a8e06c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/atan2.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE atan2(__CLC_GENTYPE a, __CLC_GENTYPE b);
diff --git a/libclc/generic/include/clc/math/binary_decl.inc b/libclc/generic/include/clc/math/binary_decl.inc
deleted file mode 100644
index 70a711477704535ec222908dacc6a25c71f07e9e..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/binary_decl.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, __CLC_GENTYPE b);
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, float b);
-
-#ifdef cl_khr_fp64
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE a, double b);
-#endif
diff --git a/libclc/generic/include/clc/math/binary_intrin.inc b/libclc/generic/include/clc/math/binary_intrin.inc
deleted file mode 100644
index cfbe74159ec24bc361cad8af9a083f6351b7bf6d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/binary_intrin.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-_CLC_OVERLOAD float __CLC_FUNCTION(float, float) __asm(__CLC_INTRINSIC ".f32");
-_CLC_OVERLOAD float2 __CLC_FUNCTION(float2, float2) __asm(__CLC_INTRINSIC ".v2f32");
-_CLC_OVERLOAD float3 __CLC_FUNCTION(float3, float3) __asm(__CLC_INTRINSIC ".v3f32");
-_CLC_OVERLOAD float4 __CLC_FUNCTION(float4, float4) __asm(__CLC_INTRINSIC ".v4f32");
-_CLC_OVERLOAD float8 __CLC_FUNCTION(float8, float8) __asm(__CLC_INTRINSIC ".v8f32");
-_CLC_OVERLOAD float16 __CLC_FUNCTION(float16, float16) __asm(__CLC_INTRINSIC ".v16f32");
-
-#ifdef cl_khr_fp64
-_CLC_OVERLOAD double __CLC_FUNCTION(double, double) __asm(__CLC_INTRINSIC ".f64");
-_CLC_OVERLOAD double2 __CLC_FUNCTION(double2, double2) __asm(__CLC_INTRINSIC ".v2f64");
-_CLC_OVERLOAD double3 __CLC_FUNCTION(double3, double3) __asm(__CLC_INTRINSIC ".v3f64");
-_CLC_OVERLOAD double4 __CLC_FUNCTION(double4, double4) __asm(__CLC_INTRINSIC ".v4f64");
-_CLC_OVERLOAD double8 __CLC_FUNCTION(double8, double8) __asm(__CLC_INTRINSIC ".v8f64");
-_CLC_OVERLOAD double16 __CLC_FUNCTION(double16, double16) __asm(__CLC_INTRINSIC ".v16f64");
-#endif
-
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
diff --git a/libclc/generic/include/clc/math/ceil.h b/libclc/generic/include/clc/math/ceil.h
deleted file mode 100644
index 5b40abf97c20a0e3288586fe2d55f94218ff570f..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/ceil.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef ceil
-#define ceil __clc_ceil
-
-#define __CLC_FUNCTION __clc_ceil
-#define __CLC_INTRINSIC "llvm.ceil"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/clc_nextafter.h b/libclc/generic/include/clc/math/clc_nextafter.h
deleted file mode 100644
index 81c8f369c3bd531d800a4e290fbdef1c45796803..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/clc_nextafter.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#define __CLC_BODY <clc/math/binary_decl.inc>
-
-#define __CLC_FUNCTION nextafter
-#include <clc/math/gentype.inc>
-#undef __CLC_FUNCTION
-
-#define __CLC_FUNCTION __clc_nextafter
-#include <clc/math/gentype.inc>
-#undef __CLC_FUNCTION
-
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/math/copysign.h b/libclc/generic/include/clc/math/copysign.h
deleted file mode 100644
index 9d6cf76deb74ecc57e9042a11532052a8529c9b7..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/copysign.h
+++ /dev/null
@@ -1 +0,0 @@
-#define copysign(x, y) __builtin_copysign(x, y)
diff --git a/libclc/generic/include/clc/math/cos.h b/libclc/generic/include/clc/math/cos.h
deleted file mode 100644
index 3d4cf39a0f80cef49ae2ad81060750a486e45c8e..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/cos.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __CLC_BODY <clc/math/cos.inc>
-#include <clc/math/gentype.inc>
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/math/cos.inc b/libclc/generic/include/clc/math/cos.inc
deleted file mode 100644
index 160e625c6912c773f18f5fadc8d6d7d7843d3e5e..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/cos.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE cos(__CLC_GENTYPE a);
diff --git a/libclc/generic/include/clc/math/exp.h b/libclc/generic/include/clc/math/exp.h
deleted file mode 100644
index 9866524762958533724f5bc05b9596b30270e985..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/exp.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef exp
-
-#define __CLC_BODY <clc/math/unary_decl.inc>
-#define __CLC_FUNCTION exp
-
-#include <clc/math/gentype.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/math/exp10.h b/libclc/generic/include/clc/math/exp10.h
deleted file mode 100644
index a1d426a20ab0702b60459a1ad011962098bc572a..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/exp10.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef exp10
-
-#define __CLC_BODY <clc/math/unary_decl.inc>
-#define __CLC_FUNCTION exp10
-
-#include <clc/math/gentype.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/math/exp2.h b/libclc/generic/include/clc/math/exp2.h
deleted file mode 100644
index ec0dad268a7b9eeaa04924a72e2ca09a933895e3..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/exp2.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef exp2
-#define exp2 __clc_exp2
-
-#define __CLC_FUNCTION __clc_exp2
-#define __CLC_INTRINSIC "llvm.exp2"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/fabs.h b/libclc/generic/include/clc/math/fabs.h
deleted file mode 100644
index ee2f8932a94d2b1ebbf9a98a36fd177845b39082..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/fabs.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef fabs
-#define fabs __clc_fabs
-
-#define __CLC_FUNCTION __clc_fabs
-#define __CLC_INTRINSIC "llvm.fabs"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/floor.h b/libclc/generic/include/clc/math/floor.h
deleted file mode 100644
index 2337d35caae624cdf60f7fce8ae5ff725a9c62f1..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/floor.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef floor
-#define floor __clc_floor
-
-#define __CLC_FUNCTION __clc_floor
-#define __CLC_INTRINSIC "llvm.floor"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/fma.h b/libclc/generic/include/clc/math/fma.h
deleted file mode 100644
index 02d39f68167511609808762014783b950bbf0475..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/fma.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef fma
-#define fma __clc_fma
-
-#define __CLC_FUNCTION __clc_fma
-#define __CLC_INTRINSIC "llvm.fma"
-#include <clc/math/ternary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/fmax.h b/libclc/generic/include/clc/math/fmax.h
deleted file mode 100644
index d6956af85a5fbf3d0ee40d075f1786824f38851c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/fmax.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#undef fmax
-#define fmax __clc_fmax
-
-#define __CLC_BODY <clc/math/binary_decl.inc>
-#define __CLC_FUNCTION __clc_fmax
-
-#include <clc/math/gentype.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
-
diff --git a/libclc/generic/include/clc/math/fmin.h b/libclc/generic/include/clc/math/fmin.h
deleted file mode 100644
index 5588ba93a8b8c284b5190e79c9a4bfd3fdb5b9b7..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/fmin.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#undef fmin
-#define fmin __clc_fmin
-
-#define __CLC_BODY <clc/math/binary_decl.inc>
-#define __CLC_FUNCTION __clc_fmin
-
-#include <clc/math/gentype.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
-
diff --git a/libclc/generic/include/clc/math/gentype.inc b/libclc/generic/include/clc/math/gentype.inc
deleted file mode 100644
index 9f79f6eb037ff466b4038b82bcb58bdbeefb2cc1..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/gentype.inc
+++ /dev/null
@@ -1,67 +0,0 @@
-#define __CLC_SCALAR_GENTYPE float
-#define __CLC_FPSIZE 32
-
-#define __CLC_GENTYPE float
-#define __CLC_SCALAR
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_SCALAR
-
-#define __CLC_GENTYPE float2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE float3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE float4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE float8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE float16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#undef __CLC_FPSIZE
-#undef __CLC_SCALAR_GENTYPE
-
-#ifdef cl_khr_fp64
-#define __CLC_SCALAR_GENTYPE double
-#define __CLC_FPSIZE 64
-
-#define __CLC_SCALAR
-#define __CLC_GENTYPE double
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-#undef __CLC_SCALAR
-
-#define __CLC_GENTYPE double2
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE double3
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE double4
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE double8
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#define __CLC_GENTYPE double16
-#include __CLC_BODY
-#undef __CLC_GENTYPE
-
-#undef __CLC_FPSIZE
-#undef __CLC_SCALAR_GENTYPE
-#endif
-
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/math/hypot.h b/libclc/generic/include/clc/math/hypot.h
deleted file mode 100644
index c00eb4532461f5d77e1227ee9a59492cb447c325..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/hypot.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/math/hypot.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/math/hypot.inc b/libclc/generic/include/clc/math/hypot.inc
deleted file mode 100644
index 08b46058b0aae6be5508afd284934f05be960dd6..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/hypot.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE hypot(__CLC_GENTYPE x, __CLC_GENTYPE y);
diff --git a/libclc/generic/include/clc/math/log.h b/libclc/generic/include/clc/math/log.h
deleted file mode 100644
index 644f8575c1b3047a367556741845d2cfe0886cb6..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/log.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#undef log
-
-// log(x) = log2(x) * (1/log2(e))
-#define log(val) (__clc_log2(val) * 0.693147181f)
diff --git a/libclc/generic/include/clc/math/log2.h b/libclc/generic/include/clc/math/log2.h
deleted file mode 100644
index 880124097ed0c1016060e8dd94f5487ee3feaf7a..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/log2.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef log2
-#define log2 __clc_log2
-
-#define __CLC_FUNCTION __clc_log2
-#define __CLC_INTRINSIC "llvm.log2"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/mad.h b/libclc/generic/include/clc/math/mad.h
deleted file mode 100644
index c4e50840ced09e20c769a570d932da9d3fad96f4..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/mad.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/math/mad.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/math/mad.inc b/libclc/generic/include/clc/math/mad.inc
deleted file mode 100644
index 61194b6ca4a7f989a3af5f6c900eefdac4a58a0f..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/mad.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE mad(__CLC_GENTYPE a, __CLC_GENTYPE b, __CLC_GENTYPE c);
diff --git a/libclc/generic/include/clc/math/mix.h b/libclc/generic/include/clc/math/mix.h
deleted file mode 100644
index c3c95c1f0c4bb1e1e34e915b19557e996187a2cb..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/mix.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/math/mix.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/math/mix.inc b/libclc/generic/include/clc/math/mix.inc
deleted file mode 100644
index 52cb10ad9027cb261f0fee7cb64160d4f53f8e9d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/mix.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE mix(__CLC_GENTYPE a, __CLC_GENTYPE b, __CLC_GENTYPE c);
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE mix(__CLC_GENTYPE a, __CLC_GENTYPE b, __CLC_SCALAR_GENTYPE c);
-#endif
diff --git a/libclc/generic/include/clc/math/native_cos.h b/libclc/generic/include/clc/math/native_cos.h
deleted file mode 100644
index c7212cc4b663b0541683d981c2a3f1796103d70f..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_cos.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_cos cos
diff --git a/libclc/generic/include/clc/math/native_divide.h b/libclc/generic/include/clc/math/native_divide.h
deleted file mode 100644
index 5c52167fd3e78b3398cc4fbda3e4590f6283ac54..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_divide.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_divide(x, y) ((x) / (y))
diff --git a/libclc/generic/include/clc/math/native_exp.h b/libclc/generic/include/clc/math/native_exp.h
deleted file mode 100644
index e206de66926d5a7e14e9747fb1da11622355c812..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_exp.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_exp exp
diff --git a/libclc/generic/include/clc/math/native_exp10.h b/libclc/generic/include/clc/math/native_exp10.h
deleted file mode 100644
index 1156f58c53a57be399e488a2983409203311d522..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_exp10.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_exp10 exp10
diff --git a/libclc/generic/include/clc/math/native_exp2.h b/libclc/generic/include/clc/math/native_exp2.h
deleted file mode 100644
index b6759390ee438ffb67074d3daebe61ad0615b765..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_exp2.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_exp2 exp2
diff --git a/libclc/generic/include/clc/math/native_log.h b/libclc/generic/include/clc/math/native_log.h
deleted file mode 100644
index 7805a39ed696171129105330852b7af1f5ab334c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_log.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_log log
diff --git a/libclc/generic/include/clc/math/native_log2.h b/libclc/generic/include/clc/math/native_log2.h
deleted file mode 100644
index 0c692eec27f4b0ae58311b89ec19e0d9ed15d3c8..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_log2.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_log2 log2
diff --git a/libclc/generic/include/clc/math/native_powr.h b/libclc/generic/include/clc/math/native_powr.h
deleted file mode 100644
index e8a37d9cb06681be623f106ca2b82caba28e4194..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_powr.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_powr pow
diff --git a/libclc/generic/include/clc/math/native_sin.h b/libclc/generic/include/clc/math/native_sin.h
deleted file mode 100644
index 569a051ccc750f49ef6113129a4f11cfa8af59e1..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_sin.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_sin sin
diff --git a/libclc/generic/include/clc/math/native_sqrt.h b/libclc/generic/include/clc/math/native_sqrt.h
deleted file mode 100644
index a9525fccb7c18abe1d593a42cd148e173f8aa06b..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/native_sqrt.h
+++ /dev/null
@@ -1 +0,0 @@
-#define native_sqrt sqrt
diff --git a/libclc/generic/include/clc/math/nextafter.h b/libclc/generic/include/clc/math/nextafter.h
deleted file mode 100644
index 06e1b2a53c5229ecb4731f20e6dcb3cd5bd012b9..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/nextafter.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __CLC_BODY <clc/math/binary_decl.inc>
-#define __CLC_FUNCTION nextafter
-#include <clc/math/gentype.inc>
-#undef __CLC_FUNCTION
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/math/pow.h b/libclc/generic/include/clc/math/pow.h
deleted file mode 100644
index 320d341a6830a407f7f1bf8c9a1e2205bfe6342d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/pow.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef pow
-#define pow __clc_pow
-
-#define __CLC_FUNCTION __clc_pow
-#define __CLC_INTRINSIC "llvm.pow"
-#include <clc/math/binary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/pown.h b/libclc/generic/include/clc/math/pown.h
deleted file mode 100644
index bdbf50c1de6fd4682636843e59ad1173352f3182..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/pown.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#define _CLC_POWN_INTRINSIC "llvm.powi"
-
-#define _CLC_POWN_DECL(GENTYPE, INTTYPE) \
-  _CLC_OVERLOAD _CLC_DECL GENTYPE pown(GENTYPE x, INTTYPE y);
-
-#define _CLC_VECTOR_POWN_DECL(GENTYPE, INTTYPE) \
-  _CLC_POWN_DECL(GENTYPE##2, INTTYPE##2)  \
-  _CLC_POWN_DECL(GENTYPE##3, INTTYPE##3)  \
-  _CLC_POWN_DECL(GENTYPE##4, INTTYPE##4)  \
-  _CLC_POWN_DECL(GENTYPE##8, INTTYPE##8)  \
-  _CLC_POWN_DECL(GENTYPE##16, INTTYPE##16)
-
-_CLC_OVERLOAD float pown(float x, int y) __asm(_CLC_POWN_INTRINSIC ".f32");
-
-_CLC_VECTOR_POWN_DECL(float, int)
-
-#ifdef cl_khr_fp64
-_CLC_OVERLOAD double pown(double x, int y) __asm(_CLC_POWN_INTRINSIC ".f64");
-_CLC_VECTOR_POWN_DECL(double, int)
-#endif
-
-#undef _CLC_POWN_INTRINSIC
-#undef _CLC_POWN_DECL
-#undef _CLC_VECTOR_POWN_DECL
diff --git a/libclc/generic/include/clc/math/rint.h b/libclc/generic/include/clc/math/rint.h
deleted file mode 100644
index d257634a6f953641861014fa644ef320168be36f..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/rint.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef rint
-#define rint __clc_rint
-
-#define __CLC_FUNCTION __clc_rint
-#define __CLC_INTRINSIC "llvm.rint"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/round.h b/libclc/generic/include/clc/math/round.h
deleted file mode 100644
index 43e16aed028f17a32327e2b09737f0a4f72110ff..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/round.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef round
-#define round __clc_round
-
-#define __CLC_FUNCTION __clc_round
-#define __CLC_INTRINSIC "llvm.round"
-#include <clc/math/unary_intrin.inc>
-
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
diff --git a/libclc/generic/include/clc/math/rsqrt.h b/libclc/generic/include/clc/math/rsqrt.h
deleted file mode 100644
index 9d49ee652262af2a8f0ad184334aaf49beb96209..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/rsqrt.h
+++ /dev/null
@@ -1 +0,0 @@
-#define rsqrt(x) (1.f/sqrt(x))
diff --git a/libclc/generic/include/clc/math/sin.h b/libclc/generic/include/clc/math/sin.h
deleted file mode 100644
index 6d4cf5a3142c34d3ba7fb8f099aa64bfc3865135..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/sin.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#define __CLC_BODY <clc/math/sin.inc>
-#include <clc/math/gentype.inc>
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/math/sin.inc b/libclc/generic/include/clc/math/sin.inc
deleted file mode 100644
index e722fa35273102761a206221219b4199f3b71638..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/sin.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE sin(__CLC_GENTYPE a);
diff --git a/libclc/generic/include/clc/math/sincos.h b/libclc/generic/include/clc/math/sincos.h
deleted file mode 100644
index fbb9b55cd1f79f989356e43489de7f1e360ad17c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/sincos.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define __CLC_BODY <clc/math/sincos.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/math/sincos.inc b/libclc/generic/include/clc/math/sincos.inc
deleted file mode 100644
index 444ac82a5204128eb03a8ff6e8f6bf8e7b6bb04b..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/sincos.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-#define __CLC_DECLARE_SINCOS(ADDRSPACE, TYPE) \
-  _CLC_OVERLOAD _CLC_DECL TYPE sincos (TYPE x, ADDRSPACE TYPE * cosval);
-
-__CLC_DECLARE_SINCOS(global, __CLC_GENTYPE)
-__CLC_DECLARE_SINCOS(local, __CLC_GENTYPE)
-__CLC_DECLARE_SINCOS(private, __CLC_GENTYPE)
-
-#undef __CLC_DECLARE_SINCOS
diff --git a/libclc/generic/include/clc/math/sqrt.h b/libclc/generic/include/clc/math/sqrt.h
deleted file mode 100644
index f69de847e6299281fedf30fcd03d9a04118594a9..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/sqrt.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#undef sqrt
-#define sqrt __clc_sqrt
-
-#define __CLC_FUNCTION __clc_sqrt
-#define __CLC_INTRINSIC "llvm.sqrt"
-#include <clc/math/unary_intrin.inc>
diff --git a/libclc/generic/include/clc/math/ternary_intrin.inc b/libclc/generic/include/clc/math/ternary_intrin.inc
deleted file mode 100644
index 9633696ed9c4d53b6c936ce468acd9c9f8b7ffa1..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/ternary_intrin.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-_CLC_OVERLOAD float __CLC_FUNCTION(float, float, float) __asm(__CLC_INTRINSIC ".f32");
-_CLC_OVERLOAD float2 __CLC_FUNCTION(float2, float2, float2) __asm(__CLC_INTRINSIC ".v2f32");
-_CLC_OVERLOAD float3 __CLC_FUNCTION(float3, float3, float3) __asm(__CLC_INTRINSIC ".v3f32");
-_CLC_OVERLOAD float4 __CLC_FUNCTION(float4, float4, float4) __asm(__CLC_INTRINSIC ".v4f32");
-_CLC_OVERLOAD float8 __CLC_FUNCTION(float8, float8, float8) __asm(__CLC_INTRINSIC ".v8f32");
-_CLC_OVERLOAD float16 __CLC_FUNCTION(float16, float16, float16) __asm(__CLC_INTRINSIC ".v16f32");
-
-#ifdef cl_khr_fp64
-_CLC_OVERLOAD double __CLC_FUNCTION(double, double, double) __asm(__CLC_INTRINSIC ".f64");
-_CLC_OVERLOAD double2 __CLC_FUNCTION(double2, double2, double2) __asm(__CLC_INTRINSIC ".v2f64");
-_CLC_OVERLOAD double3 __CLC_FUNCTION(double3, double3, double3) __asm(__CLC_INTRINSIC ".v3f64");
-_CLC_OVERLOAD double4 __CLC_FUNCTION(double4, double4, double4) __asm(__CLC_INTRINSIC ".v4f64");
-_CLC_OVERLOAD double8 __CLC_FUNCTION(double8, double8, double8) __asm(__CLC_INTRINSIC ".v8f64");
-_CLC_OVERLOAD double16 __CLC_FUNCTION(double16, double16, double16) __asm(__CLC_INTRINSIC ".v16f64");
-#endif
-
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
diff --git a/libclc/generic/include/clc/math/trunc.h b/libclc/generic/include/clc/math/trunc.h
deleted file mode 100644
index d34f66190433dc050f900d2a852ee0012ce3460d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/trunc.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef trunc
-#define trunc __clc_trunc
-
-#define __CLC_FUNCTION __clc_trunc
-#define __CLC_INTRINSIC "llvm.trunc"
-#include <clc/math/unary_intrin.inc>
-
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
diff --git a/libclc/generic/include/clc/math/unary_decl.inc b/libclc/generic/include/clc/math/unary_decl.inc
deleted file mode 100644
index 9858d908da09fe325b66d95d0fbe6e84d5324d18..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/unary_decl.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE __CLC_FUNCTION(__CLC_GENTYPE x);
diff --git a/libclc/generic/include/clc/math/unary_intrin.inc b/libclc/generic/include/clc/math/unary_intrin.inc
deleted file mode 100644
index 8c62d8827fe74a3be243c8f924aec7c6645e7900..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/math/unary_intrin.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-_CLC_OVERLOAD float __CLC_FUNCTION(float f) __asm(__CLC_INTRINSIC ".f32");
-_CLC_OVERLOAD float2 __CLC_FUNCTION(float2 f) __asm(__CLC_INTRINSIC ".v2f32");
-_CLC_OVERLOAD float3 __CLC_FUNCTION(float3 f) __asm(__CLC_INTRINSIC ".v3f32");
-_CLC_OVERLOAD float4 __CLC_FUNCTION(float4 f) __asm(__CLC_INTRINSIC ".v4f32");
-_CLC_OVERLOAD float8 __CLC_FUNCTION(float8 f) __asm(__CLC_INTRINSIC ".v8f32");
-_CLC_OVERLOAD float16 __CLC_FUNCTION(float16 f) __asm(__CLC_INTRINSIC ".v16f32");
-
-#ifdef cl_khr_fp64
-_CLC_OVERLOAD double __CLC_FUNCTION(double d) __asm(__CLC_INTRINSIC ".f64");
-_CLC_OVERLOAD double2 __CLC_FUNCTION(double2 d) __asm(__CLC_INTRINSIC ".v2f64");
-_CLC_OVERLOAD double3 __CLC_FUNCTION(double3 d) __asm(__CLC_INTRINSIC ".v3f64");
-_CLC_OVERLOAD double4 __CLC_FUNCTION(double4 d) __asm(__CLC_INTRINSIC ".v4f64");
-_CLC_OVERLOAD double8 __CLC_FUNCTION(double8 d) __asm(__CLC_INTRINSIC ".v8f64");
-_CLC_OVERLOAD double16 __CLC_FUNCTION(double16 d) __asm(__CLC_INTRINSIC ".v16f64");
-#endif
-
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
diff --git a/libclc/generic/include/clc/relational/all.h b/libclc/generic/include/clc/relational/all.h
deleted file mode 100644
index f8b0942444a2bab0750aa72a682622fdd74ed728..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/all.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#define _CLC_ALL_DECL(TYPE) \
-  _CLC_OVERLOAD _CLC_DECL int all(TYPE v);
-
-#define _CLC_VECTOR_ALL_DECL(TYPE) \
-  _CLC_ALL_DECL(TYPE)     \
-  _CLC_ALL_DECL(TYPE##2)  \
-  _CLC_ALL_DECL(TYPE##3)  \
-  _CLC_ALL_DECL(TYPE##4)  \
-  _CLC_ALL_DECL(TYPE##8)  \
-  _CLC_ALL_DECL(TYPE##16)
-
-_CLC_VECTOR_ALL_DECL(char)
-_CLC_VECTOR_ALL_DECL(short)
-_CLC_VECTOR_ALL_DECL(int)
-_CLC_VECTOR_ALL_DECL(long)
-
-#undef _CLC_ALL_DECL
-#undef _CLC_VECTOR_ALL_DECL
diff --git a/libclc/generic/include/clc/relational/any.h b/libclc/generic/include/clc/relational/any.h
deleted file mode 100644
index 4687ed263793e515e58164168c9dfdad6aea9e44..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/any.h
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#define _CLC_ANY_DECL(TYPE) \
-  _CLC_OVERLOAD _CLC_DECL int any(TYPE v);
-
-#define _CLC_VECTOR_ANY_DECL(TYPE) \
-  _CLC_ANY_DECL(TYPE)     \
-  _CLC_ANY_DECL(TYPE##2)  \
-  _CLC_ANY_DECL(TYPE##3)  \
-  _CLC_ANY_DECL(TYPE##4)  \
-  _CLC_ANY_DECL(TYPE##8)  \
-  _CLC_ANY_DECL(TYPE##16)
-
-_CLC_VECTOR_ANY_DECL(char)
-_CLC_VECTOR_ANY_DECL(short)
-_CLC_VECTOR_ANY_DECL(int)
-_CLC_VECTOR_ANY_DECL(long)
diff --git a/libclc/generic/include/clc/relational/binary_decl.inc b/libclc/generic/include/clc/relational/binary_decl.inc
deleted file mode 100644
index c9e4aee839a17ca5e2988d15e6fe777bc193c910..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/binary_decl.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_INTN __CLC_FUNCTION(__CLC_FLOATN a, __CLC_FLOATN b);
diff --git a/libclc/generic/include/clc/relational/bitselect.h b/libclc/generic/include/clc/relational/bitselect.h
deleted file mode 100644
index e91cbfded8b78b3976a21256329c7b78e4c6503f..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/bitselect.h
+++ /dev/null
@@ -1 +0,0 @@
-#define bitselect(x, y, z) ((x) ^ ((z) & ((y) ^ (x))))
diff --git a/libclc/generic/include/clc/relational/floatn.inc b/libclc/generic/include/clc/relational/floatn.inc
deleted file mode 100644
index 8d7fd52cc7da931fc03eb0fd08091b039f06ed71..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/floatn.inc
+++ /dev/null
@@ -1,81 +0,0 @@
-
-#define __CLC_FLOATN float
-#define __CLC_INTN int
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float2
-#define __CLC_INTN int2
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float3
-#define __CLC_INTN int3
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float4
-#define __CLC_INTN int4
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float8
-#define __CLC_INTN int8
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN float16
-#define __CLC_INTN int16
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#undef __CLC_FLOAT
-#undef __CLC_INT
-
-#ifdef cl_khr_fp64
-
-#define __CLC_FLOATN double
-#define __CLC_INTN int
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double2
-#define __CLC_INTN long2
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double3
-#define __CLC_INTN long3
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double4
-#define __CLC_INTN long4
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double8
-#define __CLC_INTN long8
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#define __CLC_FLOATN double16
-#define __CLC_INTN long16
-#include __CLC_BODY
-#undef __CLC_INTN
-#undef __CLC_FLOATN
-
-#endif
-
-#undef __CLC_BODY
diff --git a/libclc/generic/include/clc/relational/isequal.h b/libclc/generic/include/clc/relational/isequal.h
deleted file mode 100644
index c28a98565ee369b7c037ece0c29cf7b90ec4033d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/isequal.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#define _CLC_ISEQUAL_DECL(TYPE, RETTYPE) \
-  _CLC_OVERLOAD _CLC_DECL RETTYPE isequal(TYPE x, TYPE y);
-
-#define _CLC_VECTOR_ISEQUAL_DECL(TYPE, RETTYPE) \
-  _CLC_ISEQUAL_DECL(TYPE##2, RETTYPE##2)  \
-  _CLC_ISEQUAL_DECL(TYPE##3, RETTYPE##3)  \
-  _CLC_ISEQUAL_DECL(TYPE##4, RETTYPE##4)  \
-  _CLC_ISEQUAL_DECL(TYPE##8, RETTYPE##8)  \
-  _CLC_ISEQUAL_DECL(TYPE##16, RETTYPE##16)
-
-_CLC_ISEQUAL_DECL(float, int)
-_CLC_VECTOR_ISEQUAL_DECL(float, int)
-
-#ifdef cl_khr_fp64
-_CLC_ISEQUAL_DECL(double, int)
-_CLC_VECTOR_ISEQUAL_DECL(double, long)
-#endif
-
-#undef _CLC_ISEQUAL_DECL
-#undef _CLC_VECTOR_ISEQUAL_DEC
diff --git a/libclc/generic/include/clc/relational/isgreater.h b/libclc/generic/include/clc/relational/isgreater.h
deleted file mode 100644
index d17ae0c00c8262e0a45e6115356006feb655e9cd..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/isgreater.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef isgreater
-
-#define __CLC_FUNCTION isgreater
-#define __CLC_BODY <clc/relational/binary_decl.inc>
-
-#include <clc/relational/floatn.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/relational/isgreaterequal.h b/libclc/generic/include/clc/relational/isgreaterequal.h
deleted file mode 100644
index 835332858d296155bb73104cedd201377d163d00..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/isgreaterequal.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef isgreaterequal
-
-#define __CLC_FUNCTION isgreaterequal
-#define __CLC_BODY <clc/relational/binary_decl.inc>
-
-#include <clc/relational/floatn.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/relational/isless.h b/libclc/generic/include/clc/relational/isless.h
deleted file mode 100644
index 1debd87f386e98133049490a1082c98d9fdb6230..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/isless.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#define __CLC_FUNCTION isless
-#define __CLC_BODY <clc/relational/binary_decl.inc>
-
-#include <clc/relational/floatn.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/relational/islessequal.h b/libclc/generic/include/clc/relational/islessequal.h
deleted file mode 100644
index e6a99d7f21c8bd209a4fb3670c2bcc9eaea5027a..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/islessequal.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#define __CLC_FUNCTION islessequal
-#define __CLC_BODY <clc/relational/binary_decl.inc>
-
-#include <clc/relational/floatn.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/relational/isnan.h b/libclc/generic/include/clc/relational/isnan.h
deleted file mode 100644
index 93eb9dffb4240cd4afc1139fcc504f230031ee70..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/isnan.h
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#define _CLC_ISNAN_DECL(RET_TYPE, ARG_TYPE) \
-  _CLC_OVERLOAD _CLC_DECL RET_TYPE isnan(ARG_TYPE);
-
-#define _CLC_VECTOR_ISNAN_DECL(RET_TYPE, ARG_TYPE) \
-  _CLC_ISNAN_DECL(RET_TYPE##2, ARG_TYPE##2) \
-  _CLC_ISNAN_DECL(RET_TYPE##3, ARG_TYPE##3) \
-  _CLC_ISNAN_DECL(RET_TYPE##4, ARG_TYPE##4) \
-  _CLC_ISNAN_DECL(RET_TYPE##8, ARG_TYPE##8) \
-  _CLC_ISNAN_DECL(RET_TYPE##16, ARG_TYPE##16)
-
-_CLC_ISNAN_DECL(int, float)
-_CLC_VECTOR_ISNAN_DECL(int, float)
-
-#ifdef cl_khr_fp64
-_CLC_ISNAN_DECL(int, double)
-_CLC_VECTOR_ISNAN_DECL(long, double)
-#endif
-
-#undef _CLC_ISNAN_DECL
-#undef _CLC_VECTOR_ISNAN_DECL
diff --git a/libclc/generic/include/clc/relational/isnotequal.h b/libclc/generic/include/clc/relational/isnotequal.h
deleted file mode 100644
index f2ceea2110469c2bdfe515c439c1e154a03a61c9..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/isnotequal.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef isnotequal
-
-#define __CLC_FUNCTION isnotequal
-#define __CLC_BODY <clc/relational/binary_decl.inc>
-
-#include <clc/relational/floatn.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/relational/select.h b/libclc/generic/include/clc/relational/select.h
deleted file mode 100644
index 33a6909fb929c5bbb2c88239e93c19b8a78f26e2..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/select.h
+++ /dev/null
@@ -1 +0,0 @@
-#define select(a, b, c) ((c) ? (b) : (a))
diff --git a/libclc/generic/include/clc/relational/signbit.h b/libclc/generic/include/clc/relational/signbit.h
deleted file mode 100644
index 41e5284bb34c4bbfb9b2aaa91df3039b7cad9f36..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/signbit.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef signbit
-
-#define __CLC_FUNCTION signbit
-#define __CLC_BODY <clc/relational/unary_decl.inc>
-
-#include <clc/relational/floatn.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/relational/unary_decl.inc b/libclc/generic/include/clc/relational/unary_decl.inc
deleted file mode 100644
index ab9b776a46ecfbd6ab8e62fe6ca5fff628781366..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/relational/unary_decl.inc
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_INTN __CLC_FUNCTION(__CLC_FLOATN x);
diff --git a/libclc/generic/include/clc/shared/clamp.h b/libclc/generic/include/clc/shared/clamp.h
deleted file mode 100644
index a389b85d2666e339554a1da238d4a6df83b2dda6..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/clamp.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __CLC_BODY <clc/shared/clamp.inc>
-#include <clc/integer/gentype.inc>
-
-#define __CLC_BODY <clc/shared/clamp.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/shared/clamp.inc b/libclc/generic/include/clc/shared/clamp.inc
deleted file mode 100644
index aaff9d0ff07f07137faab587db1c13240730b637..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/clamp.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE clamp(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_GENTYPE z);
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE clamp(__CLC_GENTYPE x, __CLC_SCALAR_GENTYPE y, __CLC_SCALAR_GENTYPE z);
-#endif
diff --git a/libclc/generic/include/clc/shared/max.h b/libclc/generic/include/clc/shared/max.h
deleted file mode 100644
index ee20b9e64df76b6e1a2433655cd01ef9f4273277..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/max.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __CLC_BODY <clc/shared/max.inc>
-#include <clc/integer/gentype.inc>
-
-#define __CLC_BODY <clc/shared/max.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/shared/max.inc b/libclc/generic/include/clc/shared/max.inc
deleted file mode 100644
index 590107435e66a28d1eb369f7a2e3685b5b6bc247..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/max.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE max(__CLC_GENTYPE a, __CLC_GENTYPE b);
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE max(__CLC_GENTYPE a, __CLC_SCALAR_GENTYPE b);
-#endif
diff --git a/libclc/generic/include/clc/shared/min.h b/libclc/generic/include/clc/shared/min.h
deleted file mode 100644
index e11d9f9551ff95f58c4dab923de6839de2c4ebd1..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/min.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define __CLC_BODY <clc/shared/min.inc>
-#include <clc/integer/gentype.inc>
-
-#define __CLC_BODY <clc/shared/min.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/include/clc/shared/min.inc b/libclc/generic/include/clc/shared/min.inc
deleted file mode 100644
index d8c1568a590c1b8572d58e96af0cbc039d01209b..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/min.inc
+++ /dev/null
@@ -1,5 +0,0 @@
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE min(__CLC_GENTYPE a, __CLC_GENTYPE b);
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DECL __CLC_GENTYPE min(__CLC_GENTYPE a, __CLC_SCALAR_GENTYPE b);
-#endif
diff --git a/libclc/generic/include/clc/shared/vload.h b/libclc/generic/include/clc/shared/vload.h
deleted file mode 100644
index 93d07501d4a10a914daf617ad52d262cc138d7ba..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/vload.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#define _CLC_VLOAD_DECL(PRIM_TYPE, VEC_TYPE, WIDTH, ADDR_SPACE) \
-  _CLC_OVERLOAD _CLC_DECL VEC_TYPE vload##WIDTH(size_t offset, const ADDR_SPACE PRIM_TYPE *x);
-
-#define _CLC_VECTOR_VLOAD_DECL(PRIM_TYPE, ADDR_SPACE) \
-  _CLC_VLOAD_DECL(PRIM_TYPE, PRIM_TYPE##2, 2, ADDR_SPACE) \
-  _CLC_VLOAD_DECL(PRIM_TYPE, PRIM_TYPE##3, 3, ADDR_SPACE) \
-  _CLC_VLOAD_DECL(PRIM_TYPE, PRIM_TYPE##4, 4, ADDR_SPACE) \
-  _CLC_VLOAD_DECL(PRIM_TYPE, PRIM_TYPE##8, 8, ADDR_SPACE) \
-  _CLC_VLOAD_DECL(PRIM_TYPE, PRIM_TYPE##16, 16, ADDR_SPACE)
-
-#define _CLC_VECTOR_VLOAD_PRIM1(PRIM_TYPE) \
-  _CLC_VECTOR_VLOAD_DECL(PRIM_TYPE, __private) \
-  _CLC_VECTOR_VLOAD_DECL(PRIM_TYPE, __local) \
-  _CLC_VECTOR_VLOAD_DECL(PRIM_TYPE, __constant) \
-  _CLC_VECTOR_VLOAD_DECL(PRIM_TYPE, __global) \
-
-#define _CLC_VECTOR_VLOAD_PRIM() \
-    _CLC_VECTOR_VLOAD_PRIM1(char) \
-    _CLC_VECTOR_VLOAD_PRIM1(uchar) \
-    _CLC_VECTOR_VLOAD_PRIM1(short) \
-    _CLC_VECTOR_VLOAD_PRIM1(ushort) \
-    _CLC_VECTOR_VLOAD_PRIM1(int) \
-    _CLC_VECTOR_VLOAD_PRIM1(uint) \
-    _CLC_VECTOR_VLOAD_PRIM1(long) \
-    _CLC_VECTOR_VLOAD_PRIM1(ulong) \
-    _CLC_VECTOR_VLOAD_PRIM1(float) \
-        
-#ifdef cl_khr_fp64
-#define _CLC_VECTOR_VLOAD() \
-  _CLC_VECTOR_VLOAD_PRIM1(double) \
-  _CLC_VECTOR_VLOAD_PRIM()
-#else
-#define _CLC_VECTOR_VLOAD() \
-  _CLC_VECTOR_VLOAD_PRIM()
-#endif
-
-_CLC_VECTOR_VLOAD()
diff --git a/libclc/generic/include/clc/shared/vstore.h b/libclc/generic/include/clc/shared/vstore.h
deleted file mode 100644
index 1f784f82fec0c6bf30b991b2350c020d18442328..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/shared/vstore.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#define _CLC_VSTORE_DECL(PRIM_TYPE, VEC_TYPE, WIDTH, ADDR_SPACE) \
-  _CLC_OVERLOAD _CLC_DECL void vstore##WIDTH(VEC_TYPE vec, size_t offset, ADDR_SPACE PRIM_TYPE *out);
-
-#define _CLC_VECTOR_VSTORE_DECL(PRIM_TYPE, ADDR_SPACE) \
-  _CLC_VSTORE_DECL(PRIM_TYPE, PRIM_TYPE##2, 2, ADDR_SPACE) \
-  _CLC_VSTORE_DECL(PRIM_TYPE, PRIM_TYPE##3, 3, ADDR_SPACE) \
-  _CLC_VSTORE_DECL(PRIM_TYPE, PRIM_TYPE##4, 4, ADDR_SPACE) \
-  _CLC_VSTORE_DECL(PRIM_TYPE, PRIM_TYPE##8, 8, ADDR_SPACE) \
-  _CLC_VSTORE_DECL(PRIM_TYPE, PRIM_TYPE##16, 16, ADDR_SPACE)
-
-#define _CLC_VECTOR_VSTORE_PRIM1(PRIM_TYPE) \
-  _CLC_VECTOR_VSTORE_DECL(PRIM_TYPE, __private) \
-  _CLC_VECTOR_VSTORE_DECL(PRIM_TYPE, __local) \
-  _CLC_VECTOR_VSTORE_DECL(PRIM_TYPE, __global) \
-
-#define _CLC_VECTOR_VSTORE_PRIM() \
-    _CLC_VECTOR_VSTORE_PRIM1(char) \
-    _CLC_VECTOR_VSTORE_PRIM1(uchar) \
-    _CLC_VECTOR_VSTORE_PRIM1(short) \
-    _CLC_VECTOR_VSTORE_PRIM1(ushort) \
-    _CLC_VECTOR_VSTORE_PRIM1(int) \
-    _CLC_VECTOR_VSTORE_PRIM1(uint) \
-    _CLC_VECTOR_VSTORE_PRIM1(long) \
-    _CLC_VECTOR_VSTORE_PRIM1(ulong) \
-    _CLC_VECTOR_VSTORE_PRIM1(float) \
-        
-#ifdef cl_khr_fp64
-#define _CLC_VECTOR_VSTORE() \
-  _CLC_VECTOR_VSTORE_PRIM1(double) \
-  _CLC_VECTOR_VSTORE_PRIM()
-#else
-#define _CLC_VECTOR_VSTORE() \
-  _CLC_VECTOR_VSTORE_PRIM()
-#endif
-
-_CLC_VECTOR_VSTORE()
diff --git a/libclc/generic/include/clc/synchronization/barrier.h b/libclc/generic/include/clc/synchronization/barrier.h
deleted file mode 100644
index 7167a3d3f0937a2ae21df2fe82f362b853b3d7dc..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/synchronization/barrier.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL void barrier(cl_mem_fence_flags flags);
diff --git a/libclc/generic/include/clc/synchronization/cl_mem_fence_flags.h b/libclc/generic/include/clc/synchronization/cl_mem_fence_flags.h
deleted file mode 100644
index c57eb4249a413a900c92709841b45b3a0fae5dfa..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/synchronization/cl_mem_fence_flags.h
+++ /dev/null
@@ -1,4 +0,0 @@
-typedef uint cl_mem_fence_flags;
-
-#define CLK_LOCAL_MEM_FENCE 1
-#define CLK_GLOBAL_MEM_FENCE 2
diff --git a/libclc/generic/include/clc/workitem/get_global_id.h b/libclc/generic/include/clc/workitem/get_global_id.h
deleted file mode 100644
index 92759f146894036c278d7942ec073ea7dce46e39..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/workitem/get_global_id.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL size_t get_global_id(uint dim);
diff --git a/libclc/generic/include/clc/workitem/get_global_size.h b/libclc/generic/include/clc/workitem/get_global_size.h
deleted file mode 100644
index 2f837058539739558e2a7d1615ea8f6810742cd5..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/workitem/get_global_size.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL size_t get_global_size(uint dim);
diff --git a/libclc/generic/include/clc/workitem/get_group_id.h b/libclc/generic/include/clc/workitem/get_group_id.h
deleted file mode 100644
index 346c82c6c316f5f8202cd181d3a333ad507c6132..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/workitem/get_group_id.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL size_t get_group_id(uint dim);
diff --git a/libclc/generic/include/clc/workitem/get_local_id.h b/libclc/generic/include/clc/workitem/get_local_id.h
deleted file mode 100644
index 169aeed867869c0613aff49d52d75ac9ed5f6114..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/workitem/get_local_id.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL size_t get_local_id(uint dim);
diff --git a/libclc/generic/include/clc/workitem/get_local_size.h b/libclc/generic/include/clc/workitem/get_local_size.h
deleted file mode 100644
index 040ec58a3d8bb5d817173aa5631029210c1d3c6d..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/workitem/get_local_size.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL size_t get_local_size(uint dim);
diff --git a/libclc/generic/include/clc/workitem/get_num_groups.h b/libclc/generic/include/clc/workitem/get_num_groups.h
deleted file mode 100644
index e555c7efc2d2a7b4ebb900ba40e7bc5a6eda2d7c..0000000000000000000000000000000000000000
--- a/libclc/generic/include/clc/workitem/get_num_groups.h
+++ /dev/null
@@ -1 +0,0 @@
-_CLC_DECL size_t get_num_groups(uint dim);
diff --git a/libclc/generic/include/math/clc_nextafter.h b/libclc/generic/include/math/clc_nextafter.h
deleted file mode 100644
index 2b674b7079568f2f217c9232da28b8db01aaedf8..0000000000000000000000000000000000000000
--- a/libclc/generic/include/math/clc_nextafter.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#define __CLC_BODY <clc/math/binary_decl.inc>
-#define __CLC_FUNCTION __clc_nextafter
-
-#include <clc/math/gentype.inc>
-
-#undef __CLC_BODY
-#undef __CLC_FUNCTION
diff --git a/libclc/generic/lib/SOURCES b/libclc/generic/lib/SOURCES
deleted file mode 100644
index bfdec7b7cd4c96ef31a2588ebf758ac3ce37e3ea..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/SOURCES
+++ /dev/null
@@ -1,64 +0,0 @@
-atomic/atomic_impl.ll
-cl_khr_global_int32_base_atomics/atom_add.cl
-cl_khr_global_int32_base_atomics/atom_dec.cl
-cl_khr_global_int32_base_atomics/atom_inc.cl
-cl_khr_global_int32_base_atomics/atom_sub.cl
-convert.cl
-common/sign.cl
-geometric/cross.cl
-geometric/dot.cl
-geometric/length.cl
-geometric/normalize.cl
-integer/abs.cl
-integer/abs_diff.cl
-integer/add_sat.cl
-integer/add_sat_if.ll
-integer/add_sat_impl.ll
-integer/clz.cl
-integer/clz_if.ll
-integer/clz_impl.ll
-integer/hadd.cl
-integer/mad24.cl
-integer/mul24.cl
-integer/mul_hi.cl
-integer/rhadd.cl
-integer/rotate.cl
-integer/sub_sat.cl
-integer/sub_sat_if.ll
-integer/sub_sat_impl.ll
-integer/upsample.cl
-math/atan.cl
-math/atan2.cl
-math/cos.cl
-math/exp.cl
-math/exp10.cl
-math/fmax.cl
-math/fmin.cl
-math/hypot.cl
-math/mad.cl
-math/mix.cl
-math/clc_nextafter.cl
-math/nextafter.cl
-math/pown.cl
-math/sin.cl
-math/sincos.cl
-math/sincos_helpers.cl
-relational/all.cl
-relational/any.cl
-relational/isequal.cl
-relational/isgreater.cl
-relational/isgreaterequal.cl
-relational/isless.cl
-relational/islessequal.cl
-relational/isnan.cl
-relational/isnotequal.cl
-relational/signbit.cl
-shared/clamp.cl
-shared/max.cl
-shared/min.cl
-shared/vload.cl
-shared/vload_impl.ll
-shared/vstore.cl
-shared/vstore_impl.ll
-workitem/get_global_id.cl
-workitem/get_global_size.cl
diff --git a/libclc/generic/lib/atomic/atomic_impl.ll b/libclc/generic/lib/atomic/atomic_impl.ll
deleted file mode 100644
index 9df5b9f3c55b5b4b3297c49e51d5ea2823ece69d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/atomic/atomic_impl.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-define i32 @__clc_atomic_add_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
-entry:
-  %0 = atomicrmw volatile add i32 addrspace(1)* %ptr, i32 %value seq_cst
-  ret i32 %0
-}
-
-define i32 @__clc_atomic_add_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
-entry:
-  %0 = atomicrmw volatile add i32 addrspace(3)* %ptr, i32 %value seq_cst
-  ret i32 %0
-}
-
-define i32 @__clc_atomic_sub_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
-entry:
-  %0 = atomicrmw volatile sub i32 addrspace(1)* %ptr, i32 %value seq_cst
-  ret i32 %0
-}
-
-define i32 @__clc_atomic_sub_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
-entry:
-  %0 = atomicrmw volatile sub i32 addrspace(3)* %ptr, i32 %value seq_cst
-  ret i32 %0
-}
diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
deleted file mode 100644
index 9151b0ccf8d919a66a8af883c620a59b1bee01fa..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_add.cl
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <clc/clc.h>
-
-#define IMPL(TYPE) \
-_CLC_OVERLOAD _CLC_DEF TYPE atom_add(global TYPE *p, TYPE val) { \
-  return atomic_add(p, val); \
-}
-
-IMPL(int)
-IMPL(unsigned int)
diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
deleted file mode 100644
index a74158d45fc840e6b5746219b4e3bb3e53338c4d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_dec.cl
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <clc/clc.h>
-
-#define IMPL(TYPE) \
-_CLC_OVERLOAD _CLC_DEF TYPE atom_dec(global TYPE *p) { \
-  return atom_sub(p, 1); \
-}
-
-IMPL(int)
-IMPL(unsigned int)
diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
deleted file mode 100644
index 1404b5aa4477ddb1fad1b30dd1d077a490142f52..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_inc.cl
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <clc/clc.h>
-
-#define IMPL(TYPE) \
-_CLC_OVERLOAD _CLC_DEF TYPE atom_inc(global TYPE *p) { \
-  return atom_add(p, 1); \
-}
-
-IMPL(int)
-IMPL(unsigned int)
diff --git a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl b/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
deleted file mode 100644
index 7faa3cc040f0e02d336879c22e92193a841be54e..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/cl_khr_global_int32_base_atomics/atom_sub.cl
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <clc/clc.h>
-
-#define IMPL(TYPE) \
-_CLC_OVERLOAD _CLC_DEF TYPE atom_sub(global TYPE *p, TYPE val) { \
-  return atomic_sub(p, val); \
-}
-
-IMPL(int)
-IMPL(unsigned int)
diff --git a/libclc/generic/lib/clcmacro.h b/libclc/generic/lib/clcmacro.h
deleted file mode 100644
index 730073ae1f9922cfaf3d56856ae099fa0d72956c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/clcmacro.h
+++ /dev/null
@@ -1,54 +0,0 @@
-#define _CLC_UNARY_VECTORIZE(DECLSPEC, RET_TYPE, FUNCTION, ARG1_TYPE) \
-  DECLSPEC RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x) { \
-    return (RET_TYPE##2)(FUNCTION(x.x), FUNCTION(x.y)); \
-  } \
-\
-  DECLSPEC RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x) { \
-    return (RET_TYPE##3)(FUNCTION(x.x), FUNCTION(x.y), FUNCTION(x.z)); \
-  } \
-\
-  DECLSPEC RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x) { \
-    return (RET_TYPE##4)(FUNCTION(x.lo), FUNCTION(x.hi)); \
-  } \
-\
-  DECLSPEC RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x) { \
-    return (RET_TYPE##8)(FUNCTION(x.lo), FUNCTION(x.hi)); \
-  } \
-\
-  DECLSPEC RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x) { \
-    return (RET_TYPE##16)(FUNCTION(x.lo), FUNCTION(x.hi)); \
-  }
-
-#define _CLC_BINARY_VECTORIZE(DECLSPEC, RET_TYPE, FUNCTION, ARG1_TYPE, ARG2_TYPE) \
-  DECLSPEC RET_TYPE##2 FUNCTION(ARG1_TYPE##2 x, ARG2_TYPE##2 y) { \
-    return (RET_TYPE##2)(FUNCTION(x.x, y.x), FUNCTION(x.y, y.y)); \
-  } \
-\
-  DECLSPEC RET_TYPE##3 FUNCTION(ARG1_TYPE##3 x, ARG2_TYPE##3 y) { \
-    return (RET_TYPE##3)(FUNCTION(x.x, y.x), FUNCTION(x.y, y.y), \
-                         FUNCTION(x.z, y.z)); \
-  } \
-\
-  DECLSPEC RET_TYPE##4 FUNCTION(ARG1_TYPE##4 x, ARG2_TYPE##4 y) { \
-    return (RET_TYPE##4)(FUNCTION(x.lo, y.lo), FUNCTION(x.hi, y.hi)); \
-  } \
-\
-  DECLSPEC RET_TYPE##8 FUNCTION(ARG1_TYPE##8 x, ARG2_TYPE##8 y) { \
-    return (RET_TYPE##8)(FUNCTION(x.lo, y.lo), FUNCTION(x.hi, y.hi)); \
-  } \
-\
-  DECLSPEC RET_TYPE##16 FUNCTION(ARG1_TYPE##16 x, ARG2_TYPE##16 y) { \
-    return (RET_TYPE##16)(FUNCTION(x.lo, y.lo), FUNCTION(x.hi, y.hi)); \
-  }
-
-#define _CLC_DEFINE_BINARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE, ARG2_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
-  return BUILTIN(x, y); \
-} \
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, FUNCTION, ARG1_TYPE, ARG2_TYPE)
-
-#define _CLC_DEFINE_UNARY_BUILTIN(RET_TYPE, FUNCTION, BUILTIN, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x) { \
-  return BUILTIN(x); \
-} \
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, RET_TYPE, FUNCTION, ARG1_TYPE)
diff --git a/libclc/generic/lib/common/sign.cl b/libclc/generic/lib/common/sign.cl
deleted file mode 100644
index 25832e0b4f8b929e0f3be55249b391b59f439b3e..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/common/sign.cl
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-#define SIGN(TYPE, F) \
-_CLC_DEF _CLC_OVERLOAD TYPE sign(TYPE x) { \
-  if (isnan(x)) { \
-    return 0.0F;   \
-  }               \
-  if (x > 0.0F) { \
-    return 1.0F;  \
-  }               \
-  if (x < 0.0F) { \
-    return -1.0F; \
-  }               \
-  return x; /* -0.0 or +0.0 */  \
-}
-
-SIGN(float, f)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, sign, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-SIGN(double, )
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, sign, double)
-
-#endif
diff --git a/libclc/generic/lib/convert.cl b/libclc/generic/lib/convert.cl
deleted file mode 100644
index 92bfc51cadfa2017dd2b6d8976a7b3fb17db54b3..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/convert.cl
+++ /dev/null
@@ -1,36114 +0,0 @@
-/* !!!! AUTOGENERATED FILE generated by convert_type.py !!!!!
-
-   DON'T CHANGE THIS FILE. MAKE YOUR CHANGES TO convert_type.py AND RUN:
-   $ ./generate-conversion-type-cl.sh
-
-   OpenCL type conversion functions
-
-   Copyright (c) 2013 Victor Oliveira <victormatheus@gmail.com>
-   Copyright (c) 2013 Jesse Towner <jessetowner@lavabit.com>
-
-   Permission is hereby granted, free of charge, to any person obtaining a copy
-   of this software and associated documentation files (the "Software"), to deal
-   in the Software without restriction, including without limitation the rights
-   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-   copies of the Software, and to permit persons to whom the Software is
-   furnished to do so, subject to the following conditions:
-
-   The above copyright notice and this permission notice shall be included in
-   all copies or substantial portions of the Software.
-
-   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-   THE SOFTWARE.
-*/
-
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(char x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(char2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(char4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(char8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(char16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(char3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(char x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(char2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(char4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(char8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(char16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(char3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(char x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(char2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(char4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(char8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(char16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(char3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(char x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(char2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(char4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(char8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(char16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(char3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(char x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(char2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(char4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(char8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(char16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(char3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(char x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(char2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(char4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(char8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(char16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(char3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(char x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(char2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(char4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(char8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(char16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(char3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(char x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(char2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(char4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(char8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(char16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(char3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(char x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(char2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(char4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(char8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(char16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(char3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(char x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(char2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(char4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(char8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(char16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(char3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(uchar x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(uchar2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(uchar4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(uchar8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(uchar16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(uchar3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(uchar x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(uchar2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(uchar4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(uchar8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(uchar16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(uchar3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(uchar x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(uchar2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(uchar4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(uchar8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(uchar16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(uchar3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(uchar x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(uchar2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(uchar4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(uchar8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(uchar16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(uchar3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(uchar x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(uchar2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(uchar4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(uchar8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(uchar16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(uchar3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(uchar x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(uchar2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(uchar4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(uchar8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(uchar16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(uchar3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(uchar x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(uchar2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(uchar4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(uchar8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(uchar16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(uchar3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(uchar x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(uchar2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(uchar4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(uchar8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(uchar16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(uchar3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(uchar x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(uchar2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(uchar4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(uchar8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(uchar16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(uchar3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(uchar x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(uchar2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(uchar4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(uchar8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(uchar16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(uchar3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(short x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(short2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(short4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(short8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(short16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(short3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(short x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(short2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(short4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(short8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(short16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(short3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(short x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(short2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(short4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(short8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(short16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(short3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(short x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(short2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(short4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(short8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(short16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(short3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(short x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(short2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(short4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(short8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(short16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(short3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(short x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(short2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(short4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(short8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(short16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(short3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(short x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(short2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(short4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(short8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(short16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(short3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(short x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(short2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(short4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(short8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(short16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(short3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(short x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(short2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(short4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(short8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(short16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(short3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(short x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(short2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(short4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(short8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(short16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(short3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(ushort x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(ushort2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(ushort4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(ushort8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(ushort16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(ushort3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(ushort x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(ushort2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(ushort4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(ushort8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(ushort16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(ushort3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(ushort x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(ushort2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(ushort4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(ushort8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(ushort16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(ushort3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(ushort x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(ushort2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(ushort4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(ushort8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(ushort16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(ushort3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(ushort x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(ushort2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(ushort4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(ushort8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(ushort16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(ushort3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(ushort x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(ushort2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(ushort4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(ushort8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(ushort16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(ushort3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(ushort x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(ushort2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(ushort4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(ushort8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(ushort16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(ushort3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(ushort x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(ushort2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(ushort4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(ushort8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(ushort16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(ushort3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(ushort x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(ushort2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(ushort4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(ushort8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(ushort16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(ushort3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(ushort x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(ushort2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(ushort4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(ushort8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(ushort16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(ushort3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(int x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(int2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(int4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(int8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(int16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(int3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(int x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(int2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(int4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(int8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(int16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(int3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(int x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(int2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(int4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(int8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(int16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(int3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(int x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(int2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(int4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(int8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(int16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(int3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(int x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(int2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(int4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(int8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(int16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(int3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(int x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(int2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(int4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(int8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(int16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(int3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(int x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(int2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(int4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(int8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(int16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(int3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(int x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(int2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(int4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(int8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(int16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(int3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(int x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(int2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(int4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(int8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(int16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(int3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(int x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(int2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(int4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(int8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(int16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(int3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(uint x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(uint2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(uint4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(uint8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(uint16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(uint3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(uint x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(uint2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(uint4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(uint8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(uint16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(uint3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(uint x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(uint2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(uint4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(uint8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(uint16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(uint3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(uint x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(uint2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(uint4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(uint8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(uint16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(uint3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(uint x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(uint2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(uint4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(uint8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(uint16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(uint3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(uint x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(uint2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(uint4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(uint8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(uint16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(uint3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(uint x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(uint2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(uint4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(uint8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(uint16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(uint3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(uint x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(uint2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(uint4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(uint8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(uint16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(uint3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(uint x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(uint2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(uint4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(uint8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(uint16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(uint3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(uint x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(uint2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(uint4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(uint8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(uint16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(uint3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(long x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(long2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(long4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(long8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(long16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(long3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(long x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(long2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(long4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(long8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(long16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(long3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(long x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(long2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(long4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(long8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(long16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(long3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(long x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(long2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(long4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(long8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(long16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(long3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(long x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(long2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(long4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(long8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(long16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(long3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(long x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(long2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(long4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(long8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(long16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(long3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(long x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(long2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(long4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(long8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(long16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(long3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(long x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(long2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(long4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(long8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(long16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(long3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(long x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(long2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(long4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(long8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(long16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(long3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(long x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(long2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(long4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(long8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(long16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(long3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(ulong x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(ulong2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(ulong4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(ulong8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(ulong16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(ulong3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(ulong x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(ulong2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(ulong4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(ulong8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(ulong16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(ulong3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(ulong x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(ulong2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(ulong4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(ulong8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(ulong16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(ulong3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(ulong x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(ulong2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(ulong4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(ulong8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(ulong16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(ulong3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(ulong x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(ulong2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(ulong4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(ulong8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(ulong16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(ulong3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(ulong x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(ulong2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(ulong4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(ulong8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(ulong16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(ulong3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(ulong x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(ulong2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(ulong4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(ulong8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(ulong16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(ulong3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(ulong x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(ulong2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(ulong4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(ulong8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(ulong16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(ulong3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(ulong x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(ulong2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(ulong4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(ulong8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(ulong16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(ulong3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(ulong x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(ulong2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(ulong4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(ulong8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(ulong16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(ulong3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(float x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(float2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(float4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(float8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(float16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(float3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(float x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(float2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(float4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(float8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(float16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(float3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(float x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(float2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(float4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(float8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(float16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(float3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(float x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(float2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(float4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(float8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(float16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(float3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(float x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(float2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(float4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(float8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(float16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(float3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(float x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(float2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(float4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(float8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(float16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(float3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(float x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(float2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(float4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(float8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(float16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(float3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(float x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(float2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(float4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(float8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(float16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(float3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(float x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(float2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(float4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(float8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(float16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(float3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(float x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(float2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(float4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(float8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(float16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(float3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char(double x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2(double2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4(double4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8(double8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16(double16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3(double3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar(double x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2(double2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4(double4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8(double8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16(double16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3(double3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short(double x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2(double2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4(double4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8(double8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16(double16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3(double3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort(double x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2(double2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4(double4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8(double8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16(double16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3(double3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int(double x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2(double2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4(double4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8(double8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16(double16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3(double3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint(double x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2(double2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4(double4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8(double8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16(double16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3(double3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long(double x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2(double2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4(double4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8(double8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16(double16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3(double3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong(double x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2(double2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4(double4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8(double8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16(double16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3(double3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float(double x)
-{
-  return (float)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2(double2 x)
-{
-  return (float2)(convert_float(x.lo), convert_float(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4(double4 x)
-{
-  return (float4)(convert_float2(x.lo), convert_float2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8(double8 x)
-{
-  return (float8)(convert_float4(x.lo), convert_float4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16(double16 x)
-{
-  return (float16)(convert_float8(x.lo), convert_float8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3(double3 x)
-{
-  return (float3)(convert_float2(x.s01), convert_float(x.s2));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double(double x)
-{
-  return (double)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2(double2 x)
-{
-  return (double2)(convert_double(x.lo), convert_double(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4(double4 x)
-{
-  return (double4)(convert_double2(x.lo), convert_double2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8(double8 x)
-{
-  return (double8)(convert_double4(x.lo), convert_double4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16(double16 x)
-{
-  return (double16)(convert_double8(x.lo), convert_double8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3(double3 x)
-{
-  return (double3)(convert_double2(x.s01), convert_double(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(char x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(char2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(char4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(char8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(char16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(char3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(char x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(char2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(char4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(char8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(char16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(char3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(char x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(char2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(char4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(char8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(char16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(char3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(char x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(char2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(char4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(char8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(char16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(char3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(char x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(char2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(char4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(char8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(char16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(char3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(char x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(char2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(char4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(char8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(char16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(char3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(char x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(char2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(char4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(char8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(char16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(char3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(char x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(char2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(char4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(char8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(char16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(char3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(char x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(char2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(char4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(char8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(char16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(char3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(char x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(char2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(char4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(char8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(char16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(char3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(char x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(char2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(char4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(char8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(char16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(char3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(char x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(char2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(char4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(char8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(char16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(char3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(char x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(char2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(char4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(char8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(char16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(char3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(char x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(char2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(char4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(char8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(char16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(char3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(char x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(char2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(char4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(char8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(char16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(char3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(char x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(char2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(char4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(char8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(char16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(char3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(char x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(char2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(char4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(char8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(char16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(char3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(char x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(char2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(char4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(char8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(char16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(char3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(char x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(char2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(char4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(char8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(char16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(char3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(char x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(char2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(char4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(char8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(char16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(char3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(char x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(char2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(char4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(char8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(char16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(char3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(char x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(char2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(char4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(char8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(char16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(char3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(char x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(char2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(char4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(char8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(char16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(char3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(char x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(char2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(char4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(char8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(char16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(char3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(char x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(char2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(char4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(char8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(char16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(char3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(char x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(char2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(char4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(char8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(char16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(char3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(char x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(char2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(char4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(char8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(char16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(char3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(char x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(char2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(char4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(char8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(char16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(char3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(char x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(char2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(char4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(char8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(char16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(char3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(char x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(char2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(char4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(char8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(char16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(char3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(char x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(char2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(char4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(char8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(char16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(char3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(char x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(char2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(char4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(char8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(char16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(char3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(uchar x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(uchar2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(uchar4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(uchar8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(uchar16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(uchar3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(uchar x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(uchar2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(uchar4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(uchar8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(uchar16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(uchar3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(uchar x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(uchar2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(uchar4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(uchar8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(uchar16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(uchar3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(uchar x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(uchar2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(uchar4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(uchar8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(uchar16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(uchar3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(uchar x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(uchar2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(uchar4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(uchar8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(uchar16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(uchar3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(uchar x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(uchar2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(uchar4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(uchar8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(uchar16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(uchar3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(uchar x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(uchar2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(uchar4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(uchar8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(uchar16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(uchar3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(uchar x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(uchar2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(uchar4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(uchar8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(uchar16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(uchar3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(uchar x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(uchar2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(uchar4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(uchar8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(uchar16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(uchar3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(uchar x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(uchar2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(uchar4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(uchar8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(uchar16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(uchar3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(uchar x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(uchar2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(uchar4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(uchar8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(uchar16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(uchar3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(uchar x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(uchar2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(uchar4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(uchar8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(uchar16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(uchar3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(uchar x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(uchar2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(uchar4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(uchar8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(uchar16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(uchar3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(uchar x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(uchar2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(uchar4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(uchar8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(uchar16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(uchar3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(uchar x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(uchar2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(uchar4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(uchar8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(uchar16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(uchar3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(uchar x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(uchar2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(uchar4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(uchar8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(uchar16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(uchar3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(uchar x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(uchar2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(uchar4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(uchar8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(uchar16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(uchar3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(uchar x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(uchar2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(uchar4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(uchar8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(uchar16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(uchar3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(uchar x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(uchar2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(uchar4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(uchar8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(uchar16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(uchar3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(uchar x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(uchar2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(uchar4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(uchar8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(uchar16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(uchar3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(uchar x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(uchar2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(uchar4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(uchar8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(uchar16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(uchar3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(uchar x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(uchar2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(uchar4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(uchar8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(uchar16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(uchar3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(uchar x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(uchar2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(uchar4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(uchar8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(uchar16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(uchar3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(uchar x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(uchar2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(uchar4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(uchar8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(uchar16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(uchar3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(uchar x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(uchar2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(uchar4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(uchar8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(uchar16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(uchar3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(uchar x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(uchar2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(uchar4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(uchar8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(uchar16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(uchar3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(uchar x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(uchar2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(uchar4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(uchar8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(uchar16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(uchar3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(uchar x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(uchar2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(uchar4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(uchar8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(uchar16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(uchar3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(uchar x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(uchar2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(uchar4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(uchar8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(uchar16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(uchar3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(uchar x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(uchar2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(uchar4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(uchar8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(uchar16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(uchar3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(uchar x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(uchar2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(uchar4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(uchar8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(uchar16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(uchar3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(uchar x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(uchar2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(uchar4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(uchar8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(uchar16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(uchar3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(short x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(short2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(short4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(short8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(short16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(short3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(short x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(short2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(short4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(short8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(short16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(short3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(short x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(short2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(short4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(short8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(short16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(short3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(short x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(short2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(short4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(short8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(short16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(short3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(short x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(short2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(short4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(short8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(short16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(short3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(short x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(short2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(short4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(short8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(short16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(short3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(short x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(short2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(short4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(short8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(short16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(short3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(short x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(short2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(short4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(short8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(short16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(short3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(short x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(short2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(short4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(short8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(short16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(short3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(short x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(short2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(short4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(short8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(short16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(short3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(short x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(short2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(short4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(short8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(short16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(short3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(short x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(short2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(short4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(short8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(short16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(short3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(short x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(short2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(short4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(short8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(short16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(short3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(short x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(short2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(short4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(short8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(short16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(short3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(short x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(short2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(short4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(short8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(short16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(short3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(short x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(short2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(short4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(short8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(short16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(short3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(short x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(short2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(short4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(short8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(short16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(short3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(short x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(short2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(short4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(short8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(short16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(short3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(short x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(short2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(short4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(short8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(short16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(short3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(short x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(short2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(short4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(short8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(short16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(short3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(short x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(short2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(short4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(short8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(short16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(short3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(short x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(short2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(short4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(short8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(short16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(short3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(short x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(short2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(short4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(short8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(short16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(short3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(short x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(short2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(short4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(short8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(short16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(short3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(short x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(short2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(short4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(short8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(short16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(short3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(short x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(short2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(short4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(short8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(short16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(short3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(short x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(short2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(short4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(short8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(short16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(short3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(short x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(short2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(short4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(short8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(short16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(short3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(short x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(short2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(short4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(short8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(short16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(short3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(short x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(short2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(short4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(short8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(short16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(short3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(short x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(short2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(short4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(short8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(short16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(short3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(short x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(short2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(short4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(short8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(short16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(short3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(ushort x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(ushort2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(ushort4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(ushort8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(ushort16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(ushort3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(ushort x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(ushort2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(ushort4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(ushort8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(ushort16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(ushort3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(ushort x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(ushort2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(ushort4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(ushort8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(ushort16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(ushort3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(ushort x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(ushort2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(ushort4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(ushort8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(ushort16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(ushort3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(ushort x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(ushort2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(ushort4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(ushort8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(ushort16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(ushort3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(ushort x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(ushort2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(ushort4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(ushort8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(ushort16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(ushort3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(ushort x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(ushort2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(ushort4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(ushort8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(ushort16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(ushort3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(ushort x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(ushort2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(ushort4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(ushort8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(ushort16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(ushort3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(ushort x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(ushort2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(ushort4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(ushort8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(ushort16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(ushort3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(ushort x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(ushort2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(ushort4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(ushort8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(ushort16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(ushort3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(ushort x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(ushort2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(ushort4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(ushort8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(ushort16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(ushort3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(ushort x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(ushort2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(ushort4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(ushort8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(ushort16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(ushort3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(ushort x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(ushort2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(ushort4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(ushort8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(ushort16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(ushort3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(ushort x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(ushort2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(ushort4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(ushort8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(ushort16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(ushort3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(ushort x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(ushort2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(ushort4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(ushort8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(ushort16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(ushort3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(ushort x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(ushort2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(ushort4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(ushort8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(ushort16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(ushort3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(ushort x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(ushort2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(ushort4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(ushort8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(ushort16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(ushort3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(ushort x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(ushort2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(ushort4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(ushort8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(ushort16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(ushort3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(ushort x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(ushort2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(ushort4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(ushort8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(ushort16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(ushort3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(ushort x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(ushort2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(ushort4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(ushort8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(ushort16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(ushort3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(ushort x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(ushort2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(ushort4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(ushort8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(ushort16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(ushort3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(ushort x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(ushort2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(ushort4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(ushort8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(ushort16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(ushort3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(ushort x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(ushort2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(ushort4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(ushort8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(ushort16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(ushort3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(ushort x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(ushort2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(ushort4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(ushort8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(ushort16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(ushort3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(ushort x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(ushort2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(ushort4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(ushort8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(ushort16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(ushort3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(ushort x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(ushort2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(ushort4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(ushort8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(ushort16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(ushort3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(ushort x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(ushort2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(ushort4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(ushort8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(ushort16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(ushort3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(ushort x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(ushort2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(ushort4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(ushort8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(ushort16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(ushort3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(ushort x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(ushort2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(ushort4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(ushort8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(ushort16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(ushort3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(ushort x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(ushort2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(ushort4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(ushort8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(ushort16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(ushort3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(ushort x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(ushort2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(ushort4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(ushort8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(ushort16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(ushort3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(ushort x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(ushort2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(ushort4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(ushort8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(ushort16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(ushort3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(int x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(int2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(int4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(int8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(int16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(int3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(int x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(int2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(int4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(int8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(int16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(int3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(int x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(int2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(int4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(int8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(int16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(int3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(int x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(int2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(int4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(int8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(int16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(int3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(int x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(int2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(int4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(int8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(int16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(int3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(int x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(int2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(int4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(int8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(int16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(int3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(int x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(int2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(int4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(int8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(int16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(int3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(int x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(int2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(int4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(int8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(int16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(int3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(int x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(int2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(int4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(int8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(int16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(int3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(int x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(int2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(int4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(int8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(int16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(int3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(int x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(int2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(int4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(int8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(int16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(int3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(int x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(int2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(int4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(int8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(int16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(int3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(int x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(int2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(int4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(int8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(int16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(int3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(int x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(int2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(int4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(int8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(int16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(int3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(int x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(int2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(int4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(int8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(int16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(int3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(int x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(int2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(int4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(int8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(int16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(int3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(int x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(int2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(int4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(int8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(int16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(int3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(int x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(int2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(int4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(int8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(int16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(int3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(int x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(int2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(int4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(int8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(int16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(int3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(int x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(int2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(int4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(int8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(int16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(int3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(int x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(int2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(int4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(int8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(int16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(int3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(int x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(int2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(int4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(int8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(int16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(int3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(int x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(int2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(int4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(int8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(int16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(int3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(int x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(int2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(int4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(int8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(int16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(int3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(int x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(int2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(int4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(int8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(int16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(int3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(int x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(int2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(int4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(int8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(int16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(int3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(int x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(int2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(int4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(int8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(int16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(int3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(int x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(int2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(int4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(int8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(int16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(int3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(int x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(int2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(int4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(int8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(int16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(int3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(int x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(int2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(int4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(int8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(int16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(int3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(int x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(int2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(int4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(int8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(int16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(int3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(int x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(int2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(int4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(int8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(int16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(int3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(uint x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(uint2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(uint4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(uint8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(uint16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(uint3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(uint x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(uint2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(uint4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(uint8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(uint16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(uint3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(uint x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(uint2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(uint4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(uint8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(uint16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(uint3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(uint x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(uint2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(uint4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(uint8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(uint16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(uint3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(uint x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(uint2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(uint4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(uint8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(uint16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(uint3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(uint x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(uint2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(uint4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(uint8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(uint16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(uint3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(uint x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(uint2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(uint4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(uint8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(uint16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(uint3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(uint x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(uint2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(uint4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(uint8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(uint16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(uint3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(uint x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(uint2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(uint4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(uint8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(uint16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(uint3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(uint x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(uint2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(uint4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(uint8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(uint16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(uint3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(uint x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(uint2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(uint4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(uint8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(uint16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(uint3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(uint x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(uint2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(uint4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(uint8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(uint16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(uint3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(uint x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(uint2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(uint4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(uint8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(uint16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(uint3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(uint x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(uint2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(uint4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(uint8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(uint16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(uint3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(uint x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(uint2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(uint4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(uint8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(uint16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(uint3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(uint x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(uint2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(uint4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(uint8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(uint16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(uint3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(uint x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(uint2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(uint4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(uint8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(uint16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(uint3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(uint x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(uint2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(uint4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(uint8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(uint16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(uint3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(uint x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(uint2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(uint4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(uint8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(uint16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(uint3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(uint x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(uint2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(uint4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(uint8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(uint16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(uint3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(uint x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(uint2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(uint4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(uint8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(uint16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(uint3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(uint x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(uint2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(uint4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(uint8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(uint16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(uint3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(uint x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(uint2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(uint4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(uint8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(uint16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(uint3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(uint x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(uint2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(uint4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(uint8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(uint16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(uint3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(uint x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(uint2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(uint4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(uint8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(uint16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(uint3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(uint x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(uint2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(uint4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(uint8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(uint16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(uint3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(uint x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(uint2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(uint4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(uint8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(uint16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(uint3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(uint x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(uint2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(uint4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(uint8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(uint16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(uint3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(uint x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(uint2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(uint4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(uint8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(uint16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(uint3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(uint x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(uint2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(uint4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(uint8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(uint16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(uint3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(uint x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(uint2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(uint4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(uint8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(uint16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(uint3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(uint x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(uint2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(uint4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(uint8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(uint16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(uint3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(long x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(long2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(long4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(long8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(long16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(long3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(long x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(long2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(long4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(long8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(long16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(long3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(long x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(long2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(long4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(long8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(long16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(long3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(long x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(long2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(long4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(long8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(long16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(long3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(long x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(long2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(long4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(long8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(long16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(long3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(long x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(long2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(long4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(long8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(long16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(long3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(long x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(long2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(long4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(long8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(long16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(long3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(long x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(long2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(long4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(long8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(long16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(long3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(long x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(long2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(long4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(long8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(long16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(long3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(long x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(long2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(long4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(long8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(long16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(long3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(long x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(long2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(long4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(long8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(long16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(long3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(long x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(long2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(long4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(long8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(long16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(long3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(long x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(long2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(long4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(long8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(long16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(long3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(long x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(long2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(long4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(long8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(long16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(long3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(long x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(long2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(long4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(long8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(long16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(long3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(long x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(long2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(long4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(long8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(long16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(long3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(long x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(long2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(long4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(long8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(long16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(long3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(long x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(long2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(long4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(long8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(long16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(long3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(long x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(long2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(long4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(long8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(long16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(long3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(long x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(long2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(long4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(long8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(long16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(long3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(long x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(long2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(long4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(long8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(long16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(long3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(long x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(long2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(long4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(long8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(long16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(long3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(long x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(long2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(long4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(long8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(long16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(long3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(long x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(long2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(long4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(long8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(long16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(long3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(long x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(long2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(long4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(long8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(long16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(long3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(long x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(long2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(long4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(long8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(long16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(long3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(long x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(long2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(long4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(long8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(long16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(long3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(long x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(long2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(long4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(long8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(long16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(long3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(long x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(long2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(long4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(long8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(long16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(long3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(long x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(long2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(long4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(long8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(long16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(long3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(long x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(long2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(long4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(long8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(long16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(long3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(long x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(long2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(long4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(long8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(long16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(long3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(ulong x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(ulong2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(ulong4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(ulong8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(ulong16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(ulong3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(ulong x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(ulong2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(ulong4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(ulong8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(ulong16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(ulong3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(ulong x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(ulong2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(ulong4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(ulong8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(ulong16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(ulong3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(ulong x)
-{
-  return (char)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(ulong2 x)
-{
-  return (char2)(convert_char(x.lo), convert_char(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(ulong4 x)
-{
-  return (char4)(convert_char2(x.lo), convert_char2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(ulong8 x)
-{
-  return (char8)(convert_char4(x.lo), convert_char4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(ulong16 x)
-{
-  return (char16)(convert_char8(x.lo), convert_char8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(ulong3 x)
-{
-  return (char3)(convert_char2(x.s01), convert_char(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(ulong x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(ulong2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(ulong4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(ulong8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(ulong16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(ulong3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(ulong x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(ulong2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(ulong4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(ulong8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(ulong16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(ulong3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(ulong x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(ulong2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(ulong4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(ulong8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(ulong16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(ulong3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(ulong x)
-{
-  return (uchar)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(ulong2 x)
-{
-  return (uchar2)(convert_uchar(x.lo), convert_uchar(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(ulong4 x)
-{
-  return (uchar4)(convert_uchar2(x.lo), convert_uchar2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(ulong8 x)
-{
-  return (uchar8)(convert_uchar4(x.lo), convert_uchar4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(ulong16 x)
-{
-  return (uchar16)(convert_uchar8(x.lo), convert_uchar8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(ulong3 x)
-{
-  return (uchar3)(convert_uchar2(x.s01), convert_uchar(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(ulong x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(ulong2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(ulong4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(ulong8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(ulong16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(ulong3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(ulong x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(ulong2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(ulong4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(ulong8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(ulong16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(ulong3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(ulong x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(ulong2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(ulong4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(ulong8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(ulong16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(ulong3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(ulong x)
-{
-  return (short)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(ulong2 x)
-{
-  return (short2)(convert_short(x.lo), convert_short(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(ulong4 x)
-{
-  return (short4)(convert_short2(x.lo), convert_short2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(ulong8 x)
-{
-  return (short8)(convert_short4(x.lo), convert_short4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(ulong16 x)
-{
-  return (short16)(convert_short8(x.lo), convert_short8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(ulong3 x)
-{
-  return (short3)(convert_short2(x.s01), convert_short(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(ulong x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(ulong2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(ulong4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(ulong8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(ulong16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(ulong3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(ulong x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(ulong2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(ulong4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(ulong8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(ulong16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(ulong3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(ulong x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(ulong2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(ulong4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(ulong8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(ulong16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(ulong3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(ulong x)
-{
-  return (ushort)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(ulong2 x)
-{
-  return (ushort2)(convert_ushort(x.lo), convert_ushort(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(ulong4 x)
-{
-  return (ushort4)(convert_ushort2(x.lo), convert_ushort2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(ulong8 x)
-{
-  return (ushort8)(convert_ushort4(x.lo), convert_ushort4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(ulong16 x)
-{
-  return (ushort16)(convert_ushort8(x.lo), convert_ushort8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(ulong3 x)
-{
-  return (ushort3)(convert_ushort2(x.s01), convert_ushort(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(ulong x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(ulong2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(ulong4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(ulong8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(ulong16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(ulong3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(ulong x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(ulong2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(ulong4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(ulong8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(ulong16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(ulong3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(ulong x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(ulong2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(ulong4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(ulong8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(ulong16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(ulong3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(ulong x)
-{
-  return (int)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(ulong2 x)
-{
-  return (int2)(convert_int(x.lo), convert_int(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(ulong4 x)
-{
-  return (int4)(convert_int2(x.lo), convert_int2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(ulong8 x)
-{
-  return (int8)(convert_int4(x.lo), convert_int4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(ulong16 x)
-{
-  return (int16)(convert_int8(x.lo), convert_int8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(ulong3 x)
-{
-  return (int3)(convert_int2(x.s01), convert_int(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(ulong x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(ulong2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(ulong4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(ulong8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(ulong16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(ulong3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(ulong x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(ulong2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(ulong4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(ulong8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(ulong16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(ulong3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(ulong x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(ulong2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(ulong4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(ulong8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(ulong16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(ulong3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(ulong x)
-{
-  return (uint)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(ulong2 x)
-{
-  return (uint2)(convert_uint(x.lo), convert_uint(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(ulong4 x)
-{
-  return (uint4)(convert_uint2(x.lo), convert_uint2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(ulong8 x)
-{
-  return (uint8)(convert_uint4(x.lo), convert_uint4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(ulong16 x)
-{
-  return (uint16)(convert_uint8(x.lo), convert_uint8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(ulong3 x)
-{
-  return (uint3)(convert_uint2(x.s01), convert_uint(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(ulong x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(ulong2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(ulong4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(ulong8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(ulong16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(ulong3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(ulong x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(ulong2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(ulong4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(ulong8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(ulong16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(ulong3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(ulong x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(ulong2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(ulong4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(ulong8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(ulong16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(ulong3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(ulong x)
-{
-  return (long)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(ulong2 x)
-{
-  return (long2)(convert_long(x.lo), convert_long(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(ulong4 x)
-{
-  return (long4)(convert_long2(x.lo), convert_long2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(ulong8 x)
-{
-  return (long8)(convert_long4(x.lo), convert_long4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(ulong16 x)
-{
-  return (long16)(convert_long8(x.lo), convert_long8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(ulong3 x)
-{
-  return (long3)(convert_long2(x.s01), convert_long(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(ulong x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(ulong2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(ulong4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(ulong8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(ulong16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(ulong3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(ulong x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(ulong2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(ulong4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(ulong8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(ulong16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(ulong3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(ulong x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(ulong2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(ulong4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(ulong8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(ulong16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(ulong3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(ulong x)
-{
-  return (ulong)x;
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(ulong2 x)
-{
-  return (ulong2)(convert_ulong(x.lo), convert_ulong(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(ulong4 x)
-{
-  return (ulong4)(convert_ulong2(x.lo), convert_ulong2(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(ulong8 x)
-{
-  return (ulong8)(convert_ulong4(x.lo), convert_ulong4(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(ulong16 x)
-{
-  return (ulong16)(convert_ulong8(x.lo), convert_ulong8(x.hi));
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(ulong3 x)
-{
-  return (ulong3)(convert_ulong2(x.s01), convert_ulong(x.s2));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(char x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(char2 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(char3 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(char4 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(char8 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(char16 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(char x)
-{
-  x = max(x, (char)0);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(char2 x)
-{
-  x = max(x, (char)0);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(char3 x)
-{
-  x = max(x, (char)0);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(char4 x)
-{
-  x = max(x, (char)0);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(char8 x)
-{
-  x = max(x, (char)0);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(char16 x)
-{
-  x = max(x, (char)0);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(char x)
-{
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(char2 x)
-{
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(char3 x)
-{
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(char4 x)
-{
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(char8 x)
-{
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(char16 x)
-{
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(char x)
-{
-  x = max(x, (char)0);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(char2 x)
-{
-  x = max(x, (char)0);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(char3 x)
-{
-  x = max(x, (char)0);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(char4 x)
-{
-  x = max(x, (char)0);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(char8 x)
-{
-  x = max(x, (char)0);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(char16 x)
-{
-  x = max(x, (char)0);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(char x)
-{
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(char2 x)
-{
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(char3 x)
-{
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(char4 x)
-{
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(char8 x)
-{
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(char16 x)
-{
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(char x)
-{
-  x = max(x, (char)0);
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(char2 x)
-{
-  x = max(x, (char)0);
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(char3 x)
-{
-  x = max(x, (char)0);
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(char4 x)
-{
-  x = max(x, (char)0);
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(char8 x)
-{
-  x = max(x, (char)0);
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(char16 x)
-{
-  x = max(x, (char)0);
-  return convert_uint16(x);
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(char x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(char2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(char3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(char4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(char8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(char16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(char x)
-{
-  x = max(x, (char)0);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(char2 x)
-{
-  x = max(x, (char)0);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(char3 x)
-{
-  x = max(x, (char)0);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(char4 x)
-{
-  x = max(x, (char)0);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(char8 x)
-{
-  x = max(x, (char)0);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(char16 x)
-{
-  x = max(x, (char)0);
-  return convert_ulong16(x);
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(uchar x)
-{
-  x = min(x, (uchar)CHAR_MAX);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(uchar2 x)
-{
-  x = min(x, (uchar)CHAR_MAX);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(uchar3 x)
-{
-  x = min(x, (uchar)CHAR_MAX);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(uchar4 x)
-{
-  x = min(x, (uchar)CHAR_MAX);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(uchar8 x)
-{
-  x = min(x, (uchar)CHAR_MAX);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(uchar16 x)
-{
-  x = min(x, (uchar)CHAR_MAX);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(uchar x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(uchar2 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(uchar3 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(uchar4 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(uchar8 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(uchar16 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(uchar x)
-{
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(uchar2 x)
-{
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(uchar3 x)
-{
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(uchar4 x)
-{
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(uchar8 x)
-{
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(uchar16 x)
-{
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(uchar x)
-{
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(uchar2 x)
-{
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(uchar3 x)
-{
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(uchar4 x)
-{
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(uchar8 x)
-{
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(uchar16 x)
-{
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(uchar x)
-{
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(uchar2 x)
-{
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(uchar3 x)
-{
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(uchar4 x)
-{
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(uchar8 x)
-{
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(uchar16 x)
-{
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(uchar x)
-{
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(uchar2 x)
-{
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(uchar3 x)
-{
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(uchar4 x)
-{
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(uchar8 x)
-{
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(uchar16 x)
-{
-  return convert_uint16(x);
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(uchar x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(uchar2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(uchar3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(uchar4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(uchar8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(uchar16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(uchar x)
-{
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(uchar2 x)
-{
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(uchar3 x)
-{
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(uchar4 x)
-{
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(uchar8 x)
-{
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(uchar16 x)
-{
-  return convert_ulong16(x);
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(short x)
-{
-  x = clamp(x, (short)CHAR_MIN, (short)CHAR_MAX);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(short2 x)
-{
-  x = clamp(x, (short)CHAR_MIN, (short)CHAR_MAX);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(short3 x)
-{
-  x = clamp(x, (short)CHAR_MIN, (short)CHAR_MAX);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(short4 x)
-{
-  x = clamp(x, (short)CHAR_MIN, (short)CHAR_MAX);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(short8 x)
-{
-  x = clamp(x, (short)CHAR_MIN, (short)CHAR_MAX);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(short16 x)
-{
-  x = clamp(x, (short)CHAR_MIN, (short)CHAR_MAX);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(short x)
-{
-  x = clamp(x, (short)0, (short)UCHAR_MAX);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(short2 x)
-{
-  x = clamp(x, (short)0, (short)UCHAR_MAX);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(short3 x)
-{
-  x = clamp(x, (short)0, (short)UCHAR_MAX);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(short4 x)
-{
-  x = clamp(x, (short)0, (short)UCHAR_MAX);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(short8 x)
-{
-  x = clamp(x, (short)0, (short)UCHAR_MAX);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(short16 x)
-{
-  x = clamp(x, (short)0, (short)UCHAR_MAX);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(short x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(short2 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(short3 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(short4 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(short8 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(short16 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(short x)
-{
-  x = max(x, (short)0);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(short2 x)
-{
-  x = max(x, (short)0);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(short3 x)
-{
-  x = max(x, (short)0);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(short4 x)
-{
-  x = max(x, (short)0);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(short8 x)
-{
-  x = max(x, (short)0);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(short16 x)
-{
-  x = max(x, (short)0);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(short x)
-{
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(short2 x)
-{
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(short3 x)
-{
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(short4 x)
-{
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(short8 x)
-{
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(short16 x)
-{
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(short x)
-{
-  x = max(x, (short)0);
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(short2 x)
-{
-  x = max(x, (short)0);
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(short3 x)
-{
-  x = max(x, (short)0);
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(short4 x)
-{
-  x = max(x, (short)0);
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(short8 x)
-{
-  x = max(x, (short)0);
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(short16 x)
-{
-  x = max(x, (short)0);
-  return convert_uint16(x);
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(short x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(short2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(short3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(short4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(short8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(short16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(short x)
-{
-  x = max(x, (short)0);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(short2 x)
-{
-  x = max(x, (short)0);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(short3 x)
-{
-  x = max(x, (short)0);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(short4 x)
-{
-  x = max(x, (short)0);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(short8 x)
-{
-  x = max(x, (short)0);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(short16 x)
-{
-  x = max(x, (short)0);
-  return convert_ulong16(x);
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(ushort x)
-{
-  x = min(x, (ushort)CHAR_MAX);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(ushort2 x)
-{
-  x = min(x, (ushort)CHAR_MAX);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(ushort3 x)
-{
-  x = min(x, (ushort)CHAR_MAX);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(ushort4 x)
-{
-  x = min(x, (ushort)CHAR_MAX);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(ushort8 x)
-{
-  x = min(x, (ushort)CHAR_MAX);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(ushort16 x)
-{
-  x = min(x, (ushort)CHAR_MAX);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(ushort x)
-{
-  x = min(x, (ushort)UCHAR_MAX);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(ushort2 x)
-{
-  x = min(x, (ushort)UCHAR_MAX);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(ushort3 x)
-{
-  x = min(x, (ushort)UCHAR_MAX);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(ushort4 x)
-{
-  x = min(x, (ushort)UCHAR_MAX);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(ushort8 x)
-{
-  x = min(x, (ushort)UCHAR_MAX);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(ushort16 x)
-{
-  x = min(x, (ushort)UCHAR_MAX);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(ushort x)
-{
-  x = min(x, (ushort)SHRT_MAX);
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(ushort2 x)
-{
-  x = min(x, (ushort)SHRT_MAX);
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(ushort3 x)
-{
-  x = min(x, (ushort)SHRT_MAX);
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(ushort4 x)
-{
-  x = min(x, (ushort)SHRT_MAX);
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(ushort8 x)
-{
-  x = min(x, (ushort)SHRT_MAX);
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(ushort16 x)
-{
-  x = min(x, (ushort)SHRT_MAX);
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(ushort x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(ushort2 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(ushort3 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(ushort4 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(ushort8 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(ushort16 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(ushort x)
-{
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(ushort2 x)
-{
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(ushort3 x)
-{
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(ushort4 x)
-{
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(ushort8 x)
-{
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(ushort16 x)
-{
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(ushort x)
-{
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(ushort2 x)
-{
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(ushort3 x)
-{
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(ushort4 x)
-{
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(ushort8 x)
-{
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(ushort16 x)
-{
-  return convert_uint16(x);
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(ushort x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(ushort2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(ushort3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(ushort4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(ushort8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(ushort16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(ushort x)
-{
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(ushort2 x)
-{
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(ushort3 x)
-{
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(ushort4 x)
-{
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(ushort8 x)
-{
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(ushort16 x)
-{
-  return convert_ulong16(x);
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(int x)
-{
-  x = clamp(x, (int)CHAR_MIN, (int)CHAR_MAX);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(int2 x)
-{
-  x = clamp(x, (int)CHAR_MIN, (int)CHAR_MAX);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(int3 x)
-{
-  x = clamp(x, (int)CHAR_MIN, (int)CHAR_MAX);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(int4 x)
-{
-  x = clamp(x, (int)CHAR_MIN, (int)CHAR_MAX);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(int8 x)
-{
-  x = clamp(x, (int)CHAR_MIN, (int)CHAR_MAX);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(int16 x)
-{
-  x = clamp(x, (int)CHAR_MIN, (int)CHAR_MAX);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(int x)
-{
-  x = clamp(x, (int)0, (int)UCHAR_MAX);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(int2 x)
-{
-  x = clamp(x, (int)0, (int)UCHAR_MAX);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(int3 x)
-{
-  x = clamp(x, (int)0, (int)UCHAR_MAX);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(int4 x)
-{
-  x = clamp(x, (int)0, (int)UCHAR_MAX);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(int8 x)
-{
-  x = clamp(x, (int)0, (int)UCHAR_MAX);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(int16 x)
-{
-  x = clamp(x, (int)0, (int)UCHAR_MAX);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(int x)
-{
-  x = clamp(x, (int)SHRT_MIN, (int)SHRT_MAX);
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(int2 x)
-{
-  x = clamp(x, (int)SHRT_MIN, (int)SHRT_MAX);
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(int3 x)
-{
-  x = clamp(x, (int)SHRT_MIN, (int)SHRT_MAX);
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(int4 x)
-{
-  x = clamp(x, (int)SHRT_MIN, (int)SHRT_MAX);
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(int8 x)
-{
-  x = clamp(x, (int)SHRT_MIN, (int)SHRT_MAX);
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(int16 x)
-{
-  x = clamp(x, (int)SHRT_MIN, (int)SHRT_MAX);
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(int x)
-{
-  x = clamp(x, (int)0, (int)USHRT_MAX);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(int2 x)
-{
-  x = clamp(x, (int)0, (int)USHRT_MAX);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(int3 x)
-{
-  x = clamp(x, (int)0, (int)USHRT_MAX);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(int4 x)
-{
-  x = clamp(x, (int)0, (int)USHRT_MAX);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(int8 x)
-{
-  x = clamp(x, (int)0, (int)USHRT_MAX);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(int16 x)
-{
-  x = clamp(x, (int)0, (int)USHRT_MAX);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(int x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(int2 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(int3 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(int4 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(int8 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(int16 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(int x)
-{
-  x = max(x, (int)0);
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(int2 x)
-{
-  x = max(x, (int)0);
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(int3 x)
-{
-  x = max(x, (int)0);
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(int4 x)
-{
-  x = max(x, (int)0);
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(int8 x)
-{
-  x = max(x, (int)0);
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(int16 x)
-{
-  x = max(x, (int)0);
-  return convert_uint16(x);
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(int x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(int2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(int3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(int4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(int8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(int16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(int x)
-{
-  x = max(x, (int)0);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(int2 x)
-{
-  x = max(x, (int)0);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(int3 x)
-{
-  x = max(x, (int)0);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(int4 x)
-{
-  x = max(x, (int)0);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(int8 x)
-{
-  x = max(x, (int)0);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(int16 x)
-{
-  x = max(x, (int)0);
-  return convert_ulong16(x);
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(uint x)
-{
-  x = min(x, (uint)CHAR_MAX);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(uint2 x)
-{
-  x = min(x, (uint)CHAR_MAX);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(uint3 x)
-{
-  x = min(x, (uint)CHAR_MAX);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(uint4 x)
-{
-  x = min(x, (uint)CHAR_MAX);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(uint8 x)
-{
-  x = min(x, (uint)CHAR_MAX);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(uint16 x)
-{
-  x = min(x, (uint)CHAR_MAX);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(uint x)
-{
-  x = min(x, (uint)UCHAR_MAX);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(uint2 x)
-{
-  x = min(x, (uint)UCHAR_MAX);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(uint3 x)
-{
-  x = min(x, (uint)UCHAR_MAX);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(uint4 x)
-{
-  x = min(x, (uint)UCHAR_MAX);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(uint8 x)
-{
-  x = min(x, (uint)UCHAR_MAX);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(uint16 x)
-{
-  x = min(x, (uint)UCHAR_MAX);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(uint x)
-{
-  x = min(x, (uint)SHRT_MAX);
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(uint2 x)
-{
-  x = min(x, (uint)SHRT_MAX);
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(uint3 x)
-{
-  x = min(x, (uint)SHRT_MAX);
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(uint4 x)
-{
-  x = min(x, (uint)SHRT_MAX);
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(uint8 x)
-{
-  x = min(x, (uint)SHRT_MAX);
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(uint16 x)
-{
-  x = min(x, (uint)SHRT_MAX);
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(uint x)
-{
-  x = min(x, (uint)USHRT_MAX);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(uint2 x)
-{
-  x = min(x, (uint)USHRT_MAX);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(uint3 x)
-{
-  x = min(x, (uint)USHRT_MAX);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(uint4 x)
-{
-  x = min(x, (uint)USHRT_MAX);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(uint8 x)
-{
-  x = min(x, (uint)USHRT_MAX);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(uint16 x)
-{
-  x = min(x, (uint)USHRT_MAX);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(uint x)
-{
-  x = min(x, (uint)INT_MAX);
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(uint2 x)
-{
-  x = min(x, (uint)INT_MAX);
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(uint3 x)
-{
-  x = min(x, (uint)INT_MAX);
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(uint4 x)
-{
-  x = min(x, (uint)INT_MAX);
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(uint8 x)
-{
-  x = min(x, (uint)INT_MAX);
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(uint16 x)
-{
-  x = min(x, (uint)INT_MAX);
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(uint x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(uint2 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(uint3 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(uint4 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(uint8 x)
-{
-  return x;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(uint16 x)
-{
-  return x;
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(uint x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(uint2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(uint3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(uint4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(uint8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(uint16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(uint x)
-{
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(uint2 x)
-{
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(uint3 x)
-{
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(uint4 x)
-{
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(uint8 x)
-{
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(uint16 x)
-{
-  return convert_ulong16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(long x)
-{
-  x = clamp(x, (long)CHAR_MIN, (long)CHAR_MAX);
-  return convert_char(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(long2 x)
-{
-  x = clamp(x, (long)CHAR_MIN, (long)CHAR_MAX);
-  return convert_char2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(long3 x)
-{
-  x = clamp(x, (long)CHAR_MIN, (long)CHAR_MAX);
-  return convert_char3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(long4 x)
-{
-  x = clamp(x, (long)CHAR_MIN, (long)CHAR_MAX);
-  return convert_char4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(long8 x)
-{
-  x = clamp(x, (long)CHAR_MIN, (long)CHAR_MAX);
-  return convert_char8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(long16 x)
-{
-  x = clamp(x, (long)CHAR_MIN, (long)CHAR_MAX);
-  return convert_char16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(long x)
-{
-  x = clamp(x, (long)0, (long)UCHAR_MAX);
-  return convert_uchar(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(long2 x)
-{
-  x = clamp(x, (long)0, (long)UCHAR_MAX);
-  return convert_uchar2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(long3 x)
-{
-  x = clamp(x, (long)0, (long)UCHAR_MAX);
-  return convert_uchar3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(long4 x)
-{
-  x = clamp(x, (long)0, (long)UCHAR_MAX);
-  return convert_uchar4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(long8 x)
-{
-  x = clamp(x, (long)0, (long)UCHAR_MAX);
-  return convert_uchar8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(long16 x)
-{
-  x = clamp(x, (long)0, (long)UCHAR_MAX);
-  return convert_uchar16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(long x)
-{
-  x = clamp(x, (long)SHRT_MIN, (long)SHRT_MAX);
-  return convert_short(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(long2 x)
-{
-  x = clamp(x, (long)SHRT_MIN, (long)SHRT_MAX);
-  return convert_short2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(long3 x)
-{
-  x = clamp(x, (long)SHRT_MIN, (long)SHRT_MAX);
-  return convert_short3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(long4 x)
-{
-  x = clamp(x, (long)SHRT_MIN, (long)SHRT_MAX);
-  return convert_short4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(long8 x)
-{
-  x = clamp(x, (long)SHRT_MIN, (long)SHRT_MAX);
-  return convert_short8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(long16 x)
-{
-  x = clamp(x, (long)SHRT_MIN, (long)SHRT_MAX);
-  return convert_short16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(long x)
-{
-  x = clamp(x, (long)0, (long)USHRT_MAX);
-  return convert_ushort(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(long2 x)
-{
-  x = clamp(x, (long)0, (long)USHRT_MAX);
-  return convert_ushort2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(long3 x)
-{
-  x = clamp(x, (long)0, (long)USHRT_MAX);
-  return convert_ushort3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(long4 x)
-{
-  x = clamp(x, (long)0, (long)USHRT_MAX);
-  return convert_ushort4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(long8 x)
-{
-  x = clamp(x, (long)0, (long)USHRT_MAX);
-  return convert_ushort8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(long16 x)
-{
-  x = clamp(x, (long)0, (long)USHRT_MAX);
-  return convert_ushort16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(long x)
-{
-  x = clamp(x, (long)INT_MIN, (long)INT_MAX);
-  return convert_int(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(long2 x)
-{
-  x = clamp(x, (long)INT_MIN, (long)INT_MAX);
-  return convert_int2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(long3 x)
-{
-  x = clamp(x, (long)INT_MIN, (long)INT_MAX);
-  return convert_int3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(long4 x)
-{
-  x = clamp(x, (long)INT_MIN, (long)INT_MAX);
-  return convert_int4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(long8 x)
-{
-  x = clamp(x, (long)INT_MIN, (long)INT_MAX);
-  return convert_int8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(long16 x)
-{
-  x = clamp(x, (long)INT_MIN, (long)INT_MAX);
-  return convert_int16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(long x)
-{
-  x = clamp(x, (long)0, (long)UINT_MAX);
-  return convert_uint(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(long2 x)
-{
-  x = clamp(x, (long)0, (long)UINT_MAX);
-  return convert_uint2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(long3 x)
-{
-  x = clamp(x, (long)0, (long)UINT_MAX);
-  return convert_uint3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(long4 x)
-{
-  x = clamp(x, (long)0, (long)UINT_MAX);
-  return convert_uint4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(long8 x)
-{
-  x = clamp(x, (long)0, (long)UINT_MAX);
-  return convert_uint8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(long16 x)
-{
-  x = clamp(x, (long)0, (long)UINT_MAX);
-  return convert_uint16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(long x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(long2 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(long3 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(long4 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(long8 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(long16 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(long x)
-{
-  x = max(x, (long)0);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(long2 x)
-{
-  x = max(x, (long)0);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(long3 x)
-{
-  x = max(x, (long)0);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(long4 x)
-{
-  x = max(x, (long)0);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(long8 x)
-{
-  x = max(x, (long)0);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(long16 x)
-{
-  x = max(x, (long)0);
-  return convert_ulong16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(ulong x)
-{
-  x = min(x, (ulong)CHAR_MAX);
-  return convert_char(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(ulong2 x)
-{
-  x = min(x, (ulong)CHAR_MAX);
-  return convert_char2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(ulong3 x)
-{
-  x = min(x, (ulong)CHAR_MAX);
-  return convert_char3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(ulong4 x)
-{
-  x = min(x, (ulong)CHAR_MAX);
-  return convert_char4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(ulong8 x)
-{
-  x = min(x, (ulong)CHAR_MAX);
-  return convert_char8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(ulong16 x)
-{
-  x = min(x, (ulong)CHAR_MAX);
-  return convert_char16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(ulong x)
-{
-  x = min(x, (ulong)UCHAR_MAX);
-  return convert_uchar(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(ulong2 x)
-{
-  x = min(x, (ulong)UCHAR_MAX);
-  return convert_uchar2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(ulong3 x)
-{
-  x = min(x, (ulong)UCHAR_MAX);
-  return convert_uchar3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(ulong4 x)
-{
-  x = min(x, (ulong)UCHAR_MAX);
-  return convert_uchar4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(ulong8 x)
-{
-  x = min(x, (ulong)UCHAR_MAX);
-  return convert_uchar8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(ulong16 x)
-{
-  x = min(x, (ulong)UCHAR_MAX);
-  return convert_uchar16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(ulong x)
-{
-  x = min(x, (ulong)SHRT_MAX);
-  return convert_short(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(ulong2 x)
-{
-  x = min(x, (ulong)SHRT_MAX);
-  return convert_short2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(ulong3 x)
-{
-  x = min(x, (ulong)SHRT_MAX);
-  return convert_short3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(ulong4 x)
-{
-  x = min(x, (ulong)SHRT_MAX);
-  return convert_short4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(ulong8 x)
-{
-  x = min(x, (ulong)SHRT_MAX);
-  return convert_short8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(ulong16 x)
-{
-  x = min(x, (ulong)SHRT_MAX);
-  return convert_short16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(ulong x)
-{
-  x = min(x, (ulong)USHRT_MAX);
-  return convert_ushort(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(ulong2 x)
-{
-  x = min(x, (ulong)USHRT_MAX);
-  return convert_ushort2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(ulong3 x)
-{
-  x = min(x, (ulong)USHRT_MAX);
-  return convert_ushort3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(ulong4 x)
-{
-  x = min(x, (ulong)USHRT_MAX);
-  return convert_ushort4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(ulong8 x)
-{
-  x = min(x, (ulong)USHRT_MAX);
-  return convert_ushort8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(ulong16 x)
-{
-  x = min(x, (ulong)USHRT_MAX);
-  return convert_ushort16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(ulong x)
-{
-  x = min(x, (ulong)INT_MAX);
-  return convert_int(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(ulong2 x)
-{
-  x = min(x, (ulong)INT_MAX);
-  return convert_int2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(ulong3 x)
-{
-  x = min(x, (ulong)INT_MAX);
-  return convert_int3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(ulong4 x)
-{
-  x = min(x, (ulong)INT_MAX);
-  return convert_int4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(ulong8 x)
-{
-  x = min(x, (ulong)INT_MAX);
-  return convert_int8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(ulong16 x)
-{
-  x = min(x, (ulong)INT_MAX);
-  return convert_int16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(ulong x)
-{
-  x = min(x, (ulong)UINT_MAX);
-  return convert_uint(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(ulong2 x)
-{
-  x = min(x, (ulong)UINT_MAX);
-  return convert_uint2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(ulong3 x)
-{
-  x = min(x, (ulong)UINT_MAX);
-  return convert_uint3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(ulong4 x)
-{
-  x = min(x, (ulong)UINT_MAX);
-  return convert_uint4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(ulong8 x)
-{
-  x = min(x, (ulong)UINT_MAX);
-  return convert_uint8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(ulong16 x)
-{
-  x = min(x, (ulong)UINT_MAX);
-  return convert_uint16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(ulong x)
-{
-  x = min(x, (ulong)LONG_MAX);
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(ulong2 x)
-{
-  x = min(x, (ulong)LONG_MAX);
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(ulong3 x)
-{
-  x = min(x, (ulong)LONG_MAX);
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(ulong4 x)
-{
-  x = min(x, (ulong)LONG_MAX);
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(ulong8 x)
-{
-  x = min(x, (ulong)LONG_MAX);
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(ulong16 x)
-{
-  x = min(x, (ulong)LONG_MAX);
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(ulong x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(ulong2 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(ulong3 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(ulong4 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(ulong8 x)
-{
-  return x;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(ulong16 x)
-{
-  return x;
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(float x)
-{
-  char y = convert_char(x);
-  y = select(y, (char)CHAR_MIN, convert_char(x < (float)CHAR_MIN));
-  y = select(y, (char)CHAR_MAX, convert_char(x > (float)CHAR_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(float2 x)
-{
-  char2 y = convert_char2(x);
-  y = select(y, (char2)CHAR_MIN, convert_char2(x < (float2)CHAR_MIN));
-  y = select(y, (char2)CHAR_MAX, convert_char2(x > (float2)CHAR_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(float3 x)
-{
-  char3 y = convert_char3(x);
-  y = select(y, (char3)CHAR_MIN, convert_char3(x < (float3)CHAR_MIN));
-  y = select(y, (char3)CHAR_MAX, convert_char3(x > (float3)CHAR_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(float4 x)
-{
-  char4 y = convert_char4(x);
-  y = select(y, (char4)CHAR_MIN, convert_char4(x < (float4)CHAR_MIN));
-  y = select(y, (char4)CHAR_MAX, convert_char4(x > (float4)CHAR_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(float8 x)
-{
-  char8 y = convert_char8(x);
-  y = select(y, (char8)CHAR_MIN, convert_char8(x < (float8)CHAR_MIN));
-  y = select(y, (char8)CHAR_MAX, convert_char8(x > (float8)CHAR_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(float16 x)
-{
-  char16 y = convert_char16(x);
-  y = select(y, (char16)CHAR_MIN, convert_char16(x < (float16)CHAR_MIN));
-  y = select(y, (char16)CHAR_MAX, convert_char16(x > (float16)CHAR_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(float x)
-{
-  uchar y = convert_uchar(x);
-  y = select(y, (uchar)0, as_uchar(convert_char(x < (float)0)));
-  y = select(y, (uchar)UCHAR_MAX, as_uchar(convert_char(x > (float)UCHAR_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(float2 x)
-{
-  uchar2 y = convert_uchar2(x);
-  y = select(y, (uchar2)0, as_uchar2(convert_char2(x < (float2)0)));
-  y = select(y, (uchar2)UCHAR_MAX, as_uchar2(convert_char2(x > (float2)UCHAR_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(float3 x)
-{
-  uchar3 y = convert_uchar3(x);
-  y = select(y, (uchar3)0, as_uchar3(convert_char3(x < (float3)0)));
-  y = select(y, (uchar3)UCHAR_MAX, as_uchar3(convert_char3(x > (float3)UCHAR_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(float4 x)
-{
-  uchar4 y = convert_uchar4(x);
-  y = select(y, (uchar4)0, as_uchar4(convert_char4(x < (float4)0)));
-  y = select(y, (uchar4)UCHAR_MAX, as_uchar4(convert_char4(x > (float4)UCHAR_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(float8 x)
-{
-  uchar8 y = convert_uchar8(x);
-  y = select(y, (uchar8)0, as_uchar8(convert_char8(x < (float8)0)));
-  y = select(y, (uchar8)UCHAR_MAX, as_uchar8(convert_char8(x > (float8)UCHAR_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(float16 x)
-{
-  uchar16 y = convert_uchar16(x);
-  y = select(y, (uchar16)0, as_uchar16(convert_char16(x < (float16)0)));
-  y = select(y, (uchar16)UCHAR_MAX, as_uchar16(convert_char16(x > (float16)UCHAR_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(float x)
-{
-  short y = convert_short(x);
-  y = select(y, (short)SHRT_MIN, convert_short(x < (float)SHRT_MIN));
-  y = select(y, (short)SHRT_MAX, convert_short(x > (float)SHRT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(float2 x)
-{
-  short2 y = convert_short2(x);
-  y = select(y, (short2)SHRT_MIN, convert_short2(x < (float2)SHRT_MIN));
-  y = select(y, (short2)SHRT_MAX, convert_short2(x > (float2)SHRT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(float3 x)
-{
-  short3 y = convert_short3(x);
-  y = select(y, (short3)SHRT_MIN, convert_short3(x < (float3)SHRT_MIN));
-  y = select(y, (short3)SHRT_MAX, convert_short3(x > (float3)SHRT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(float4 x)
-{
-  short4 y = convert_short4(x);
-  y = select(y, (short4)SHRT_MIN, convert_short4(x < (float4)SHRT_MIN));
-  y = select(y, (short4)SHRT_MAX, convert_short4(x > (float4)SHRT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(float8 x)
-{
-  short8 y = convert_short8(x);
-  y = select(y, (short8)SHRT_MIN, convert_short8(x < (float8)SHRT_MIN));
-  y = select(y, (short8)SHRT_MAX, convert_short8(x > (float8)SHRT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(float16 x)
-{
-  short16 y = convert_short16(x);
-  y = select(y, (short16)SHRT_MIN, convert_short16(x < (float16)SHRT_MIN));
-  y = select(y, (short16)SHRT_MAX, convert_short16(x > (float16)SHRT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(float x)
-{
-  ushort y = convert_ushort(x);
-  y = select(y, (ushort)0, as_ushort(convert_short(x < (float)0)));
-  y = select(y, (ushort)USHRT_MAX, as_ushort(convert_short(x > (float)USHRT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(float2 x)
-{
-  ushort2 y = convert_ushort2(x);
-  y = select(y, (ushort2)0, as_ushort2(convert_short2(x < (float2)0)));
-  y = select(y, (ushort2)USHRT_MAX, as_ushort2(convert_short2(x > (float2)USHRT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(float3 x)
-{
-  ushort3 y = convert_ushort3(x);
-  y = select(y, (ushort3)0, as_ushort3(convert_short3(x < (float3)0)));
-  y = select(y, (ushort3)USHRT_MAX, as_ushort3(convert_short3(x > (float3)USHRT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(float4 x)
-{
-  ushort4 y = convert_ushort4(x);
-  y = select(y, (ushort4)0, as_ushort4(convert_short4(x < (float4)0)));
-  y = select(y, (ushort4)USHRT_MAX, as_ushort4(convert_short4(x > (float4)USHRT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(float8 x)
-{
-  ushort8 y = convert_ushort8(x);
-  y = select(y, (ushort8)0, as_ushort8(convert_short8(x < (float8)0)));
-  y = select(y, (ushort8)USHRT_MAX, as_ushort8(convert_short8(x > (float8)USHRT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(float16 x)
-{
-  ushort16 y = convert_ushort16(x);
-  y = select(y, (ushort16)0, as_ushort16(convert_short16(x < (float16)0)));
-  y = select(y, (ushort16)USHRT_MAX, as_ushort16(convert_short16(x > (float16)USHRT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(float x)
-{
-  int y = convert_int(x);
-  y = select(y, (int)INT_MIN, convert_int(x < (float)INT_MIN));
-  y = select(y, (int)INT_MAX, convert_int(x > (float)INT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(float2 x)
-{
-  int2 y = convert_int2(x);
-  y = select(y, (int2)INT_MIN, convert_int2(x < (float2)INT_MIN));
-  y = select(y, (int2)INT_MAX, convert_int2(x > (float2)INT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(float3 x)
-{
-  int3 y = convert_int3(x);
-  y = select(y, (int3)INT_MIN, convert_int3(x < (float3)INT_MIN));
-  y = select(y, (int3)INT_MAX, convert_int3(x > (float3)INT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(float4 x)
-{
-  int4 y = convert_int4(x);
-  y = select(y, (int4)INT_MIN, convert_int4(x < (float4)INT_MIN));
-  y = select(y, (int4)INT_MAX, convert_int4(x > (float4)INT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(float8 x)
-{
-  int8 y = convert_int8(x);
-  y = select(y, (int8)INT_MIN, convert_int8(x < (float8)INT_MIN));
-  y = select(y, (int8)INT_MAX, convert_int8(x > (float8)INT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(float16 x)
-{
-  int16 y = convert_int16(x);
-  y = select(y, (int16)INT_MIN, convert_int16(x < (float16)INT_MIN));
-  y = select(y, (int16)INT_MAX, convert_int16(x > (float16)INT_MAX));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(float x)
-{
-  uint y = convert_uint(x);
-  y = select(y, (uint)0, as_uint(convert_int(x < (float)0)));
-  y = select(y, (uint)UINT_MAX, as_uint(convert_int(x > (float)UINT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(float2 x)
-{
-  uint2 y = convert_uint2(x);
-  y = select(y, (uint2)0, as_uint2(convert_int2(x < (float2)0)));
-  y = select(y, (uint2)UINT_MAX, as_uint2(convert_int2(x > (float2)UINT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(float3 x)
-{
-  uint3 y = convert_uint3(x);
-  y = select(y, (uint3)0, as_uint3(convert_int3(x < (float3)0)));
-  y = select(y, (uint3)UINT_MAX, as_uint3(convert_int3(x > (float3)UINT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(float4 x)
-{
-  uint4 y = convert_uint4(x);
-  y = select(y, (uint4)0, as_uint4(convert_int4(x < (float4)0)));
-  y = select(y, (uint4)UINT_MAX, as_uint4(convert_int4(x > (float4)UINT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(float8 x)
-{
-  uint8 y = convert_uint8(x);
-  y = select(y, (uint8)0, as_uint8(convert_int8(x < (float8)0)));
-  y = select(y, (uint8)UINT_MAX, as_uint8(convert_int8(x > (float8)UINT_MAX)));
-  return y;
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(float16 x)
-{
-  uint16 y = convert_uint16(x);
-  y = select(y, (uint16)0, as_uint16(convert_int16(x < (float16)0)));
-  y = select(y, (uint16)UINT_MAX, as_uint16(convert_int16(x > (float16)UINT_MAX)));
-  return y;
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(float x)
-{
-  long y = convert_long(x);
-  y = select(y, (long)LONG_MIN, convert_long(x < (float)LONG_MIN));
-  y = select(y, (long)LONG_MAX, convert_long(x > (float)LONG_MAX));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(float2 x)
-{
-  long2 y = convert_long2(x);
-  y = select(y, (long2)LONG_MIN, convert_long2(x < (float2)LONG_MIN));
-  y = select(y, (long2)LONG_MAX, convert_long2(x > (float2)LONG_MAX));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(float3 x)
-{
-  long3 y = convert_long3(x);
-  y = select(y, (long3)LONG_MIN, convert_long3(x < (float3)LONG_MIN));
-  y = select(y, (long3)LONG_MAX, convert_long3(x > (float3)LONG_MAX));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(float4 x)
-{
-  long4 y = convert_long4(x);
-  y = select(y, (long4)LONG_MIN, convert_long4(x < (float4)LONG_MIN));
-  y = select(y, (long4)LONG_MAX, convert_long4(x > (float4)LONG_MAX));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(float8 x)
-{
-  long8 y = convert_long8(x);
-  y = select(y, (long8)LONG_MIN, convert_long8(x < (float8)LONG_MIN));
-  y = select(y, (long8)LONG_MAX, convert_long8(x > (float8)LONG_MAX));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(float16 x)
-{
-  long16 y = convert_long16(x);
-  y = select(y, (long16)LONG_MIN, convert_long16(x < (float16)LONG_MIN));
-  y = select(y, (long16)LONG_MAX, convert_long16(x > (float16)LONG_MAX));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(float x)
-{
-  ulong y = convert_ulong(x);
-  y = select(y, (ulong)0, as_ulong(convert_long(x < (float)0)));
-  y = select(y, (ulong)ULONG_MAX, as_ulong(convert_long(x > (float)ULONG_MAX)));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(float2 x)
-{
-  ulong2 y = convert_ulong2(x);
-  y = select(y, (ulong2)0, as_ulong2(convert_long2(x < (float2)0)));
-  y = select(y, (ulong2)ULONG_MAX, as_ulong2(convert_long2(x > (float2)ULONG_MAX)));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(float3 x)
-{
-  ulong3 y = convert_ulong3(x);
-  y = select(y, (ulong3)0, as_ulong3(convert_long3(x < (float3)0)));
-  y = select(y, (ulong3)ULONG_MAX, as_ulong3(convert_long3(x > (float3)ULONG_MAX)));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(float4 x)
-{
-  ulong4 y = convert_ulong4(x);
-  y = select(y, (ulong4)0, as_ulong4(convert_long4(x < (float4)0)));
-  y = select(y, (ulong4)ULONG_MAX, as_ulong4(convert_long4(x > (float4)ULONG_MAX)));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(float8 x)
-{
-  ulong8 y = convert_ulong8(x);
-  y = select(y, (ulong8)0, as_ulong8(convert_long8(x < (float8)0)));
-  y = select(y, (ulong8)ULONG_MAX, as_ulong8(convert_long8(x > (float8)ULONG_MAX)));
-  return y;
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(float16 x)
-{
-  ulong16 y = convert_ulong16(x);
-  y = select(y, (ulong16)0, as_ulong16(convert_long16(x < (float16)0)));
-  y = select(y, (ulong16)ULONG_MAX, as_ulong16(convert_long16(x > (float16)ULONG_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat(double x)
-{
-  char y = convert_char(x);
-  y = select(y, (char)CHAR_MIN, convert_char(x < (double)CHAR_MIN));
-  y = select(y, (char)CHAR_MAX, convert_char(x > (double)CHAR_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat(double2 x)
-{
-  char2 y = convert_char2(x);
-  y = select(y, (char2)CHAR_MIN, convert_char2(x < (double2)CHAR_MIN));
-  y = select(y, (char2)CHAR_MAX, convert_char2(x > (double2)CHAR_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat(double3 x)
-{
-  char3 y = convert_char3(x);
-  y = select(y, (char3)CHAR_MIN, convert_char3(x < (double3)CHAR_MIN));
-  y = select(y, (char3)CHAR_MAX, convert_char3(x > (double3)CHAR_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat(double4 x)
-{
-  char4 y = convert_char4(x);
-  y = select(y, (char4)CHAR_MIN, convert_char4(x < (double4)CHAR_MIN));
-  y = select(y, (char4)CHAR_MAX, convert_char4(x > (double4)CHAR_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat(double8 x)
-{
-  char8 y = convert_char8(x);
-  y = select(y, (char8)CHAR_MIN, convert_char8(x < (double8)CHAR_MIN));
-  y = select(y, (char8)CHAR_MAX, convert_char8(x > (double8)CHAR_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat(double16 x)
-{
-  char16 y = convert_char16(x);
-  y = select(y, (char16)CHAR_MIN, convert_char16(x < (double16)CHAR_MIN));
-  y = select(y, (char16)CHAR_MAX, convert_char16(x > (double16)CHAR_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat(double x)
-{
-  uchar y = convert_uchar(x);
-  y = select(y, (uchar)0, as_uchar(convert_char(x < (double)0)));
-  y = select(y, (uchar)UCHAR_MAX, as_uchar(convert_char(x > (double)UCHAR_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat(double2 x)
-{
-  uchar2 y = convert_uchar2(x);
-  y = select(y, (uchar2)0, as_uchar2(convert_char2(x < (double2)0)));
-  y = select(y, (uchar2)UCHAR_MAX, as_uchar2(convert_char2(x > (double2)UCHAR_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat(double3 x)
-{
-  uchar3 y = convert_uchar3(x);
-  y = select(y, (uchar3)0, as_uchar3(convert_char3(x < (double3)0)));
-  y = select(y, (uchar3)UCHAR_MAX, as_uchar3(convert_char3(x > (double3)UCHAR_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat(double4 x)
-{
-  uchar4 y = convert_uchar4(x);
-  y = select(y, (uchar4)0, as_uchar4(convert_char4(x < (double4)0)));
-  y = select(y, (uchar4)UCHAR_MAX, as_uchar4(convert_char4(x > (double4)UCHAR_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat(double8 x)
-{
-  uchar8 y = convert_uchar8(x);
-  y = select(y, (uchar8)0, as_uchar8(convert_char8(x < (double8)0)));
-  y = select(y, (uchar8)UCHAR_MAX, as_uchar8(convert_char8(x > (double8)UCHAR_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat(double16 x)
-{
-  uchar16 y = convert_uchar16(x);
-  y = select(y, (uchar16)0, as_uchar16(convert_char16(x < (double16)0)));
-  y = select(y, (uchar16)UCHAR_MAX, as_uchar16(convert_char16(x > (double16)UCHAR_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat(double x)
-{
-  short y = convert_short(x);
-  y = select(y, (short)SHRT_MIN, convert_short(x < (double)SHRT_MIN));
-  y = select(y, (short)SHRT_MAX, convert_short(x > (double)SHRT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat(double2 x)
-{
-  short2 y = convert_short2(x);
-  y = select(y, (short2)SHRT_MIN, convert_short2(x < (double2)SHRT_MIN));
-  y = select(y, (short2)SHRT_MAX, convert_short2(x > (double2)SHRT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat(double3 x)
-{
-  short3 y = convert_short3(x);
-  y = select(y, (short3)SHRT_MIN, convert_short3(x < (double3)SHRT_MIN));
-  y = select(y, (short3)SHRT_MAX, convert_short3(x > (double3)SHRT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat(double4 x)
-{
-  short4 y = convert_short4(x);
-  y = select(y, (short4)SHRT_MIN, convert_short4(x < (double4)SHRT_MIN));
-  y = select(y, (short4)SHRT_MAX, convert_short4(x > (double4)SHRT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat(double8 x)
-{
-  short8 y = convert_short8(x);
-  y = select(y, (short8)SHRT_MIN, convert_short8(x < (double8)SHRT_MIN));
-  y = select(y, (short8)SHRT_MAX, convert_short8(x > (double8)SHRT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat(double16 x)
-{
-  short16 y = convert_short16(x);
-  y = select(y, (short16)SHRT_MIN, convert_short16(x < (double16)SHRT_MIN));
-  y = select(y, (short16)SHRT_MAX, convert_short16(x > (double16)SHRT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat(double x)
-{
-  ushort y = convert_ushort(x);
-  y = select(y, (ushort)0, as_ushort(convert_short(x < (double)0)));
-  y = select(y, (ushort)USHRT_MAX, as_ushort(convert_short(x > (double)USHRT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat(double2 x)
-{
-  ushort2 y = convert_ushort2(x);
-  y = select(y, (ushort2)0, as_ushort2(convert_short2(x < (double2)0)));
-  y = select(y, (ushort2)USHRT_MAX, as_ushort2(convert_short2(x > (double2)USHRT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat(double3 x)
-{
-  ushort3 y = convert_ushort3(x);
-  y = select(y, (ushort3)0, as_ushort3(convert_short3(x < (double3)0)));
-  y = select(y, (ushort3)USHRT_MAX, as_ushort3(convert_short3(x > (double3)USHRT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat(double4 x)
-{
-  ushort4 y = convert_ushort4(x);
-  y = select(y, (ushort4)0, as_ushort4(convert_short4(x < (double4)0)));
-  y = select(y, (ushort4)USHRT_MAX, as_ushort4(convert_short4(x > (double4)USHRT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat(double8 x)
-{
-  ushort8 y = convert_ushort8(x);
-  y = select(y, (ushort8)0, as_ushort8(convert_short8(x < (double8)0)));
-  y = select(y, (ushort8)USHRT_MAX, as_ushort8(convert_short8(x > (double8)USHRT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat(double16 x)
-{
-  ushort16 y = convert_ushort16(x);
-  y = select(y, (ushort16)0, as_ushort16(convert_short16(x < (double16)0)));
-  y = select(y, (ushort16)USHRT_MAX, as_ushort16(convert_short16(x > (double16)USHRT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat(double x)
-{
-  int y = convert_int(x);
-  y = select(y, (int)INT_MIN, convert_int(x < (double)INT_MIN));
-  y = select(y, (int)INT_MAX, convert_int(x > (double)INT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat(double2 x)
-{
-  int2 y = convert_int2(x);
-  y = select(y, (int2)INT_MIN, convert_int2(x < (double2)INT_MIN));
-  y = select(y, (int2)INT_MAX, convert_int2(x > (double2)INT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat(double3 x)
-{
-  int3 y = convert_int3(x);
-  y = select(y, (int3)INT_MIN, convert_int3(x < (double3)INT_MIN));
-  y = select(y, (int3)INT_MAX, convert_int3(x > (double3)INT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat(double4 x)
-{
-  int4 y = convert_int4(x);
-  y = select(y, (int4)INT_MIN, convert_int4(x < (double4)INT_MIN));
-  y = select(y, (int4)INT_MAX, convert_int4(x > (double4)INT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat(double8 x)
-{
-  int8 y = convert_int8(x);
-  y = select(y, (int8)INT_MIN, convert_int8(x < (double8)INT_MIN));
-  y = select(y, (int8)INT_MAX, convert_int8(x > (double8)INT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat(double16 x)
-{
-  int16 y = convert_int16(x);
-  y = select(y, (int16)INT_MIN, convert_int16(x < (double16)INT_MIN));
-  y = select(y, (int16)INT_MAX, convert_int16(x > (double16)INT_MAX));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat(double x)
-{
-  uint y = convert_uint(x);
-  y = select(y, (uint)0, as_uint(convert_int(x < (double)0)));
-  y = select(y, (uint)UINT_MAX, as_uint(convert_int(x > (double)UINT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat(double2 x)
-{
-  uint2 y = convert_uint2(x);
-  y = select(y, (uint2)0, as_uint2(convert_int2(x < (double2)0)));
-  y = select(y, (uint2)UINT_MAX, as_uint2(convert_int2(x > (double2)UINT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat(double3 x)
-{
-  uint3 y = convert_uint3(x);
-  y = select(y, (uint3)0, as_uint3(convert_int3(x < (double3)0)));
-  y = select(y, (uint3)UINT_MAX, as_uint3(convert_int3(x > (double3)UINT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat(double4 x)
-{
-  uint4 y = convert_uint4(x);
-  y = select(y, (uint4)0, as_uint4(convert_int4(x < (double4)0)));
-  y = select(y, (uint4)UINT_MAX, as_uint4(convert_int4(x > (double4)UINT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat(double8 x)
-{
-  uint8 y = convert_uint8(x);
-  y = select(y, (uint8)0, as_uint8(convert_int8(x < (double8)0)));
-  y = select(y, (uint8)UINT_MAX, as_uint8(convert_int8(x > (double8)UINT_MAX)));
-  return y;
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat(double16 x)
-{
-  uint16 y = convert_uint16(x);
-  y = select(y, (uint16)0, as_uint16(convert_int16(x < (double16)0)));
-  y = select(y, (uint16)UINT_MAX, as_uint16(convert_int16(x > (double16)UINT_MAX)));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat(double x)
-{
-  long y = convert_long(x);
-  y = select(y, (long)LONG_MIN, convert_long(x < (double)LONG_MIN));
-  y = select(y, (long)LONG_MAX, convert_long(x > (double)LONG_MAX));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat(double2 x)
-{
-  long2 y = convert_long2(x);
-  y = select(y, (long2)LONG_MIN, convert_long2(x < (double2)LONG_MIN));
-  y = select(y, (long2)LONG_MAX, convert_long2(x > (double2)LONG_MAX));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat(double3 x)
-{
-  long3 y = convert_long3(x);
-  y = select(y, (long3)LONG_MIN, convert_long3(x < (double3)LONG_MIN));
-  y = select(y, (long3)LONG_MAX, convert_long3(x > (double3)LONG_MAX));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat(double4 x)
-{
-  long4 y = convert_long4(x);
-  y = select(y, (long4)LONG_MIN, convert_long4(x < (double4)LONG_MIN));
-  y = select(y, (long4)LONG_MAX, convert_long4(x > (double4)LONG_MAX));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat(double8 x)
-{
-  long8 y = convert_long8(x);
-  y = select(y, (long8)LONG_MIN, convert_long8(x < (double8)LONG_MIN));
-  y = select(y, (long8)LONG_MAX, convert_long8(x > (double8)LONG_MAX));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat(double16 x)
-{
-  long16 y = convert_long16(x);
-  y = select(y, (long16)LONG_MIN, convert_long16(x < (double16)LONG_MIN));
-  y = select(y, (long16)LONG_MAX, convert_long16(x > (double16)LONG_MAX));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat(double x)
-{
-  ulong y = convert_ulong(x);
-  y = select(y, (ulong)0, as_ulong(convert_long(x < (double)0)));
-  y = select(y, (ulong)ULONG_MAX, as_ulong(convert_long(x > (double)ULONG_MAX)));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat(double2 x)
-{
-  ulong2 y = convert_ulong2(x);
-  y = select(y, (ulong2)0, as_ulong2(convert_long2(x < (double2)0)));
-  y = select(y, (ulong2)ULONG_MAX, as_ulong2(convert_long2(x > (double2)ULONG_MAX)));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat(double3 x)
-{
-  ulong3 y = convert_ulong3(x);
-  y = select(y, (ulong3)0, as_ulong3(convert_long3(x < (double3)0)));
-  y = select(y, (ulong3)ULONG_MAX, as_ulong3(convert_long3(x > (double3)ULONG_MAX)));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat(double4 x)
-{
-  ulong4 y = convert_ulong4(x);
-  y = select(y, (ulong4)0, as_ulong4(convert_long4(x < (double4)0)));
-  y = select(y, (ulong4)ULONG_MAX, as_ulong4(convert_long4(x > (double4)ULONG_MAX)));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat(double8 x)
-{
-  ulong8 y = convert_ulong8(x);
-  y = select(y, (ulong8)0, as_ulong8(convert_long8(x < (double8)0)));
-  y = select(y, (ulong8)ULONG_MAX, as_ulong8(convert_long8(x > (double8)ULONG_MAX)));
-  return y;
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat(double16 x)
-{
-  ulong16 y = convert_ulong16(x);
-  y = select(y, (ulong16)0, as_ulong16(convert_long16(x < (double16)0)));
-  y = select(y, (ulong16)ULONG_MAX, as_ulong16(convert_long16(x > (double16)ULONG_MAX)));
-  return y;
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(char x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(char x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(char x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(char x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(char2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(char2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(char2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(char2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(char3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(char3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(char3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(char3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(char4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(char4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(char4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(char4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(char8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(char8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(char8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(char8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(char16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(char16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(char16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(char16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(char x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(char x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(char x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(char x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(char2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(char2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(char2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(char2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(char3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(char3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(char3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(char3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(char4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(char4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(char4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(char4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(char8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(char8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(char8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(char8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(char16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(char16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(char16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(char16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(char x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(char x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(char x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(char x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(char2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(char2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(char2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(char2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(char3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(char3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(char3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(char3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(char4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(char4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(char4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(char4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(char8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(char8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(char8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(char8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(char16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(char16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(char16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(char16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(char x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(char x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(char x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(char x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(char2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(char2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(char2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(char2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(char3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(char3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(char3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(char3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(char4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(char4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(char4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(char4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(char8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(char8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(char8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(char8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(char16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(char16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(char16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(char16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(char x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(char x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(char x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(char x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(char2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(char2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(char2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(char2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(char3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(char3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(char3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(char3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(char4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(char4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(char4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(char4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(char8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(char8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(char8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(char8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(char16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(char16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(char16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(char16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(char x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(char x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(char x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(char x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(char2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(char2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(char2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(char2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(char3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(char3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(char3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(char3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(char4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(char4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(char4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(char4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(char8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(char8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(char8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(char8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(char16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(char16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(char16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(char16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(char x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(char x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(char x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(char x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(char2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(char2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(char2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(char2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(char3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(char3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(char3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(char3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(char4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(char4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(char4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(char4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(char8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(char8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(char8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(char8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(char16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(char16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(char16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(char16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(char x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(char x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(char x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(char x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(char2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(char2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(char2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(char2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(char3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(char3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(char3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(char3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(char4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(char4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(char4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(char4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(char8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(char8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(char8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(char8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(char16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(char16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(char16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(char16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(uchar x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(uchar x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(uchar x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(uchar x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(uchar2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(uchar2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(uchar2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(uchar2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(uchar3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(uchar3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(uchar3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(uchar3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(uchar4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(uchar4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(uchar4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(uchar4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(uchar8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(uchar8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(uchar8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(uchar8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(uchar16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(uchar16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(uchar16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(uchar16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(uchar x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(uchar x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(uchar x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(uchar x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(uchar2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(uchar2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(uchar2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(uchar2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(uchar3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(uchar3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(uchar3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(uchar3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(uchar4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(uchar4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(uchar4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(uchar4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(uchar8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(uchar8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(uchar8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(uchar8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(uchar16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(uchar16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(uchar16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(uchar16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(uchar x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(uchar x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(uchar x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(uchar x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(uchar2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(uchar2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(uchar2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(uchar2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(uchar3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(uchar3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(uchar3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(uchar3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(uchar4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(uchar4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(uchar4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(uchar4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(uchar8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(uchar8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(uchar8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(uchar8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(uchar16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(uchar16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(uchar16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(uchar16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(uchar x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(uchar x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(uchar x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(uchar x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(uchar2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(uchar2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(uchar2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(uchar2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(uchar3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(uchar3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(uchar3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(uchar3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(uchar4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(uchar4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(uchar4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(uchar4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(uchar8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(uchar8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(uchar8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(uchar8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(uchar16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(uchar16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(uchar16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(uchar16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(uchar x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(uchar x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(uchar x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(uchar x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(uchar2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(uchar2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(uchar2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(uchar2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(uchar3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(uchar3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(uchar3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(uchar3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(uchar4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(uchar4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(uchar4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(uchar4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(uchar8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(uchar8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(uchar8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(uchar8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(uchar16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(uchar16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(uchar16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(uchar16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(uchar x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(uchar x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(uchar x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(uchar x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(uchar2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(uchar2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(uchar2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(uchar2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(uchar3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(uchar3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(uchar3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(uchar3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(uchar4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(uchar4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(uchar4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(uchar4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(uchar8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(uchar8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(uchar8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(uchar8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(uchar16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(uchar16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(uchar16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(uchar16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(uchar x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(uchar x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(uchar x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(uchar x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(uchar2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(uchar2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(uchar2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(uchar2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(uchar3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(uchar3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(uchar3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(uchar3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(uchar4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(uchar4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(uchar4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(uchar4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(uchar8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(uchar8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(uchar8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(uchar8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(uchar16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(uchar16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(uchar16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(uchar16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(uchar x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(uchar x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(uchar x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(uchar x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(uchar2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(uchar2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(uchar2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(uchar2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(uchar3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(uchar3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(uchar3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(uchar3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(uchar4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(uchar4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(uchar4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(uchar4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(uchar8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(uchar8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(uchar8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(uchar8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(uchar16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(uchar16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(uchar16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(uchar16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(short x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(short x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(short x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(short x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(short2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(short2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(short2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(short2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(short3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(short3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(short3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(short3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(short4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(short4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(short4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(short4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(short8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(short8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(short8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(short8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(short16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(short16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(short16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(short16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(short x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(short x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(short x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(short x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(short2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(short2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(short2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(short2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(short3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(short3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(short3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(short3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(short4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(short4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(short4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(short4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(short8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(short8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(short8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(short8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(short16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(short16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(short16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(short16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(short x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(short x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(short x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(short x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(short2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(short2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(short2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(short2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(short3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(short3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(short3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(short3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(short4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(short4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(short4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(short4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(short8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(short8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(short8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(short8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(short16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(short16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(short16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(short16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(short x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(short x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(short x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(short x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(short2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(short2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(short2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(short2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(short3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(short3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(short3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(short3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(short4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(short4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(short4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(short4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(short8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(short8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(short8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(short8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(short16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(short16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(short16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(short16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(short x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(short x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(short x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(short x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(short2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(short2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(short2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(short2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(short3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(short3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(short3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(short3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(short4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(short4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(short4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(short4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(short8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(short8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(short8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(short8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(short16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(short16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(short16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(short16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(short x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(short x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(short x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(short x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(short2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(short2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(short2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(short2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(short3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(short3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(short3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(short3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(short4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(short4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(short4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(short4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(short8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(short8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(short8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(short8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(short16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(short16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(short16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(short16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(short x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(short x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(short x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(short x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(short2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(short2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(short2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(short2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(short3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(short3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(short3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(short3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(short4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(short4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(short4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(short4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(short8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(short8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(short8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(short8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(short16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(short16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(short16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(short16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(short x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(short x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(short x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(short x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(short2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(short2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(short2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(short2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(short3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(short3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(short3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(short3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(short4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(short4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(short4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(short4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(short8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(short8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(short8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(short8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(short16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(short16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(short16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(short16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(ushort x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(ushort x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(ushort x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(ushort x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(ushort2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(ushort2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(ushort2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(ushort2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(ushort3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(ushort3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(ushort3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(ushort3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(ushort4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(ushort4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(ushort4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(ushort4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(ushort8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(ushort8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(ushort8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(ushort8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(ushort16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(ushort16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(ushort16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(ushort16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(ushort x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(ushort x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(ushort x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(ushort x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(ushort2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(ushort2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(ushort2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(ushort2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(ushort3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(ushort3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(ushort3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(ushort3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(ushort4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(ushort4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(ushort4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(ushort4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(ushort8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(ushort8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(ushort8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(ushort8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(ushort16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(ushort16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(ushort16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(ushort16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(ushort x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(ushort x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(ushort x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(ushort x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(ushort2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(ushort2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(ushort2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(ushort2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(ushort3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(ushort3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(ushort3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(ushort3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(ushort4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(ushort4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(ushort4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(ushort4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(ushort8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(ushort8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(ushort8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(ushort8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(ushort16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(ushort16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(ushort16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(ushort16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(ushort x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(ushort x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(ushort x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(ushort x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(ushort2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(ushort2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(ushort2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(ushort2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(ushort3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(ushort3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(ushort3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(ushort3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(ushort4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(ushort4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(ushort4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(ushort4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(ushort8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(ushort8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(ushort8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(ushort8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(ushort16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(ushort16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(ushort16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(ushort16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(ushort x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(ushort x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(ushort x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(ushort x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(ushort2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(ushort2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(ushort2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(ushort2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(ushort3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(ushort3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(ushort3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(ushort3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(ushort4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(ushort4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(ushort4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(ushort4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(ushort8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(ushort8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(ushort8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(ushort8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(ushort16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(ushort16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(ushort16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(ushort16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(ushort x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(ushort x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(ushort x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(ushort x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(ushort2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(ushort2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(ushort2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(ushort2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(ushort3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(ushort3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(ushort3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(ushort3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(ushort4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(ushort4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(ushort4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(ushort4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(ushort8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(ushort8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(ushort8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(ushort8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(ushort16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(ushort16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(ushort16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(ushort16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(ushort x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(ushort x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(ushort x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(ushort x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(ushort2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(ushort2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(ushort2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(ushort2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(ushort3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(ushort3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(ushort3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(ushort3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(ushort4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(ushort4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(ushort4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(ushort4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(ushort8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(ushort8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(ushort8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(ushort8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(ushort16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(ushort16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(ushort16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(ushort16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(ushort x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(ushort x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(ushort x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(ushort x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(ushort2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(ushort2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(ushort2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(ushort2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(ushort3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(ushort3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(ushort3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(ushort3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(ushort4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(ushort4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(ushort4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(ushort4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(ushort8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(ushort8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(ushort8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(ushort8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(ushort16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(ushort16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(ushort16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(ushort16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(int x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(int x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(int x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(int x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(int2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(int2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(int2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(int2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(int3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(int3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(int3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(int3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(int4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(int4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(int4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(int4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(int8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(int8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(int8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(int8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(int16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(int16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(int16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(int16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(int x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(int x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(int x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(int x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(int2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(int2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(int2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(int2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(int3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(int3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(int3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(int3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(int4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(int4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(int4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(int4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(int8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(int8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(int8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(int8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(int16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(int16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(int16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(int16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(int x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(int x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(int x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(int x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(int2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(int2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(int2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(int2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(int3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(int3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(int3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(int3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(int4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(int4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(int4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(int4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(int8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(int8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(int8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(int8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(int16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(int16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(int16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(int16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(int x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(int x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(int x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(int x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(int2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(int2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(int2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(int2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(int3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(int3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(int3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(int3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(int4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(int4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(int4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(int4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(int8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(int8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(int8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(int8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(int16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(int16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(int16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(int16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(int x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(int x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(int x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(int x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(int2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(int2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(int2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(int2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(int3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(int3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(int3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(int3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(int4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(int4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(int4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(int4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(int8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(int8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(int8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(int8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(int16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(int16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(int16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(int16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(int x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(int x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(int x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(int x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(int2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(int2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(int2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(int2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(int3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(int3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(int3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(int3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(int4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(int4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(int4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(int4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(int8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(int8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(int8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(int8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(int16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(int16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(int16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(int16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(int x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(int x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(int x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(int x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(int2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(int2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(int2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(int2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(int3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(int3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(int3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(int3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(int4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(int4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(int4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(int4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(int8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(int8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(int8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(int8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(int16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(int16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(int16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(int16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(int x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(int x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(int x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(int x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(int2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(int2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(int2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(int2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(int3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(int3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(int3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(int3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(int4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(int4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(int4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(int4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(int8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(int8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(int8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(int8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(int16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(int16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(int16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(int16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(uint x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(uint x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(uint x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(uint x)
-{
-  return convert_char_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(uint2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(uint2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(uint2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(uint2 x)
-{
-  return convert_char2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(uint3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(uint3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(uint3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(uint3 x)
-{
-  return convert_char3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(uint4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(uint4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(uint4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(uint4 x)
-{
-  return convert_char4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(uint8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(uint8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(uint8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(uint8 x)
-{
-  return convert_char8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(uint16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(uint16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(uint16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(uint16 x)
-{
-  return convert_char16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(uint x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(uint x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(uint x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(uint x)
-{
-  return convert_uchar_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(uint2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(uint2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(uint2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(uint2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(uint3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(uint3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(uint3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(uint3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(uint4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(uint4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(uint4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(uint4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(uint8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(uint8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(uint8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(uint8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(uint16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(uint16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(uint16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(uint16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(uint x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(uint x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(uint x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(uint x)
-{
-  return convert_short_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(uint2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(uint2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(uint2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(uint2 x)
-{
-  return convert_short2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(uint3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(uint3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(uint3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(uint3 x)
-{
-  return convert_short3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(uint4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(uint4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(uint4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(uint4 x)
-{
-  return convert_short4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(uint8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(uint8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(uint8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(uint8 x)
-{
-  return convert_short8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(uint16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(uint16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(uint16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(uint16 x)
-{
-  return convert_short16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(uint x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(uint x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(uint x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(uint x)
-{
-  return convert_ushort_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(uint2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(uint2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(uint2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(uint2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(uint3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(uint3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(uint3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(uint3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(uint4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(uint4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(uint4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(uint4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(uint8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(uint8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(uint8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(uint8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(uint16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(uint16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(uint16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(uint16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(uint x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(uint x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(uint x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(uint x)
-{
-  return convert_int_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(uint2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(uint2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(uint2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(uint2 x)
-{
-  return convert_int2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(uint3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(uint3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(uint3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(uint3 x)
-{
-  return convert_int3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(uint4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(uint4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(uint4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(uint4 x)
-{
-  return convert_int4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(uint8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(uint8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(uint8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(uint8 x)
-{
-  return convert_int8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(uint16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(uint16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(uint16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(uint16 x)
-{
-  return convert_int16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(uint x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(uint x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(uint x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(uint x)
-{
-  return convert_uint_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(uint2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(uint2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(uint2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(uint2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(uint3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(uint3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(uint3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(uint3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(uint4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(uint4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(uint4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(uint4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(uint8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(uint8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(uint8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(uint8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(uint16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(uint16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(uint16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(uint16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(uint x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(uint x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(uint x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(uint x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(uint2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(uint2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(uint2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(uint2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(uint3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(uint3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(uint3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(uint3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(uint4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(uint4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(uint4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(uint4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(uint8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(uint8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(uint8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(uint8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(uint16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(uint16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(uint16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(uint16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(uint x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(uint x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(uint x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(uint x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(uint2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(uint2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(uint2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(uint2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(uint3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(uint3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(uint3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(uint3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(uint4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(uint4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(uint4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(uint4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(uint8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(uint8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(uint8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(uint8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(uint16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(uint16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(uint16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(uint16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(long x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(long x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(long x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(long x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(long2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(long2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(long2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(long2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(long3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(long3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(long3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(long3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(long4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(long4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(long4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(long4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(long8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(long8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(long8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(long8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(long16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(long16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(long16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(long16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(long x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(long x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(long x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(long x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(long2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(long2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(long2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(long2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(long3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(long3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(long3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(long3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(long4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(long4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(long4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(long4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(long8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(long8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(long8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(long8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(long16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(long16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(long16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(long16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(long x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(long x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(long x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(long x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(long2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(long2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(long2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(long2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(long3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(long3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(long3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(long3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(long4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(long4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(long4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(long4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(long8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(long8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(long8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(long8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(long16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(long16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(long16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(long16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(long x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(long x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(long x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(long x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(long2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(long2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(long2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(long2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(long3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(long3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(long3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(long3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(long4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(long4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(long4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(long4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(long8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(long8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(long8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(long8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(long16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(long16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(long16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(long16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(long x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(long x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(long x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(long x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(long2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(long2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(long2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(long2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(long3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(long3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(long3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(long3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(long4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(long4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(long4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(long4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(long8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(long8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(long8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(long8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(long16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(long16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(long16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(long16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(long x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(long x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(long x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(long x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(long2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(long2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(long2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(long2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(long3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(long3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(long3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(long3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(long4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(long4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(long4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(long4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(long8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(long8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(long8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(long8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(long16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(long16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(long16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(long16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(long x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(long x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(long x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(long x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(long2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(long2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(long2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(long2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(long3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(long3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(long3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(long3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(long4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(long4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(long4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(long4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(long8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(long8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(long8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(long8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(long16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(long16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(long16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(long16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(long x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(long x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(long x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(long x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(long2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(long2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(long2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(long2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(long3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(long3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(long3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(long3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(long4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(long4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(long4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(long4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(long8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(long8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(long8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(long8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(long16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(long16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(long16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(long16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(ulong x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(ulong x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(ulong x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(ulong x)
-{
-  return convert_char_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(ulong2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(ulong2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(ulong2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(ulong2 x)
-{
-  return convert_char2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(ulong3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(ulong3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(ulong3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(ulong3 x)
-{
-  return convert_char3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(ulong4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(ulong4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(ulong4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(ulong4 x)
-{
-  return convert_char4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(ulong8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(ulong8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(ulong8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(ulong8 x)
-{
-  return convert_char8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(ulong16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(ulong16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(ulong16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(ulong16 x)
-{
-  return convert_char16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(ulong x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(ulong x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(ulong x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(ulong x)
-{
-  return convert_uchar_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(ulong2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(ulong2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(ulong2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(ulong2 x)
-{
-  return convert_uchar2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(ulong3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(ulong3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(ulong3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(ulong3 x)
-{
-  return convert_uchar3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(ulong4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(ulong4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(ulong4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(ulong4 x)
-{
-  return convert_uchar4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(ulong8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(ulong8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(ulong8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(ulong8 x)
-{
-  return convert_uchar8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(ulong16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(ulong16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(ulong16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(ulong16 x)
-{
-  return convert_uchar16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(ulong x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(ulong x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(ulong x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(ulong x)
-{
-  return convert_short_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(ulong2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(ulong2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(ulong2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(ulong2 x)
-{
-  return convert_short2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(ulong3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(ulong3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(ulong3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(ulong3 x)
-{
-  return convert_short3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(ulong4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(ulong4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(ulong4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(ulong4 x)
-{
-  return convert_short4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(ulong8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(ulong8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(ulong8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(ulong8 x)
-{
-  return convert_short8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(ulong16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(ulong16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(ulong16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(ulong16 x)
-{
-  return convert_short16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(ulong x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(ulong x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(ulong x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(ulong x)
-{
-  return convert_ushort_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(ulong2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(ulong2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(ulong2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(ulong2 x)
-{
-  return convert_ushort2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(ulong3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(ulong3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(ulong3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(ulong3 x)
-{
-  return convert_ushort3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(ulong4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(ulong4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(ulong4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(ulong4 x)
-{
-  return convert_ushort4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(ulong8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(ulong8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(ulong8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(ulong8 x)
-{
-  return convert_ushort8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(ulong16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(ulong16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(ulong16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(ulong16 x)
-{
-  return convert_ushort16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(ulong x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(ulong x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(ulong x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(ulong x)
-{
-  return convert_int_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(ulong2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(ulong2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(ulong2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(ulong2 x)
-{
-  return convert_int2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(ulong3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(ulong3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(ulong3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(ulong3 x)
-{
-  return convert_int3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(ulong4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(ulong4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(ulong4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(ulong4 x)
-{
-  return convert_int4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(ulong8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(ulong8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(ulong8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(ulong8 x)
-{
-  return convert_int8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(ulong16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(ulong16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(ulong16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(ulong16 x)
-{
-  return convert_int16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(ulong x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(ulong x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(ulong x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(ulong x)
-{
-  return convert_uint_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(ulong2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(ulong2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(ulong2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(ulong2 x)
-{
-  return convert_uint2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(ulong3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(ulong3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(ulong3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(ulong3 x)
-{
-  return convert_uint3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(ulong4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(ulong4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(ulong4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(ulong4 x)
-{
-  return convert_uint4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(ulong8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(ulong8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(ulong8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(ulong8 x)
-{
-  return convert_uint8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(ulong16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(ulong16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(ulong16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(ulong16 x)
-{
-  return convert_uint16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(ulong x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(ulong x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(ulong x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(ulong x)
-{
-  return convert_long_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(ulong2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(ulong2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(ulong2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(ulong2 x)
-{
-  return convert_long2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(ulong3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(ulong3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(ulong3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(ulong3 x)
-{
-  return convert_long3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(ulong4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(ulong4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(ulong4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(ulong4 x)
-{
-  return convert_long4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(ulong8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(ulong8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(ulong8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(ulong8 x)
-{
-  return convert_long8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(ulong16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(ulong16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(ulong16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(ulong16 x)
-{
-  return convert_long16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(ulong x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(ulong x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(ulong x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(ulong x)
-{
-  return convert_ulong_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(ulong2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(ulong2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(ulong2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(ulong2 x)
-{
-  return convert_ulong2_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(ulong3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(ulong3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(ulong3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(ulong3 x)
-{
-  return convert_ulong3_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(ulong4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(ulong4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(ulong4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(ulong4 x)
-{
-  return convert_ulong4_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(ulong8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(ulong8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(ulong8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(ulong8 x)
-{
-  return convert_ulong8_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(ulong16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(ulong16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(ulong16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(ulong16 x)
-{
-  return convert_ulong16_sat(x);
-}
-
-#endif
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(float x)
-{
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(float x)
-{
-  return convert_char_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(float x)
-{
-  x = rint(x);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_char_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(float x)
-{
-  x = ceil(x);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_char_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(float x)
-{
-  x = floor(x);
-  return convert_char(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_char_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(float2 x)
-{
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(float2 x)
-{
-  return convert_char2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_char2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_char2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_char2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_char2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(float3 x)
-{
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(float3 x)
-{
-  return convert_char3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_char3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_char3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_char3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_char3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(float4 x)
-{
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(float4 x)
-{
-  return convert_char4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_char4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_char4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_char4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_char4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(float8 x)
-{
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(float8 x)
-{
-  return convert_char8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_char8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_char8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_char8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_char8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(float16 x)
-{
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(float16 x)
-{
-  return convert_char16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_char16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_char16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_char16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_char16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(float x)
-{
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(float x)
-{
-  return convert_uchar_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(float x)
-{
-  x = rint(x);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_uchar_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(float x)
-{
-  x = ceil(x);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_uchar_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(float x)
-{
-  x = floor(x);
-  return convert_uchar(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_uchar_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(float2 x)
-{
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(float2 x)
-{
-  return convert_uchar2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_uchar2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_uchar2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_uchar2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_uchar2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(float3 x)
-{
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(float3 x)
-{
-  return convert_uchar3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_uchar3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_uchar3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_uchar3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_uchar3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(float4 x)
-{
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(float4 x)
-{
-  return convert_uchar4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_uchar4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_uchar4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_uchar4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_uchar4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(float8 x)
-{
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(float8 x)
-{
-  return convert_uchar8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_uchar8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_uchar8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_uchar8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_uchar8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(float16 x)
-{
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(float16 x)
-{
-  return convert_uchar16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_uchar16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_uchar16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_uchar16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_uchar16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(float x)
-{
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(float x)
-{
-  return convert_short_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(float x)
-{
-  x = rint(x);
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_short_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(float x)
-{
-  x = ceil(x);
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_short_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(float x)
-{
-  x = floor(x);
-  return convert_short(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_short_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(float2 x)
-{
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(float2 x)
-{
-  return convert_short2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_short2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_short2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_short2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_short2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(float3 x)
-{
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(float3 x)
-{
-  return convert_short3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_short3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_short3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_short3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_short3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(float4 x)
-{
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(float4 x)
-{
-  return convert_short4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_short4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_short4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_short4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_short4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(float8 x)
-{
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(float8 x)
-{
-  return convert_short8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_short8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_short8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_short8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_short8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(float16 x)
-{
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(float16 x)
-{
-  return convert_short16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_short16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_short16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_short16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_short16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(float x)
-{
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(float x)
-{
-  return convert_ushort_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(float x)
-{
-  x = rint(x);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_ushort_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(float x)
-{
-  x = ceil(x);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_ushort_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(float x)
-{
-  x = floor(x);
-  return convert_ushort(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_ushort_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(float2 x)
-{
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(float2 x)
-{
-  return convert_ushort2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_ushort2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_ushort2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_ushort2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_ushort2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(float3 x)
-{
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(float3 x)
-{
-  return convert_ushort3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_ushort3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_ushort3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_ushort3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_ushort3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(float4 x)
-{
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(float4 x)
-{
-  return convert_ushort4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_ushort4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_ushort4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_ushort4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_ushort4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(float8 x)
-{
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(float8 x)
-{
-  return convert_ushort8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_ushort8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_ushort8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_ushort8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_ushort8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(float16 x)
-{
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(float16 x)
-{
-  return convert_ushort16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_ushort16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_ushort16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_ushort16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_ushort16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(float x)
-{
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(float x)
-{
-  return convert_int_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(float x)
-{
-  x = rint(x);
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_int_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(float x)
-{
-  x = ceil(x);
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_int_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(float x)
-{
-  x = floor(x);
-  return convert_int(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_int_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(float2 x)
-{
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(float2 x)
-{
-  return convert_int2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_int2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_int2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_int2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_int2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(float3 x)
-{
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(float3 x)
-{
-  return convert_int3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_int3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_int3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_int3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_int3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(float4 x)
-{
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(float4 x)
-{
-  return convert_int4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_int4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_int4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_int4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_int4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(float8 x)
-{
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(float8 x)
-{
-  return convert_int8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_int8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_int8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_int8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_int8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(float16 x)
-{
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(float16 x)
-{
-  return convert_int16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_int16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_int16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_int16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_int16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(float x)
-{
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(float x)
-{
-  return convert_uint_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(float x)
-{
-  x = rint(x);
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_uint_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(float x)
-{
-  x = ceil(x);
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_uint_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(float x)
-{
-  x = floor(x);
-  return convert_uint(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_uint_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(float2 x)
-{
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(float2 x)
-{
-  return convert_uint2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_uint2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_uint2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_uint2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_uint2_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(float3 x)
-{
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(float3 x)
-{
-  return convert_uint3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_uint3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_uint3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_uint3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_uint3_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(float4 x)
-{
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(float4 x)
-{
-  return convert_uint4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_uint4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_uint4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_uint4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_uint4_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(float8 x)
-{
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(float8 x)
-{
-  return convert_uint8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_uint8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_uint8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_uint8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_uint8_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(float16 x)
-{
-  return convert_uint16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(float16 x)
-{
-  return convert_uint16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_uint16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_uint16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_uint16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_uint16_sat(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_uint16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_uint16_sat(x);
-}
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(float x)
-{
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(float x)
-{
-  return convert_long_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(float x)
-{
-  x = rint(x);
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_long_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(float x)
-{
-  x = ceil(x);
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_long_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(float x)
-{
-  x = floor(x);
-  return convert_long(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_long_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(float2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(float2 x)
-{
-  return convert_long2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_long2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_long2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_long2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_long2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(float3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(float3 x)
-{
-  return convert_long3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_long3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_long3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_long3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_long3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(float4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(float4 x)
-{
-  return convert_long4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_long4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_long4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_long4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_long4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(float8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(float8 x)
-{
-  return convert_long8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_long8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_long8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_long8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_long8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(float16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(float16 x)
-{
-  return convert_long16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_long16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_long16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_long16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_long16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(float x)
-{
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(float x)
-{
-  return convert_ulong_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(float x)
-{
-  x = rint(x);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(float x)
-{
-  x = rint(x);
-  return convert_ulong_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(float x)
-{
-  x = ceil(x);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(float x)
-{
-  x = ceil(x);
-  return convert_ulong_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(float x)
-{
-  x = floor(x);
-  return convert_ulong(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(float x)
-{
-  x = floor(x);
-  return convert_ulong_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(float2 x)
-{
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(float2 x)
-{
-  return convert_ulong2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(float2 x)
-{
-  x = rint(x);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(float2 x)
-{
-  x = rint(x);
-  return convert_ulong2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(float2 x)
-{
-  x = ceil(x);
-  return convert_ulong2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_ulong2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(float2 x)
-{
-  x = floor(x);
-  return convert_ulong2_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(float3 x)
-{
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(float3 x)
-{
-  return convert_ulong3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(float3 x)
-{
-  x = rint(x);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(float3 x)
-{
-  x = rint(x);
-  return convert_ulong3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(float3 x)
-{
-  x = ceil(x);
-  return convert_ulong3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_ulong3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(float3 x)
-{
-  x = floor(x);
-  return convert_ulong3_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(float4 x)
-{
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(float4 x)
-{
-  return convert_ulong4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(float4 x)
-{
-  x = rint(x);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(float4 x)
-{
-  x = rint(x);
-  return convert_ulong4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(float4 x)
-{
-  x = ceil(x);
-  return convert_ulong4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_ulong4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(float4 x)
-{
-  x = floor(x);
-  return convert_ulong4_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(float8 x)
-{
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(float8 x)
-{
-  return convert_ulong8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(float8 x)
-{
-  x = rint(x);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(float8 x)
-{
-  x = rint(x);
-  return convert_ulong8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(float8 x)
-{
-  x = ceil(x);
-  return convert_ulong8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_ulong8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(float8 x)
-{
-  x = floor(x);
-  return convert_ulong8_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(float16 x)
-{
-  return convert_ulong16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(float16 x)
-{
-  return convert_ulong16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(float16 x)
-{
-  x = rint(x);
-  return convert_ulong16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(float16 x)
-{
-  x = rint(x);
-  return convert_ulong16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_ulong16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(float16 x)
-{
-  x = ceil(x);
-  return convert_ulong16_sat(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_ulong16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(float16 x)
-{
-  x = floor(x);
-  return convert_ulong16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtz(double x)
-{
-  return convert_char(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtz(double x)
-{
-  return convert_char_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rte(double x)
-{
-  x = rint(x);
-  return convert_char(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_char_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtp(double x)
-{
-  x = ceil(x);
-  return convert_char(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_char_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_rtn(double x)
-{
-  x = floor(x);
-  return convert_char(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char convert_char_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_char_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtz(double2 x)
-{
-  return convert_char2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtz(double2 x)
-{
-  return convert_char2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_char2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_char2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_char2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_char2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_char2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char2 convert_char2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_char2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtz(double3 x)
-{
-  return convert_char3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtz(double3 x)
-{
-  return convert_char3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_char3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_char3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_char3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_char3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_char3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char3 convert_char3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_char3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtz(double4 x)
-{
-  return convert_char4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtz(double4 x)
-{
-  return convert_char4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_char4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_char4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_char4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_char4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_char4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char4 convert_char4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_char4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtz(double8 x)
-{
-  return convert_char8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtz(double8 x)
-{
-  return convert_char8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_char8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_char8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_char8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_char8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_char8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char8 convert_char8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_char8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtz(double16 x)
-{
-  return convert_char16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtz(double16 x)
-{
-  return convert_char16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_char16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_char16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_char16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_char16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_char16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-char16 convert_char16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_char16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtz(double x)
-{
-  return convert_uchar(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtz(double x)
-{
-  return convert_uchar_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rte(double x)
-{
-  x = rint(x);
-  return convert_uchar(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_uchar_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtp(double x)
-{
-  x = ceil(x);
-  return convert_uchar(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_uchar_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_rtn(double x)
-{
-  x = floor(x);
-  return convert_uchar(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar convert_uchar_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_uchar_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtz(double2 x)
-{
-  return convert_uchar2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtz(double2 x)
-{
-  return convert_uchar2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_uchar2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_uchar2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_uchar2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_uchar2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_uchar2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar2 convert_uchar2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_uchar2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtz(double3 x)
-{
-  return convert_uchar3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtz(double3 x)
-{
-  return convert_uchar3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_uchar3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_uchar3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_uchar3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_uchar3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_uchar3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar3 convert_uchar3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_uchar3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtz(double4 x)
-{
-  return convert_uchar4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtz(double4 x)
-{
-  return convert_uchar4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_uchar4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_uchar4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_uchar4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_uchar4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_uchar4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar4 convert_uchar4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_uchar4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtz(double8 x)
-{
-  return convert_uchar8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtz(double8 x)
-{
-  return convert_uchar8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_uchar8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_uchar8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_uchar8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_uchar8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_uchar8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar8 convert_uchar8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_uchar8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtz(double16 x)
-{
-  return convert_uchar16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtz(double16 x)
-{
-  return convert_uchar16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_uchar16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_uchar16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_uchar16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_uchar16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_uchar16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uchar16 convert_uchar16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_uchar16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtz(double x)
-{
-  return convert_short(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtz(double x)
-{
-  return convert_short_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rte(double x)
-{
-  x = rint(x);
-  return convert_short(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_short_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtp(double x)
-{
-  x = ceil(x);
-  return convert_short(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_short_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_rtn(double x)
-{
-  x = floor(x);
-  return convert_short(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short convert_short_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_short_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtz(double2 x)
-{
-  return convert_short2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtz(double2 x)
-{
-  return convert_short2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_short2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_short2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_short2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_short2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_short2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short2 convert_short2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_short2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtz(double3 x)
-{
-  return convert_short3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtz(double3 x)
-{
-  return convert_short3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_short3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_short3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_short3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_short3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_short3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short3 convert_short3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_short3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtz(double4 x)
-{
-  return convert_short4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtz(double4 x)
-{
-  return convert_short4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_short4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_short4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_short4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_short4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_short4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short4 convert_short4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_short4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtz(double8 x)
-{
-  return convert_short8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtz(double8 x)
-{
-  return convert_short8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_short8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_short8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_short8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_short8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_short8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short8 convert_short8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_short8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtz(double16 x)
-{
-  return convert_short16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtz(double16 x)
-{
-  return convert_short16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_short16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_short16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_short16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_short16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_short16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-short16 convert_short16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_short16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtz(double x)
-{
-  return convert_ushort(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtz(double x)
-{
-  return convert_ushort_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rte(double x)
-{
-  x = rint(x);
-  return convert_ushort(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_ushort_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtp(double x)
-{
-  x = ceil(x);
-  return convert_ushort(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_ushort_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_rtn(double x)
-{
-  x = floor(x);
-  return convert_ushort(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort convert_ushort_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_ushort_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtz(double2 x)
-{
-  return convert_ushort2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtz(double2 x)
-{
-  return convert_ushort2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_ushort2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_ushort2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_ushort2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_ushort2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_ushort2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort2 convert_ushort2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_ushort2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtz(double3 x)
-{
-  return convert_ushort3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtz(double3 x)
-{
-  return convert_ushort3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_ushort3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_ushort3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_ushort3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_ushort3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_ushort3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort3 convert_ushort3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_ushort3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtz(double4 x)
-{
-  return convert_ushort4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtz(double4 x)
-{
-  return convert_ushort4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_ushort4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_ushort4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_ushort4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_ushort4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_ushort4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort4 convert_ushort4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_ushort4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtz(double8 x)
-{
-  return convert_ushort8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtz(double8 x)
-{
-  return convert_ushort8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_ushort8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_ushort8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_ushort8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_ushort8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_ushort8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort8 convert_ushort8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_ushort8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtz(double16 x)
-{
-  return convert_ushort16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtz(double16 x)
-{
-  return convert_ushort16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_ushort16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_ushort16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_ushort16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_ushort16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_ushort16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-ushort16 convert_ushort16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_ushort16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtz(double x)
-{
-  return convert_int(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtz(double x)
-{
-  return convert_int_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rte(double x)
-{
-  x = rint(x);
-  return convert_int(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_int_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtp(double x)
-{
-  x = ceil(x);
-  return convert_int(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_int_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_rtn(double x)
-{
-  x = floor(x);
-  return convert_int(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int convert_int_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_int_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtz(double2 x)
-{
-  return convert_int2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtz(double2 x)
-{
-  return convert_int2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_int2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_int2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_int2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_int2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_int2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int2 convert_int2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_int2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtz(double3 x)
-{
-  return convert_int3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtz(double3 x)
-{
-  return convert_int3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_int3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_int3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_int3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_int3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_int3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int3 convert_int3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_int3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtz(double4 x)
-{
-  return convert_int4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtz(double4 x)
-{
-  return convert_int4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_int4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_int4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_int4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_int4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_int4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int4 convert_int4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_int4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtz(double8 x)
-{
-  return convert_int8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtz(double8 x)
-{
-  return convert_int8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_int8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_int8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_int8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_int8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_int8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int8 convert_int8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_int8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtz(double16 x)
-{
-  return convert_int16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtz(double16 x)
-{
-  return convert_int16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_int16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_int16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_int16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_int16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_int16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-int16 convert_int16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_int16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtz(double x)
-{
-  return convert_uint(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtz(double x)
-{
-  return convert_uint_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rte(double x)
-{
-  x = rint(x);
-  return convert_uint(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_uint_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtp(double x)
-{
-  x = ceil(x);
-  return convert_uint(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_uint_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_rtn(double x)
-{
-  x = floor(x);
-  return convert_uint(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint convert_uint_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_uint_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtz(double2 x)
-{
-  return convert_uint2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtz(double2 x)
-{
-  return convert_uint2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_uint2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_uint2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_uint2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_uint2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_uint2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint2 convert_uint2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_uint2_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtz(double3 x)
-{
-  return convert_uint3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtz(double3 x)
-{
-  return convert_uint3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_uint3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_uint3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_uint3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_uint3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_uint3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint3 convert_uint3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_uint3_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtz(double4 x)
-{
-  return convert_uint4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtz(double4 x)
-{
-  return convert_uint4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_uint4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_uint4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_uint4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_uint4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_uint4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint4 convert_uint4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_uint4_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtz(double8 x)
-{
-  return convert_uint8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtz(double8 x)
-{
-  return convert_uint8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_uint8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_uint8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_uint8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_uint8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_uint8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint8 convert_uint8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_uint8_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtz(double16 x)
-{
-  return convert_uint16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtz(double16 x)
-{
-  return convert_uint16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_uint16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_uint16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_uint16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_uint16_sat(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_uint16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-uint16 convert_uint16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_uint16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtz(double x)
-{
-  return convert_long(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtz(double x)
-{
-  return convert_long_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rte(double x)
-{
-  x = rint(x);
-  return convert_long(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_long_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtp(double x)
-{
-  x = ceil(x);
-  return convert_long(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_long_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_rtn(double x)
-{
-  x = floor(x);
-  return convert_long(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long convert_long_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_long_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtz(double2 x)
-{
-  return convert_long2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtz(double2 x)
-{
-  return convert_long2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_long2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_long2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_long2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_long2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_long2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long2 convert_long2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_long2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtz(double3 x)
-{
-  return convert_long3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtz(double3 x)
-{
-  return convert_long3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_long3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_long3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_long3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_long3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_long3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long3 convert_long3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_long3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtz(double4 x)
-{
-  return convert_long4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtz(double4 x)
-{
-  return convert_long4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_long4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_long4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_long4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_long4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_long4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long4 convert_long4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_long4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtz(double8 x)
-{
-  return convert_long8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtz(double8 x)
-{
-  return convert_long8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_long8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_long8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_long8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_long8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_long8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long8 convert_long8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_long8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtz(double16 x)
-{
-  return convert_long16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtz(double16 x)
-{
-  return convert_long16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_long16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_long16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_long16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_long16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_long16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-long16 convert_long16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_long16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtz(double x)
-{
-  return convert_ulong(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtz(double x)
-{
-  return convert_ulong_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rte(double x)
-{
-  x = rint(x);
-  return convert_ulong(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rte(double x)
-{
-  x = rint(x);
-  return convert_ulong_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtp(double x)
-{
-  x = ceil(x);
-  return convert_ulong(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtp(double x)
-{
-  x = ceil(x);
-  return convert_ulong_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_rtn(double x)
-{
-  x = floor(x);
-  return convert_ulong(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong convert_ulong_sat_rtn(double x)
-{
-  x = floor(x);
-  return convert_ulong_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtz(double2 x)
-{
-  return convert_ulong2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtz(double2 x)
-{
-  return convert_ulong2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rte(double2 x)
-{
-  x = rint(x);
-  return convert_ulong2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rte(double2 x)
-{
-  x = rint(x);
-  return convert_ulong2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_ulong2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtp(double2 x)
-{
-  x = ceil(x);
-  return convert_ulong2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_ulong2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong2 convert_ulong2_sat_rtn(double2 x)
-{
-  x = floor(x);
-  return convert_ulong2_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtz(double3 x)
-{
-  return convert_ulong3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtz(double3 x)
-{
-  return convert_ulong3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rte(double3 x)
-{
-  x = rint(x);
-  return convert_ulong3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rte(double3 x)
-{
-  x = rint(x);
-  return convert_ulong3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_ulong3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtp(double3 x)
-{
-  x = ceil(x);
-  return convert_ulong3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_ulong3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong3 convert_ulong3_sat_rtn(double3 x)
-{
-  x = floor(x);
-  return convert_ulong3_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtz(double4 x)
-{
-  return convert_ulong4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtz(double4 x)
-{
-  return convert_ulong4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rte(double4 x)
-{
-  x = rint(x);
-  return convert_ulong4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rte(double4 x)
-{
-  x = rint(x);
-  return convert_ulong4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_ulong4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtp(double4 x)
-{
-  x = ceil(x);
-  return convert_ulong4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_ulong4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong4 convert_ulong4_sat_rtn(double4 x)
-{
-  x = floor(x);
-  return convert_ulong4_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtz(double8 x)
-{
-  return convert_ulong8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtz(double8 x)
-{
-  return convert_ulong8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rte(double8 x)
-{
-  x = rint(x);
-  return convert_ulong8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rte(double8 x)
-{
-  x = rint(x);
-  return convert_ulong8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_ulong8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtp(double8 x)
-{
-  x = ceil(x);
-  return convert_ulong8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_ulong8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong8 convert_ulong8_sat_rtn(double8 x)
-{
-  x = floor(x);
-  return convert_ulong8_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtz(double16 x)
-{
-  return convert_ulong16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtz(double16 x)
-{
-  return convert_ulong16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rte(double16 x)
-{
-  x = rint(x);
-  return convert_ulong16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rte(double16 x)
-{
-  x = rint(x);
-  return convert_ulong16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_ulong16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtp(double16 x)
-{
-  x = ceil(x);
-  return convert_ulong16_sat(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_ulong16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-ulong16 convert_ulong16_sat_rtn(double16 x)
-{
-  x = floor(x);
-  return convert_ulong16_sat(x);
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(char x)
-{
-  float r = convert_float(x);
-  char y = convert_char(y);
-  uchar abs_x = abs(x);
-  uchar abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(char x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(char x)
-{
-  float r = convert_float(x);
-  char y = convert_char(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(char x)
-{
-  float r = convert_float(x);
-  char y = convert_char(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(char2 x)
-{
-  float2 r = convert_float2(x);
-  char2 y = convert_char2(y);
-  uchar2 abs_x = abs(x);
-  uchar2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(char2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(char2 x)
-{
-  float2 r = convert_float2(x);
-  char2 y = convert_char2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(char2 x)
-{
-  float2 r = convert_float2(x);
-  char2 y = convert_char2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(char3 x)
-{
-  float3 r = convert_float3(x);
-  char3 y = convert_char3(y);
-  uchar3 abs_x = abs(x);
-  uchar3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(char3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(char3 x)
-{
-  float3 r = convert_float3(x);
-  char3 y = convert_char3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(char3 x)
-{
-  float3 r = convert_float3(x);
-  char3 y = convert_char3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(char4 x)
-{
-  float4 r = convert_float4(x);
-  char4 y = convert_char4(y);
-  uchar4 abs_x = abs(x);
-  uchar4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(char4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(char4 x)
-{
-  float4 r = convert_float4(x);
-  char4 y = convert_char4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(char4 x)
-{
-  float4 r = convert_float4(x);
-  char4 y = convert_char4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(char8 x)
-{
-  float8 r = convert_float8(x);
-  char8 y = convert_char8(y);
-  uchar8 abs_x = abs(x);
-  uchar8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(char8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(char8 x)
-{
-  float8 r = convert_float8(x);
-  char8 y = convert_char8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(char8 x)
-{
-  float8 r = convert_float8(x);
-  char8 y = convert_char8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(char16 x)
-{
-  float16 r = convert_float16(x);
-  char16 y = convert_char16(y);
-  uchar16 abs_x = abs(x);
-  uchar16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(char16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(char16 x)
-{
-  float16 r = convert_float16(x);
-  char16 y = convert_char16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(char16 x)
-{
-  float16 r = convert_float16(x);
-  char16 y = convert_char16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(char x)
-{
-  double r = convert_double(x);
-  char y = convert_char(y);
-  uchar abs_x = abs(x);
-  uchar abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(char x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(char x)
-{
-  double r = convert_double(x);
-  char y = convert_char(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(char x)
-{
-  double r = convert_double(x);
-  char y = convert_char(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(char2 x)
-{
-  double2 r = convert_double2(x);
-  char2 y = convert_char2(y);
-  uchar2 abs_x = abs(x);
-  uchar2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(char2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(char2 x)
-{
-  double2 r = convert_double2(x);
-  char2 y = convert_char2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(char2 x)
-{
-  double2 r = convert_double2(x);
-  char2 y = convert_char2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(char3 x)
-{
-  double3 r = convert_double3(x);
-  char3 y = convert_char3(y);
-  uchar3 abs_x = abs(x);
-  uchar3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(char3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(char3 x)
-{
-  double3 r = convert_double3(x);
-  char3 y = convert_char3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(char3 x)
-{
-  double3 r = convert_double3(x);
-  char3 y = convert_char3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(char4 x)
-{
-  double4 r = convert_double4(x);
-  char4 y = convert_char4(y);
-  uchar4 abs_x = abs(x);
-  uchar4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(char4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(char4 x)
-{
-  double4 r = convert_double4(x);
-  char4 y = convert_char4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(char4 x)
-{
-  double4 r = convert_double4(x);
-  char4 y = convert_char4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(char8 x)
-{
-  double8 r = convert_double8(x);
-  char8 y = convert_char8(y);
-  uchar8 abs_x = abs(x);
-  uchar8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(char8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(char8 x)
-{
-  double8 r = convert_double8(x);
-  char8 y = convert_char8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(char8 x)
-{
-  double8 r = convert_double8(x);
-  char8 y = convert_char8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(char16 x)
-{
-  double16 r = convert_double16(x);
-  char16 y = convert_char16(y);
-  uchar16 abs_x = abs(x);
-  uchar16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(char16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(char16 x)
-{
-  double16 r = convert_double16(x);
-  char16 y = convert_char16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(char16 x)
-{
-  double16 r = convert_double16(x);
-  char16 y = convert_char16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(uchar x)
-{
-  float r = convert_float(x);
-  uchar y = convert_uchar(y);
-  uchar abs_x = abs(x);
-  uchar abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(uchar x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(uchar x)
-{
-  float r = convert_float(x);
-  uchar y = convert_uchar(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(uchar x)
-{
-  float r = convert_float(x);
-  uchar y = convert_uchar(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(uchar2 x)
-{
-  float2 r = convert_float2(x);
-  uchar2 y = convert_uchar2(y);
-  uchar2 abs_x = abs(x);
-  uchar2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(uchar2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(uchar2 x)
-{
-  float2 r = convert_float2(x);
-  uchar2 y = convert_uchar2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(uchar2 x)
-{
-  float2 r = convert_float2(x);
-  uchar2 y = convert_uchar2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(uchar3 x)
-{
-  float3 r = convert_float3(x);
-  uchar3 y = convert_uchar3(y);
-  uchar3 abs_x = abs(x);
-  uchar3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(uchar3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(uchar3 x)
-{
-  float3 r = convert_float3(x);
-  uchar3 y = convert_uchar3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(uchar3 x)
-{
-  float3 r = convert_float3(x);
-  uchar3 y = convert_uchar3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(uchar4 x)
-{
-  float4 r = convert_float4(x);
-  uchar4 y = convert_uchar4(y);
-  uchar4 abs_x = abs(x);
-  uchar4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(uchar4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(uchar4 x)
-{
-  float4 r = convert_float4(x);
-  uchar4 y = convert_uchar4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(uchar4 x)
-{
-  float4 r = convert_float4(x);
-  uchar4 y = convert_uchar4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(uchar8 x)
-{
-  float8 r = convert_float8(x);
-  uchar8 y = convert_uchar8(y);
-  uchar8 abs_x = abs(x);
-  uchar8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(uchar8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(uchar8 x)
-{
-  float8 r = convert_float8(x);
-  uchar8 y = convert_uchar8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(uchar8 x)
-{
-  float8 r = convert_float8(x);
-  uchar8 y = convert_uchar8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(uchar16 x)
-{
-  float16 r = convert_float16(x);
-  uchar16 y = convert_uchar16(y);
-  uchar16 abs_x = abs(x);
-  uchar16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(uchar16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(uchar16 x)
-{
-  float16 r = convert_float16(x);
-  uchar16 y = convert_uchar16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(uchar16 x)
-{
-  float16 r = convert_float16(x);
-  uchar16 y = convert_uchar16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(uchar x)
-{
-  double r = convert_double(x);
-  uchar y = convert_uchar(y);
-  uchar abs_x = abs(x);
-  uchar abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(uchar x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(uchar x)
-{
-  double r = convert_double(x);
-  uchar y = convert_uchar(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(uchar x)
-{
-  double r = convert_double(x);
-  uchar y = convert_uchar(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(uchar2 x)
-{
-  double2 r = convert_double2(x);
-  uchar2 y = convert_uchar2(y);
-  uchar2 abs_x = abs(x);
-  uchar2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(uchar2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(uchar2 x)
-{
-  double2 r = convert_double2(x);
-  uchar2 y = convert_uchar2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(uchar2 x)
-{
-  double2 r = convert_double2(x);
-  uchar2 y = convert_uchar2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(uchar3 x)
-{
-  double3 r = convert_double3(x);
-  uchar3 y = convert_uchar3(y);
-  uchar3 abs_x = abs(x);
-  uchar3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(uchar3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(uchar3 x)
-{
-  double3 r = convert_double3(x);
-  uchar3 y = convert_uchar3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(uchar3 x)
-{
-  double3 r = convert_double3(x);
-  uchar3 y = convert_uchar3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(uchar4 x)
-{
-  double4 r = convert_double4(x);
-  uchar4 y = convert_uchar4(y);
-  uchar4 abs_x = abs(x);
-  uchar4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(uchar4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(uchar4 x)
-{
-  double4 r = convert_double4(x);
-  uchar4 y = convert_uchar4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(uchar4 x)
-{
-  double4 r = convert_double4(x);
-  uchar4 y = convert_uchar4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(uchar8 x)
-{
-  double8 r = convert_double8(x);
-  uchar8 y = convert_uchar8(y);
-  uchar8 abs_x = abs(x);
-  uchar8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(uchar8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(uchar8 x)
-{
-  double8 r = convert_double8(x);
-  uchar8 y = convert_uchar8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(uchar8 x)
-{
-  double8 r = convert_double8(x);
-  uchar8 y = convert_uchar8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(uchar16 x)
-{
-  double16 r = convert_double16(x);
-  uchar16 y = convert_uchar16(y);
-  uchar16 abs_x = abs(x);
-  uchar16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(uchar16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(uchar16 x)
-{
-  double16 r = convert_double16(x);
-  uchar16 y = convert_uchar16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(uchar16 x)
-{
-  double16 r = convert_double16(x);
-  uchar16 y = convert_uchar16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(short x)
-{
-  float r = convert_float(x);
-  short y = convert_short(y);
-  ushort abs_x = abs(x);
-  ushort abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(short x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(short x)
-{
-  float r = convert_float(x);
-  short y = convert_short(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(short x)
-{
-  float r = convert_float(x);
-  short y = convert_short(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(short2 x)
-{
-  float2 r = convert_float2(x);
-  short2 y = convert_short2(y);
-  ushort2 abs_x = abs(x);
-  ushort2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(short2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(short2 x)
-{
-  float2 r = convert_float2(x);
-  short2 y = convert_short2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(short2 x)
-{
-  float2 r = convert_float2(x);
-  short2 y = convert_short2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(short3 x)
-{
-  float3 r = convert_float3(x);
-  short3 y = convert_short3(y);
-  ushort3 abs_x = abs(x);
-  ushort3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(short3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(short3 x)
-{
-  float3 r = convert_float3(x);
-  short3 y = convert_short3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(short3 x)
-{
-  float3 r = convert_float3(x);
-  short3 y = convert_short3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(short4 x)
-{
-  float4 r = convert_float4(x);
-  short4 y = convert_short4(y);
-  ushort4 abs_x = abs(x);
-  ushort4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(short4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(short4 x)
-{
-  float4 r = convert_float4(x);
-  short4 y = convert_short4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(short4 x)
-{
-  float4 r = convert_float4(x);
-  short4 y = convert_short4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(short8 x)
-{
-  float8 r = convert_float8(x);
-  short8 y = convert_short8(y);
-  ushort8 abs_x = abs(x);
-  ushort8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(short8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(short8 x)
-{
-  float8 r = convert_float8(x);
-  short8 y = convert_short8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(short8 x)
-{
-  float8 r = convert_float8(x);
-  short8 y = convert_short8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(short16 x)
-{
-  float16 r = convert_float16(x);
-  short16 y = convert_short16(y);
-  ushort16 abs_x = abs(x);
-  ushort16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(short16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(short16 x)
-{
-  float16 r = convert_float16(x);
-  short16 y = convert_short16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(short16 x)
-{
-  float16 r = convert_float16(x);
-  short16 y = convert_short16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(short x)
-{
-  double r = convert_double(x);
-  short y = convert_short(y);
-  ushort abs_x = abs(x);
-  ushort abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(short x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(short x)
-{
-  double r = convert_double(x);
-  short y = convert_short(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(short x)
-{
-  double r = convert_double(x);
-  short y = convert_short(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(short2 x)
-{
-  double2 r = convert_double2(x);
-  short2 y = convert_short2(y);
-  ushort2 abs_x = abs(x);
-  ushort2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(short2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(short2 x)
-{
-  double2 r = convert_double2(x);
-  short2 y = convert_short2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(short2 x)
-{
-  double2 r = convert_double2(x);
-  short2 y = convert_short2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(short3 x)
-{
-  double3 r = convert_double3(x);
-  short3 y = convert_short3(y);
-  ushort3 abs_x = abs(x);
-  ushort3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(short3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(short3 x)
-{
-  double3 r = convert_double3(x);
-  short3 y = convert_short3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(short3 x)
-{
-  double3 r = convert_double3(x);
-  short3 y = convert_short3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(short4 x)
-{
-  double4 r = convert_double4(x);
-  short4 y = convert_short4(y);
-  ushort4 abs_x = abs(x);
-  ushort4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(short4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(short4 x)
-{
-  double4 r = convert_double4(x);
-  short4 y = convert_short4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(short4 x)
-{
-  double4 r = convert_double4(x);
-  short4 y = convert_short4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(short8 x)
-{
-  double8 r = convert_double8(x);
-  short8 y = convert_short8(y);
-  ushort8 abs_x = abs(x);
-  ushort8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(short8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(short8 x)
-{
-  double8 r = convert_double8(x);
-  short8 y = convert_short8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(short8 x)
-{
-  double8 r = convert_double8(x);
-  short8 y = convert_short8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(short16 x)
-{
-  double16 r = convert_double16(x);
-  short16 y = convert_short16(y);
-  ushort16 abs_x = abs(x);
-  ushort16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(short16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(short16 x)
-{
-  double16 r = convert_double16(x);
-  short16 y = convert_short16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(short16 x)
-{
-  double16 r = convert_double16(x);
-  short16 y = convert_short16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(ushort x)
-{
-  float r = convert_float(x);
-  ushort y = convert_ushort(y);
-  ushort abs_x = abs(x);
-  ushort abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(ushort x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(ushort x)
-{
-  float r = convert_float(x);
-  ushort y = convert_ushort(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(ushort x)
-{
-  float r = convert_float(x);
-  ushort y = convert_ushort(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(ushort2 x)
-{
-  float2 r = convert_float2(x);
-  ushort2 y = convert_ushort2(y);
-  ushort2 abs_x = abs(x);
-  ushort2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(ushort2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(ushort2 x)
-{
-  float2 r = convert_float2(x);
-  ushort2 y = convert_ushort2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(ushort2 x)
-{
-  float2 r = convert_float2(x);
-  ushort2 y = convert_ushort2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(ushort3 x)
-{
-  float3 r = convert_float3(x);
-  ushort3 y = convert_ushort3(y);
-  ushort3 abs_x = abs(x);
-  ushort3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(ushort3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(ushort3 x)
-{
-  float3 r = convert_float3(x);
-  ushort3 y = convert_ushort3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(ushort3 x)
-{
-  float3 r = convert_float3(x);
-  ushort3 y = convert_ushort3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(ushort4 x)
-{
-  float4 r = convert_float4(x);
-  ushort4 y = convert_ushort4(y);
-  ushort4 abs_x = abs(x);
-  ushort4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(ushort4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(ushort4 x)
-{
-  float4 r = convert_float4(x);
-  ushort4 y = convert_ushort4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(ushort4 x)
-{
-  float4 r = convert_float4(x);
-  ushort4 y = convert_ushort4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(ushort8 x)
-{
-  float8 r = convert_float8(x);
-  ushort8 y = convert_ushort8(y);
-  ushort8 abs_x = abs(x);
-  ushort8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(ushort8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(ushort8 x)
-{
-  float8 r = convert_float8(x);
-  ushort8 y = convert_ushort8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(ushort8 x)
-{
-  float8 r = convert_float8(x);
-  ushort8 y = convert_ushort8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(ushort16 x)
-{
-  float16 r = convert_float16(x);
-  ushort16 y = convert_ushort16(y);
-  ushort16 abs_x = abs(x);
-  ushort16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(ushort16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(ushort16 x)
-{
-  float16 r = convert_float16(x);
-  ushort16 y = convert_ushort16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(ushort16 x)
-{
-  float16 r = convert_float16(x);
-  ushort16 y = convert_ushort16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(ushort x)
-{
-  double r = convert_double(x);
-  ushort y = convert_ushort(y);
-  ushort abs_x = abs(x);
-  ushort abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(ushort x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(ushort x)
-{
-  double r = convert_double(x);
-  ushort y = convert_ushort(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(ushort x)
-{
-  double r = convert_double(x);
-  ushort y = convert_ushort(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(ushort2 x)
-{
-  double2 r = convert_double2(x);
-  ushort2 y = convert_ushort2(y);
-  ushort2 abs_x = abs(x);
-  ushort2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(ushort2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(ushort2 x)
-{
-  double2 r = convert_double2(x);
-  ushort2 y = convert_ushort2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(ushort2 x)
-{
-  double2 r = convert_double2(x);
-  ushort2 y = convert_ushort2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(ushort3 x)
-{
-  double3 r = convert_double3(x);
-  ushort3 y = convert_ushort3(y);
-  ushort3 abs_x = abs(x);
-  ushort3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(ushort3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(ushort3 x)
-{
-  double3 r = convert_double3(x);
-  ushort3 y = convert_ushort3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(ushort3 x)
-{
-  double3 r = convert_double3(x);
-  ushort3 y = convert_ushort3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(ushort4 x)
-{
-  double4 r = convert_double4(x);
-  ushort4 y = convert_ushort4(y);
-  ushort4 abs_x = abs(x);
-  ushort4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(ushort4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(ushort4 x)
-{
-  double4 r = convert_double4(x);
-  ushort4 y = convert_ushort4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(ushort4 x)
-{
-  double4 r = convert_double4(x);
-  ushort4 y = convert_ushort4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(ushort8 x)
-{
-  double8 r = convert_double8(x);
-  ushort8 y = convert_ushort8(y);
-  ushort8 abs_x = abs(x);
-  ushort8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(ushort8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(ushort8 x)
-{
-  double8 r = convert_double8(x);
-  ushort8 y = convert_ushort8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(ushort8 x)
-{
-  double8 r = convert_double8(x);
-  ushort8 y = convert_ushort8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(ushort16 x)
-{
-  double16 r = convert_double16(x);
-  ushort16 y = convert_ushort16(y);
-  ushort16 abs_x = abs(x);
-  ushort16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(ushort16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(ushort16 x)
-{
-  double16 r = convert_double16(x);
-  ushort16 y = convert_ushort16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(ushort16 x)
-{
-  double16 r = convert_double16(x);
-  ushort16 y = convert_ushort16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(int x)
-{
-  float r = convert_float(x);
-  int y = convert_int(y);
-  uint abs_x = abs(x);
-  uint abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(int x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(int x)
-{
-  float r = convert_float(x);
-  int y = convert_int(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(int x)
-{
-  float r = convert_float(x);
-  int y = convert_int(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(int2 x)
-{
-  float2 r = convert_float2(x);
-  int2 y = convert_int2(y);
-  uint2 abs_x = abs(x);
-  uint2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(int2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(int2 x)
-{
-  float2 r = convert_float2(x);
-  int2 y = convert_int2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(int2 x)
-{
-  float2 r = convert_float2(x);
-  int2 y = convert_int2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(int3 x)
-{
-  float3 r = convert_float3(x);
-  int3 y = convert_int3(y);
-  uint3 abs_x = abs(x);
-  uint3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(int3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(int3 x)
-{
-  float3 r = convert_float3(x);
-  int3 y = convert_int3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(int3 x)
-{
-  float3 r = convert_float3(x);
-  int3 y = convert_int3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(int4 x)
-{
-  float4 r = convert_float4(x);
-  int4 y = convert_int4(y);
-  uint4 abs_x = abs(x);
-  uint4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(int4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(int4 x)
-{
-  float4 r = convert_float4(x);
-  int4 y = convert_int4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(int4 x)
-{
-  float4 r = convert_float4(x);
-  int4 y = convert_int4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(int8 x)
-{
-  float8 r = convert_float8(x);
-  int8 y = convert_int8(y);
-  uint8 abs_x = abs(x);
-  uint8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(int8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(int8 x)
-{
-  float8 r = convert_float8(x);
-  int8 y = convert_int8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(int8 x)
-{
-  float8 r = convert_float8(x);
-  int8 y = convert_int8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(int16 x)
-{
-  float16 r = convert_float16(x);
-  int16 y = convert_int16(y);
-  uint16 abs_x = abs(x);
-  uint16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(int16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(int16 x)
-{
-  float16 r = convert_float16(x);
-  int16 y = convert_int16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(int16 x)
-{
-  float16 r = convert_float16(x);
-  int16 y = convert_int16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(int x)
-{
-  double r = convert_double(x);
-  int y = convert_int(y);
-  uint abs_x = abs(x);
-  uint abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(int x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(int x)
-{
-  double r = convert_double(x);
-  int y = convert_int(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(int x)
-{
-  double r = convert_double(x);
-  int y = convert_int(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(int2 x)
-{
-  double2 r = convert_double2(x);
-  int2 y = convert_int2(y);
-  uint2 abs_x = abs(x);
-  uint2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(int2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(int2 x)
-{
-  double2 r = convert_double2(x);
-  int2 y = convert_int2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(int2 x)
-{
-  double2 r = convert_double2(x);
-  int2 y = convert_int2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(int3 x)
-{
-  double3 r = convert_double3(x);
-  int3 y = convert_int3(y);
-  uint3 abs_x = abs(x);
-  uint3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(int3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(int3 x)
-{
-  double3 r = convert_double3(x);
-  int3 y = convert_int3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(int3 x)
-{
-  double3 r = convert_double3(x);
-  int3 y = convert_int3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(int4 x)
-{
-  double4 r = convert_double4(x);
-  int4 y = convert_int4(y);
-  uint4 abs_x = abs(x);
-  uint4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(int4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(int4 x)
-{
-  double4 r = convert_double4(x);
-  int4 y = convert_int4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(int4 x)
-{
-  double4 r = convert_double4(x);
-  int4 y = convert_int4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(int8 x)
-{
-  double8 r = convert_double8(x);
-  int8 y = convert_int8(y);
-  uint8 abs_x = abs(x);
-  uint8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(int8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(int8 x)
-{
-  double8 r = convert_double8(x);
-  int8 y = convert_int8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(int8 x)
-{
-  double8 r = convert_double8(x);
-  int8 y = convert_int8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(int16 x)
-{
-  double16 r = convert_double16(x);
-  int16 y = convert_int16(y);
-  uint16 abs_x = abs(x);
-  uint16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(int16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(int16 x)
-{
-  double16 r = convert_double16(x);
-  int16 y = convert_int16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(int16 x)
-{
-  double16 r = convert_double16(x);
-  int16 y = convert_int16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(uint x)
-{
-  float r = convert_float(x);
-  uint y = convert_uint(y);
-  uint abs_x = abs(x);
-  uint abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(uint x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(uint x)
-{
-  float r = convert_float(x);
-  uint y = convert_uint(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(uint x)
-{
-  float r = convert_float(x);
-  uint y = convert_uint(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(uint2 x)
-{
-  float2 r = convert_float2(x);
-  uint2 y = convert_uint2(y);
-  uint2 abs_x = abs(x);
-  uint2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(uint2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(uint2 x)
-{
-  float2 r = convert_float2(x);
-  uint2 y = convert_uint2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(uint2 x)
-{
-  float2 r = convert_float2(x);
-  uint2 y = convert_uint2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(uint3 x)
-{
-  float3 r = convert_float3(x);
-  uint3 y = convert_uint3(y);
-  uint3 abs_x = abs(x);
-  uint3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(uint3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(uint3 x)
-{
-  float3 r = convert_float3(x);
-  uint3 y = convert_uint3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(uint3 x)
-{
-  float3 r = convert_float3(x);
-  uint3 y = convert_uint3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(uint4 x)
-{
-  float4 r = convert_float4(x);
-  uint4 y = convert_uint4(y);
-  uint4 abs_x = abs(x);
-  uint4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(uint4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(uint4 x)
-{
-  float4 r = convert_float4(x);
-  uint4 y = convert_uint4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(uint4 x)
-{
-  float4 r = convert_float4(x);
-  uint4 y = convert_uint4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(uint8 x)
-{
-  float8 r = convert_float8(x);
-  uint8 y = convert_uint8(y);
-  uint8 abs_x = abs(x);
-  uint8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(uint8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(uint8 x)
-{
-  float8 r = convert_float8(x);
-  uint8 y = convert_uint8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(uint8 x)
-{
-  float8 r = convert_float8(x);
-  uint8 y = convert_uint8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(uint16 x)
-{
-  float16 r = convert_float16(x);
-  uint16 y = convert_uint16(y);
-  uint16 abs_x = abs(x);
-  uint16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(uint16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(uint16 x)
-{
-  float16 r = convert_float16(x);
-  uint16 y = convert_uint16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(uint16 x)
-{
-  float16 r = convert_float16(x);
-  uint16 y = convert_uint16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(uint x)
-{
-  double r = convert_double(x);
-  uint y = convert_uint(y);
-  uint abs_x = abs(x);
-  uint abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(uint x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(uint x)
-{
-  double r = convert_double(x);
-  uint y = convert_uint(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(uint x)
-{
-  double r = convert_double(x);
-  uint y = convert_uint(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(uint2 x)
-{
-  double2 r = convert_double2(x);
-  uint2 y = convert_uint2(y);
-  uint2 abs_x = abs(x);
-  uint2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(uint2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(uint2 x)
-{
-  double2 r = convert_double2(x);
-  uint2 y = convert_uint2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(uint2 x)
-{
-  double2 r = convert_double2(x);
-  uint2 y = convert_uint2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(uint3 x)
-{
-  double3 r = convert_double3(x);
-  uint3 y = convert_uint3(y);
-  uint3 abs_x = abs(x);
-  uint3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(uint3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(uint3 x)
-{
-  double3 r = convert_double3(x);
-  uint3 y = convert_uint3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(uint3 x)
-{
-  double3 r = convert_double3(x);
-  uint3 y = convert_uint3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(uint4 x)
-{
-  double4 r = convert_double4(x);
-  uint4 y = convert_uint4(y);
-  uint4 abs_x = abs(x);
-  uint4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(uint4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(uint4 x)
-{
-  double4 r = convert_double4(x);
-  uint4 y = convert_uint4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(uint4 x)
-{
-  double4 r = convert_double4(x);
-  uint4 y = convert_uint4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(uint8 x)
-{
-  double8 r = convert_double8(x);
-  uint8 y = convert_uint8(y);
-  uint8 abs_x = abs(x);
-  uint8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(uint8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(uint8 x)
-{
-  double8 r = convert_double8(x);
-  uint8 y = convert_uint8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(uint8 x)
-{
-  double8 r = convert_double8(x);
-  uint8 y = convert_uint8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(uint16 x)
-{
-  double16 r = convert_double16(x);
-  uint16 y = convert_uint16(y);
-  uint16 abs_x = abs(x);
-  uint16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(uint16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(uint16 x)
-{
-  double16 r = convert_double16(x);
-  uint16 y = convert_uint16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(uint16 x)
-{
-  double16 r = convert_double16(x);
-  uint16 y = convert_uint16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(long x)
-{
-  float r = convert_float(x);
-  long y = convert_long(y);
-  ulong abs_x = abs(x);
-  ulong abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(long x)
-{
-  return convert_float(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(long x)
-{
-  float r = convert_float(x);
-  long y = convert_long(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(long x)
-{
-  float r = convert_float(x);
-  long y = convert_long(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(long2 x)
-{
-  float2 r = convert_float2(x);
-  long2 y = convert_long2(y);
-  ulong2 abs_x = abs(x);
-  ulong2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(long2 x)
-{
-  return convert_float2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(long2 x)
-{
-  float2 r = convert_float2(x);
-  long2 y = convert_long2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(long2 x)
-{
-  float2 r = convert_float2(x);
-  long2 y = convert_long2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(long3 x)
-{
-  float3 r = convert_float3(x);
-  long3 y = convert_long3(y);
-  ulong3 abs_x = abs(x);
-  ulong3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(long3 x)
-{
-  return convert_float3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(long3 x)
-{
-  float3 r = convert_float3(x);
-  long3 y = convert_long3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(long3 x)
-{
-  float3 r = convert_float3(x);
-  long3 y = convert_long3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(long4 x)
-{
-  float4 r = convert_float4(x);
-  long4 y = convert_long4(y);
-  ulong4 abs_x = abs(x);
-  ulong4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(long4 x)
-{
-  return convert_float4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(long4 x)
-{
-  float4 r = convert_float4(x);
-  long4 y = convert_long4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(long4 x)
-{
-  float4 r = convert_float4(x);
-  long4 y = convert_long4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(long8 x)
-{
-  float8 r = convert_float8(x);
-  long8 y = convert_long8(y);
-  ulong8 abs_x = abs(x);
-  ulong8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(long8 x)
-{
-  return convert_float8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(long8 x)
-{
-  float8 r = convert_float8(x);
-  long8 y = convert_long8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(long8 x)
-{
-  float8 r = convert_float8(x);
-  long8 y = convert_long8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(long16 x)
-{
-  float16 r = convert_float16(x);
-  long16 y = convert_long16(y);
-  ulong16 abs_x = abs(x);
-  ulong16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(long16 x)
-{
-  return convert_float16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(long16 x)
-{
-  float16 r = convert_float16(x);
-  long16 y = convert_long16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(long16 x)
-{
-  float16 r = convert_float16(x);
-  long16 y = convert_long16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(long x)
-{
-  double r = convert_double(x);
-  long y = convert_long(y);
-  ulong abs_x = abs(x);
-  ulong abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(long x)
-{
-  return convert_double(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(long x)
-{
-  double r = convert_double(x);
-  long y = convert_long(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(long x)
-{
-  double r = convert_double(x);
-  long y = convert_long(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(long2 x)
-{
-  double2 r = convert_double2(x);
-  long2 y = convert_long2(y);
-  ulong2 abs_x = abs(x);
-  ulong2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(long2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(long2 x)
-{
-  double2 r = convert_double2(x);
-  long2 y = convert_long2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(long2 x)
-{
-  double2 r = convert_double2(x);
-  long2 y = convert_long2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(long3 x)
-{
-  double3 r = convert_double3(x);
-  long3 y = convert_long3(y);
-  ulong3 abs_x = abs(x);
-  ulong3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(long3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(long3 x)
-{
-  double3 r = convert_double3(x);
-  long3 y = convert_long3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(long3 x)
-{
-  double3 r = convert_double3(x);
-  long3 y = convert_long3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(long4 x)
-{
-  double4 r = convert_double4(x);
-  long4 y = convert_long4(y);
-  ulong4 abs_x = abs(x);
-  ulong4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(long4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(long4 x)
-{
-  double4 r = convert_double4(x);
-  long4 y = convert_long4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(long4 x)
-{
-  double4 r = convert_double4(x);
-  long4 y = convert_long4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(long8 x)
-{
-  double8 r = convert_double8(x);
-  long8 y = convert_long8(y);
-  ulong8 abs_x = abs(x);
-  ulong8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(long8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(long8 x)
-{
-  double8 r = convert_double8(x);
-  long8 y = convert_long8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(long8 x)
-{
-  double8 r = convert_double8(x);
-  long8 y = convert_long8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(long16 x)
-{
-  double16 r = convert_double16(x);
-  long16 y = convert_long16(y);
-  ulong16 abs_x = abs(x);
-  ulong16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(long16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(long16 x)
-{
-  double16 r = convert_double16(x);
-  long16 y = convert_long16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(long16 x)
-{
-  double16 r = convert_double16(x);
-  long16 y = convert_long16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(ulong x)
-{
-  float r = convert_float(x);
-  ulong y = convert_ulong(y);
-  ulong abs_x = abs(x);
-  ulong abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(ulong x)
-{
-  return convert_float(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(ulong x)
-{
-  float r = convert_float(x);
-  ulong y = convert_ulong(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(ulong x)
-{
-  float r = convert_float(x);
-  ulong y = convert_ulong(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(ulong2 x)
-{
-  float2 r = convert_float2(x);
-  ulong2 y = convert_ulong2(y);
-  ulong2 abs_x = abs(x);
-  ulong2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(ulong2 x)
-{
-  return convert_float2(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(ulong2 x)
-{
-  float2 r = convert_float2(x);
-  ulong2 y = convert_ulong2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(ulong2 x)
-{
-  float2 r = convert_float2(x);
-  ulong2 y = convert_ulong2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(ulong3 x)
-{
-  float3 r = convert_float3(x);
-  ulong3 y = convert_ulong3(y);
-  ulong3 abs_x = abs(x);
-  ulong3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(ulong3 x)
-{
-  return convert_float3(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(ulong3 x)
-{
-  float3 r = convert_float3(x);
-  ulong3 y = convert_ulong3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(ulong3 x)
-{
-  float3 r = convert_float3(x);
-  ulong3 y = convert_ulong3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(ulong4 x)
-{
-  float4 r = convert_float4(x);
-  ulong4 y = convert_ulong4(y);
-  ulong4 abs_x = abs(x);
-  ulong4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(ulong4 x)
-{
-  return convert_float4(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(ulong4 x)
-{
-  float4 r = convert_float4(x);
-  ulong4 y = convert_ulong4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(ulong4 x)
-{
-  float4 r = convert_float4(x);
-  ulong4 y = convert_ulong4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(ulong8 x)
-{
-  float8 r = convert_float8(x);
-  ulong8 y = convert_ulong8(y);
-  ulong8 abs_x = abs(x);
-  ulong8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(ulong8 x)
-{
-  return convert_float8(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(ulong8 x)
-{
-  float8 r = convert_float8(x);
-  ulong8 y = convert_ulong8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(ulong8 x)
-{
-  float8 r = convert_float8(x);
-  ulong8 y = convert_ulong8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(ulong16 x)
-{
-  float16 r = convert_float16(x);
-  ulong16 y = convert_ulong16(y);
-  ulong16 abs_x = abs(x);
-  ulong16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(ulong16 x)
-{
-  return convert_float16(x);
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(ulong16 x)
-{
-  float16 r = convert_float16(x);
-  ulong16 y = convert_ulong16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-#endif
-#ifdef cles_khr_int64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(ulong16 x)
-{
-  float16 r = convert_float16(x);
-  ulong16 y = convert_ulong16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(ulong x)
-{
-  double r = convert_double(x);
-  ulong y = convert_ulong(y);
-  ulong abs_x = abs(x);
-  ulong abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(ulong x)
-{
-  return convert_double(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(ulong x)
-{
-  double r = convert_double(x);
-  ulong y = convert_ulong(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(ulong x)
-{
-  double r = convert_double(x);
-  ulong y = convert_ulong(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(ulong2 x)
-{
-  double2 r = convert_double2(x);
-  ulong2 y = convert_ulong2(y);
-  ulong2 abs_x = abs(x);
-  ulong2 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(ulong2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(ulong2 x)
-{
-  double2 r = convert_double2(x);
-  ulong2 y = convert_ulong2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(ulong2 x)
-{
-  double2 r = convert_double2(x);
-  ulong2 y = convert_ulong2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(ulong3 x)
-{
-  double3 r = convert_double3(x);
-  ulong3 y = convert_ulong3(y);
-  ulong3 abs_x = abs(x);
-  ulong3 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(ulong3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(ulong3 x)
-{
-  double3 r = convert_double3(x);
-  ulong3 y = convert_ulong3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(ulong3 x)
-{
-  double3 r = convert_double3(x);
-  ulong3 y = convert_ulong3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(ulong4 x)
-{
-  double4 r = convert_double4(x);
-  ulong4 y = convert_ulong4(y);
-  ulong4 abs_x = abs(x);
-  ulong4 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(ulong4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(ulong4 x)
-{
-  double4 r = convert_double4(x);
-  ulong4 y = convert_ulong4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(ulong4 x)
-{
-  double4 r = convert_double4(x);
-  ulong4 y = convert_ulong4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(ulong8 x)
-{
-  double8 r = convert_double8(x);
-  ulong8 y = convert_ulong8(y);
-  ulong8 abs_x = abs(x);
-  ulong8 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(ulong8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(ulong8 x)
-{
-  double8 r = convert_double8(x);
-  ulong8 y = convert_ulong8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(ulong8 x)
-{
-  double8 r = convert_double8(x);
-  ulong8 y = convert_ulong8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(ulong16 x)
-{
-  double16 r = convert_double16(x);
-  ulong16 y = convert_ulong16(y);
-  ulong16 abs_x = abs(x);
-  ulong16 abs_y = abs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(ulong16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(ulong16 x)
-{
-  double16 r = convert_double16(x);
-  ulong16 y = convert_ulong16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#if defined(cl_khr_fp64) && defined(cles_khr_int64)
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(ulong16 x)
-{
-  double16 r = convert_double16(x);
-  ulong16 y = convert_ulong16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(float x)
-{
-  float r = convert_float(x);
-  float y = convert_float(y);
-  float abs_x = fabs(x);
-  float abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(float x)
-{
-  return convert_float(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(float x)
-{
-  float r = convert_float(x);
-  float y = convert_float(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(float x)
-{
-  float r = convert_float(x);
-  float y = convert_float(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(float2 x)
-{
-  float2 r = convert_float2(x);
-  float2 y = convert_float2(y);
-  float2 abs_x = fabs(x);
-  float2 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(float2 x)
-{
-  return convert_float2(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(float2 x)
-{
-  float2 r = convert_float2(x);
-  float2 y = convert_float2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(float2 x)
-{
-  float2 r = convert_float2(x);
-  float2 y = convert_float2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(float3 x)
-{
-  float3 r = convert_float3(x);
-  float3 y = convert_float3(y);
-  float3 abs_x = fabs(x);
-  float3 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(float3 x)
-{
-  return convert_float3(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(float3 x)
-{
-  float3 r = convert_float3(x);
-  float3 y = convert_float3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(float3 x)
-{
-  float3 r = convert_float3(x);
-  float3 y = convert_float3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(float4 x)
-{
-  float4 r = convert_float4(x);
-  float4 y = convert_float4(y);
-  float4 abs_x = fabs(x);
-  float4 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(float4 x)
-{
-  return convert_float4(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(float4 x)
-{
-  float4 r = convert_float4(x);
-  float4 y = convert_float4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(float4 x)
-{
-  float4 r = convert_float4(x);
-  float4 y = convert_float4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(float8 x)
-{
-  float8 r = convert_float8(x);
-  float8 y = convert_float8(y);
-  float8 abs_x = fabs(x);
-  float8 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(float8 x)
-{
-  return convert_float8(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(float8 x)
-{
-  float8 r = convert_float8(x);
-  float8 y = convert_float8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(float8 x)
-{
-  float8 r = convert_float8(x);
-  float8 y = convert_float8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(float16 x)
-{
-  float16 r = convert_float16(x);
-  float16 y = convert_float16(y);
-  float16 abs_x = fabs(x);
-  float16 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(float16 x)
-{
-  return convert_float16(x);
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(float16 x)
-{
-  float16 r = convert_float16(x);
-  float16 y = convert_float16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(float16 x)
-{
-  float16 r = convert_float16(x);
-  float16 y = convert_float16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(float x)
-{
-  double r = convert_double(x);
-  float y = convert_float(y);
-  float abs_x = fabs(x);
-  float abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(float x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(float x)
-{
-  double r = convert_double(x);
-  float y = convert_float(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(float x)
-{
-  double r = convert_double(x);
-  float y = convert_float(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(float2 x)
-{
-  double2 r = convert_double2(x);
-  float2 y = convert_float2(y);
-  float2 abs_x = fabs(x);
-  float2 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(float2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(float2 x)
-{
-  double2 r = convert_double2(x);
-  float2 y = convert_float2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(float2 x)
-{
-  double2 r = convert_double2(x);
-  float2 y = convert_float2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(float3 x)
-{
-  double3 r = convert_double3(x);
-  float3 y = convert_float3(y);
-  float3 abs_x = fabs(x);
-  float3 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(float3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(float3 x)
-{
-  double3 r = convert_double3(x);
-  float3 y = convert_float3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(float3 x)
-{
-  double3 r = convert_double3(x);
-  float3 y = convert_float3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(float4 x)
-{
-  double4 r = convert_double4(x);
-  float4 y = convert_float4(y);
-  float4 abs_x = fabs(x);
-  float4 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(float4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(float4 x)
-{
-  double4 r = convert_double4(x);
-  float4 y = convert_float4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(float4 x)
-{
-  double4 r = convert_double4(x);
-  float4 y = convert_float4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(float8 x)
-{
-  double8 r = convert_double8(x);
-  float8 y = convert_float8(y);
-  float8 abs_x = fabs(x);
-  float8 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(float8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(float8 x)
-{
-  double8 r = convert_double8(x);
-  float8 y = convert_float8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(float8 x)
-{
-  double8 r = convert_double8(x);
-  float8 y = convert_float8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(float16 x)
-{
-  double16 r = convert_double16(x);
-  float16 y = convert_float16(y);
-  float16 abs_x = fabs(x);
-  float16 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(float16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(float16 x)
-{
-  double16 r = convert_double16(x);
-  float16 y = convert_float16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(float16 x)
-{
-  double16 r = convert_double16(x);
-  float16 y = convert_float16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtz(double x)
-{
-  float r = convert_float(x);
-  double y = convert_double(y);
-  double abs_x = fabs(x);
-  double abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float)-INFINITY), convert_int(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rte(double x)
-{
-  return convert_float(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtp(double x)
-{
-  float r = convert_float(x);
-  double y = convert_double(y);
-  return select(r, nextafter(r, (float)INFINITY), convert_int(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float convert_float_rtn(double x)
-{
-  float r = convert_float(x);
-  double y = convert_double(y);
-  return select(r, nextafter(r, (float)-INFINITY), convert_int(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtz(double2 x)
-{
-  float2 r = convert_float2(x);
-  double2 y = convert_double2(y);
-  double2 abs_x = fabs(x);
-  double2 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float2)-INFINITY), convert_int2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rte(double2 x)
-{
-  return convert_float2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtp(double2 x)
-{
-  float2 r = convert_float2(x);
-  double2 y = convert_double2(y);
-  return select(r, nextafter(r, (float2)INFINITY), convert_int2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float2 convert_float2_rtn(double2 x)
-{
-  float2 r = convert_float2(x);
-  double2 y = convert_double2(y);
-  return select(r, nextafter(r, (float2)-INFINITY), convert_int2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtz(double3 x)
-{
-  float3 r = convert_float3(x);
-  double3 y = convert_double3(y);
-  double3 abs_x = fabs(x);
-  double3 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float3)-INFINITY), convert_int3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rte(double3 x)
-{
-  return convert_float3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtp(double3 x)
-{
-  float3 r = convert_float3(x);
-  double3 y = convert_double3(y);
-  return select(r, nextafter(r, (float3)INFINITY), convert_int3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float3 convert_float3_rtn(double3 x)
-{
-  float3 r = convert_float3(x);
-  double3 y = convert_double3(y);
-  return select(r, nextafter(r, (float3)-INFINITY), convert_int3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtz(double4 x)
-{
-  float4 r = convert_float4(x);
-  double4 y = convert_double4(y);
-  double4 abs_x = fabs(x);
-  double4 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float4)-INFINITY), convert_int4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rte(double4 x)
-{
-  return convert_float4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtp(double4 x)
-{
-  float4 r = convert_float4(x);
-  double4 y = convert_double4(y);
-  return select(r, nextafter(r, (float4)INFINITY), convert_int4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float4 convert_float4_rtn(double4 x)
-{
-  float4 r = convert_float4(x);
-  double4 y = convert_double4(y);
-  return select(r, nextafter(r, (float4)-INFINITY), convert_int4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtz(double8 x)
-{
-  float8 r = convert_float8(x);
-  double8 y = convert_double8(y);
-  double8 abs_x = fabs(x);
-  double8 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float8)-INFINITY), convert_int8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rte(double8 x)
-{
-  return convert_float8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtp(double8 x)
-{
-  float8 r = convert_float8(x);
-  double8 y = convert_double8(y);
-  return select(r, nextafter(r, (float8)INFINITY), convert_int8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float8 convert_float8_rtn(double8 x)
-{
-  float8 r = convert_float8(x);
-  double8 y = convert_double8(y);
-  return select(r, nextafter(r, (float8)-INFINITY), convert_int8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtz(double16 x)
-{
-  float16 r = convert_float16(x);
-  double16 y = convert_double16(y);
-  double16 abs_x = fabs(x);
-  double16 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (float16)-INFINITY), convert_int16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rte(double16 x)
-{
-  return convert_float16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtp(double16 x)
-{
-  float16 r = convert_float16(x);
-  double16 y = convert_double16(y);
-  return select(r, nextafter(r, (float16)INFINITY), convert_int16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-float16 convert_float16_rtn(double16 x)
-{
-  float16 r = convert_float16(x);
-  double16 y = convert_double16(y);
-  return select(r, nextafter(r, (float16)-INFINITY), convert_int16(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtz(double x)
-{
-  double r = convert_double(x);
-  double y = convert_double(y);
-  double abs_x = fabs(x);
-  double abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double)-INFINITY), convert_long(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rte(double x)
-{
-  return convert_double(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtp(double x)
-{
-  double r = convert_double(x);
-  double y = convert_double(y);
-  return select(r, nextafter(r, (double)INFINITY), convert_long(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double convert_double_rtn(double x)
-{
-  double r = convert_double(x);
-  double y = convert_double(y);
-  return select(r, nextafter(r, (double)-INFINITY), convert_long(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtz(double2 x)
-{
-  double2 r = convert_double2(x);
-  double2 y = convert_double2(y);
-  double2 abs_x = fabs(x);
-  double2 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double2)-INFINITY), convert_long2(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rte(double2 x)
-{
-  return convert_double2(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtp(double2 x)
-{
-  double2 r = convert_double2(x);
-  double2 y = convert_double2(y);
-  return select(r, nextafter(r, (double2)INFINITY), convert_long2(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double2 convert_double2_rtn(double2 x)
-{
-  double2 r = convert_double2(x);
-  double2 y = convert_double2(y);
-  return select(r, nextafter(r, (double2)-INFINITY), convert_long2(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtz(double3 x)
-{
-  double3 r = convert_double3(x);
-  double3 y = convert_double3(y);
-  double3 abs_x = fabs(x);
-  double3 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double3)-INFINITY), convert_long3(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rte(double3 x)
-{
-  return convert_double3(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtp(double3 x)
-{
-  double3 r = convert_double3(x);
-  double3 y = convert_double3(y);
-  return select(r, nextafter(r, (double3)INFINITY), convert_long3(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double3 convert_double3_rtn(double3 x)
-{
-  double3 r = convert_double3(x);
-  double3 y = convert_double3(y);
-  return select(r, nextafter(r, (double3)-INFINITY), convert_long3(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtz(double4 x)
-{
-  double4 r = convert_double4(x);
-  double4 y = convert_double4(y);
-  double4 abs_x = fabs(x);
-  double4 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double4)-INFINITY), convert_long4(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rte(double4 x)
-{
-  return convert_double4(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtp(double4 x)
-{
-  double4 r = convert_double4(x);
-  double4 y = convert_double4(y);
-  return select(r, nextafter(r, (double4)INFINITY), convert_long4(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double4 convert_double4_rtn(double4 x)
-{
-  double4 r = convert_double4(x);
-  double4 y = convert_double4(y);
-  return select(r, nextafter(r, (double4)-INFINITY), convert_long4(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtz(double8 x)
-{
-  double8 r = convert_double8(x);
-  double8 y = convert_double8(y);
-  double8 abs_x = fabs(x);
-  double8 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double8)-INFINITY), convert_long8(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rte(double8 x)
-{
-  return convert_double8(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtp(double8 x)
-{
-  double8 r = convert_double8(x);
-  double8 y = convert_double8(y);
-  return select(r, nextafter(r, (double8)INFINITY), convert_long8(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double8 convert_double8_rtn(double8 x)
-{
-  double8 r = convert_double8(x);
-  double8 y = convert_double8(y);
-  return select(r, nextafter(r, (double8)-INFINITY), convert_long8(y > x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtz(double16 x)
-{
-  double16 r = convert_double16(x);
-  double16 y = convert_double16(y);
-  double16 abs_x = fabs(x);
-  double16 abs_y = fabs(y);
-  return select(r, nextafter(r, sign(r) * (double16)-INFINITY), convert_long16(abs_y > abs_x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rte(double16 x)
-{
-  return convert_double16(x);
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtp(double16 x)
-{
-  double16 r = convert_double16(x);
-  double16 y = convert_double16(y);
-  return select(r, nextafter(r, (double16)INFINITY), convert_long16(y < x));
-}
-#endif
-#ifdef cl_khr_fp64
-_CLC_DEF _CLC_OVERLOAD
-double16 convert_double16_rtn(double16 x)
-{
-  double16 r = convert_double16(x);
-  double16 y = convert_double16(y);
-  return select(r, nextafter(r, (double16)-INFINITY), convert_long16(y > x));
-}
-#endif
diff --git a/libclc/generic/lib/gen_convert.py b/libclc/generic/lib/gen_convert.py
deleted file mode 100644
index f91a89a3c3215ca1a804f483677a66d47f75898e..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/gen_convert.py
+++ /dev/null
@@ -1,388 +0,0 @@
-#!/usr/bin/env python3
-
-# OpenCL built-in library: type conversion functions
-#
-# Copyright (c) 2013 Victor Oliveira <victormatheus@gmail.com>
-# Copyright (c) 2013 Jesse Towner <jessetowner@lavabit.com>
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-# This script generates the file convert_type.cl, which contains all of the
-# OpenCL functions in the form:
-#
-# convert_<destTypen><_sat><_roundingMode>(<sourceTypen>)
-
-types = ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'long', 'ulong', 'float', 'double']
-int_types = ['char', 'uchar', 'short', 'ushort', 'int', 'uint', 'long', 'ulong']
-unsigned_types = ['uchar', 'ushort', 'uint', 'ulong']
-float_types = ['float', 'double']
-int64_types = ['long', 'ulong']
-float64_types = ['double']
-vector_sizes = ['', '2', '3', '4', '8', '16']
-half_sizes = [('2',''), ('4','2'), ('8','4'), ('16','8')]
-
-saturation = ['','_sat']
-rounding_modes = ['_rtz','_rte','_rtp','_rtn']
-float_prefix = {'float':'FLT_', 'double':'DBL_'}
-float_suffix = {'float':'f', 'double':''}
-
-bool_type = {'char'  : 'char',
-             'uchar' : 'char',
-             'short' : 'short',
-             'ushort': 'short',
-             'int'   : 'int',
-             'uint'  : 'int',
-             'long'  : 'long',
-             'ulong' : 'long',
-             'float'  : 'int',
-             'double' : 'long'}
-
-unsigned_type = {'char'  : 'uchar',
-                 'uchar' : 'uchar',
-                 'short' : 'ushort',
-                 'ushort': 'ushort',
-                 'int'   : 'uint',
-                 'uint'  : 'uint',
-                 'long'  : 'ulong',
-                 'ulong' : 'ulong'}
-
-sizeof_type = {'char'  : 1, 'uchar'  : 1,
-               'short' : 2, 'ushort' : 2,
-               'int'   : 4, 'uint'   : 4,
-               'long'  : 8, 'ulong'  : 8,
-               'float' : 4, 'double' : 8}
-
-limit_max = {'char'  : 'CHAR_MAX',
-             'uchar' : 'UCHAR_MAX',
-             'short' : 'SHRT_MAX',
-             'ushort': 'USHRT_MAX',
-             'int'   : 'INT_MAX',
-             'uint'  : 'UINT_MAX',
-             'long'  : 'LONG_MAX',
-             'ulong' : 'ULONG_MAX'}
-
-limit_min = {'char'  : 'CHAR_MIN',
-             'uchar' : '0',
-             'short' : 'SHRT_MIN',
-             'ushort': '0',
-             'int'   : 'INT_MIN',
-             'uint'  : '0',
-             'long'  : 'LONG_MIN',
-             'ulong' : '0'}
-
-def conditional_guard(src, dst):
-  int64_count = 0
-  float64_count = 0
-  if src in int64_types:
-    int64_count = int64_count +1
-  elif src in float64_types:
-    float64_count = float64_count + 1
-  if dst in int64_types:
-    int64_count = int64_count +1
-  elif dst in float64_types:
-    float64_count = float64_count + 1
-  if float64_count > 0 and int64_count > 0:
-    print("#if defined(cl_khr_fp64) && defined(cles_khr_int64)")
-    return True
-  elif float64_count > 0:
-    print("#ifdef cl_khr_fp64")
-    return True
-  elif int64_count > 0:
-    print("#ifdef cles_khr_int64")
-    return True
-  return False
-
-
-print("""/* !!!! AUTOGENERATED FILE generated by convert_type.py !!!!!
-
-   DON'T CHANGE THIS FILE. MAKE YOUR CHANGES TO convert_type.py AND RUN:
-   $ ./generate-conversion-type-cl.sh
-
-   OpenCL type conversion functions
-
-   Copyright (c) 2013 Victor Oliveira <victormatheus@gmail.com>
-   Copyright (c) 2013 Jesse Towner <jessetowner@lavabit.com>
-
-   Permission is hereby granted, free of charge, to any person obtaining a copy
-   of this software and associated documentation files (the "Software"), to deal
-   in the Software without restriction, including without limitation the rights
-   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-   copies of the Software, and to permit persons to whom the Software is
-   furnished to do so, subject to the following conditions:
-
-   The above copyright notice and this permission notice shall be included in
-   all copies or substantial portions of the Software.
-
-   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-   THE SOFTWARE.
-*/
-
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-""")
-
-#
-# Default Conversions
-#
-# All conversions are in accordance with the OpenCL specification,
-# which cites the C99 conversion rules.
-#
-# Casting from floating point to integer results in conversions
-# with truncation, so it should be suitable for the default convert
-# functions.
-#
-# Conversions from integer to floating-point, and floating-point to
-# floating-point through casting is done with the default rounding
-# mode. While C99 allows dynamically changing the rounding mode
-# during runtime, it is not a supported feature in OpenCL according
-# to Section 7.1 - Rounding Modes in the OpenCL 1.2 specification.
-#
-# Therefore, we can assume for optimization purposes that the
-# rounding mode is fixed to round-to-nearest-even. Platform target
-# authors should ensure that the rounding-control registers remain
-# in this state, and that this invariant holds.
-#
-# Also note, even though the OpenCL specification isn't entirely
-# clear on this matter, we implement all rounding mode combinations
-# even for integer-to-integer conversions. When such a conversion
-# is used, the rounding mode is ignored.
-#
-
-def generate_default_conversion(src, dst, mode):
-  close_conditional = conditional_guard(src, dst)
-
-  # scalar conversions
-  print("""_CLC_DEF _CLC_OVERLOAD
-{DST} convert_{DST}{M}({SRC} x)
-{{
-  return ({DST})x;
-}}
-""".format(SRC=src, DST=dst, M=mode))
-
-  # vector conversions, done through decomposition to components
-  for size, half_size in half_sizes:
-    print("""_CLC_DEF _CLC_OVERLOAD
-{DST}{N} convert_{DST}{N}{M}({SRC}{N} x)
-{{
-  return ({DST}{N})(convert_{DST}{H}(x.lo), convert_{DST}{H}(x.hi));
-}}
-""".format(SRC=src, DST=dst, N=size, H=half_size, M=mode))
-
-  # 3-component vector conversions
-  print("""_CLC_DEF _CLC_OVERLOAD
-{DST}3 convert_{DST}3{M}({SRC}3 x)
-{{
-  return ({DST}3)(convert_{DST}2(x.s01), convert_{DST}(x.s2));
-}}""".format(SRC=src, DST=dst, M=mode))
-
-  if close_conditional:
-    print("#endif")
-
-
-for src in types:
-  for dst in types:
-    generate_default_conversion(src, dst, '')
-
-for src in int_types:
-  for dst in int_types:
-    for mode in rounding_modes:
-      generate_default_conversion(src, dst, mode)
-
-#
-# Saturated Conversions To Integers
-#
-# These functions are dependent on the unsaturated conversion functions
-# generated above, and use clamp, max, min, and select to eliminate
-# branching and vectorize the conversions.
-#
-# Again, as above, we allow all rounding modes for integer-to-integer
-# conversions with saturation.
-#
-
-def generate_saturated_conversion(src, dst, size):
-  # Header
-  close_conditional = conditional_guard(src, dst)
-  print("""_CLC_DEF _CLC_OVERLOAD
-{DST}{N} convert_{DST}{N}_sat({SRC}{N} x)
-{{""".format(DST=dst, SRC=src, N=size))
-
-  # FIXME: This is a work around for lack of select function with
-  # signed third argument when the first two arguments are unsigned types.
-  # We cast to the signed type for sign-extension, then do a bitcast to
-  # the unsigned type.
-  if dst in unsigned_types:
-    bool_prefix = "as_{DST}{N}(convert_{BOOL}{N}".format(DST=dst, BOOL=bool_type[dst], N=size);
-    bool_suffix = ")"
-  else:
-    bool_prefix = "convert_{BOOL}{N}".format(BOOL=bool_type[dst], N=size);
-    bool_suffix = ""
-
-  # Body
-  if src == dst:
-
-    # Conversion between same types
-    print("  return x;")
-
-  elif src in float_types:
-
-    # Conversion from float to int
-    print("""  {DST}{N} y = convert_{DST}{N}(x);
-  y = select(y, ({DST}{N}){DST_MIN}, {BP}(x < ({SRC}{N}){DST_MIN}){BS});
-  y = select(y, ({DST}{N}){DST_MAX}, {BP}(x > ({SRC}{N}){DST_MAX}){BS});
-  return y;""".format(SRC=src, DST=dst, N=size,
-      DST_MIN=limit_min[dst], DST_MAX=limit_max[dst],
-      BP=bool_prefix, BS=bool_suffix))
-
-  else:
-
-    # Integer to integer convesion with sizeof(src) == sizeof(dst)
-    if sizeof_type[src] == sizeof_type[dst]:
-      if src in unsigned_types:
-        print("  x = min(x, ({SRC}){DST_MAX});".format(SRC=src, DST_MAX=limit_max[dst]))
-      else:
-        print("  x = max(x, ({SRC})0);".format(SRC=src))
-
-    # Integer to integer conversion where sizeof(src) > sizeof(dst)
-    elif sizeof_type[src] > sizeof_type[dst]:
-      if src in unsigned_types:
-        print("  x = min(x, ({SRC}){DST_MAX});".format(SRC=src, DST_MAX=limit_max[dst]))
-      else:
-        print("  x = clamp(x, ({SRC}){DST_MIN}, ({SRC}){DST_MAX});"
-          .format(SRC=src, DST_MIN=limit_min[dst], DST_MAX=limit_max[dst]))
-
-    # Integer to integer conversion where sizeof(src) < sizeof(dst)
-    elif src not in unsigned_types and dst in unsigned_types:
-        print("  x = max(x, ({SRC})0);".format(SRC=src))
-
-    print("  return convert_{DST}{N}(x);".format(DST=dst, N=size))
-
-  # Footer
-  print("}")
-  if close_conditional:
-    print("#endif")
-
-
-for src in types:
-  for dst in int_types:
-    for size in vector_sizes:
-      generate_saturated_conversion(src, dst, size)
-
-
-def generate_saturated_conversion_with_rounding(src, dst, size, mode):
-  # Header
-  close_conditional = conditional_guard(src, dst)
-
-  # Body
-  print("""_CLC_DEF _CLC_OVERLOAD
-{DST}{N} convert_{DST}{N}_sat{M}({SRC}{N} x)
-{{
-  return convert_{DST}{N}_sat(x);
-}}
-""".format(DST=dst, SRC=src, N=size, M=mode))
-
-  # Footer
-  if close_conditional:
-    print("#endif")
-
-
-for src in int_types:
-  for dst in int_types:
-    for size in vector_sizes:
-      for mode in rounding_modes:
-        generate_saturated_conversion_with_rounding(src, dst, size, mode)
-
-#
-# Conversions To/From Floating-Point With Rounding
-#
-# Note that we assume as above that casts from floating-point to
-# integer are done with truncation, and that the default rounding
-# mode is fixed to round-to-nearest-even, as per C99 and OpenCL
-# rounding rules.
-#
-# These functions rely on the use of abs, ceil, fabs, floor,
-# nextafter, sign, rint and the above generated conversion functions.
-#
-# Only conversions to integers can have saturation.
-#
-
-def generate_float_conversion(src, dst, size, mode, sat):
-  # Header
-  close_conditional = conditional_guard(src, dst)
-  print("""_CLC_DEF _CLC_OVERLOAD
-{DST}{N} convert_{DST}{N}{S}{M}({SRC}{N} x)
-{{""".format(SRC=src, DST=dst, N=size, M=mode, S=sat))
-
-  # Perform conversion
-  if dst in int_types:
-    if mode == '_rte':
-      print("  x = rint(x);");
-    elif mode == '_rtp':
-      print("  x = ceil(x);");
-    elif mode == '_rtn':
-      print("  x = floor(x);");
-    print("  return convert_{DST}{N}{S}(x);".format(DST=dst, N=size, S=sat))
-  elif mode == '_rte':
-    print("  return convert_{DST}{N}(x);".format(DST=dst, N=size))
-  else:
-    print("  {DST}{N} r = convert_{DST}{N}(x);".format(DST=dst, N=size))
-    print("  {SRC}{N} y = convert_{SRC}{N}(y);".format(SRC=src, N=size))
-    if mode == '_rtz':
-      if src in int_types:
-        print("  {USRC}{N} abs_x = abs(x);".format(USRC=unsigned_type[src], N=size))
-        print("  {USRC}{N} abs_y = abs(y);".format(USRC=unsigned_type[src], N=size))
-      else:
-        print("  {SRC}{N} abs_x = fabs(x);".format(SRC=src, N=size))
-        print("  {SRC}{N} abs_y = fabs(y);".format(SRC=src, N=size))
-      print("  return select(r, nextafter(r, sign(r) * ({DST}{N})-INFINITY), convert_{BOOL}{N}(abs_y > abs_x));"
-        .format(DST=dst, N=size, BOOL=bool_type[dst]))
-    if mode == '_rtp':
-      print("  return select(r, nextafter(r, ({DST}{N})INFINITY), convert_{BOOL}{N}(y < x));"
-        .format(DST=dst, N=size, BOOL=bool_type[dst]))
-    if mode == '_rtn':
-      print("  return select(r, nextafter(r, ({DST}{N})-INFINITY), convert_{BOOL}{N}(y > x));"
-        .format(DST=dst, N=size, BOOL=bool_type[dst]))
-
-  # Footer
-  print("}")
-  if close_conditional:
-    print("#endif")
-
-
-for src in float_types:
-  for dst in int_types:
-    for size in vector_sizes:
-      for mode in rounding_modes:
-        for sat in saturation:
-          generate_float_conversion(src, dst, size, mode, sat)
-
-
-for src in types:
-  for dst in float_types:
-    for size in vector_sizes:
-      for mode in rounding_modes:
-        generate_float_conversion(src, dst, size, mode, '')
diff --git a/libclc/generic/lib/geometric/cross.cl b/libclc/generic/lib/geometric/cross.cl
deleted file mode 100644
index 3b4ca6cafae9a8fa4959da9be4ebe2a78d67c4fd..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/geometric/cross.cl
+++ /dev/null
@@ -1,25 +0,0 @@
-#include <clc/clc.h>
-
-_CLC_OVERLOAD _CLC_DEF float3 cross(float3 p0, float3 p1) {
-  return (float3)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
-                  p0.x*p1.y - p0.y*p1.x);
-}
-
-_CLC_OVERLOAD _CLC_DEF float4 cross(float4 p0, float4 p1) {
-  return (float4)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
-                  p0.x*p1.y - p0.y*p1.x, 0.f);
-}
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-_CLC_OVERLOAD _CLC_DEF double3 cross(double3 p0, double3 p1) {
-  return (double3)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
-                   p0.x*p1.y - p0.y*p1.x);
-}
-
-_CLC_OVERLOAD _CLC_DEF double4 cross(double4 p0, double4 p1) {
-  return (double4)(p0.y*p1.z - p0.z*p1.y, p0.z*p1.x - p0.x*p1.z,
-                   p0.x*p1.y - p0.y*p1.x, 0.f);
-}
-#endif
diff --git a/libclc/generic/lib/geometric/dot.cl b/libclc/generic/lib/geometric/dot.cl
deleted file mode 100644
index 0d6fe6c9a4e8a1d29b8852eedaa11eef855d6b7f..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/geometric/dot.cl
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <clc/clc.h>
-
-_CLC_OVERLOAD _CLC_DEF float dot(float p0, float p1) {
-  return p0*p1;
-}
-
-_CLC_OVERLOAD _CLC_DEF float dot(float2 p0, float2 p1) {
-  return p0.x*p1.x + p0.y*p1.y;
-}
-
-_CLC_OVERLOAD _CLC_DEF float dot(float3 p0, float3 p1) {
-  return p0.x*p1.x + p0.y*p1.y + p0.z*p1.z;
-}
-
-_CLC_OVERLOAD _CLC_DEF float dot(float4 p0, float4 p1) {
-  return p0.x*p1.x + p0.y*p1.y + p0.z*p1.z + p0.w*p1.w;
-}
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-_CLC_OVERLOAD _CLC_DEF double dot(double p0, double p1) {
-  return p0*p1;
-}
-
-_CLC_OVERLOAD _CLC_DEF double dot(double2 p0, double2 p1) {
-  return p0.x*p1.x + p0.y*p1.y;
-}
-
-_CLC_OVERLOAD _CLC_DEF double dot(double3 p0, double3 p1) {
-  return p0.x*p1.x + p0.y*p1.y + p0.z*p1.z;
-}
-
-_CLC_OVERLOAD _CLC_DEF double dot(double4 p0, double4 p1) {
-  return p0.x*p1.x + p0.y*p1.y + p0.z*p1.z + p0.w*p1.w;
-}
-
-#endif
diff --git a/libclc/generic/lib/geometric/length.cl b/libclc/generic/lib/geometric/length.cl
deleted file mode 100644
index ef087c75f9f1c8f73d555b543ca70980d3950090..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/geometric/length.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <length.inc>
-#include <clc/geometric/floatn.inc>
diff --git a/libclc/generic/lib/geometric/length.inc b/libclc/generic/lib/geometric/length.inc
deleted file mode 100644
index 5faaaffbd6a8b5a33f83def3ce03e54f0b7ae03a..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/geometric/length.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_FLOAT length(__CLC_FLOATN p) {
-  return native_sqrt(dot(p, p));
-}
diff --git a/libclc/generic/lib/geometric/normalize.cl b/libclc/generic/lib/geometric/normalize.cl
deleted file mode 100644
index b06b2fe3a4c49cd84d4ed97f1cded0bc7a2868bc..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/geometric/normalize.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <normalize.inc>
-#include <clc/geometric/floatn.inc>
diff --git a/libclc/generic/lib/geometric/normalize.inc b/libclc/generic/lib/geometric/normalize.inc
deleted file mode 100644
index 423ff79fc4e24ea0e5f05c78ad74a6c2fc53a10d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/geometric/normalize.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_FLOATN normalize(__CLC_FLOATN p) {
-  return p/length(p);
-}
diff --git a/libclc/generic/lib/integer/abs.cl b/libclc/generic/lib/integer/abs.cl
deleted file mode 100644
index faff8d05fefc7969bfc1e9ca98fad1df5453e44d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/abs.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <abs.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/lib/integer/abs.inc b/libclc/generic/lib/integer/abs.inc
deleted file mode 100644
index cfe7bfecd294fc6b16c0af1f30d989ce816d7664..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/abs.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE abs(__CLC_GENTYPE x) {
-  return __builtin_astype((__CLC_GENTYPE)(x > (__CLC_GENTYPE)(0) ? x : -x), __CLC_U_GENTYPE);
-}
diff --git a/libclc/generic/lib/integer/abs_diff.cl b/libclc/generic/lib/integer/abs_diff.cl
deleted file mode 100644
index 3d751057819e9093acdb52b31db23f82a8ae98ad..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/abs_diff.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <abs_diff.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/lib/integer/abs_diff.inc b/libclc/generic/lib/integer/abs_diff.inc
deleted file mode 100644
index f39c3ff4d3e8ab65347258675669520b9ab76e42..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/abs_diff.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_U_GENTYPE abs_diff(__CLC_GENTYPE x, __CLC_GENTYPE y) {
-  return __builtin_astype((__CLC_GENTYPE)(x > y ? x-y : y-x), __CLC_U_GENTYPE);
-}
diff --git a/libclc/generic/lib/integer/add_sat.cl b/libclc/generic/lib/integer/add_sat.cl
deleted file mode 100644
index d4df66db3ede91c1a9050d1ef7bff30c5b602c2d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/add_sat.cl
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-// From add_sat.ll
-_CLC_DECL char   __clc_add_sat_s8(char, char);
-_CLC_DECL uchar  __clc_add_sat_u8(uchar, uchar);
-_CLC_DECL short  __clc_add_sat_s16(short, short);
-_CLC_DECL ushort __clc_add_sat_u16(ushort, ushort);
-_CLC_DECL int    __clc_add_sat_s32(int, int);
-_CLC_DECL uint   __clc_add_sat_u32(uint, uint);
-_CLC_DECL long   __clc_add_sat_s64(long, long);
-_CLC_DECL ulong  __clc_add_sat_u64(ulong, ulong);
-
-_CLC_OVERLOAD _CLC_DEF char add_sat(char x, char y) {
-  return __clc_add_sat_s8(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF uchar add_sat(uchar x, uchar y) {
-  return __clc_add_sat_u8(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF short add_sat(short x, short y) {
-  return __clc_add_sat_s16(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF ushort add_sat(ushort x, ushort y) {
-  return __clc_add_sat_u16(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF int add_sat(int x, int y) {
-  return __clc_add_sat_s32(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF uint add_sat(uint x, uint y) {
-  return __clc_add_sat_u32(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF long add_sat(long x, long y) {
-  return __clc_add_sat_s64(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF ulong add_sat(ulong x, ulong y) {
-  return __clc_add_sat_u64(x, y);
-}
-
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, add_sat, char, char)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, add_sat, uchar, uchar)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, add_sat, short, short)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, add_sat, ushort, ushort)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, add_sat, int, int)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uint, add_sat, uint, uint)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, long, add_sat, long, long)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ulong, add_sat, ulong, ulong)
diff --git a/libclc/generic/lib/integer/add_sat_if.ll b/libclc/generic/lib/integer/add_sat_if.ll
deleted file mode 100644
index bcbe4c0dd348fa94afaea0e000c88348dbf06b73..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/add_sat_if.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-declare i8 @__clc_add_sat_impl_s8(i8 %x, i8 %y)
-
-define i8 @__clc_add_sat_s8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call i8 @__clc_add_sat_impl_s8(i8 %x, i8 %y)
-  ret i8 %call
-}
-
-declare i8 @__clc_add_sat_impl_u8(i8 %x, i8 %y)
-
-define i8 @__clc_add_sat_u8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call i8 @__clc_add_sat_impl_u8(i8 %x, i8 %y)
-  ret i8 %call
-}
-
-declare i16 @__clc_add_sat_impl_s16(i16 %x, i16 %y)
-
-define i16 @__clc_add_sat_s16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call i16 @__clc_add_sat_impl_s16(i16 %x, i16 %y)
-  ret i16 %call
-}
-
-declare i16 @__clc_add_sat_impl_u16(i16 %x, i16 %y)
-
-define i16 @__clc_add_sat_u16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call i16 @__clc_add_sat_impl_u16(i16 %x, i16 %y)
-  ret i16 %call
-}
-
-declare i32 @__clc_add_sat_impl_s32(i32 %x, i32 %y)
-
-define i32 @__clc_add_sat_s32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call i32 @__clc_add_sat_impl_s32(i32 %x, i32 %y)
-  ret i32 %call
-}
-
-declare i32 @__clc_add_sat_impl_u32(i32 %x, i32 %y)
-
-define i32 @__clc_add_sat_u32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call i32 @__clc_add_sat_impl_u32(i32 %x, i32 %y)
-  ret i32 %call
-}
-
-declare i64 @__clc_add_sat_impl_s64(i64 %x, i64 %y)
-
-define i64 @__clc_add_sat_s64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call i64 @__clc_add_sat_impl_s64(i64 %x, i64 %y)
-  ret i64 %call
-}
-
-declare i64 @__clc_add_sat_impl_u64(i64 %x, i64 %y)
-
-define i64 @__clc_add_sat_u64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call i64 @__clc_add_sat_impl_u64(i64 %x, i64 %y)
-  ret i64 %call
-}
diff --git a/libclc/generic/lib/integer/add_sat_impl.ll b/libclc/generic/lib/integer/add_sat_impl.ll
deleted file mode 100644
index c150ecb56b8b54289e4c69195db8685135df1bf7..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/add_sat_impl.ll
+++ /dev/null
@@ -1,83 +0,0 @@
-declare {i8, i1} @llvm.sadd.with.overflow.i8(i8, i8)
-declare {i8, i1} @llvm.uadd.with.overflow.i8(i8, i8)
-
-define i8 @__clc_add_sat_impl_s8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call {i8, i1} @llvm.sadd.with.overflow.i8(i8 %x, i8 %y)
-  %res = extractvalue {i8, i1} %call, 0
-  %over = extractvalue {i8, i1} %call, 1
-  %x.msb = ashr i8 %x, 7
-  %x.limit = xor i8 %x.msb, 127
-  %sat = select i1 %over, i8 %x.limit, i8 %res
-  ret i8 %sat
-}
-
-define i8 @__clc_add_sat_impl_u8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call {i8, i1} @llvm.uadd.with.overflow.i8(i8 %x, i8 %y)
-  %res = extractvalue {i8, i1} %call, 0
-  %over = extractvalue {i8, i1} %call, 1
-  %sat = select i1 %over, i8 -1, i8 %res
-  ret i8 %sat
-}
-
-declare {i16, i1} @llvm.sadd.with.overflow.i16(i16, i16)
-declare {i16, i1} @llvm.uadd.with.overflow.i16(i16, i16)
-
-define i16 @__clc_add_sat_impl_s16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call {i16, i1} @llvm.sadd.with.overflow.i16(i16 %x, i16 %y)
-  %res = extractvalue {i16, i1} %call, 0
-  %over = extractvalue {i16, i1} %call, 1
-  %x.msb = ashr i16 %x, 15
-  %x.limit = xor i16 %x.msb, 32767
-  %sat = select i1 %over, i16 %x.limit, i16 %res
-  ret i16 %sat
-}
-
-define i16 @__clc_add_sat_impl_u16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call {i16, i1} @llvm.uadd.with.overflow.i16(i16 %x, i16 %y)
-  %res = extractvalue {i16, i1} %call, 0
-  %over = extractvalue {i16, i1} %call, 1
-  %sat = select i1 %over, i16 -1, i16 %res
-  ret i16 %sat
-}
-
-declare {i32, i1} @llvm.sadd.with.overflow.i32(i32, i32)
-declare {i32, i1} @llvm.uadd.with.overflow.i32(i32, i32)
-
-define i32 @__clc_add_sat_impl_s32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %x, i32 %y)
-  %res = extractvalue {i32, i1} %call, 0
-  %over = extractvalue {i32, i1} %call, 1
-  %x.msb = ashr i32 %x, 31
-  %x.limit = xor i32 %x.msb, 2147483647
-  %sat = select i1 %over, i32 %x.limit, i32 %res
-  ret i32 %sat
-}
-
-define i32 @__clc_add_sat_impl_u32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %x, i32 %y)
-  %res = extractvalue {i32, i1} %call, 0
-  %over = extractvalue {i32, i1} %call, 1
-  %sat = select i1 %over, i32 -1, i32 %res
-  ret i32 %sat
-}
-
-declare {i64, i1} @llvm.sadd.with.overflow.i64(i64, i64)
-declare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64)
-
-define i64 @__clc_add_sat_impl_s64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %x, i64 %y)
-  %res = extractvalue {i64, i1} %call, 0
-  %over = extractvalue {i64, i1} %call, 1
-  %x.msb = ashr i64 %x, 63
-  %x.limit = xor i64 %x.msb, 9223372036854775807
-  %sat = select i1 %over, i64 %x.limit, i64 %res
-  ret i64 %sat
-}
-
-define i64 @__clc_add_sat_impl_u64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %x, i64 %y)
-  %res = extractvalue {i64, i1} %call, 0
-  %over = extractvalue {i64, i1} %call, 1
-  %sat = select i1 %over, i64 -1, i64 %res
-  ret i64 %sat
-}
diff --git a/libclc/generic/lib/integer/clz.cl b/libclc/generic/lib/integer/clz.cl
deleted file mode 100644
index 17e3fe0147418bfb6b1860151771c07179a87bff..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/clz.cl
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-// From clz.ll
-_CLC_DECL char   __clc_clz_s8(char);
-_CLC_DECL uchar  __clc_clz_u8(uchar);
-_CLC_DECL short  __clc_clz_s16(short);
-_CLC_DECL ushort __clc_clz_u16(ushort);
-_CLC_DECL int    __clc_clz_s32(int);
-_CLC_DECL uint   __clc_clz_u32(uint);
-_CLC_DECL long   __clc_clz_s64(long);
-_CLC_DECL ulong  __clc_clz_u64(ulong);
-
-_CLC_OVERLOAD _CLC_DEF char clz(char x) {
-  return __clc_clz_s8(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF uchar clz(uchar x) {
-  return __clc_clz_u8(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF short clz(short x) {
-  return __clc_clz_s16(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF ushort clz(ushort x) {
-  return __clc_clz_u16(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF int clz(int x) {
-  return __clc_clz_s32(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF uint clz(uint x) {
-  return __clc_clz_u32(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF long clz(long x) {
-  return __clc_clz_s64(x);
-}
-
-_CLC_OVERLOAD _CLC_DEF ulong clz(ulong x) {
-  return __clc_clz_u64(x);
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, clz, char)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, clz, uchar)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, clz, short)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, clz, ushort)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, clz, int)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uint, clz, uint)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, long, clz, long)
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ulong, clz, ulong)
diff --git a/libclc/generic/lib/integer/clz_if.ll b/libclc/generic/lib/integer/clz_if.ll
deleted file mode 100644
index 23dfc74a8a8226fcb3c7c67bb3a7319d532f21f5..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/clz_if.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-declare i8 @__clc_clz_impl_s8(i8 %x)
-
-define i8 @__clc_clz_s8(i8 %x) nounwind readnone alwaysinline {
-  %call = call i8 @__clc_clz_impl_s8(i8 %x)
-  ret i8 %call
-}
-
-declare i8 @__clc_clz_impl_u8(i8 %x)
-
-define i8 @__clc_clz_u8(i8 %x) nounwind readnone alwaysinline {
-  %call = call i8 @__clc_clz_impl_u8(i8 %x)
-  ret i8 %call
-}
-
-declare i16 @__clc_clz_impl_s16(i16 %x)
-
-define i16 @__clc_clz_s16(i16 %x) nounwind readnone alwaysinline {
-  %call = call i16 @__clc_clz_impl_s16(i16 %x)
-  ret i16 %call
-}
-
-declare i16 @__clc_clz_impl_u16(i16 %x)
-
-define i16 @__clc_clz_u16(i16 %x) nounwind readnone alwaysinline {
-  %call = call i16 @__clc_clz_impl_u16(i16 %x)
-  ret i16 %call
-}
-
-declare i32 @__clc_clz_impl_s32(i32 %x)
-
-define i32 @__clc_clz_s32(i32 %x) nounwind readnone alwaysinline {
-  %call = call i32 @__clc_clz_impl_s32(i32 %x)
-  ret i32 %call
-}
-
-declare i32 @__clc_clz_impl_u32(i32 %x)
-
-define i32 @__clc_clz_u32(i32 %x) nounwind readnone alwaysinline {
-  %call = call i32 @__clc_clz_impl_u32(i32 %x)
-  ret i32 %call
-}
-
-declare i64 @__clc_clz_impl_s64(i64 %x)
-
-define i64 @__clc_clz_s64(i64 %x) nounwind readnone alwaysinline {
-  %call = call i64 @__clc_clz_impl_s64(i64 %x)
-  ret i64 %call
-}
-
-declare i64 @__clc_clz_impl_u64(i64 %x)
-
-define i64 @__clc_clz_u64(i64 %x) nounwind readnone alwaysinline {
-  %call = call i64 @__clc_clz_impl_u64(i64 %x)
-  ret i64 %call
-}
diff --git a/libclc/generic/lib/integer/clz_impl.ll b/libclc/generic/lib/integer/clz_impl.ll
deleted file mode 100644
index b5c3d98ae4188f535ac62abfdf06276e8d223db8..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/clz_impl.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-declare i8 @llvm.ctlz.i8(i8, i1)
-declare i16 @llvm.ctlz.i16(i16, i1)
-declare i32 @llvm.ctlz.i32(i32, i1)
-declare i64 @llvm.ctlz.i64(i64, i1)
-
-define i8 @__clc_clz_impl_s8(i8 %x) nounwind readnone alwaysinline {
-  %call = call i8 @llvm.ctlz.i8(i8 %x, i1 0)
-  ret i8 %call
-}
-
-define i8 @__clc_clz_impl_u8(i8 %x) nounwind readnone alwaysinline {
-  %call = call i8 @llvm.ctlz.i8(i8 %x, i1 0)
-  ret i8 %call
-}
-
-define i16 @__clc_clz_impl_s16(i16 %x) nounwind readnone alwaysinline {
-  %call = call i16 @llvm.ctlz.i16(i16 %x, i1 0)
-  ret i16 %call
-}
-
-define i16 @__clc_clz_impl_u16(i16 %x) nounwind readnone alwaysinline {
-  %call = call i16 @llvm.ctlz.i16(i16 %x, i1 0)
-  ret i16 %call
-}
-
-define i32 @__clc_clz_impl_s32(i32 %x) nounwind readnone alwaysinline {
-  %call = call i32 @llvm.ctlz.i32(i32 %x, i1 0)
-  ret i32 %call
-}
-
-define i32 @__clc_clz_impl_u32(i32 %x) nounwind readnone alwaysinline {
-  %call = call i32 @llvm.ctlz.i32(i32 %x, i1 0)
-  ret i32 %call
-}
-
-define i64 @__clc_clz_impl_s64(i64 %x) nounwind readnone alwaysinline {
-  %call = call i64 @llvm.ctlz.i64(i64 %x, i1 0)
-  ret i64 %call
-}
-
-define i64 @__clc_clz_impl_u64(i64 %x) nounwind readnone alwaysinline {
-  %call = call i64 @llvm.ctlz.i64(i64 %x, i1 0)
-  ret i64 %call
-}
diff --git a/libclc/generic/lib/integer/hadd.cl b/libclc/generic/lib/integer/hadd.cl
deleted file mode 100644
index 749026e5a8ad8183fff80fd81c01c4aa167e32b7..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/hadd.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <hadd.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/lib/integer/hadd.inc b/libclc/generic/lib/integer/hadd.inc
deleted file mode 100644
index ea59d9bd7db5f83b3d8195b1280109d0f0578e0c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/hadd.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-//hadd = (x+y)>>1
-//This can be simplified to x>>1 + y>>1 + (1 if both x and y have the 1s bit set)
-//This saves us having to do any checks for overflow in the addition sum
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE hadd(__CLC_GENTYPE x, __CLC_GENTYPE y) {
-    return (x>>(__CLC_GENTYPE)1)+(y>>(__CLC_GENTYPE)1)+(x&y&(__CLC_GENTYPE)1);
-}
diff --git a/libclc/generic/lib/integer/mad24.cl b/libclc/generic/lib/integer/mad24.cl
deleted file mode 100644
index e29e99f28b56fcc961b09909e81649765cdce105..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/mad24.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <mad24.inc>
-#include <clc/integer/integer-gentype.inc>
diff --git a/libclc/generic/lib/integer/mad24.inc b/libclc/generic/lib/integer/mad24.inc
deleted file mode 100644
index 902b0aafe4c8741554a0997ea36138ee45b183a5..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/mad24.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mad24(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_GENTYPE z){
-  return mul24(x, y) + z;
-}
diff --git a/libclc/generic/lib/integer/mul24.cl b/libclc/generic/lib/integer/mul24.cl
deleted file mode 100644
index 8aedca64b85905a1383608cb04c254e39c37045c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/mul24.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <mul24.inc>
-#include <clc/integer/integer-gentype.inc>
diff --git a/libclc/generic/lib/integer/mul24.inc b/libclc/generic/lib/integer/mul24.inc
deleted file mode 100644
index 95a2f1d6f31baba1cabf93dfe6bcd320799bee7a..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/mul24.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// We need to use shifts here in order to mantain the sign bit for signed
-// integers.  The compiler should optimize this to (x & 0x00FFFFFF) for
-// unsigned integers.
-#define CONVERT_TO_24BIT(x) (((x) << 8) >> 8)
-
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mul24(__CLC_GENTYPE x, __CLC_GENTYPE y){
-  return CONVERT_TO_24BIT(x) * CONVERT_TO_24BIT(y);
-}
-
-#undef CONVERT_TO_24BIT
diff --git a/libclc/generic/lib/integer/mul_hi.cl b/libclc/generic/lib/integer/mul_hi.cl
deleted file mode 100644
index 174d893afb14f9ad5d8ac902b5ddf8d25dc13009..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/mul_hi.cl
+++ /dev/null
@@ -1,109 +0,0 @@
-#include <clc/clc.h>
-
-//For all types EXCEPT long, which is implemented separately
-#define __CLC_MUL_HI_IMPL(BGENTYPE, GENTYPE, GENSIZE) \
-    _CLC_OVERLOAD _CLC_DEF GENTYPE mul_hi(GENTYPE x, GENTYPE y){ \
-        return (GENTYPE)(((BGENTYPE)x * (BGENTYPE)y) >> GENSIZE); \
-    } \
-
-//FOIL-based long mul_hi
-//
-// Summary: Treat mul_hi(long x, long y) as:
-// (a+b) * (c+d) where a and c are the high-order parts of x and y respectively
-// and b and d are the low-order parts of x and y.
-// Thinking back to algebra, we use FOIL to do the work.
-
-_CLC_OVERLOAD _CLC_DEF long mul_hi(long x, long y){
-    long f, o, i;
-    ulong l;
-
-    //Move the high/low halves of x/y into the lower 32-bits of variables so
-    //that we can multiply them without worrying about overflow.
-    long x_hi = x >> 32;
-    long x_lo = x & UINT_MAX;
-    long y_hi = y >> 32;
-    long y_lo = y & UINT_MAX;
-
-    //Multiply all of the components according to FOIL method
-    f = x_hi * y_hi;
-    o = x_hi * y_lo;
-    i = x_lo * y_hi;
-    l = x_lo * y_lo;
-
-    //Now add the components back together in the following steps:
-    //F: doesn't need to be modified
-    //O/I: Need to be added together.
-    //L: Shift right by 32-bits, then add into the sum of O and I
-    //Once O/I/L are summed up, then shift the sum by 32-bits and add to F.
-    //
-    //We use hadd to give us a bit of extra precision for the intermediate sums
-    //but as a result, we shift by 31 bits instead of 32
-    return (long)(f + (hadd(o, (i + (long)((ulong)l>>32))) >> 31));
-}
-
-_CLC_OVERLOAD _CLC_DEF ulong mul_hi(ulong x, ulong y){
-    ulong f, o, i;
-    ulong l;
-
-    //Move the high/low halves of x/y into the lower 32-bits of variables so
-    //that we can multiply them without worrying about overflow.
-    ulong x_hi = x >> 32;
-    ulong x_lo = x & UINT_MAX;
-    ulong y_hi = y >> 32;
-    ulong y_lo = y & UINT_MAX;
-
-    //Multiply all of the components according to FOIL method
-    f = x_hi * y_hi;
-    o = x_hi * y_lo;
-    i = x_lo * y_hi;
-    l = x_lo * y_lo;
-
-    //Now add the components back together, taking care to respect the fact that:
-    //F: doesn't need to be modified
-    //O/I: Need to be added together.
-    //L: Shift right by 32-bits, then add into the sum of O and I
-    //Once O/I/L are summed up, then shift the sum by 32-bits and add to F.
-    //
-    //We use hadd to give us a bit of extra precision for the intermediate sums
-    //but as a result, we shift by 31 bits instead of 32
-    return (f + (hadd(o, (i + (l>>32))) >> 31));
-}
-
-#define __CLC_MUL_HI_VEC(GENTYPE) \
-    _CLC_OVERLOAD _CLC_DEF GENTYPE##2 mul_hi(GENTYPE##2 x, GENTYPE##2 y){ \
-        return (GENTYPE##2){mul_hi(x.s0, y.s0), mul_hi(x.s1, y.s1)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF GENTYPE##3 mul_hi(GENTYPE##3 x, GENTYPE##3 y){ \
-        return (GENTYPE##3){mul_hi(x.s0, y.s0), mul_hi(x.s1, y.s1), mul_hi(x.s2, y.s2)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF GENTYPE##4 mul_hi(GENTYPE##4 x, GENTYPE##4 y){ \
-        return (GENTYPE##4){mul_hi(x.lo, y.lo), mul_hi(x.hi, y.hi)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF GENTYPE##8 mul_hi(GENTYPE##8 x, GENTYPE##8 y){ \
-        return (GENTYPE##8){mul_hi(x.lo, y.lo), mul_hi(x.hi, y.hi)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF GENTYPE##16 mul_hi(GENTYPE##16 x, GENTYPE##16 y){ \
-        return (GENTYPE##16){mul_hi(x.lo, y.lo), mul_hi(x.hi, y.hi)}; \
-    } \
-
-#define __CLC_MUL_HI_DEC_IMPL(BTYPE, TYPE, BITS) \
-    __CLC_MUL_HI_IMPL(BTYPE, TYPE, BITS) \
-    __CLC_MUL_HI_VEC(TYPE)
-
-#define __CLC_MUL_HI_TYPES() \
-    __CLC_MUL_HI_DEC_IMPL(short, char, 8) \
-    __CLC_MUL_HI_DEC_IMPL(ushort, uchar, 8) \
-    __CLC_MUL_HI_DEC_IMPL(int, short, 16) \
-    __CLC_MUL_HI_DEC_IMPL(uint, ushort, 16) \
-    __CLC_MUL_HI_DEC_IMPL(long, int, 32) \
-    __CLC_MUL_HI_DEC_IMPL(ulong, uint, 32) \
-    __CLC_MUL_HI_VEC(long) \
-    __CLC_MUL_HI_VEC(ulong)
-
-__CLC_MUL_HI_TYPES()
-
-#undef __CLC_MUL_HI_TYPES
-#undef __CLC_MUL_HI_DEC_IMPL
-#undef __CLC_MUL_HI_IMPL
-#undef __CLC_MUL_HI_VEC
-#undef __CLC_B32
diff --git a/libclc/generic/lib/integer/rhadd.cl b/libclc/generic/lib/integer/rhadd.cl
deleted file mode 100644
index c985870f7c7a24423e5d2cffc53abb813ebf0cfc..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/rhadd.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <rhadd.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/lib/integer/rhadd.inc b/libclc/generic/lib/integer/rhadd.inc
deleted file mode 100644
index 3d6076874808e63ad86149df01a1cb8ec825799b..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/rhadd.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-//rhadd = (x+y+1)>>1
-//This can be simplified to x>>1 + y>>1 + (1 if either x or y have the 1s bit set)
-//This saves us having to do any checks for overflow in the addition sums
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE rhadd(__CLC_GENTYPE x, __CLC_GENTYPE y) {
-    return (x>>(__CLC_GENTYPE)1)+(y>>(__CLC_GENTYPE)1)+((x&(__CLC_GENTYPE)1)|(y&(__CLC_GENTYPE)1));
-}
diff --git a/libclc/generic/lib/integer/rotate.cl b/libclc/generic/lib/integer/rotate.cl
deleted file mode 100644
index 27ce515c729331bc4edc794b64330896b10fb72a..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/rotate.cl
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <rotate.inc>
-#include <clc/integer/gentype.inc>
diff --git a/libclc/generic/lib/integer/rotate.inc b/libclc/generic/lib/integer/rotate.inc
deleted file mode 100644
index 33bb0a85241d20be989c3b9145dd21b60ff3b44c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/rotate.inc
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Not necessarily optimal... but it produces correct results (at least for int)
- * If we're lucky, LLVM will recognize the pattern and produce rotate
- * instructions:
- * http://llvm.1065342.n5.nabble.com/rotate-td47679.html
- * 
- * Eventually, someone should feel free to implement an llvm-specific version
- */
-
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE rotate(__CLC_GENTYPE x, __CLC_GENTYPE n){
-    //Try to avoid extra work if someone's spinning the value through multiple
-    //full rotations
-    n = n % (__CLC_GENTYPE)__CLC_GENSIZE;
-
-#ifdef __CLC_SCALAR
-    if (n > 0){
-        return (x << n) | (((__CLC_U_GENTYPE)x) >> (__CLC_GENSIZE - n));
-    } else if (n == 0){
-        return x;
-    } else {
-        return ( (((__CLC_U_GENTYPE)x) >> -n) | (x << (__CLC_GENSIZE + n)) );
-    }
-#else
-    //XXX: There's a lot of __builtin_astype calls to cast everything to
-    //     unsigned ... This should be improved so that if __CLC_GENTYPE==__CLC_U_GENTYPE, no
-    //     casts are required.
-    
-    __CLC_U_GENTYPE x_1 = __builtin_astype(x, __CLC_U_GENTYPE);
-
-    //XXX: Is (__CLC_U_GENTYPE >> S__CLC_GENTYPE) | (__CLC_U_GENTYPE << S__CLC_GENTYPE) legal?
-    //     If so, then combine the amt and shifts into a single set of statements
-    
-    __CLC_U_GENTYPE amt;
-    amt = (n < (__CLC_GENTYPE)0 ? __builtin_astype((__CLC_GENTYPE)0-n, __CLC_U_GENTYPE) : (__CLC_U_GENTYPE)0);
-    x_1 = (x_1 >> amt) | (x_1 << ((__CLC_U_GENTYPE)__CLC_GENSIZE - amt));
-
-    amt = (n < (__CLC_GENTYPE)0 ? (__CLC_U_GENTYPE)0 : __builtin_astype(n, __CLC_U_GENTYPE));
-    x_1 = (x_1 << amt) | (x_1 >> ((__CLC_U_GENTYPE)__CLC_GENSIZE - amt));
-
-    return __builtin_astype(x_1, __CLC_GENTYPE);
-#endif
-}
diff --git a/libclc/generic/lib/integer/sub_sat.cl b/libclc/generic/lib/integer/sub_sat.cl
deleted file mode 100644
index 6b42cc86a74cd519dcb57313313674715e1b057f..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/sub_sat.cl
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-// From sub_sat.ll
-_CLC_DECL char   __clc_sub_sat_s8(char, char);
-_CLC_DECL uchar  __clc_sub_sat_u8(uchar, uchar);
-_CLC_DECL short  __clc_sub_sat_s16(short, short);
-_CLC_DECL ushort __clc_sub_sat_u16(ushort, ushort);
-_CLC_DECL int    __clc_sub_sat_s32(int, int);
-_CLC_DECL uint   __clc_sub_sat_u32(uint, uint);
-_CLC_DECL long   __clc_sub_sat_s64(long, long);
-_CLC_DECL ulong  __clc_sub_sat_u64(ulong, ulong);
-
-_CLC_OVERLOAD _CLC_DEF char sub_sat(char x, char y) {
-  return __clc_sub_sat_s8(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF uchar sub_sat(uchar x, uchar y) {
-  return __clc_sub_sat_u8(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF short sub_sat(short x, short y) {
-  return __clc_sub_sat_s16(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF ushort sub_sat(ushort x, ushort y) {
-  return __clc_sub_sat_u16(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF int sub_sat(int x, int y) {
-  return __clc_sub_sat_s32(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF uint sub_sat(uint x, uint y) {
-  return __clc_sub_sat_u32(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF long sub_sat(long x, long y) {
-  return __clc_sub_sat_s64(x, y);
-}
-
-_CLC_OVERLOAD _CLC_DEF ulong sub_sat(ulong x, ulong y) {
-  return __clc_sub_sat_u64(x, y);
-}
-
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, char, sub_sat, char, char)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uchar, sub_sat, uchar, uchar)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, short, sub_sat, short, short)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ushort, sub_sat, ushort, ushort)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, int, sub_sat, int, int)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, uint, sub_sat, uint, uint)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, long, sub_sat, long, long)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, ulong, sub_sat, ulong, ulong)
diff --git a/libclc/generic/lib/integer/sub_sat_if.ll b/libclc/generic/lib/integer/sub_sat_if.ll
deleted file mode 100644
index 7252574b5b8e5638480de0e0ec89591441b48787..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/sub_sat_if.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-declare i8 @__clc_sub_sat_impl_s8(i8 %x, i8 %y)
-
-define i8 @__clc_sub_sat_s8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call i8 @__clc_sub_sat_impl_s8(i8 %x, i8 %y)
-  ret i8 %call
-}
-
-declare i8 @__clc_sub_sat_impl_u8(i8 %x, i8 %y)
-
-define i8 @__clc_sub_sat_u8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call i8 @__clc_sub_sat_impl_u8(i8 %x, i8 %y)
-  ret i8 %call
-}
-
-declare i16 @__clc_sub_sat_impl_s16(i16 %x, i16 %y)
-
-define i16 @__clc_sub_sat_s16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call i16 @__clc_sub_sat_impl_s16(i16 %x, i16 %y)
-  ret i16 %call
-}
-
-declare i16 @__clc_sub_sat_impl_u16(i16 %x, i16 %y)
-
-define i16 @__clc_sub_sat_u16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call i16 @__clc_sub_sat_impl_u16(i16 %x, i16 %y)
-  ret i16 %call
-}
-
-declare i32 @__clc_sub_sat_impl_s32(i32 %x, i32 %y)
-
-define i32 @__clc_sub_sat_s32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call i32 @__clc_sub_sat_impl_s32(i32 %x, i32 %y)
-  ret i32 %call
-}
-
-declare i32 @__clc_sub_sat_impl_u32(i32 %x, i32 %y)
-
-define i32 @__clc_sub_sat_u32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call i32 @__clc_sub_sat_impl_u32(i32 %x, i32 %y)
-  ret i32 %call
-}
-
-declare i64 @__clc_sub_sat_impl_s64(i64 %x, i64 %y)
-
-define i64 @__clc_sub_sat_s64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call i64 @__clc_sub_sat_impl_s64(i64 %x, i64 %y)
-  ret i64 %call
-}
-
-declare i64 @__clc_sub_sat_impl_u64(i64 %x, i64 %y)
-
-define i64 @__clc_sub_sat_u64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call i64 @__clc_sub_sat_impl_u64(i64 %x, i64 %y)
-  ret i64 %call
-}
diff --git a/libclc/generic/lib/integer/sub_sat_impl.ll b/libclc/generic/lib/integer/sub_sat_impl.ll
deleted file mode 100644
index e82b632f43b41736c1fab2fa4593db311726467a..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/sub_sat_impl.ll
+++ /dev/null
@@ -1,83 +0,0 @@
-declare {i8, i1} @llvm.ssub.with.overflow.i8(i8, i8)
-declare {i8, i1} @llvm.usub.with.overflow.i8(i8, i8)
-
-define i8 @__clc_sub_sat_impl_s8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call {i8, i1} @llvm.ssub.with.overflow.i8(i8 %x, i8 %y)
-  %res = extractvalue {i8, i1} %call, 0
-  %over = extractvalue {i8, i1} %call, 1
-  %x.msb = ashr i8 %x, 7
-  %x.limit = xor i8 %x.msb, 127
-  %sat = select i1 %over, i8 %x.limit, i8 %res
-  ret i8 %sat
-}
-
-define i8 @__clc_sub_sat_impl_u8(i8 %x, i8 %y) nounwind readnone alwaysinline {
-  %call = call {i8, i1} @llvm.usub.with.overflow.i8(i8 %x, i8 %y)
-  %res = extractvalue {i8, i1} %call, 0
-  %over = extractvalue {i8, i1} %call, 1
-  %sat = select i1 %over, i8 0, i8 %res
-  ret i8 %sat
-}
-
-declare {i16, i1} @llvm.ssub.with.overflow.i16(i16, i16)
-declare {i16, i1} @llvm.usub.with.overflow.i16(i16, i16)
-
-define i16 @__clc_sub_sat_impl_s16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call {i16, i1} @llvm.ssub.with.overflow.i16(i16 %x, i16 %y)
-  %res = extractvalue {i16, i1} %call, 0
-  %over = extractvalue {i16, i1} %call, 1
-  %x.msb = ashr i16 %x, 15
-  %x.limit = xor i16 %x.msb, 32767
-  %sat = select i1 %over, i16 %x.limit, i16 %res
-  ret i16 %sat
-}
-
-define i16 @__clc_sub_sat_impl_u16(i16 %x, i16 %y) nounwind readnone alwaysinline {
-  %call = call {i16, i1} @llvm.usub.with.overflow.i16(i16 %x, i16 %y)
-  %res = extractvalue {i16, i1} %call, 0
-  %over = extractvalue {i16, i1} %call, 1
-  %sat = select i1 %over, i16 0, i16 %res
-  ret i16 %sat
-}
-
-declare {i32, i1} @llvm.ssub.with.overflow.i32(i32, i32)
-declare {i32, i1} @llvm.usub.with.overflow.i32(i32, i32)
-
-define i32 @__clc_sub_sat_impl_s32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %x, i32 %y)
-  %res = extractvalue {i32, i1} %call, 0
-  %over = extractvalue {i32, i1} %call, 1
-  %x.msb = ashr i32 %x, 31
-  %x.limit = xor i32 %x.msb, 2147483647
-  %sat = select i1 %over, i32 %x.limit, i32 %res
-  ret i32 %sat
-}
-
-define i32 @__clc_sub_sat_impl_u32(i32 %x, i32 %y) nounwind readnone alwaysinline {
-  %call = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %x, i32 %y)
-  %res = extractvalue {i32, i1} %call, 0
-  %over = extractvalue {i32, i1} %call, 1
-  %sat = select i1 %over, i32 0, i32 %res
-  ret i32 %sat
-}
-
-declare {i64, i1} @llvm.ssub.with.overflow.i64(i64, i64)
-declare {i64, i1} @llvm.usub.with.overflow.i64(i64, i64)
-
-define i64 @__clc_sub_sat_impl_s64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %x, i64 %y)
-  %res = extractvalue {i64, i1} %call, 0
-  %over = extractvalue {i64, i1} %call, 1
-  %x.msb = ashr i64 %x, 63
-  %x.limit = xor i64 %x.msb, 9223372036854775807
-  %sat = select i1 %over, i64 %x.limit, i64 %res
-  ret i64 %sat
-}
-
-define i64 @__clc_sub_sat_impl_u64(i64 %x, i64 %y) nounwind readnone alwaysinline {
-  %call = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %x, i64 %y)
-  %res = extractvalue {i64, i1} %call, 0
-  %over = extractvalue {i64, i1} %call, 1
-  %sat = select i1 %over, i64 0, i64 %res
-  ret i64 %sat
-}
diff --git a/libclc/generic/lib/integer/upsample.cl b/libclc/generic/lib/integer/upsample.cl
deleted file mode 100644
index da77315f8f9344a38bf0adcbdeec00fd4dbf6f14..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/integer/upsample.cl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_UPSAMPLE_IMPL(BGENTYPE, GENTYPE, UGENTYPE, GENSIZE) \
-    _CLC_OVERLOAD _CLC_DEF BGENTYPE upsample(GENTYPE hi, UGENTYPE lo){ \
-        return ((BGENTYPE)hi << GENSIZE) | lo; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF BGENTYPE##2 upsample(GENTYPE##2 hi, UGENTYPE##2 lo){ \
-        return (BGENTYPE##2){upsample(hi.s0, lo.s0), upsample(hi.s1, lo.s1)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF BGENTYPE##3 upsample(GENTYPE##3 hi, UGENTYPE##3 lo){ \
-        return (BGENTYPE##3){upsample(hi.s0, lo.s0), upsample(hi.s1, lo.s1), upsample(hi.s2, lo.s2)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF BGENTYPE##4 upsample(GENTYPE##4 hi, UGENTYPE##4 lo){ \
-        return (BGENTYPE##4){upsample(hi.lo, lo.lo), upsample(hi.hi, lo.hi)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF BGENTYPE##8 upsample(GENTYPE##8 hi, UGENTYPE##8 lo){ \
-        return (BGENTYPE##8){upsample(hi.lo, lo.lo), upsample(hi.hi, lo.hi)}; \
-    } \
-    _CLC_OVERLOAD _CLC_DEF BGENTYPE##16 upsample(GENTYPE##16 hi, UGENTYPE##16 lo){ \
-        return (BGENTYPE##16){upsample(hi.lo, lo.lo), upsample(hi.hi, lo.hi)}; \
-    } \
-
-#define __CLC_UPSAMPLE_TYPES() \
-    __CLC_UPSAMPLE_IMPL(short, char, uchar, 8) \
-    __CLC_UPSAMPLE_IMPL(ushort, uchar, uchar, 8) \
-    __CLC_UPSAMPLE_IMPL(int, short, ushort, 16) \
-    __CLC_UPSAMPLE_IMPL(uint, ushort, ushort, 16) \
-    __CLC_UPSAMPLE_IMPL(long, int, uint, 32) \
-    __CLC_UPSAMPLE_IMPL(ulong, uint, uint, 32) \
-
-__CLC_UPSAMPLE_TYPES()
-
-#undef __CLC_UPSAMPLE_TYPES
-#undef __CLC_UPSAMPLE_IMPL
diff --git a/libclc/generic/lib/math/atan.cl b/libclc/generic/lib/math/atan.cl
deleted file mode 100644
index fa3633cef7480fb8fcb5d3c9f890da179bbf7fa4..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/atan.cl
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include "math.h"
-#include "../clcmacro.h"
-
-#include <clc/clc.h>
-
-_CLC_OVERLOAD _CLC_DEF float atan(float x)
-{
-    const float piby2 = 1.5707963267948966f; // 0x3ff921fb54442d18
-
-    uint ux = as_uint(x);
-    uint aux = ux & EXSIGNBIT_SP32;
-    uint sx = ux ^ aux;
-
-    float spiby2 = as_float(sx | as_uint(piby2));
-
-    float v = as_float(aux);
-
-    // Return for NaN
-    float ret = x;
-
-    // 2^26 <= |x| <= Inf => atan(x) is close to piby2
-    ret = aux <= PINFBITPATT_SP32  ? spiby2 : ret;
-
-    // Reduce arguments 2^-19 <= |x| < 2^26
-
-    // 39/16 <= x < 2^26
-    x = -MATH_RECIP(v);
-    float c = 1.57079632679489655800f; // atan(infinity)
-
-    // 19/16 <= x < 39/16
-    int l = aux < 0x401c0000;
-    float xx = MATH_DIVIDE(v - 1.5f, mad(v, 1.5f, 1.0f));
-    x = l ? xx : x;
-    c = l ? 9.82793723247329054082e-01f : c; // atan(1.5)
-
-    // 11/16 <= x < 19/16
-    l = aux < 0x3f980000U;
-    xx =  MATH_DIVIDE(v - 1.0f, 1.0f + v);
-    x = l ? xx : x;
-    c = l ? 7.85398163397448278999e-01f : c; // atan(1)
-
-    // 7/16 <= x < 11/16
-    l = aux < 0x3f300000;
-    xx = MATH_DIVIDE(mad(v, 2.0f, -1.0f), 2.0f + v);
-    x = l ? xx : x;
-    c = l ? 4.63647609000806093515e-01f : c; // atan(0.5)
-
-    // 2^-19 <= x < 7/16
-    l = aux < 0x3ee00000;
-    x = l ? v : x;
-    c = l ? 0.0f : c;
-
-    // Core approximation: Remez(2,2) on [-7/16,7/16]
-
-    float s = x * x;
-    float a = mad(s,
-                  mad(s, 0.470677934286149214138357545549e-2f, 0.192324546402108583211697690500f),
-                  0.296528598819239217902158651186f);
-
-    float b = mad(s,
-                  mad(s, 0.299309699959659728404442796915f, 0.111072499995399550138837673349e1f),
-                  0.889585796862432286486651434570f);
-
-    float q = x * s * MATH_DIVIDE(a, b);
-
-    float z = c - (q - x);
-    float zs = as_float(sx | as_uint(z));
-
-    ret  = aux < 0x4c800000 ?  zs : ret;
-
-    // |x| < 2^-19
-    ret = aux < 0x36000000 ? as_float(ux) : ret;
-    return ret;
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, atan, float);
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-
-_CLC_OVERLOAD _CLC_DEF double atan(double x)
-{
-    const double piby2 = 1.5707963267948966e+00; // 0x3ff921fb54442d18
-
-    double v = fabs(x);
-
-    // 2^56 > v > 39/16
-    double a = -1.0;
-    double b = v;
-    // (chi + clo) = arctan(infinity)
-    double chi = 1.57079632679489655800e+00;
-    double clo = 6.12323399573676480327e-17;
-
-    double ta = v - 1.5;
-    double tb = 1.0 + 1.5 * v;
-    int l = v <= 0x1.38p+1; // 39/16 > v > 19/16
-    a = l ? ta : a;
-    b = l ? tb : b;
-    // (chi + clo) = arctan(1.5)
-    chi = l ? 9.82793723247329054082e-01 : chi;
-    clo = l ? 1.39033110312309953701e-17 : clo;
-
-    ta = v - 1.0;
-    tb = 1.0 + v;
-    l = v <= 0x1.3p+0; // 19/16 > v > 11/16
-    a = l ? ta : a;
-    b = l ? tb : b;
-    // (chi + clo) = arctan(1.)
-    chi = l ? 7.85398163397448278999e-01 : chi;
-    clo = l ? 3.06161699786838240164e-17 : clo;
-
-    ta = 2.0 * v - 1.0;
-    tb = 2.0 + v;
-    l = v <= 0x1.6p-1; // 11/16 > v > 7/16
-    a = l ? ta : a;
-    b = l ? tb : b;
-    // (chi + clo) = arctan(0.5)
-    chi = l ? 4.63647609000806093515e-01 : chi;
-    clo = l ? 2.26987774529616809294e-17 : clo;
-
-    l = v <= 0x1.cp-2; // v < 7/16
-    a = l ? v : a;
-    b = l ? 1.0 : b;;
-    chi = l ? 0.0 : chi;
-    clo = l ? 0.0 : clo;
-
-    // Core approximation: Remez(4,4) on [-7/16,7/16]
-    double r = a / b;
-    double s = r * r;
-    double qn = fma(s,
-                    fma(s,
-                        fma(s,
-                            fma(s, 0.142316903342317766e-3,
-                                   0.304455919504853031e-1),
-                            0.220638780716667420e0),
-                        0.447677206805497472e0),
-                    0.268297920532545909e0);
-
-    double qd = fma(s,
-	            fma(s,
-			fma(s,
-			    fma(s, 0.389525873944742195e-1,
-				   0.424602594203847109e0),
-                            0.141254259931958921e1),
-                        0.182596787737507063e1),
-                    0.804893761597637733e0);
-
-    double q = r * s * qn / qd;
-    r = chi - ((q - clo) - r);
-
-    double z = isnan(x) ? x : piby2;
-    z = v <= 0x1.0p+56 ? r : z;
-    z = v < 0x1.0p-26 ? v : z;
-    return x == v ? z : -z;
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, atan, double);
-
-#endif // cl_khr_fp64
diff --git a/libclc/generic/lib/math/atan2.cl b/libclc/generic/lib/math/atan2.cl
deleted file mode 100644
index 9e5fb587d42235cb3fc756dd0524c978fbe2f9f6..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/atan2.cl
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include "math.h"
-#include "../clcmacro.h"
-
-#include <clc/clc.h>
-
-_CLC_OVERLOAD _CLC_DEF float atan2(float y, float x)
-{
-    const float pi = 0x1.921fb6p+1f;
-    const float piby2 = 0x1.921fb6p+0f;
-    const float piby4 = 0x1.921fb6p-1f;
-    const float threepiby4 = 0x1.2d97c8p+1f;
-
-    float ax = fabs(x);
-    float ay = fabs(y);
-    float v = min(ax, ay);
-    float u = max(ax, ay);
-
-    // Scale since u could be large, as in "regular" divide
-    float s = u > 0x1.0p+96f ? 0x1.0p-32f : 1.0f;
-    float vbyu = s * MATH_DIVIDE(v, s*u);
-
-    float vbyu2 = vbyu * vbyu;
-
-#define USE_2_2_APPROXIMATION
-#if defined USE_2_2_APPROXIMATION
-    float p = mad(vbyu2, mad(vbyu2, -0x1.7e1f78p-9f, -0x1.7d1b98p-3f), -0x1.5554d0p-2f) * vbyu2 * vbyu;
-    float q = mad(vbyu2, mad(vbyu2, 0x1.1a714cp-2f, 0x1.287c56p+0f), 1.0f);
-#else
-    float p = mad(vbyu2, mad(vbyu2, -0x1.55cd22p-5f, -0x1.26cf76p-2f), -0x1.55554ep-2f) * vbyu2 * vbyu;
-    float q = mad(vbyu2, mad(vbyu2, mad(vbyu2, 0x1.9f1304p-5f, 0x1.2656fap-1f), 0x1.76b4b8p+0f), 1.0f);
-#endif
-
-    // Octant 0 result
-    float a = mad(p, MATH_RECIP(q), vbyu);
-
-    // Fix up 3 other octants
-    float at = piby2 - a;
-    a = ay > ax ? at : a;
-    at = pi - a;
-    a = x < 0.0F ? at : a;
-
-    // y == 0 => 0 for x >= 0, pi for x < 0
-    at = as_int(x) < 0 ? pi : 0.0f;
-    a = y == 0.0f ? at : a;
-
-    // if (!FINITE_ONLY()) {
-        // x and y are +- Inf
-        at = x > 0.0f ? piby4 : threepiby4;
-        a = ax == INFINITY & ay == INFINITY ? at : a;
-
-	// x or y is NaN
-	a = isnan(x) | isnan(y) ? as_float(QNANBITPATT_SP32) : a;
-    // }
-
-    // Fixup sign and return
-    return copysign(a, y);
-}
-
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, atan2, float, float);
diff --git a/libclc/generic/lib/math/binary_impl.inc b/libclc/generic/lib/math/binary_impl.inc
deleted file mode 100644
index c9bf972426723d724a4b3c32d8082b8110c42c78..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/binary_impl.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef __CLC_SCALAR
-
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE FUNCTION(__CLC_GENTYPE x, __CLC_GENTYPE y) {
-  return FUNCTION_IMPL(x, y);
-}
-
-#endif
-
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE FUNCTION(__CLC_GENTYPE x, float y) {
-  __CLC_GENTYPE vec_y = (__CLC_GENTYPE) (y);
-  return FUNCTION_IMPL(x, vec_y);
-}
-
-#ifdef cl_khr_fp64
-
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE FUNCTION(__CLC_GENTYPE x, double y) {
-  __CLC_GENTYPE vec_y = (__CLC_GENTYPE) (y);
-  return FUNCTION_IMPL(x, vec_y);
-}
-
-#endif
diff --git a/libclc/generic/lib/math/clc_nextafter.cl b/libclc/generic/lib/math/clc_nextafter.cl
deleted file mode 100644
index e53837d179fb443154fe8e3cb7a3803ad892a5e6..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/clc_nextafter.cl
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-// This file provides OpenCL C implementations of nextafter for targets that
-// don't support the clang builtin.
-
-#define FLT_NAN 0.0f/0.0f
-
-#define NEXTAFTER(FLOAT_TYPE, UINT_TYPE, NAN, ZERO, NEXTAFTER_ZERO) \
-_CLC_OVERLOAD _CLC_DEF FLOAT_TYPE __clc_nextafter(FLOAT_TYPE x, FLOAT_TYPE y) { \
-  union {                     \
-    FLOAT_TYPE f;             \
-    UINT_TYPE i;              \
-  } next;                     \
-  if (isnan(x) || isnan(y)) { \
-    return NAN;               \
-  }                           \
-  if (x == y) {               \
-    return y;                 \
-  }                           \
-  next.f = x;                 \
-  if (x < y) {                \
-    next.i++;                 \
-  } else {                    \
-    if (next.f == ZERO) {     \
-    next.i = NEXTAFTER_ZERO;  \
-    } else {                  \
-      next.i--;               \
-    }                         \
-  }                           \
-  return next.f;              \
-}
-
-NEXTAFTER(float, uint, FLT_NAN, 0.0f, 0x80000001)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, __clc_nextafter, float, float)
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#define DBL_NAN 0.0/0.0
-
-NEXTAFTER(double, ulong, DBL_NAN, 0.0, 0x8000000000000001)
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, __clc_nextafter, double, double)
-#endif
diff --git a/libclc/generic/lib/math/cos.cl b/libclc/generic/lib/math/cos.cl
deleted file mode 100644
index bbd96b42bc1249f97f5a8fb7237e43309d3ef9d5..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/cos.cl
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <clc/clc.h>
-
-#include "math.h"
-#include "sincos_helpers.h"
-#include "../clcmacro.h"
-
-_CLC_OVERLOAD _CLC_DEF float cos(float x)
-{
-    int ix = as_int(x);
-    int ax = ix & 0x7fffffff;
-    float dx = as_float(ax);
-
-    float r0, r1;
-    int regn = argReductionS(&r0, &r1, dx);
-
-    float ss = -sinf_piby4(r0, r1);
-    float cc =  cosf_piby4(r0, r1);
-
-    float c =  (regn & 1) != 0 ? ss : cc;
-    c = as_float(as_int(c) ^ ((regn > 1) << 31));
-
-    c = ax >= PINFBITPATT_SP32 ? as_float(QNANBITPATT_SP32) : c;
-
-    return c;
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, cos, float);
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-#define __CLC_FUNCTION __clc_cos_intrinsic
-#define __CLC_INTRINSIC "llvm.cos"
-#include <clc/math/unary_intrin.inc>
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
-
-_CLC_OVERLOAD _CLC_DEF double cos(double x) {
-    return __clc_cos_intrinsic(x);
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, cos, double);
-
-#endif
diff --git a/libclc/generic/lib/math/exp.cl b/libclc/generic/lib/math/exp.cl
deleted file mode 100644
index dbf4a930b01d76e94f036415d84e3c05e1904f19..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/exp.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <exp.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/exp.inc b/libclc/generic/lib/math/exp.inc
deleted file mode 100644
index 525fb59c99674b45ecf78ae04e86223f3b1b2db7..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/exp.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE exp(__CLC_GENTYPE val) {
-  // exp(x) = exp2(x * log2(e))
-#if __CLC_FPSIZE == 32
-  return exp2(val * M_LOG2E_F);
-#elif __CLC_FPSIZE == 64
-  return exp2(val * M_LOG2E);
-#else
-#error unknown _CLC_FPSIZE
-#endif
-}
diff --git a/libclc/generic/lib/math/exp10.cl b/libclc/generic/lib/math/exp10.cl
deleted file mode 100644
index c8039cb8dedcc9813c0e9ae1a69cd975dedbfeaf..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/exp10.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <exp10.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/exp10.inc b/libclc/generic/lib/math/exp10.inc
deleted file mode 100644
index a592c19487999a43eca2c0932781203a839a0f45..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/exp10.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE exp10(__CLC_GENTYPE val) {
-  // exp10(x) = exp2(x * log2(10))
-#if __CLC_FPSIZE == 32
-  return exp2(val * log2(10.0f));
-#elif __CLC_FPSIZE == 64
-  return exp2(val * log2(10.0));
-#else
-#error unknown _CLC_FPSIZE
-#endif
-}
diff --git a/libclc/generic/lib/math/fmax.cl b/libclc/generic/lib/math/fmax.cl
deleted file mode 100644
index 58583d6767aab89845bf76d882c7782a8fd0da9c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/fmax.cl
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define FUNCTION __clc_fmax
-#define FUNCTION_IMPL(x, y) ((x) < (y) ? (y) : (x))
-
-#define __CLC_BODY <binary_impl.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/fmin.cl b/libclc/generic/lib/math/fmin.cl
deleted file mode 100644
index a61ad4757289b311e504a3b8e37c96685c3347ae..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/fmin.cl
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define FUNCTION __clc_fmin
-#define FUNCTION_IMPL(x, y) ((y) < (x) ? (y) : (x))
-
-#define __CLC_BODY <binary_impl.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/hypot.cl b/libclc/generic/lib/math/hypot.cl
deleted file mode 100644
index eca042c9153583831903ea207e642fecf631a224..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/hypot.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <hypot.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/hypot.inc b/libclc/generic/lib/math/hypot.inc
deleted file mode 100644
index 036cee7e1f065bc90ad8543a891bfb8184279a66..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/hypot.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE hypot(__CLC_GENTYPE x, __CLC_GENTYPE y) {
-  return sqrt(x*x + y*y);
-}
diff --git a/libclc/generic/lib/math/mad.cl b/libclc/generic/lib/math/mad.cl
deleted file mode 100644
index 6c7b90d150d5285793f5769c85f27bbcac29c53d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/mad.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <mad.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/mad.inc b/libclc/generic/lib/math/mad.inc
deleted file mode 100644
index d32c7839d1b970f73d9a053ad2734077dd6d2ae7..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/mad.inc
+++ /dev/null
@@ -1,3 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mad(__CLC_GENTYPE a, __CLC_GENTYPE b, __CLC_GENTYPE c) {
-  return a * b + c;
-}
diff --git a/libclc/generic/lib/math/math.h b/libclc/generic/lib/math/math.h
deleted file mode 100644
index 53ed38a78a566cc49f2a118251bf848b2d40d5cf..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/math.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#define SNAN 0x001
-#define QNAN 0x002
-#define NINF 0x004
-#define NNOR 0x008
-#define NSUB 0x010
-#define NZER 0x020
-#define PZER 0x040
-#define PSUB 0x080
-#define PNOR 0x100
-#define PINF 0x200
-
-#define HAVE_HW_FMA32() (1)
-#define HAVE_BITALIGN() (0)
-#define HAVE_FAST_FMA32() (0)
-
-#define MATH_DIVIDE(X, Y) ((X) / (Y))
-#define MATH_RECIP(X) (1.0f / (X))
-#define MATH_SQRT(X) sqrt(X)
-
-#define SIGNBIT_SP32      0x80000000
-#define EXSIGNBIT_SP32    0x7fffffff
-#define EXPBITS_SP32      0x7f800000
-#define MANTBITS_SP32     0x007fffff
-#define ONEEXPBITS_SP32   0x3f800000
-#define TWOEXPBITS_SP32   0x40000000
-#define HALFEXPBITS_SP32  0x3f000000
-#define IMPBIT_SP32       0x00800000
-#define QNANBITPATT_SP32  0x7fc00000
-#define INDEFBITPATT_SP32 0xffc00000
-#define PINFBITPATT_SP32  0x7f800000
-#define NINFBITPATT_SP32  0xff800000
-#define EXPBIAS_SP32      127
-#define EXPSHIFTBITS_SP32 23
-#define BIASEDEMIN_SP32   1
-#define EMIN_SP32         -126
-#define BIASEDEMAX_SP32   254
-#define EMAX_SP32         127
-#define LAMBDA_SP32       1.0e30
-#define MANTLENGTH_SP32   24
-#define BASEDIGITS_SP32   7
-
-#define ALIGNED(x)	__attribute__((aligned(x)))
diff --git a/libclc/generic/lib/math/mix.cl b/libclc/generic/lib/math/mix.cl
deleted file mode 100644
index 294f332e67f2d1c0526dd41f5e677f5f3cb2e429..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/mix.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <mix.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/mix.inc b/libclc/generic/lib/math/mix.inc
deleted file mode 100644
index 1e8b936149bbfcb73bb160ca5f1a8b499e756a04..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/mix.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mix(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_GENTYPE a) {
-  return mad( y - x, a, x );
-}
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE mix(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_SCALAR_GENTYPE a) {
-    return mix(x, y, (__CLC_GENTYPE)a);
-}
-#endif
diff --git a/libclc/generic/lib/math/nextafter.cl b/libclc/generic/lib/math/nextafter.cl
deleted file mode 100644
index cbe54cd4e2662a7457446c506828aab949952070..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/nextafter.cl
+++ /dev/null
@@ -1,12 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-_CLC_DEFINE_BINARY_BUILTIN(float, nextafter, __builtin_nextafterf, float, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-_CLC_DEFINE_BINARY_BUILTIN(double, nextafter, __builtin_nextafter, double, double)
-
-#endif
diff --git a/libclc/generic/lib/math/pown.cl b/libclc/generic/lib/math/pown.cl
deleted file mode 100644
index f3b27d4ccab7d6b5c6f6feeb9db1e44750c81c16..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/pown.cl
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <clc/clc.h>
-#include "../clcmacro.h"
-
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, pown, float, int)
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-_CLC_BINARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, pown, double, int)
-#endif
diff --git a/libclc/generic/lib/math/sin.cl b/libclc/generic/lib/math/sin.cl
deleted file mode 100644
index ffc4dd1aa037a1c5a55374484aeff176fd0826b5..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/sin.cl
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <clc/clc.h>
-
-#include "math.h"
-#include "sincos_helpers.h"
-#include "../clcmacro.h"
-
-_CLC_OVERLOAD _CLC_DEF float sin(float x)
-{
-    int ix = as_int(x);
-    int ax = ix & 0x7fffffff;
-    float dx = as_float(ax);
-
-    float r0, r1;
-    int regn = argReductionS(&r0, &r1, dx);
-
-    float ss = sinf_piby4(r0, r1);
-    float cc = cosf_piby4(r0, r1);
-
-    float s = (regn & 1) != 0 ? cc : ss;
-    s = as_float(as_int(s) ^ ((regn > 1) << 31) ^ (ix ^ ax));
-
-    s = ax >= PINFBITPATT_SP32 ? as_float(QNANBITPATT_SP32) : s;
-
-    //Subnormals
-    s = x == 0.0f ? x : s;
-
-    return s;
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, float, sin, float);
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-#define __CLC_FUNCTION __clc_sin_intrinsic
-#define __CLC_INTRINSIC "llvm.sin"
-#include <clc/math/unary_intrin.inc>
-#undef __CLC_FUNCTION
-#undef __CLC_INTRINSIC
-
-_CLC_OVERLOAD _CLC_DEF double sin(double x) {
-    return __clc_sin_intrinsic(x);
-}
-
-_CLC_UNARY_VECTORIZE(_CLC_OVERLOAD _CLC_DEF, double, sin, double);
-
-#endif
diff --git a/libclc/generic/lib/math/sincos.cl b/libclc/generic/lib/math/sincos.cl
deleted file mode 100644
index eace5adcf16f0dbf19ed42a1989f98901a50a751..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/sincos.cl
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <clc/clc.h>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <sincos.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/math/sincos.inc b/libclc/generic/lib/math/sincos.inc
deleted file mode 100644
index e97f0f9641c1cfba6f49cc18e51e9940e5c6a0a1..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/sincos.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-#define __CLC_DECLARE_SINCOS(ADDRSPACE, TYPE) \
-  _CLC_OVERLOAD _CLC_DEF TYPE sincos (TYPE x, ADDRSPACE TYPE * cosval) { \
-    *cosval = cos(x); \
-    return sin(x); \
-  }
-
-__CLC_DECLARE_SINCOS(global, __CLC_GENTYPE)
-__CLC_DECLARE_SINCOS(local, __CLC_GENTYPE)
-__CLC_DECLARE_SINCOS(private, __CLC_GENTYPE)
-
-#undef __CLC_DECLARE_SINCOS
diff --git a/libclc/generic/lib/math/sincos_helpers.cl b/libclc/generic/lib/math/sincos_helpers.cl
deleted file mode 100644
index 1a5f10c8e651c9a44c7037d906e6986a817518bc..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/sincos_helpers.cl
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#include <clc/clc.h>
-
-#include "math.h"
-#include "sincos_helpers.h"
-
-uint bitalign(uint hi, uint lo, uint shift)
-{
-        return (hi << (32 - shift)) | (lo >> shift);
-}
-
-float sinf_piby4(float x, float y)
-{
-    // Taylor series for sin(x) is x - x^3/3! + x^5/5! - x^7/7! ...
-    // = x * (1 - x^2/3! + x^4/5! - x^6/7! ...
-    // = x * f(w)
-    // where w = x*x and f(w) = (1 - w/3! + w^2/5! - w^3/7! ...
-    // We use a minimax approximation of (f(w) - 1) / w
-    // because this produces an expansion in even powers of x.
-
-    const float c1 = -0.1666666666e0f;
-    const float c2 = 0.8333331876e-2f;
-    const float c3 = -0.198400874e-3f;
-    const float c4 = 0.272500015e-5f;
-    const float c5 = -2.5050759689e-08f; // 0xb2d72f34
-    const float c6 = 1.5896910177e-10f;	 // 0x2f2ec9d3
-
-    float z = x * x;
-    float v = z * x;
-    float r = mad(z, mad(z, mad(z, mad(z, c6, c5), c4), c3), c2);
-    float ret = x - mad(v, -c1, mad(z, mad(y, 0.5f, -v*r), -y));
-
-    return ret;
-}
-
-float cosf_piby4(float x, float y)
-{
-    // Taylor series for cos(x) is 1 - x^2/2! + x^4/4! - x^6/6! ...
-    // = f(w)
-    // where w = x*x and f(w) = (1 - w/2! + w^2/4! - w^3/6! ...
-    // We use a minimax approximation of (f(w) - 1 + w/2) / (w*w)
-    // because this produces an expansion in even powers of x.
-
-    const float c1 = 0.416666666e-1f;
-    const float c2 = -0.138888876e-2f;
-    const float c3 = 0.248006008e-4f;
-    const float c4 = -0.2730101334e-6f;
-    const float c5 = 2.0875723372e-09f;	 // 0x310f74f6
-    const float c6 = -1.1359647598e-11f; // 0xad47d74e
-
-    float z = x * x;
-    float r = z * mad(z, mad(z, mad(z, mad(z, mad(z, c6,  c5), c4), c3), c2), c1);
-
-    // if |x| < 0.3
-    float qx = 0.0f;
-
-    int ix = as_int(x) & EXSIGNBIT_SP32;
-
-    //  0.78125 > |x| >= 0.3
-    float xby4 = as_float(ix - 0x01000000);
-    qx = (ix >= 0x3e99999a) & (ix <= 0x3f480000) ? xby4 : qx;
-
-    // x > 0.78125
-    qx = ix > 0x3f480000 ? 0.28125f : qx;
-
-    float hz = mad(z, 0.5f, -qx);
-    float a = 1.0f - qx;
-    float ret = a - (hz - mad(z, r, -x*y));
-    return ret;
-}
-
-void fullMulS(float *hi, float *lo, float a, float b, float bh, float bt)
-{
-    if (HAVE_HW_FMA32()) {
-        float ph = a * b;
-        *hi = ph;
-        *lo = fma(a, b, -ph);
-    } else {
-        float ah = as_float(as_uint(a) & 0xfffff000U);
-        float at = a - ah;
-        float ph = a * b;
-        float pt = mad(at, bt, mad(at, bh, mad(ah, bt, mad(ah, bh, -ph))));
-        *hi = ph;
-        *lo = pt;
-    }
-}
-
-float removePi2S(float *hi, float *lo, float x)
-{
-    // 72 bits of pi/2
-    const float fpiby2_1 = (float) 0xC90FDA / 0x1.0p+23f;
-    const float fpiby2_1_h = (float) 0xC90 / 0x1.0p+11f;
-    const float fpiby2_1_t = (float) 0xFDA / 0x1.0p+23f;
-
-    const float fpiby2_2 = (float) 0xA22168 / 0x1.0p+47f;
-    const float fpiby2_2_h = (float) 0xA22 / 0x1.0p+35f;
-    const float fpiby2_2_t = (float) 0x168 / 0x1.0p+47f;
-
-    const float fpiby2_3 = (float) 0xC234C4 / 0x1.0p+71f;
-    const float fpiby2_3_h = (float) 0xC23 / 0x1.0p+59f;
-    const float fpiby2_3_t = (float) 0x4C4 / 0x1.0p+71f;
-
-    const float twobypi = 0x1.45f306p-1f;
-
-    float fnpi2 = trunc(mad(x, twobypi, 0.5f));
-
-    // subtract n * pi/2 from x
-    float rhead, rtail;
-    fullMulS(&rhead, &rtail, fnpi2, fpiby2_1, fpiby2_1_h, fpiby2_1_t);
-    float v = x - rhead;
-    float rem = v + (((x - v) - rhead) - rtail);
-
-    float rhead2, rtail2;
-    fullMulS(&rhead2, &rtail2, fnpi2, fpiby2_2, fpiby2_2_h, fpiby2_2_t);
-    v = rem - rhead2;
-    rem = v + (((rem - v) - rhead2) - rtail2);
-
-    float rhead3, rtail3;
-    fullMulS(&rhead3, &rtail3, fnpi2, fpiby2_3, fpiby2_3_h, fpiby2_3_t);
-    v = rem - rhead3;
-
-    *hi = v + ((rem - v) - rhead3);
-    *lo = -rtail3;
-    return fnpi2;
-}
-
-int argReductionSmallS(float *r, float *rr, float x)
-{
-    float fnpi2 = removePi2S(r, rr, x);
-    return (int)fnpi2 & 0x3;
-}
-
-#define FULL_MUL(A, B, HI, LO) \
-    LO = A * B; \
-    HI = mul_hi(A, B)
-
-#define FULL_MAD(A, B, C, HI, LO) \
-    LO = ((A) * (B) + (C)); \
-    HI = mul_hi(A, B); \
-    HI += LO < C
-
-int argReductionLargeS(float *r, float *rr, float x)
-{
-    int xe = (int)(as_uint(x) >> 23) - 127;
-    uint xm = 0x00800000U | (as_uint(x) & 0x7fffffU);
-
-    // 224 bits of 2/PI: . A2F9836E 4E441529 FC2757D1 F534DDC0 DB629599 3C439041 FE5163AB
-    const uint b6 = 0xA2F9836EU;
-    const uint b5 = 0x4E441529U;
-    const uint b4 = 0xFC2757D1U;
-    const uint b3 = 0xF534DDC0U;
-    const uint b2 = 0xDB629599U;
-    const uint b1 = 0x3C439041U;
-    const uint b0 = 0xFE5163ABU;
-
-    uint p0, p1, p2, p3, p4, p5, p6, p7, c0, c1;
-
-    FULL_MUL(xm, b0, c0, p0);
-    FULL_MAD(xm, b1, c0, c1, p1);
-    FULL_MAD(xm, b2, c1, c0, p2);
-    FULL_MAD(xm, b3, c0, c1, p3);
-    FULL_MAD(xm, b4, c1, c0, p4);
-    FULL_MAD(xm, b5, c0, c1, p5);
-    FULL_MAD(xm, b6, c1, p7, p6);
-
-    uint fbits = 224 + 23 - xe;
-
-    // shift amount to get 2 lsb of integer part at top 2 bits
-    //   min: 25 (xe=18) max: 134 (xe=127)
-    uint shift = 256U - 2 - fbits;
-
-    // Shift by up to 134/32 = 4 words
-    int c = shift > 31;
-    p7 = c ? p6 : p7;
-    p6 = c ? p5 : p6;
-    p5 = c ? p4 : p5;
-    p4 = c ? p3 : p4;
-    p3 = c ? p2 : p3;
-    p2 = c ? p1 : p2;
-    p1 = c ? p0 : p1;
-    shift -= (-c) & 32;
-
-    c = shift > 31;
-    p7 = c ? p6 : p7;
-    p6 = c ? p5 : p6;
-    p5 = c ? p4 : p5;
-    p4 = c ? p3 : p4;
-    p3 = c ? p2 : p3;
-    p2 = c ? p1 : p2;
-    shift -= (-c) & 32;
-
-    c = shift > 31;
-    p7 = c ? p6 : p7;
-    p6 = c ? p5 : p6;
-    p5 = c ? p4 : p5;
-    p4 = c ? p3 : p4;
-    p3 = c ? p2 : p3;
-    shift -= (-c) & 32;
-
-    c = shift > 31;
-    p7 = c ? p6 : p7;
-    p6 = c ? p5 : p6;
-    p5 = c ? p4 : p5;
-    p4 = c ? p3 : p4;
-    shift -= (-c) & 32;
-
-    // bitalign cannot handle a shift of 32
-    c = shift > 0;
-    shift = 32 - shift;
-    uint t7 = bitalign(p7, p6, shift);
-    uint t6 = bitalign(p6, p5, shift);
-    uint t5 = bitalign(p5, p4, shift);
-    p7 = c ? t7 : p7;
-    p6 = c ? t6 : p6;
-    p5 = c ? t5 : p5;
-
-    // Get 2 lsb of int part and msb of fraction
-    int i = p7 >> 29;
-
-    // Scoot up 2 more bits so only fraction remains
-    p7 = bitalign(p7, p6, 30);
-    p6 = bitalign(p6, p5, 30);
-    p5 = bitalign(p5, p4, 30);
-
-    // Subtract 1 if msb of fraction is 1, i.e. fraction >= 0.5
-    uint flip = i & 1 ? 0xffffffffU : 0U;
-    uint sign = i & 1 ? 0x80000000U : 0U;
-    p7 = p7 ^ flip;
-    p6 = p6 ^ flip;
-    p5 = p5 ^ flip;
-
-    // Find exponent and shift away leading zeroes and hidden bit
-    xe = clz(p7) + 1;
-    shift = 32 - xe;
-    p7 = bitalign(p7, p6, shift);
-    p6 = bitalign(p6, p5, shift);
-
-    // Most significant part of fraction
-    float q1 = as_float(sign | ((127 - xe) << 23) | (p7 >> 9));
-
-    // Shift out bits we captured on q1
-    p7 = bitalign(p7, p6, 32-23);
-
-    // Get 24 more bits of fraction in another float, there are not long strings of zeroes here
-    int xxe = clz(p7) + 1;
-    p7 = bitalign(p7, p6, 32-xxe);
-    float q0 = as_float(sign | ((127 - (xe + 23 + xxe)) << 23) | (p7 >> 9));
-
-    // At this point, the fraction q1 + q0 is correct to at least 48 bits
-    // Now we need to multiply the fraction by pi/2
-    // This loses us about 4 bits
-    // pi/2 = C90 FDA A22 168 C23 4C4
-
-    const float pio2h = (float)0xc90fda / 0x1.0p+23f;
-    const float pio2hh = (float)0xc90 / 0x1.0p+11f;
-    const float pio2ht = (float)0xfda / 0x1.0p+23f;
-    const float pio2t = (float)0xa22168 / 0x1.0p+47f;
-
-    float rh, rt;
-
-    if (HAVE_HW_FMA32()) {
-        rh = q1 * pio2h;
-        rt = fma(q0, pio2h, fma(q1, pio2t, fma(q1, pio2h, -rh)));
-    } else {
-        float q1h = as_float(as_uint(q1) & 0xfffff000);
-        float q1t = q1 - q1h;
-        rh = q1 * pio2h;
-        rt = mad(q1t, pio2ht, mad(q1t, pio2hh, mad(q1h, pio2ht, mad(q1h, pio2hh, -rh))));
-        rt = mad(q0, pio2h, mad(q1, pio2t, rt));
-    }
-
-    float t = rh + rt;
-    rt = rt - (t - rh);
-
-    *r = t;
-    *rr = rt;
-    return ((i >> 1) + (i & 1)) & 0x3;
-}
-
-int argReductionS(float *r, float *rr, float x)
-{
-    if (x < 0x1.0p+23f)
-        return argReductionSmallS(r, rr, x);
-    else
-        return argReductionLargeS(r, rr, x);
-}
-
diff --git a/libclc/generic/lib/math/sincos_helpers.h b/libclc/generic/lib/math/sincos_helpers.h
deleted file mode 100644
index f89c19f6874cec7da15dfecedfc3ebd60909007c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/math/sincos_helpers.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2014 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-float sinf_piby4(float x, float y);
-float cosf_piby4(float x, float y);
-int argReductionS(float *r, float *rr, float x);
diff --git a/libclc/generic/lib/relational/all.cl b/libclc/generic/lib/relational/all.cl
deleted file mode 100644
index 607d7a9c68c488ed226d6ac97803d644db6c5776..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/all.cl
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <clc/clc.h>
-
-#define _CLC_ALL(v) (((v) >> ((sizeof(v) * 8) - 1)) & 0x1)
-#define _CLC_ALL2(v) (_CLC_ALL((v).s0) & _CLC_ALL((v).s1))
-#define _CLC_ALL3(v) (_CLC_ALL2((v)) & _CLC_ALL((v).s2))
-#define _CLC_ALL4(v) (_CLC_ALL3((v)) & _CLC_ALL((v).s3))
-#define _CLC_ALL8(v) (_CLC_ALL4((v)) & _CLC_ALL((v).s4) & _CLC_ALL((v).s5) \
-                                     & _CLC_ALL((v).s6) & _CLC_ALL((v).s7))
-#define _CLC_ALL16(v) (_CLC_ALL8((v)) & _CLC_ALL((v).s8) & _CLC_ALL((v).s9) \
-                                      & _CLC_ALL((v).sA) & _CLC_ALL((v).sB) \
-                                      & _CLC_ALL((v).sC) & _CLC_ALL((v).sD) \
-                                      & _CLC_ALL((v).sE) & _CLC_ALL((v).sf))
-
-
-#define ALL_ID(TYPE) \
-  _CLC_OVERLOAD _CLC_DEF int all(TYPE v)
-
-#define ALL_VECTORIZE(TYPE) \
-  ALL_ID(TYPE) { return _CLC_ALL(v); } \
-  ALL_ID(TYPE##2) { return _CLC_ALL2(v); } \
-  ALL_ID(TYPE##3) { return _CLC_ALL3(v); } \
-  ALL_ID(TYPE##4) { return _CLC_ALL4(v); } \
-  ALL_ID(TYPE##8) { return _CLC_ALL8(v); } \
-  ALL_ID(TYPE##16) { return _CLC_ALL16(v); }
-
-ALL_VECTORIZE(char)
-ALL_VECTORIZE(short)
-ALL_VECTORIZE(int)
-ALL_VECTORIZE(long)
diff --git a/libclc/generic/lib/relational/any.cl b/libclc/generic/lib/relational/any.cl
deleted file mode 100644
index 4d372102021b96ecfd8a920a88f599e4106f8ded..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/any.cl
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <clc/clc.h>
-
-#define _CLC_ANY(v) (((v) >> ((sizeof(v) * 8) - 1)) & 0x1)
-#define _CLC_ANY2(v) (_CLC_ANY((v).s0) | _CLC_ANY((v).s1))
-#define _CLC_ANY3(v) (_CLC_ANY2((v)) | _CLC_ANY((v).s2))
-#define _CLC_ANY4(v) (_CLC_ANY3((v)) | _CLC_ANY((v).s3))
-#define _CLC_ANY8(v) (_CLC_ANY4((v)) | _CLC_ANY((v).s4) | _CLC_ANY((v).s5) \
-                                     | _CLC_ANY((v).s6) | _CLC_ANY((v).s7))
-#define _CLC_ANY16(v) (_CLC_ANY8((v)) | _CLC_ANY((v).s8) | _CLC_ANY((v).s9) \
-                                      | _CLC_ANY((v).sA) | _CLC_ANY((v).sB) \
-                                      | _CLC_ANY((v).sC) | _CLC_ANY((v).sD) \
-                                      | _CLC_ANY((v).sE) | _CLC_ANY((v).sf))
-
-
-#define ANY_ID(TYPE) \
-  _CLC_OVERLOAD _CLC_DEF int any(TYPE v)
-
-#define ANY_VECTORIZE(TYPE) \
-  ANY_ID(TYPE) { return _CLC_ANY(v); } \
-  ANY_ID(TYPE##2) { return _CLC_ANY2(v); } \
-  ANY_ID(TYPE##3) { return _CLC_ANY3(v); } \
-  ANY_ID(TYPE##4) { return _CLC_ANY4(v); } \
-  ANY_ID(TYPE##8) { return _CLC_ANY8(v); } \
-  ANY_ID(TYPE##16) { return _CLC_ANY16(v); }
-
-ANY_VECTORIZE(char)
-ANY_VECTORIZE(short)
-ANY_VECTORIZE(int)
-ANY_VECTORIZE(long)
-
diff --git a/libclc/generic/lib/relational/isequal.cl b/libclc/generic/lib/relational/isequal.cl
deleted file mode 100644
index 9d79ba6b3dbee55d2c3cbbe4e41434ded40fa163..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/isequal.cl
+++ /dev/null
@@ -1,30 +0,0 @@
-#include <clc/clc.h>
-
-#define _CLC_DEFINE_ISEQUAL(RET_TYPE, FUNCTION, ARG1_TYPE, ARG2_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
-  return (x == y); \
-} \
-
-_CLC_DEFINE_ISEQUAL(int, isequal, float, float)
-_CLC_DEFINE_ISEQUAL(int2, isequal, float2, float2)
-_CLC_DEFINE_ISEQUAL(int3, isequal, float3, float3)
-_CLC_DEFINE_ISEQUAL(int4, isequal, float4, float4)
-_CLC_DEFINE_ISEQUAL(int8, isequal, float8, float8)
-_CLC_DEFINE_ISEQUAL(int16, isequal, float16, float16)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of isequal(double) returns an int, but the vector versions
-// return long.
-_CLC_DEFINE_ISEQUAL(int, isequal, double, double)
-_CLC_DEFINE_ISEQUAL(long2, isequal, double2, double2)
-_CLC_DEFINE_ISEQUAL(long3, isequal, double3, double3)
-_CLC_DEFINE_ISEQUAL(long4, isequal, double4, double4)
-_CLC_DEFINE_ISEQUAL(long8, isequal, double8, double8)
-_CLC_DEFINE_ISEQUAL(long16, isequal, double16, double16)
-
-#endif
-
-#undef _CLC_DEFINE_ISEQUAL
\ No newline at end of file
diff --git a/libclc/generic/lib/relational/isgreater.cl b/libclc/generic/lib/relational/isgreater.cl
deleted file mode 100644
index 79456e56d517f9e020e34fcadedc1d9294edf2a4..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/isgreater.cl
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-//Note: It would be nice to use __builtin_isgreater with vector inputs, but it seems to only take scalar values as
-//      input, which will produce incorrect output for vector input types.
-
-_CLC_DEFINE_RELATIONAL_BINARY(int, isgreater, __builtin_isgreater, float, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of isgreater(double, double) returns an int, but the vector versions
-// return long.
-
-_CLC_DEF _CLC_OVERLOAD int isgreater(double x, double y){
-	return __builtin_isgreater(x, y);
-}
-
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, isgreater, double, double)
-
-#endif
diff --git a/libclc/generic/lib/relational/isgreaterequal.cl b/libclc/generic/lib/relational/isgreaterequal.cl
deleted file mode 100644
index 2d5ebe5770c7ce52a8b897fc8a3abe22affcd450..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/isgreaterequal.cl
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-//Note: It would be nice to use __builtin_isgreaterequal with vector inputs, but it seems to only take scalar values as
-//      input, which will produce incorrect output for vector input types.
-
-_CLC_DEFINE_RELATIONAL_BINARY(int, isgreaterequal, __builtin_isgreaterequal, float, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of isgreaterequal(double, double) returns an int, but the vector versions
-// return long.
-
-_CLC_DEF _CLC_OVERLOAD int isgreaterequal(double x, double y){
-	return __builtin_isgreaterequal(x, y);
-}
-
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, isgreaterequal, double, double)
-
-#endif
diff --git a/libclc/generic/lib/relational/isless.cl b/libclc/generic/lib/relational/isless.cl
deleted file mode 100644
index 56a3e1329b48feb059df72525070d5c1f11d1cb8..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/isless.cl
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-//Note: It would be nice to use __builtin_isless with vector inputs, but it seems to only take scalar values as
-//      input, which will produce incorrect output for vector input types.
-
-_CLC_DEFINE_RELATIONAL_BINARY(int, isless, __builtin_isless, float, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of isless(double, double) returns an int, but the vector versions
-// return long.
-
-_CLC_DEF _CLC_OVERLOAD int isless(double x, double y){
-	return __builtin_isless(x, y);
-}
-
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, isless, double, double)
-
-#endif
diff --git a/libclc/generic/lib/relational/islessequal.cl b/libclc/generic/lib/relational/islessequal.cl
deleted file mode 100644
index 259c307da4532ad7aa179e71b8ce590b01a9d388..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/islessequal.cl
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-//Note: It would be nice to use __builtin_islessequal with vector inputs, but it seems to only take scalar values as
-//      input, which will produce incorrect output for vector input types.
-
-_CLC_DEFINE_RELATIONAL_BINARY(int, islessequal, __builtin_islessequal, float, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of islessequal(double, double) returns an int, but the vector versions
-// return long.
-
-_CLC_DEF _CLC_OVERLOAD int islessequal(double x, double y){
-	return __builtin_islessequal(x, y);
-}
-
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, islessequal, double, double)
-
-#endif
diff --git a/libclc/generic/lib/relational/isnan.cl b/libclc/generic/lib/relational/isnan.cl
deleted file mode 100644
index f82dc5d59da5272232de5f410c2d6a05c5b927aa..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/isnan.cl
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-_CLC_DEFINE_RELATIONAL_UNARY(int, isnan, __builtin_isnan, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of isnan(double) returns an int, but the vector versions
-// return long.
-_CLC_DEF _CLC_OVERLOAD int isnan(double x) {
-  return __builtin_isnan(x);
-}
-
-_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(long, isnan, double)
-
-#endif
diff --git a/libclc/generic/lib/relational/isnotequal.cl b/libclc/generic/lib/relational/isnotequal.cl
deleted file mode 100644
index 787fd8d53c20611690669e8df2371be8aa4f34b8..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/isnotequal.cl
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-#define _CLC_DEFINE_ISNOTEQUAL(RET_TYPE, FUNCTION, ARG1_TYPE, ARG2_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \
-  return (x != y); \
-} \
-
-_CLC_DEFINE_ISNOTEQUAL(int, isnotequal, float, float)
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(int, isnotequal, float, float)
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of isnotequal(double, double) returns an int, but the vector versions
-// return long.
-
-_CLC_DEFINE_ISNOTEQUAL(int, isnotequal, double, double)
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, isnotequal, double, double)
-
-#endif
-
-#undef _CLC_DEFINE_ISNOTEQUAL
diff --git a/libclc/generic/lib/relational/relational.h b/libclc/generic/lib/relational/relational.h
deleted file mode 100644
index e492750dacb3291c6d0125847e51955b68d656ca..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/relational.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Contains relational macros that have to return 1 for scalar and -1 for vector
- * when the result is true.
- */
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_SCALAR(RET_TYPE, FUNCTION, BUILTIN_NAME, ARG_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG_TYPE x){ \
-	return BUILTIN_NAME(x); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_VEC2(RET_TYPE, FUNCTION, ARG_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG_TYPE x) { \
-  return (RET_TYPE)( (RET_TYPE){FUNCTION(x.lo), FUNCTION(x.hi)} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_VEC3(RET_TYPE, FUNCTION, ARG_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG_TYPE x) { \
-  return (RET_TYPE)( (RET_TYPE){FUNCTION(x.s0), FUNCTION(x.s1), FUNCTION(x.s2)} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_VEC4(RET_TYPE, FUNCTION, ARG_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG_TYPE x) { \
-  return (RET_TYPE)( \
-	(RET_TYPE){ \
-		FUNCTION(x.s0), FUNCTION(x.s1), FUNCTION(x.s2), FUNCTION(x.s3) \
-	} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_VEC8(RET_TYPE, FUNCTION, ARG_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG_TYPE x) { \
-  return (RET_TYPE)( \
-	(RET_TYPE){ \
-		FUNCTION(x.s0), FUNCTION(x.s1), FUNCTION(x.s2), FUNCTION(x.s3), \
-		FUNCTION(x.s4), FUNCTION(x.s5), FUNCTION(x.s6), FUNCTION(x.s7) \
-	} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_VEC16(RET_TYPE, FUNCTION, ARG_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG_TYPE x) { \
-  return (RET_TYPE)( \
-	(RET_TYPE){ \
-		FUNCTION(x.s0), FUNCTION(x.s1), FUNCTION(x.s2), FUNCTION(x.s3), \
-		FUNCTION(x.s4), FUNCTION(x.s5), FUNCTION(x.s6), FUNCTION(x.s7), \
-		FUNCTION(x.s8), FUNCTION(x.s9), FUNCTION(x.sa), FUNCTION(x.sb), \
-		FUNCTION(x.sc), FUNCTION(x.sd), FUNCTION(x.se), FUNCTION(x.sf) \
-	} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(RET_TYPE, FUNCTION, ARG_TYPE) \
-_CLC_DEFINE_RELATIONAL_UNARY_VEC2(RET_TYPE##2, FUNCTION, ARG_TYPE##2) \
-_CLC_DEFINE_RELATIONAL_UNARY_VEC3(RET_TYPE##3, FUNCTION, ARG_TYPE##3) \
-_CLC_DEFINE_RELATIONAL_UNARY_VEC4(RET_TYPE##4, FUNCTION, ARG_TYPE##4) \
-_CLC_DEFINE_RELATIONAL_UNARY_VEC8(RET_TYPE##8, FUNCTION, ARG_TYPE##8) \
-_CLC_DEFINE_RELATIONAL_UNARY_VEC16(RET_TYPE##16, FUNCTION, ARG_TYPE##16)
-
-#define _CLC_DEFINE_RELATIONAL_UNARY(RET_TYPE, FUNCTION, BUILTIN_FUNCTION, ARG_TYPE) \
-_CLC_DEFINE_RELATIONAL_UNARY_SCALAR(RET_TYPE, FUNCTION, BUILTIN_FUNCTION, ARG_TYPE) \
-_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(RET_TYPE, FUNCTION, ARG_TYPE) \
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_SCALAR(RET_TYPE, FUNCTION, BUILTIN_NAME, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y){ \
-	return BUILTIN_NAME(x, y); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \
-  return (RET_TYPE)( (RET_TYPE){FUNCTION(x.lo, y.lo), FUNCTION(x.hi, y.hi)} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC2(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \
-  return (RET_TYPE)( (RET_TYPE){FUNCTION(x.lo, y.lo), FUNCTION(x.hi, y.hi)} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC3(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \
-  return (RET_TYPE)( (RET_TYPE){FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), FUNCTION(x.s2, y.s2)} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC4(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \
-  return (RET_TYPE)( \
-	(RET_TYPE){ \
-		FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), FUNCTION(x.s2, y.s2), FUNCTION(x.s3, y.s3) \
-	} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC8(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \
-  return (RET_TYPE)( \
-	(RET_TYPE){ \
-		FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), FUNCTION(x.s2, y.s2), FUNCTION(x.s3, y.s3), \
-		FUNCTION(x.s4, y.s4), FUNCTION(x.s5, y.s5), FUNCTION(x.s6, y.s6), FUNCTION(x.s7, y.s7) \
-	} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC16(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG0_TYPE x, ARG1_TYPE y) { \
-  return (RET_TYPE)( \
-	(RET_TYPE){ \
-		FUNCTION(x.s0, y.s0), FUNCTION(x.s1, y.s1), FUNCTION(x.s2, y.s2), FUNCTION(x.s3, y.s3), \
-		FUNCTION(x.s4, y.s4), FUNCTION(x.s5, y.s5), FUNCTION(x.s6, y.s6), FUNCTION(x.s7, y.s7), \
-		FUNCTION(x.s8, y.s8), FUNCTION(x.s9, y.s9), FUNCTION(x.sa, y.sa), FUNCTION(x.sb, y.sb), \
-		FUNCTION(x.sc, y.sc), FUNCTION(x.sd, y.sd), FUNCTION(x.se, y.se), FUNCTION(x.sf, y.sf) \
-	} != (RET_TYPE)0); \
-}
-
-#define _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEFINE_RELATIONAL_BINARY_VEC2(RET_TYPE##2, FUNCTION, ARG0_TYPE##2, ARG1_TYPE##2) \
-_CLC_DEFINE_RELATIONAL_BINARY_VEC3(RET_TYPE##3, FUNCTION, ARG0_TYPE##3, ARG1_TYPE##3) \
-_CLC_DEFINE_RELATIONAL_BINARY_VEC4(RET_TYPE##4, FUNCTION, ARG0_TYPE##4, ARG1_TYPE##4) \
-_CLC_DEFINE_RELATIONAL_BINARY_VEC8(RET_TYPE##8, FUNCTION, ARG0_TYPE##8, ARG1_TYPE##8) \
-_CLC_DEFINE_RELATIONAL_BINARY_VEC16(RET_TYPE##16, FUNCTION, ARG0_TYPE##16, ARG1_TYPE##16)
-
-#define _CLC_DEFINE_RELATIONAL_BINARY(RET_TYPE, FUNCTION, BUILTIN_FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEFINE_RELATIONAL_BINARY_SCALAR(RET_TYPE, FUNCTION, BUILTIN_FUNCTION, ARG0_TYPE, ARG1_TYPE) \
-_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(RET_TYPE, FUNCTION, ARG0_TYPE, ARG1_TYPE)
diff --git a/libclc/generic/lib/relational/signbit.cl b/libclc/generic/lib/relational/signbit.cl
deleted file mode 100644
index ab37d2f1288c01052aa6cbd8909ebfb8b5fe49e5..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/relational/signbit.cl
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <clc/clc.h>
-#include "relational.h"
-
-_CLC_DEFINE_RELATIONAL_UNARY(int, signbit, __builtin_signbitf, float)
-
-#ifdef cl_khr_fp64
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-// The scalar version of signbit(double) returns an int, but the vector versions
-// return long.
-
-_CLC_DEF _CLC_OVERLOAD int signbit(double x){
-	return __builtin_signbit(x);
-}
-
-_CLC_DEFINE_RELATIONAL_UNARY_VEC_ALL(long, signbit, double)
-
-#endif
diff --git a/libclc/generic/lib/shared/clamp.cl b/libclc/generic/lib/shared/clamp.cl
deleted file mode 100644
index c79a358e00e073da562d0d94a421bcc572d4f54d..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/clamp.cl
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <clamp.inc>
-#include <clc/integer/gentype.inc>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <clamp.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/shared/clamp.inc b/libclc/generic/lib/shared/clamp.inc
deleted file mode 100644
index c918f9c499e70f6a948ed0e8e0331ecd5c54afb3..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/clamp.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE clamp(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_GENTYPE z) {
-  return (x > z ? z : (x < y ? y : x));
-}
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE clamp(__CLC_GENTYPE x, __CLC_SCALAR_GENTYPE y, __CLC_SCALAR_GENTYPE z) {
-  return (x > (__CLC_GENTYPE)z ? (__CLC_GENTYPE)z : (x < (__CLC_GENTYPE)y ? (__CLC_GENTYPE)y : x));
-}
-#endif
diff --git a/libclc/generic/lib/shared/max.cl b/libclc/generic/lib/shared/max.cl
deleted file mode 100644
index 1c4457c82144bf4e06f71a614cfe71f5e180385b..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/max.cl
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <max.inc>
-#include <clc/integer/gentype.inc>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <max.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/shared/max.inc b/libclc/generic/lib/shared/max.inc
deleted file mode 100644
index 75a24c077d1ab563428fd67d805164acdf6570c9..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/max.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE max(__CLC_GENTYPE a, __CLC_GENTYPE b) {
-  return (a > b ? a : b);
-}
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE max(__CLC_GENTYPE a, __CLC_SCALAR_GENTYPE b) {
-  return (a > (__CLC_GENTYPE)b ? a : (__CLC_GENTYPE)b);
-}
-#endif
diff --git a/libclc/generic/lib/shared/min.cl b/libclc/generic/lib/shared/min.cl
deleted file mode 100644
index 433087a1069d0747a371ce3c3aded92ac3823334..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/min.cl
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <clc/clc.h>
-
-#define __CLC_BODY <min.inc>
-#include <clc/integer/gentype.inc>
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-#endif
-
-#define __CLC_BODY <min.inc>
-#include <clc/math/gentype.inc>
diff --git a/libclc/generic/lib/shared/min.inc b/libclc/generic/lib/shared/min.inc
deleted file mode 100644
index fe42864df25766fc345a51b9fbaf6a982570dfea..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/min.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE min(__CLC_GENTYPE a, __CLC_GENTYPE b) {
-  return (a < b ? a : b);
-}
-
-#ifndef __CLC_SCALAR
-_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE min(__CLC_GENTYPE a, __CLC_SCALAR_GENTYPE b) {
-  return (a < (__CLC_GENTYPE)b ? a : (__CLC_GENTYPE)b);
-}
-#endif
diff --git a/libclc/generic/lib/shared/vload.cl b/libclc/generic/lib/shared/vload.cl
deleted file mode 100644
index 6793072cc6ef007dd7fa65f6f9f9516cd860be9e..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/vload.cl
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <clc/clc.h>
-
-#define VLOAD_VECTORIZE(PRIM_TYPE, ADDR_SPACE) \
-  _CLC_OVERLOAD _CLC_DEF PRIM_TYPE##2 vload2(size_t offset, const ADDR_SPACE PRIM_TYPE *x) { \
-    return (PRIM_TYPE##2)(x[2*offset] , x[2*offset+1]); \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF PRIM_TYPE##3 vload3(size_t offset, const ADDR_SPACE PRIM_TYPE *x) { \
-    return (PRIM_TYPE##3)(x[3*offset] , x[3*offset+1], x[3*offset+2]); \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF PRIM_TYPE##4 vload4(size_t offset, const ADDR_SPACE PRIM_TYPE *x) { \
-    return (PRIM_TYPE##4)(x[4*offset], x[4*offset+1], x[4*offset+2], x[4*offset+3]); \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF PRIM_TYPE##8 vload8(size_t offset, const ADDR_SPACE PRIM_TYPE *x) { \
-    return (PRIM_TYPE##8)(vload4(0, &x[8*offset]), vload4(1, &x[8*offset])); \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF PRIM_TYPE##16 vload16(size_t offset, const ADDR_SPACE PRIM_TYPE *x) { \
-    return (PRIM_TYPE##16)(vload8(0, &x[16*offset]), vload8(1, &x[16*offset])); \
-  } \
-
-#define VLOAD_ADDR_SPACES(__CLC_SCALAR_GENTYPE) \
-    VLOAD_VECTORIZE(__CLC_SCALAR_GENTYPE, __private) \
-    VLOAD_VECTORIZE(__CLC_SCALAR_GENTYPE, __local) \
-    VLOAD_VECTORIZE(__CLC_SCALAR_GENTYPE, __constant) \
-    VLOAD_VECTORIZE(__CLC_SCALAR_GENTYPE, __global) \
-
-#define VLOAD_TYPES() \
-    VLOAD_ADDR_SPACES(char) \
-    VLOAD_ADDR_SPACES(uchar) \
-    VLOAD_ADDR_SPACES(short) \
-    VLOAD_ADDR_SPACES(ushort) \
-    VLOAD_ADDR_SPACES(int) \
-    VLOAD_ADDR_SPACES(uint) \
-    VLOAD_ADDR_SPACES(long) \
-    VLOAD_ADDR_SPACES(ulong) \
-    VLOAD_ADDR_SPACES(float) \
-
-VLOAD_TYPES()
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-    VLOAD_ADDR_SPACES(double)
-#endif
diff --git a/libclc/generic/lib/shared/vload_impl.ll b/libclc/generic/lib/shared/vload_impl.ll
deleted file mode 100644
index 33ba996b25c348edcd972a23bbdb7e4958a3139c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/vload_impl.ll
+++ /dev/null
@@ -1,130 +0,0 @@
-; This provides optimized implementations of vload2/3/4/8/16 for 32-bit int/uint
-; The address spaces get mapped to data types in target-specific usages
-
-define <2 x i32> @__clc_vload2_i32__addr1(i32 addrspace(1)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <2 x i32> addrspace(1)*
-  %2 = load <2 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret <2 x i32> %2
-}
-
-define <3 x i32> @__clc_vload3_i32__addr1(i32 addrspace(1)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <3 x i32> addrspace(1)*
-  %2 = load <3 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret <3 x i32> %2
-}
-
-define <4 x i32> @__clc_vload4_i32__addr1(i32 addrspace(1)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <4 x i32> addrspace(1)*
-  %2 = load <4 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret <4 x i32> %2
-}
-
-define <8 x i32> @__clc_vload8_i32__addr1(i32 addrspace(1)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <8 x i32> addrspace(1)*
-  %2 = load <8 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret <8 x i32> %2
-}
-
-define <16 x i32> @__clc_vload16_i32__addr1(i32 addrspace(1)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <16 x i32> addrspace(1)*
-  %2 = load <16 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret <16 x i32> %2
-}
-
-define <2 x i32> @__clc_vload2_i32__addr2(i32 addrspace(2)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(2)* %addr to <2 x i32> addrspace(2)*
-  %2 = load <2 x i32> addrspace(2)* %1, align 4, !tbaa !3
-  ret <2 x i32> %2
-}
-
-define <3 x i32> @__clc_vload3_i32__addr2(i32 addrspace(2)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(2)* %addr to <3 x i32> addrspace(2)*
-  %2 = load <3 x i32> addrspace(2)* %1, align 4, !tbaa !3
-  ret <3 x i32> %2
-}
-
-define <4 x i32> @__clc_vload4_i32__addr2(i32 addrspace(2)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(2)* %addr to <4 x i32> addrspace(2)*
-  %2 = load <4 x i32> addrspace(2)* %1, align 4, !tbaa !3
-  ret <4 x i32> %2
-}
-
-define <8 x i32> @__clc_vload8_i32__addr2(i32 addrspace(2)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(2)* %addr to <8 x i32> addrspace(2)*
-  %2 = load <8 x i32> addrspace(2)* %1, align 4, !tbaa !3
-  ret <8 x i32> %2
-}
-
-define <16 x i32> @__clc_vload16_i32__addr2(i32 addrspace(2)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(2)* %addr to <16 x i32> addrspace(2)*
-  %2 = load <16 x i32> addrspace(2)* %1, align 4, !tbaa !3
-  ret <16 x i32> %2
-}
-
-define <2 x i32> @__clc_vload2_i32__addr3(i32 addrspace(3)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(3)* %addr to <2 x i32> addrspace(3)*
-  %2 = load <2 x i32> addrspace(3)* %1, align 4, !tbaa !3
-  ret <2 x i32> %2
-}
-
-define <3 x i32> @__clc_vload3_i32__addr3(i32 addrspace(3)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(3)* %addr to <3 x i32> addrspace(3)*
-  %2 = load <3 x i32> addrspace(3)* %1, align 4, !tbaa !3
-  ret <3 x i32> %2
-}
-
-define <4 x i32> @__clc_vload4_i32__addr3(i32 addrspace(3)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(3)* %addr to <4 x i32> addrspace(3)*
-  %2 = load <4 x i32> addrspace(3)* %1, align 4, !tbaa !3
-  ret <4 x i32> %2
-}
-
-define <8 x i32> @__clc_vload8_i32__addr3(i32 addrspace(3)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(3)* %addr to <8 x i32> addrspace(3)*
-  %2 = load <8 x i32> addrspace(3)* %1, align 4, !tbaa !3
-  ret <8 x i32> %2
-}
-
-define <16 x i32> @__clc_vload16_i32__addr3(i32 addrspace(3)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(3)* %addr to <16 x i32> addrspace(3)*
-  %2 = load <16 x i32> addrspace(3)* %1, align 4, !tbaa !3
-  ret <16 x i32> %2
-}
-
-define <2 x i32> @__clc_vload2_i32__addr4(i32 addrspace(4)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(4)* %addr to <2 x i32> addrspace(4)*
-  %2 = load <2 x i32> addrspace(4)* %1, align 4, !tbaa !3
-  ret <2 x i32> %2
-}
-
-define <3 x i32> @__clc_vload3_i32__addr4(i32 addrspace(4)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(4)* %addr to <3 x i32> addrspace(4)*
-  %2 = load <3 x i32> addrspace(4)* %1, align 4, !tbaa !3
-  ret <3 x i32> %2
-}
-
-define <4 x i32> @__clc_vload4_i32__addr4(i32 addrspace(4)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(4)* %addr to <4 x i32> addrspace(4)*
-  %2 = load <4 x i32> addrspace(4)* %1, align 4, !tbaa !3
-  ret <4 x i32> %2
-}
-
-define <8 x i32> @__clc_vload8_i32__addr4(i32 addrspace(4)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(4)* %addr to <8 x i32> addrspace(4)*
-  %2 = load <8 x i32> addrspace(4)* %1, align 4, !tbaa !3
-  ret <8 x i32> %2
-}
-
-define <16 x i32> @__clc_vload16_i32__addr4(i32 addrspace(4)* nocapture %addr) nounwind readonly alwaysinline {
-  %1 = bitcast i32 addrspace(4)* %addr to <16 x i32> addrspace(4)*
-  %2 = load <16 x i32> addrspace(4)* %1, align 4, !tbaa !3
-  ret <16 x i32> %2
-}
-
-!1 = metadata !{metadata !"char", metadata !5}
-!2 = metadata !{metadata !"short", metadata !5}
-!3 = metadata !{metadata !"int", metadata !5}
-!4 = metadata !{metadata !"long", metadata !5}
-!5 = metadata !{metadata !"omnipotent char", metadata !6}
-!6 = metadata !{metadata !"Simple C/C++ TBAA"}
-
diff --git a/libclc/generic/lib/shared/vstore.cl b/libclc/generic/lib/shared/vstore.cl
deleted file mode 100644
index f6d360e0d1d7ec35efb25c453114266a47b17c77..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/vstore.cl
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <clc/clc.h>
-
-#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
-
-#define VSTORE_VECTORIZE(PRIM_TYPE, ADDR_SPACE) \
-  _CLC_OVERLOAD _CLC_DEF void vstore2(PRIM_TYPE##2 vec, size_t offset, ADDR_SPACE PRIM_TYPE *mem) { \
-    mem[2*offset] = vec.s0; \
-    mem[2*offset+1] = vec.s1; \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF void vstore3(PRIM_TYPE##3 vec, size_t offset, ADDR_SPACE PRIM_TYPE *mem) { \
-    mem[3*offset] = vec.s0; \
-    mem[3*offset+1] = vec.s1; \
-    mem[3*offset+2] = vec.s2; \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF void vstore4(PRIM_TYPE##4 vec, size_t offset, ADDR_SPACE PRIM_TYPE *mem) { \
-    vstore2(vec.lo, 0, &mem[offset*4]); \
-    vstore2(vec.hi, 1, &mem[offset*4]); \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF void vstore8(PRIM_TYPE##8 vec, size_t offset, ADDR_SPACE PRIM_TYPE *mem) { \
-    vstore4(vec.lo, 0, &mem[offset*8]); \
-    vstore4(vec.hi, 1, &mem[offset*8]); \
-  } \
-\
-  _CLC_OVERLOAD _CLC_DEF void vstore16(PRIM_TYPE##16 vec, size_t offset, ADDR_SPACE PRIM_TYPE *mem) { \
-    vstore8(vec.lo, 0, &mem[offset*16]); \
-    vstore8(vec.hi, 1, &mem[offset*16]); \
-  } \
-
-#define VSTORE_ADDR_SPACES(__CLC_SCALAR___CLC_GENTYPE) \
-    VSTORE_VECTORIZE(__CLC_SCALAR___CLC_GENTYPE, __private) \
-    VSTORE_VECTORIZE(__CLC_SCALAR___CLC_GENTYPE, __local) \
-    VSTORE_VECTORIZE(__CLC_SCALAR___CLC_GENTYPE, __global) \
-
-#define VSTORE_TYPES() \
-    VSTORE_ADDR_SPACES(char) \
-    VSTORE_ADDR_SPACES(uchar) \
-    VSTORE_ADDR_SPACES(short) \
-    VSTORE_ADDR_SPACES(ushort) \
-    VSTORE_ADDR_SPACES(int) \
-    VSTORE_ADDR_SPACES(uint) \
-    VSTORE_ADDR_SPACES(long) \
-    VSTORE_ADDR_SPACES(ulong) \
-    VSTORE_ADDR_SPACES(float) \
-
-VSTORE_TYPES()
-
-#ifdef cl_khr_fp64
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-    VSTORE_ADDR_SPACES(double)
-#endif
diff --git a/libclc/generic/lib/shared/vstore_impl.ll b/libclc/generic/lib/shared/vstore_impl.ll
deleted file mode 100644
index 9e2a37b29702c3e414b442b4fb4c561d94c7128c..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/shared/vstore_impl.ll
+++ /dev/null
@@ -1,40 +0,0 @@
-; This provides optimized implementations of vstore2/3/4/8/16 for 32-bit int/uint
-; The address spaces get mapped to data types in target-specific usages
-
-define void @__clc_vstore2_i32__addr1(<2 x i32> %vec, i32 addrspace(1)* nocapture %addr) nounwind alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <2 x i32> addrspace(1)*
-  store <2 x i32> %vec, <2 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret void
-}
-
-define void @__clc_vstore3_i32__addr1(<3 x i32> %vec, i32 addrspace(1)* nocapture %addr) nounwind alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <3 x i32> addrspace(1)*
-  store <3 x i32> %vec, <3 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret void
-}
-
-define void @__clc_vstore4_i32__addr1(<4 x i32> %vec, i32 addrspace(1)* nocapture %addr) nounwind alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <4 x i32> addrspace(1)*
-  store <4 x i32> %vec, <4 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret void
-}
-
-define void @__clc_vstore8_i32__addr1(<8 x i32> %vec, i32 addrspace(1)* nocapture %addr) nounwind alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <8 x i32> addrspace(1)*
-  store <8 x i32> %vec, <8 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret void
-}
-
-define void @__clc_vstore16_i32__addr1(<16 x i32> %vec, i32 addrspace(1)* nocapture %addr) nounwind alwaysinline {
-  %1 = bitcast i32 addrspace(1)* %addr to <16 x i32> addrspace(1)*
-  store <16 x i32> %vec, <16 x i32> addrspace(1)* %1, align 4, !tbaa !3
-  ret void
-}
-
-!1 = metadata !{metadata !"char", metadata !5}
-!2 = metadata !{metadata !"short", metadata !5}
-!3 = metadata !{metadata !"int", metadata !5}
-!4 = metadata !{metadata !"long", metadata !5}
-!5 = metadata !{metadata !"omnipotent char", metadata !6}
-!6 = metadata !{metadata !"Simple C/C++ TBAA"}
-
diff --git a/libclc/generic/lib/workitem/get_global_id.cl b/libclc/generic/lib/workitem/get_global_id.cl
deleted file mode 100644
index fdd83d2953d45b31c5db2a6bfa650673fa6e0877..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/workitem/get_global_id.cl
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <clc/clc.h>
-
-_CLC_DEF size_t get_global_id(uint dim) {
-  return get_group_id(dim)*get_local_size(dim) + get_local_id(dim);
-}
diff --git a/libclc/generic/lib/workitem/get_global_size.cl b/libclc/generic/lib/workitem/get_global_size.cl
deleted file mode 100644
index 5ae649e10d5108e5b8e27561eb292caad62f8843..0000000000000000000000000000000000000000
--- a/libclc/generic/lib/workitem/get_global_size.cl
+++ /dev/null
@@ -1,5 +0,0 @@
-#include <clc/clc.h>
-
-_CLC_DEF size_t get_global_size(uint dim) {
-  return get_num_groups(dim)*get_local_size(dim);
-}