[Beignet] [PATCH 22/22 V2] Delete all the unused files of old huge header.

junyan.he at inbox.com junyan.he at inbox.com
Sun Aug 31 19:22:54 PDT 2014


From: Junyan He <junyan.he at linux.intel.com>

Signed-off-by: Junyan He <junyan.he at linux.intel.com>
---
 backend/src/builtin_vector_proto.def  |  295 -
 backend/src/gen_as.sh                 |  101 -
 backend/src/gen_builtin_vector.py     |  417 -
 backend/src/gen_convert.sh            |  553 --
 backend/src/genconfig.sh              |   11 -
 backend/src/ocl_as.h                  | 3086 ------
 backend/src/ocl_barrier.ll            |   39 -
 backend/src/ocl_convert.h             |17415 ---------------------------------
 backend/src/ocl_memcpy.ll             |  336 -
 backend/src/ocl_memset.ll             |  127 -
 backend/src/ocl_stdlib.tmpl.h         | 5149 ----------
 backend/src/update.sh                 |    3 -
 backend/src/update_as.sh              |   11 -
 backend/src/update_blob_ocl_header.py |   65 -
 backend/src/update_convert.sh         |   12 -
 15 files changed, 27620 deletions(-)
 delete mode 100644 backend/src/builtin_vector_proto.def
 delete mode 100755 backend/src/gen_as.sh
 delete mode 100755 backend/src/gen_builtin_vector.py
 delete mode 100755 backend/src/gen_convert.sh
 delete mode 100644 backend/src/genconfig.sh
 delete mode 100644 backend/src/ocl_as.h
 delete mode 100644 backend/src/ocl_barrier.ll
 delete mode 100644 backend/src/ocl_convert.h
 delete mode 100644 backend/src/ocl_memcpy.ll
 delete mode 100644 backend/src/ocl_memset.ll
 delete mode 100755 backend/src/ocl_stdlib.tmpl.h
 delete mode 100755 backend/src/update.sh
 delete mode 100755 backend/src/update_as.sh
 delete mode 100755 backend/src/update_blob_ocl_header.py
 delete mode 100755 backend/src/update_convert.sh

diff --git a/backend/src/builtin_vector_proto.def b/backend/src/builtin_vector_proto.def
deleted file mode 100644
index 18d23ca..0000000
--- a/backend/src/builtin_vector_proto.def
+++ /dev/null
@@ -1,295 +0,0 @@
-##math
-gentype acos (gentype)
-gentype acosh (gentype)
-gentype acospi (gentype x)
-gentype asin (gentype)
-gentype asinh (gentype)
-gentype asinpi (gentype x)
-gentype atan (gentype y_over_x)
-gentype atan2 (gentype y, gentype x)
-gentype atanh (gentype)
-gentype atanpi (gentype x)
-gentype atan2pi (gentype y, gentype x)
-gentype cbrt (gentype)
-gentype ceil (gentype)
-gentype copysign (gentype x, gentype y)
-gentype cos (gentype)
-gentype cosh (gentype)
-gentype cospi (gentype x)
-gentype erfc (gentype)
-gentype erf (gentype)
-gentype exp (gentype x)
-gentype exp2 (gentype)
-gentype exp10 (gentype)
-gentype expm1 (gentype x)
-gentype fabs (gentype)
-gentype fdim (gentype x, gentype y)
-gentype floor (gentype)
-# XXX we use madd for fma
-#gentype fma (gentype a, gentype b, gentype c)
-gentype fmax (gentype x, gentype y)
-gentypef fmax (gentypef x, float y)
-gentyped fmax (gentyped x, double y)
-gentype fmin (gentype x, gentype y)
-gentypef fmin (gentypef x, float y)
-gentyped fmin (gentyped x, double y)
-gentype fmod (gentype x, gentype y)
-gentype fract (gentype x, __global gentype *iptr)
-gentype fract (gentype x, __local gentype *iptr)
-gentype fract (gentype x, __private gentype *iptr)
-floatn frexp (floatn x, __global intn *exp)
-floatn frexp (floatn x, __local intn *exp)
-floatn frexp (floatn x, __private intn *exp)
-float frexp (float x, __global int *exp)
-float frexp (float x, __local int *exp)
-float frexp (float x, __private int *exp)
-doublen frexp (doublen x, __global intn *exp)
-doublen frexp (doublen x, __local intn *exp)
-doublen frexp (doublen x, __private intn *exp)
-double frexp (double x, __global int *exp)
-double frexp (double x, __local int *exp)
-double frexp (double x, __private int *exp)
-gentype hypot (gentype x, gentype y)
-intn ilogb (floatn x)
-int ilogb (float x)
-intn ilogb (doublen x)
-int ilogb (double x)
-floatn ldexp (floatn x, intn k)
-floatn ldexp (floatn x, int k)
-float ldexp (float x, int k)
-doublen ldexp (doublen x, intn k)
-doublen ldexp (doublen x, int k)
-double ldexp (double x, int k)
-gentype lgamma (gentype x)
-floatn lgamma_r (floatn x, __global intn *signp)
-floatn lgamma_r (floatn x, __local intn *signp)
-floatn lgamma_r (floatn x, __private intn *signp)
-float lgamma_r (float x, __global int *signp)
-float lgamma_r (float x, __local int *signp)
-float lgamma_r (float x,   __private int *signp)
-#doublen lgamma_r (doublen x, __global intn *signp)
-#doublen lgamma_r (doublen x, __local intn *signp)
-#doublen lgamma_r (doublen x, __private intn *signp)
-#double lgamma_r (double x, __global int *signp)
-#double lgamma_r (double x, __local int *signp)
-#double lgamma_r (double x, __private int *signp)
-gentype log (gentype)
-gentype log2 (gentype)
-gentype log10 (gentype)
-gentype log1p (gentype x)
-gentype logb (gentype x)
-gentype mad (gentype a, gentype b, gentype c)
-gentype maxmag (gentype x, gentype y)
-gentype minmag (gentype x, gentype y)
-gentype modf (gentype x, __global gentype *iptr)
-gentype modf (gentype x, __local gentype *iptr)
-gentype modf (gentype x, __private gentype *iptr)
-floatn nan (uintn nancode)
-float nan (uint nancode)
-doublen nan (ulongn nancode)
-double nan (ulong nancode)
-gentype nextafter (gentype x, gentype y)
-gentype pow (gentype x, gentype y)
-floatn pown (floatn x, intn y)
-float pown (float x, int y)
-doublen pown (doublen x, intn y)
-double pown (double x, int y)
-#XXX we define powr as pow
-#gentype powr (gentype x, gentype y)
-gentype remainder (gentype x, gentype y)
-floatn remquo (floatn x, floatn y, __global intn *quo)
-floatn remquo (floatn x, floatn y, __local intn *quo)
-floatn remquo (floatn x, floatn y, __private intn *quo)
-float remquo (float x, float y, __global int *quo)
-float remquo (float x, float y, __local int *quo)
-float remquo (float x, float y, __private int *quo)
-doublen remquo (doublen x, doublen y, __global intn *quo)
-doublen remquo (doublen x, doublen y, __local intn *quo)
-doublen remquo (doublen x, doublen y, __private intn *quo)
-double remquo (double x, double y, __global int *quo)
-double remquo (double x, double y, __local int *quo)
-double remquo (double x, double y, __private int *quo)
-gentype rint (gentype)
-floatn rootn (floatn x, intn y)
-
-doublen rootn (doublen x, intn y)
-doublen rootn (double x, int y)
-gentype round (gentype x)
-gentype rsqrt (gentype)
-gentype sin (gentype)
-gentype sincos (gentype x, __global gentype *cosval)
-gentype sincos (gentype x, __local gentype *cosval)
-gentype sincos (gentype x, __private gentype *cosval)
-gentype sinh (gentype)
-gentype sinpi (gentype x)
-gentype sqrt (gentype)
-gentype tan (gentype)
-gentype tanh (gentype)
-gentype tanpi (gentype x)
-gentype tgamma (gentype)
-gentype trunc (gentype)
-
-##math function fast path
-gentype __gen_ocl_internal_fastpath_acosh (gentype x)
-gentype __gen_ocl_internal_fastpath_asinh (gentype x)
-gentype __gen_ocl_internal_fastpath_atanh (gentype x)
-gentype __gen_ocl_internal_fastpath_cbrt (gentype x)
-gentype __gen_ocl_internal_fastpath_cos (gentype x)
-gentype __gen_ocl_internal_fastpath_cosh (gentype x)
-gentype __gen_ocl_internal_fastpath_cospi (gentype x)
-gentype __gen_ocl_internal_fastpath_exp (gentype x)
-gentype __gen_ocl_internal_fastpath_exp10 (gentype x)
-gentype __gen_ocl_internal_fastpath_expm1 (gentype x)
-gentype __gen_ocl_internal_fastpath_fmod (gentype x, gentype y)
-gentype __gen_ocl_internal_fastpath_hypot (gentype x, gentype y)
-intn __gen_ocl_internal_fastpath_ilogb (floatn x)
-int __gen_ocl_internal_fastpath_ilogb (float x)
-intn __gen_ocl_internal_fastpath_ilogb (doublen x)
-int __gen_ocl_internal_fastpath_ilogb (double x)
-floatn __gen_ocl_internal_fastpath_ldexp (floatn x, intn k)
-floatn __gen_ocl_internal_fastpath_ldexp (floatn x, int k)
-float __gen_ocl_internal_fastpath_ldexp (float x, int k)
-doublen __gen_ocl_internal_fastpath_ldexp (doublen x, intn k)
-doublen __gen_ocl_internal_fastpath_ldexp (doublen x, int k)
-double __gen_ocl_internal_fastpath_ldexp (double x, int k)
-gentype __gen_ocl_internal_fastpath_log (gentype x)
-gentype __gen_ocl_internal_fastpath_log2 (gentype x)
-gentype __gen_ocl_internal_fastpath_log10 (gentype x)
-gentype __gen_ocl_internal_fastpath_log1p (gentype x)
-gentype __gen_ocl_internal_fastpath_logb (gentype x)
-gentype __gen_ocl_internal_fastpath_remainder (gentype x, gentype y)
-floatn __gen_ocl_internal_fastpath_rootn (floatn x, intn k)
-gentype __gen_ocl_internal_fastpath_sin (gentype x)
-gentype __gen_ocl_internal_fastpath_sincos (gentype x, __global gentype *cosval)
-gentype __gen_ocl_internal_fastpath_sincos (gentype x, __local gentype *cosval)
-gentype __gen_ocl_internal_fastpath_sincos (gentype x, __private gentype *cosval)
-gentype __gen_ocl_internal_fastpath_sinh (gentype x)
-gentype __gen_ocl_internal_fastpath_sinpi (gentype x)
-gentype __gen_ocl_internal_fastpath_tan (gentype x)
-gentype __gen_ocl_internal_fastpath_tanh (gentype x)
-
-##half_native_math
-#gentype half_cos (gentype x)
-#gentype half_divide (gentype x, gentype y)
-#gentype half_exp (gentype x)
-#gentype half_exp2 (gentype x)
-#gentype half_exp10 (gentype x)
-#gentype half_log (gentype x)
-#gentype half_log2 (gentype x)
-#gentype half_log10 (gentype x)
-#gentype half_powr (gentype x, gentype y)
-#gentype half_recip (gentype x)
-#gentype half_rsqrt (gentype x)
-#gentype half_sin (gentype x)
-#gentype half_sqrt (gentype x)
-#gentype half_tan (gentype x)
-
-# XXX we already defined all native and non-native
-# functions to the same one.
-gentype native_cos (gentype x)
-gentype native_divide (gentype x, gentype y)
-gentype native_exp (gentype x)
-#gentype native_exp2 (gentype x)
-gentype native_exp10 (gentype x)
-gentype native_log (gentype x)
-gentype native_log2 (gentype x)
-gentype native_log10 (gentype x)
-gentype native_powr (gentype x, gentype y)
-gentype native_recip (gentype x)
-gentype native_rsqrt (gentype x)
-gentype native_sin (gentype x)
-#gentype native_sqrt (gentype x)
-gentype native_tan (gentype x)
-
-##integer
-ugentype abs (gentype x)
-ugentype abs_diff (gentype x, gentype y)
-gentype add_sat (gentype x,  gentype y)
-gentype hadd (gentype x,  gentype y)
-gentype rhadd (gentype x, gentype y)
-gentype clamp (gentype x, gentype minval, gentype maxval)
-gentype clamp (gentype x, sgentype minval, sgentype maxval)
-gentype clz (gentype x)
-gentype mad_hi (gentype a, gentype b, gentype c)
-gentype mad_sat (gentype a, gentype b, gentype c)
-gentype max (gentype x,  gentype y)
-gentype max (gentype x,  sgentype y)
-gentype min (gentype x,  gentype y)
-gentype min (gentype x,  sgentype y)
-gentype mul_hi (gentype x,  gentype y)
-gentype rotate (gentype v,  gentype i)
-gentype sub_sat (gentype x,  gentype y)
-shortn upsample (charn hi, ucharn lo)
-ushortn upsample (ucharn hi, ucharn lo)
-intn upsample (shortn hi, ushortn lo)
-uintn upsample (ushortn hi, ushortn lo)
-longn upsample (intn hi, uintn lo)
-ulongn upsample (uintn hi, uintn lo)
-# XXX not implemented
-#gentype popcount (gentype x)
-
-##fast_integer
-gentype mad24 (gentype x, gentype y, gentype z)
-gentype mul24 (gentype x, gentype y)
-
-##common
-gentype clamp (gentype x, gentype minval, gentype maxval)
-gentypef clamp (gentypef x, float minval, float maxval)
-gentyped clamp (gentyped x, double minval, double maxval)
-gentype degrees (gentype radians)
-gentype max (gentype x,  gentype y)
-gentypef max (gentypef x, float y)
-gentyped max (gentyped x, double y)
-gentype min (gentype x,  gentype y)
-gentypef min (gentypef x,  float y)
-gentyped min (gentyped x,  double y)
-gentype mix (gentype x, gentype y, gentype a)
-gentypef mix (gentypef x, gentypef y, float a)
-gentyped mix (gentyped x, gentyped y, double a)
-gentype radians (gentype degrees)
-gentype step (gentype edge, gentype x)
-gentypef step (float edge, gentypef x)
-gentyped step (double edge, gentyped x)
-gentype smoothstep (gentype edge0, gentype edge1, gentype x)
-gentypef smoothstep (float edge0, float edge1, gentypef x)
-gentyped smoothstep (double edge0, double edge1, gentyped x)
-gentype sign (gentype x)
-
-##relational
-intn isequal (floatn x, floatn y)
-longn isequal (doublen x, doublen y)
-intn isnotequal (floatn x, floatn y)
-longn isnotequal (doublen x, doublen y)
-intn isgreater (floatn x, floatn y)
-longn isgreater (doublen x, doublen y)
-intn isgreaterequal (floatn x, floatn y)
-longn isgreaterequal (doublen x, doublen y)
-intn isless (floatn x, floatn y)
-longn isless (doublen x, doublen y)
-intn islessequal (floatn x, floatn y)
-longn islessequal (doublen x, doublen y)
-intn islessgreater (floatn x, floatn y)
-longn islessgreater (doublen x, doublen y)
-intn isfinite (floatn
-longn isfinite (doublen)
-intn isinf (floatn)
-longn isinf (doublen)
-intn isnan (floatn)
-longn isnan (doublen)
-intn isnormal (floatn)
-longn isnormal (doublen)
-intn isordered (floatn x, floatn y)
-longn isordered (doublen x, doublen y)
-intn isunordered (floatn x, floatn y)
-longn isunordered (doublen x, doublen y)
-intn signbit (floatn)
-longn signbit (doublen)
-int any (igentype x)
-int all (igentype x)
-gentype bitselect (gentype a, gentype b, gentype c)
-gentype select (gentype a, gentype b, igentype c)
-gentype select (gentype a, gentype b, ugentype c)
-
-##misc
-#gentypen shuffle (gentypem x, ugentypen mask)
-#gentypen shuffle2 (gentypem x, gentypem y, ugentypen mask)
diff --git a/backend/src/gen_as.sh b/backend/src/gen_as.sh
deleted file mode 100755
index 7dea15d..0000000
--- a/backend/src/gen_as.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /bin/sh -e
-
-. ./genconfig.sh
-
-# Generate list of union sizes
-for type in $TYPES; do
-        size=`IFS=:; set -- dummy $type; echo $3`
-        for vector_length in $VECTOR_LENGTHS; do
-                if test $vector_length -eq 3; then
-                      continue;
-                fi
-                union_sizes="$union_sizes `expr $vector_length \* $size`"
-        done
-done
-union_sizes="`echo $union_sizes | tr ' ' '\n' | sort -n | uniq`"
-
-# For each union size
-for union_size in $union_sizes; do
-
-        # Define an union that contains all vector types that have the same size as the union
-        unionname="union _type_cast_${union_size}_b"
-        echo "$unionname {"
-        for type in $TYPES; do
-                basetype=`IFS=:; set -- dummy $type; echo $2`
-                basesize=`IFS=:; set -- dummy $type; echo $3`
-                for vector_length in $VECTOR_LENGTHS; do
-                        if test $vector_length -eq 3; then
-                                vector_size_length="4"
-                        else
-                                vector_size_length=$vector_length;
-                        fi
-                        vector_size_in_union="`expr $vector_size_length \* $basesize`"
-                        if test $union_size -ne $vector_size_in_union; then
-                                continue
-                        fi
-                        if test $vector_length -eq 1; then
-                                vectortype=$basetype
-                        else
-                                vectortype=$basetype$vector_length
-                        fi
-                        echo "  $vectortype _$vectortype;"
-                done
-
-        done
-        echo "};"
-        echo
-
-        # For each tuple of vector types that has the same size as the current union size,
-        # define an as_* function that converts types without changing binary representation.
-        for ftype in $TYPES; do
-                fbasetype=`IFS=:; set -- dummy $ftype; echo $2`
-                fbasesize=`IFS=:; set -- dummy $ftype; echo $3`
-                for fvector_length in $VECTOR_LENGTHS; do
-                        if test $fvector_length -eq 3; then
-                                fvector_size_length="4"
-                        else
-                                fvector_size_length=$fvector_length;
-                        fi
-                        fvector_size_in_union="`expr $fvector_size_length \* $fbasesize`"
-                        if test $union_size -ne $fvector_size_in_union; then
-                                continue
-                        fi
-                        if test $fvector_length -eq 1; then
-                                fvectortype=$fbasetype
-                        else
-                                fvectortype=$fbasetype$fvector_length
-                        fi
-                        for ttype in $TYPES; do
-                                tbasetype=`IFS=:; set -- dummy $ttype; echo $2`
-                                tbasesize=`IFS=:; set -- dummy $ttype; echo $3`
-                                if test $fbasetype = $tbasetype; then
-                                        continue
-                                fi
-                                for tvector_length in $VECTOR_LENGTHS; do
-                                        if test $tvector_length -eq 3; then
-                                               tvector_size_length="4"
-                                        else
-                                               tvector_size_length=$tvector_length;
-                                        fi
-                                        tvector_size_in_union="`expr $tvector_size_length \* $tbasesize`"
-                                        if test $union_size -ne $tvector_size_in_union; then
-                                                continue
-                                        fi
-                                        if test $tvector_length -eq 1; then
-                                                tvectortype=$tbasetype
-                                        else
-                                                tvectortype=$tbasetype$tvector_length
-                                        fi
-                                        echo "INLINE OVERLOADABLE $tvectortype as_$tvectortype($fvectortype v) {"
-                                        echo "  $unionname u;"
-                                        echo "  u._$fvectortype = v;"
-                                        echo "  return u._$tvectortype;"
-                                        echo "}"
-                                        echo
-                                done
-                        done
-                done
-
-        done
-
-done
diff --git a/backend/src/gen_builtin_vector.py b/backend/src/gen_builtin_vector.py
deleted file mode 100755
index 5f1c4b7..0000000
--- a/backend/src/gen_builtin_vector.py
+++ /dev/null
@@ -1,417 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2012 Intel Corporation
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library. If not, see <http://www.gnu.org/licenses/>.
-#
-# Author: Zhigang Gong <zhigang.gong at linux.intel.com>
-#/
-
-# This file is to generate inline code to lower down those builtin
-# vector functions to scalar functions.
-import re
-import sys
-import os
-
-if len(sys.argv) != 3:
-    print "Invalid argument {0}".format(sys.argv)
-    print "use {0} spec_file_name output_file_name".format(sys.argv[0])
-    raise
-
-all_vector = 1,2,3,4,8,16
-
-# generate generic type sets
-def gen_vector_type(type_set, vector_set = all_vector):
-    ret = []
-    for t in type_set:
-        for i in vector_set:
-            ret.append((t, i))
-    return ret
-
-def set_vector_memspace(vector_type_set, memspace):
-    ret = []
-    if memspace == '':
-        return vector_type_set
-    for t in vector_type_set:
-        ret.append((t[0], t[1], memspace))
-    return ret
-
-# if we have 3 elements in the type tuple, we are a pointer with a memory space type
-# at the third element.
-def isPointer(t):
-    return len(t) == 3
-
-all_itype = "char","short","int","long"
-all_utype = "uchar","ushort","uint","ulong"
-all_int_type = all_itype + all_utype
-
-all_float_type = "float","double"
-all_type = all_int_type + all_float_type
-
-# all vector/scalar types
-for t in all_type:
-    exec "{0}n = [\"{0}n\", gen_vector_type([\"{0}\"])]".format(t)
-    exec "s{0} = [\"{0}\", gen_vector_type([\"{0}\"], [1])]".format(t)
-
-# Predefined type sets according to the Open CL spec.
-math_gentype = ["math_gentype", gen_vector_type(all_float_type)]
-math_gentypef = ["math_gentypef", gen_vector_type(["float"])]
-math_gentyped = ["math_gentyped", gen_vector_type(["double"])]
-
-half_native_math_gentype = ["half_native_math_gentype", gen_vector_type(["float"])]
-
-integer_gentype = ["integer_gentype", gen_vector_type(all_int_type)]
-integer_ugentype = ["integer_ugentype", gen_vector_type(all_utype)]
-integer_sgentype = ["integer_sgentype", gen_vector_type(all_int_type, [1])]
-
-fast_integer_gentype = ["fast_integer_gentype", gen_vector_type(["uint", "int"])]
-
-common_gentype = ["common_gentype", gen_vector_type(all_float_type)]
-common_gentypef = ["common_gentypef", gen_vector_type(["float"])]
-common_gentyped = ["common_gentyped", gen_vector_type(["double"])]
-
-relational_gentype = ["relational_gentype", gen_vector_type(all_type)]
-relational_igentype = ["relational_igentype", gen_vector_type(all_itype)]
-relational_ugentype = ["relational_ugentype", gen_vector_type(all_utype)]
-
-misc_gentypem = ["misc_gentypem", gen_vector_type(all_type, [2, 4, 8, 16])]
-misc_gentypen = ["misc_gentypen", gen_vector_type(all_type, [2, 4, 8, 16])]
-misc_ugentypem = ["misc_ugentypem", gen_vector_type(all_utype, [2, 4, 8, 16])]
-misc_ugentypen = ["misc_ugentypen", gen_vector_type(all_utype, [2, 4, 8, 16])]
-
-all_predefined_type = math_gentype, math_gentypef, math_gentyped,                \
-                      half_native_math_gentype, integer_gentype,integer_sgentype,\
-                      integer_ugentype, charn, ucharn, shortn, ushortn, intn,    \
-                      uintn, longn, ulongn, floatn, doublen,                     \
-                      fast_integer_gentype, common_gentype, common_gentypef,     \
-                      common_gentyped, relational_gentype, relational_igentype,  \
-                      relational_ugentype, schar, suchar, sshort, sint, suint,   \
-                      slong, sulong, sfloat, sdouble, misc_gentypem,              \
-                      misc_ugentypem, misc_gentypen, misc_ugentypen
-
-# type dictionary contains all the predefined type sets.
-type_dict = {}
-
-for t in all_predefined_type:
-    type_dict.update({t[0]:t[1]})
-
-def _prefix(prefix, dtype):
-    if dtype.count("gentype") != 0:
-        return prefix + '_' + dtype
-    return dtype
-
-memspaces = ["__local ", "__private ", "__global "]
-
-def stripMemSpace(t):
-    if t[0:2] == '__':
-        for memspace in memspaces :
-            if t[0:len(memspace)] == memspace:
-                return memspace, t[len(memspace):]
-    return '', t
-
-def check_type(types):
-    for t in types:
-        memspace, t = stripMemSpace(t)
-        if not t in type_dict:
-            print t
-            raise "found invalid type."
-
-def match_unsigned(dtype):
-    if dtype[0] == 'float':
-        return ["uint", dtype[1]]
-    if dtype[0] == 'double':
-        return ["ulong", dtype[1]]
-    if dtype[0][0] == 'u':
-        return dtype
-    return ['u' + dtype[0], dtype[1]]
-
-def match_signed(dtype):
-    if dtype[0] == 'float':
-        return ["int", dtype[1]]
-    if dtype[0] == 'double':
-        return ["long", dtype[1]]
-    if dtype[0][0] != 'u':
-        return dtype
-    return [dtype[0][1:], dtype[1]]
-
-def match_scalar(dtype):
-    return [dtype[0], 1]
-
-# The dstType is the expected type, srcType is
-# the reference type. Sometimes, the dstType and
-# srcType are different. We need to fix this issue
-# and return correct dst type.
-def fixup_type(dstType, srcType, n):
-    if dstType == srcType:
-       return dstType[n]
-
-    if dstType != srcType:
-        # scalar dst type
-        if len(dstType) == 1:
-            return dstType[0]
-        # dst is not scalar bug src is scalar
-        if len(srcType) == 1:
-            return dstType[n]
-        if dstType == integer_sgentype[1] and srcType == integer_gentype[1]:
-            return match_scalar(srcType[n])
-
-        if dstType == integer_gentype[1] and  \
-           (srcType == integer_sgentype[1] or \
-            srcType == integer_ugentype[1]):
-            return dstType[n]
-
-        if dstType == integer_ugentype[1] and srcType == integer_gentype[1]:
-            return match_unsigned(srcType[n])
-
-        if dstType == relational_igentype[1] and srcType == relational_gentype[1]:
-            return match_signed(srcType[n])
-        if dstType == relational_ugentype[1] and srcType == relational_gentype[1]:
-            return match_unsigned(srcType[n])
-
-        if dstType == relational_gentype[1] and    \
-           (srcType == relational_igentype[1] or   \
-            srcType == relational_ugentype[1]):
-            return dstType[n]
-
-        if (len(dstType) == len(srcType)):
-            return dstType[n]
-
-    print dstType, srcType
-    raise "type mispatch"
-
-class builtinProto():
-    valueTypeStr = ""
-    functionName = ""
-    paramTypeStrs = []
-    paramCount = 0
-    outputStr = []
-    prefix = ""
-
-    def init(self, sectionHeader, sectionPrefix):
-        self.valueTypeStr = ""
-        self.functionName = ""
-        self.paramTypeStrs = []
-        self.paramCount = 0
-        if sectionHeader != "":
-            self.outputStr = [sectionHeader]
-        else:
-            self.outputStr = []
-        if sectionPrefix != "":
-            self.prefix = sectionPrefix
-        self.indent = 0
-
-    def append(self, line, nextInit = ""):
-        self.outputStr.append(line);
-        return nextInit;
-
-    def indentSpace(self):
-        ret = ""
-        for i in range(self.indent):
-            ret += ' '
-
-        return ret
-
-    def init_from_line(self, t):
-        self.append('//{0}'.format(t))
-        line = filter(None, re.split(',| |\(', t.rstrip(')\n')))
-        self.paramCount = 0
-        stripped = 0
-        memSpace = ''
-        for i, text in enumerate(line):
-            idx = i - stripped
-            if idx == 0:
-                self.valueTypeStr = _prefix(self.prefix, line[i])
-                continue
-
-            if idx == 1:
-                self.functionName = line[i];
-                continue
-
-            if idx % 2 == 0:
-                if line[i][0] == '(':
-                    tmpType = line[i][1:]
-                else:
-                    tmpType = line[i]
-                if tmpType == '__local' or   \
-                   tmpType == '__private' or \
-                   tmpType == '__global':
-                   memSpace = tmpType + ' '
-                   stripped += 1
-                   continue
-                self.paramTypeStrs.append(memSpace + _prefix(self.prefix, tmpType))
-                memSpace = ''
-                self.paramCount += 1
-
-    def gen_proto_str_1(self, vtypeSeq, ptypeSeqs, i):
-        for n in range(0, self.paramCount):
-            ptype = fixup_type(ptypeSeqs[n], vtypeSeq, i);
-            vtype = fixup_type(vtypeSeq, ptypeSeqs[n], i);
-            # XXX FIXME now skip all double vector, as we don't
-            # defined those scalar version's prototype.
-            if ptype[0].find('double') != -1 or \
-               vtype[0].find('double') != -1:
-                return
-
-            if (n == 0):
-                formatStr = 'INLINE_OVERLOADABLE {0}{1} {2} ('.format(vtype[0], vtype[1], self.functionName)
-            else:
-                formatStr += ', '
-
-            if vtype[1] == 1:
-                return
-
-            if isPointer(ptype):
-                formatStr += ptype[2]
-                pointerStr = '*'
-            else:
-                pointerStr = ''
-
-            if ptype[1] != 1:
-                formatStr += '{0}{1} {2}param{3}'.format(ptype[0], ptype[1], pointerStr, n)
-            else:
-                formatStr += '{0} {1}param{2}'.format(ptype[0], pointerStr, n)
-
-        formatStr += ')'
-        if self.functionName != 'select' and ptypeSeqs[0] == ptypeSeqs[self.paramCount-1] and ptype[1] > 4:
-            formatStr += '\n{ \n  union{'
-            formatStr = self.append(formatStr, '    {0} va[{1}];'.format(vtype[0], vtype[1]))
-            formatStr = self.append(formatStr, '    {0}{1} vv{2};'.format(vtype[0], vtype[1], vtype[1]))
-            formatStr += '\n  }uret;'
-            formatStr += '\n  union{'
-            formatStr = self.append(formatStr, '    {0} pa[{1}];'.format(ptype[0], ptype[1]))
-            formatStr = self.append(formatStr, '    {0}{1} pv{2};'.format(ptype[0], ptype[1], ptype[1]))
-            formatStr += '\n  }'
-            for n in range(0, self.paramCount):
-              formatStr += 'usrc{0}'.format(n)
-              if n+1 != self.paramCount:
-                formatStr +=', '
-            formatStr += ';'
-
-            for n in range(0, self.paramCount):
-              formatStr = self.append(formatStr, '  usrc{0}.pv{1} = param{2};'.format(n, ptype[1], n))
-            formatStr = self.append(formatStr, '  for(int i =0; i < {0}; i++)'.format(ptype[1]))
-            formatStr += '\n    uret.va[i] = '
-            if self.prefix == 'relational' and self.functionName != 'bitselect' and self.functionName != 'select':
-              formatStr += '-'
-            formatStr += '{0}('.format(self.functionName)
-
-            for n in range(0, self.paramCount):
-              formatStr += 'usrc{0}.pa[i]'.format(n)
-              if n+1 != self.paramCount:
-                formatStr +=', '
-            formatStr += ');'
-            formatStr = self.append(formatStr, ' return uret.vv{0};'.format(vtype[1]))
-            formatStr += '\n}'
-            formatStr = self.append(formatStr)
-            return formatStr
-        else:
-          formatStr = self.append(formatStr, '{{return ({0}{1})('.format(vtype[0], vtype[1]))
-          self.indent = len(formatStr)
-          for j in range(0, vtype[1]):
-            if (j != 0):
-                formatStr += ','
-                if (j + 1) % 2 == 0:
-                    formatStr += ' '
-                if j % 2 == 0:
-                    formatStr = self.append(formatStr, self.indentSpace())
-
-            if self.prefix == 'relational' and self.functionName != 'bitselect' and self.functionName != 'select':
-                formatStr += '-'
-            formatStr += '{0}('.format(self.functionName)
-            for n in range(0, self.paramCount):
-                if n != 0:
-                    formatStr += ', '
-
-                ptype = fixup_type(ptypeSeqs[n], vtypeSeq, i)
-                vtype = fixup_type(vtypeSeq, ptypeSeqs[n], i)
-                if vtype[1] != ptype[1]:
-                    if ptype[1] != 1:
-                        raise "parameter is not a scalar but has different width with result value."
-                    if isPointer(ptype):
-                        formatStr += '&'
-                    formatStr += 'param{0}'.format(n)
-                    continue
-
-                if (isPointer(ptype)):
-                    formatStr += '({0} {1} *)param{2} + {3:2d}'.format(ptype[2], ptype[0], n, j)
-                else:
-                    if (self.functionName == 'select' and n == 2):
-                        formatStr += '({0})(param{1}.s{2:x} & (({0})1 << (sizeof({0})*8 - 1)))'.format(ptype[0], n, j)
-                    else:
-                        formatStr += 'param{0}.s{1:x}'.format(n, j)
-
-            formatStr += ')'
-
-          formatStr += '); }\n'
-          self.append(formatStr)
-
-          return formatStr
-
-    def output(self):
-        for line in self.outputStr:
-            print line
-
-    def output(self, outFile):
-        for line in self.outputStr:
-            outFile.write('{0}\n'.format(line))
-
-    def gen_proto_str(self):
-        check_type([self.valueTypeStr] + self.paramTypeStrs)
-        vtypeSeq = type_dict[self.valueTypeStr]
-        ptypeSeqs = []
-        count = len(vtypeSeq);
-        for t in self.paramTypeStrs:
-            memspace,t = stripMemSpace(t)
-            ptypeSeqs.append(set_vector_memspace(type_dict[t], memspace))
-            count = max(count, len(type_dict[t]))
-
-        for i in range(count):
-            formatStr = self.gen_proto_str_1(vtypeSeq, ptypeSeqs, i)
-
-        self.append("")
-
-def safeUnlink(filename):
-    try:
-        os.remove(filename)
-    except OSError:
-        pass
-
-# save the prototypes into ocl_vector.h
-specFile = open(sys.argv[1], 'r')
-headerFileName = sys.argv[2]
-tempHeaderFileName = sys.argv[2] + '.tmp'
-safeUnlink(headerFileName)
-tempHeader = open(tempHeaderFileName, 'w')
-
-tempHeader.write("//This file is autogenerated by {0}.\n".format(sys.argv[0]))
-tempHeader.write("//Don't modify it manually.\n")
-
-functionProto = builtinProto()
-for line in specFile:
-    if line.isspace():
-        continue
-    if line[0] == '#':
-        if line[1] == '#':
-            sectionHeader = "//{0} builtin functions".format(line[2:].rstrip())
-            sectionPrefix=(line[2:].split())[0]
-        continue
-    functionProto.init(sectionHeader, sectionPrefix)
-    sectionHeader = ""
-    setionPrefix = ""
-    functionProto.init_from_line(line)
-    functionProto.gen_proto_str()
-    functionProto.output(tempHeader)
-
-tempHeader.close()
-os.rename(tempHeaderFileName, headerFileName)
diff --git a/backend/src/gen_convert.sh b/backend/src/gen_convert.sh
deleted file mode 100755
index b940222..0000000
--- a/backend/src/gen_convert.sh
+++ /dev/null
@@ -1,553 +0,0 @@
-#! /bin/sh -e
-
-. ./genconfig.sh
-
-# For all vector lengths and types, generate conversion functions
-for vector_length in $VECTOR_LENGTHS; do
-        if test $vector_length -eq 1; then
-          for ftype in $TYPES; do
-            fbasetype=`IFS=:; set -- dummy $ftype; echo $2`
-            for ttype in $TYPES; do
-              tbasetype=`IFS=:; set -- dummy $ttype; echo $2`
-              echo "INLINE OVERLOADABLE $tbasetype convert_$tbasetype($fbasetype v) {"
-              echo "  return ($tbasetype)v;"
-              echo "}"
-              echo
-            done
-          done
-        else
-          for ftype in $TYPES; do
-                fbasetype=`IFS=:; set -- dummy $ftype; echo $2`
-                for ttype in $TYPES; do
-                        tbasetype=`IFS=:; set -- dummy $ttype; echo $2`
-                        if test $fbasetype = $tbasetype; then
-                          if test $vector_length -gt 1; then
-                            fvectortype=$fbasetype$vector_length
-                            tvectortype=$tbasetype$vector_length
-                            echo "INLINE OVERLOADABLE $tvectortype convert_$tvectortype($fvectortype v) { return v; }"
-                          else
-                            echo "INLINE OVERLOADABLE $tbasetype convert_$tbasetype($fbasetype v) { return v; }"
-                          fi
-                          continue
-                        fi
-                        fvectortype=$fbasetype$vector_length
-                        tvectortype=$tbasetype$vector_length
-                        construct="($tbasetype)(v.s0)"
-                        if test $vector_length -gt 1; then
-                                construct="$construct, ($tbasetype)(v.s1)"
-                        fi
-                        if test $vector_length -gt 2; then
-                                construct="$construct, ($tbasetype)(v.s2)"
-                        fi
-                        if test $vector_length -gt 3; then
-                                construct="$construct, ($tbasetype)(v.s3)"
-                        fi
-                        if test $vector_length -gt 4; then
-                                construct="$construct, ($tbasetype)(v.s4)"
-                                construct="$construct, ($tbasetype)(v.s5)"
-                                construct="$construct, ($tbasetype)(v.s6)"
-                                construct="$construct, ($tbasetype)(v.s7)"
-                        fi
-                        if test $vector_length -gt 8; then
-                                construct="$construct, ($tbasetype)(v.s8)"
-                                construct="$construct, ($tbasetype)(v.s9)"
-                                construct="$construct, ($tbasetype)(v.sA)"
-                                construct="$construct, ($tbasetype)(v.sB)"
-                                construct="$construct, ($tbasetype)(v.sC)"
-                                construct="$construct, ($tbasetype)(v.sD)"
-                                construct="$construct, ($tbasetype)(v.sE)"
-                                construct="$construct, ($tbasetype)(v.sF)"
-                        fi
-
-                        echo "INLINE OVERLOADABLE $tvectortype convert_$tvectortype($fvectortype v) {"
-                        echo "  return ($tvectortype)($construct);"
-                        echo "}"
-                        echo
-                done
-          done
-        fi
-done
-
-echo '
-#define DEF(DSTTYPE, SRCTYPE) \
-  OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x);
-DEF(char, uchar);
-DEF(char, short);
-DEF(char, ushort);
-DEF(char, int);
-DEF(char, uint);
-DEF(char, float);
-DEF(uchar, char);
-DEF(uchar, short);
-DEF(uchar, ushort);
-DEF(uchar, int);
-DEF(uchar, uint);
-DEF(uchar, float);
-DEF(short, ushort);
-DEF(short, int);
-DEF(short, uint);
-DEF(short, float);
-DEF(ushort, short);
-DEF(ushort, int);
-DEF(ushort, uint);
-DEF(ushort, float);
-DEF(int, uint);
-DEF(int, float);
-DEF(uint, int);
-DEF(uint, float);
-#undef DEF
-
-#define DEF(DSTTYPE, SRCTYPE, MIN, MAX) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x >= MAX ? (DSTTYPE)MAX : x <= MIN ? (DSTTYPE)MIN : x; \
-  }
-DEF(char, long, -128, 127);
-DEF(uchar, long, 0, 255);
-DEF(short, long, -32768, 32767);
-DEF(ushort, long, 0, 65535);
-DEF(int, long, -0x7fffffff-1, 0x7fffffff);
-DEF(uint, long, 0, 0xffffffffu);
-DEF(long, float, -9.223372036854776e+18f, 9.223372036854776e+18f);
-DEF(ulong, float, 0, 1.8446744073709552e+19f);
-#undef DEF
-
-#define DEF(DSTTYPE, SRCTYPE, MAX) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x >= MAX ? (DSTTYPE)MAX : x; \
-  }
-DEF(char, ulong, 127);
-DEF(uchar, ulong, 255);
-DEF(short, ulong, 32767);
-DEF(ushort, ulong, 65535);
-DEF(int, ulong, 0x7fffffff);
-DEF(uint, ulong, 0xffffffffu);
-#undef DEF
-
-INLINE_OVERLOADABLE long convert_long_sat(ulong x) {
-  ulong MAX = 0x7ffffffffffffffful;
-  return x >= MAX ? MAX : x;
-}
-
-#define DEF(DSTTYPE, SRCTYPE) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x <= 0 ? 0 : x; \
-  }
-DEF(ushort, char);
-DEF(uint, char);
-DEF(uint, short);
-DEF(ulong, char);
-DEF(ulong, short);
-DEF(ulong, int);
-DEF(ulong, long);
-#undef DEF
-
-#define DEF(DSTTYPE, SRCTYPE) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x; \
-  }
-DEF(char, char);
-DEF(uchar, uchar);
-DEF(short, char);
-DEF(short, uchar);
-DEF(short, short);
-DEF(ushort, uchar);
-DEF(ushort, ushort);
-DEF(int, char);
-DEF(int, uchar);
-DEF(int, short);
-DEF(int, ushort);
-DEF(int, int);
-DEF(uint, uchar);
-DEF(uint, ushort);
-DEF(uint, uint);
-DEF(long, char);
-DEF(long, uchar);
-DEF(long, short);
-DEF(long, ushort);
-DEF(long, int);
-DEF(long, uint);
-DEF(long, long);
-DEF(ulong, uchar);
-DEF(ulong, ushort);
-DEF(ulong, uint);
-DEF(ulong, ulong);
-#undef DEF
-'
-
-# vector convert_DSTTYPE_sat function
-for vector_length in $VECTOR_LENGTHS; do
-  if test $vector_length -eq 1; then continue; fi
-
-  for ftype in $TYPES; do
-    fbasetype=`IFS=:; set -- dummy $ftype; echo $2`
-    if test $fbasetype = "double"; then continue; fi
-
-    for ttype in $TYPES; do
-      tbasetype=`IFS=:; set -- dummy $ttype; echo $2`
-      if test $tbasetype = "double" -o $tbasetype = "float"; then continue; fi
-
-      fvectortype=$fbasetype$vector_length
-      tvectortype=$tbasetype$vector_length
-      conv="convert_${tbasetype}_sat"
-
-      construct="$conv(v.s0)"
-      if test $vector_length -gt 1; then
-        construct="$construct, $conv(v.s1)"
-      fi
-      if test $vector_length -gt 2; then
-        construct="$construct, $conv(v.s2)"
-      fi
-      if test $vector_length -gt 3; then
-        construct="$construct, $conv(v.s3)"
-      fi
-      if test $vector_length -gt 4; then
-        construct="$construct, $conv(v.s4)"
-        construct="$construct, $conv(v.s5)"
-        construct="$construct, $conv(v.s6)"
-        construct="$construct, $conv(v.s7)"
-      fi
-      if test $vector_length -gt 8; then
-        construct="$construct, $conv(v.s8)"
-        construct="$construct, $conv(v.s9)"
-        construct="$construct, $conv(v.sA)"
-        construct="$construct, $conv(v.sB)"
-        construct="$construct, $conv(v.sC)"
-        construct="$construct, $conv(v.sD)"
-        construct="$construct, $conv(v.sE)"
-        construct="$construct, $conv(v.sF)"
-      fi
-
-      echo "INLINE OVERLOADABLE $tvectortype convert_${tvectortype}_sat($fvectortype v) {"
-      echo "  return ($tvectortype)($construct);"
-      echo "}"
-      echo
-    done
-  done
-done
-
-echo '
-float __gen_ocl_rndz(float x);
-float __gen_ocl_rnde(float x);
-float __gen_ocl_rndu(float x);
-float __gen_ocl_rndd(float x);
-INLINE_OVERLOADABLE float __convert_float_rtz(long x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long l = u.f;
-  if((l > x && x > 0) || x >= 0x7fffffc000000000 ||
-     (l < x && x < 0)) {
-      u.u -= 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(long x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long l = u.f;  //can not use u.f < x
-  if(l < x && x < 0x7fffffc000000000) {
-    if(x > 0)
-      u.u = u.u + 1;
-    else
-      u.u = u.u - 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(long x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long l = u.f;  //avoid overflow
-  if(l > x || x >= 0x7fffffc000000000) {
-    if(x > 0)
-      u.u = u.u - 1;
-    else
-      u.u = u.u + 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtz(ulong x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  ulong l = u.f;
-  if(l > x  || x >= 0xffffff8000000000)
-      u.u -= 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(ulong x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  ulong l = u.f;  //can not use u.f < x
-  if(l < x && x < 0xffffff8000000000)
-    u.u = u.u + 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(ulong x)
-{
-  return __convert_float_rtz(x);
-}
-INLINE_OVERLOADABLE float __convert_float_rtz(int x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long i = u.f;
-  if((i > x && x > 0) ||
-     (i < x && x < 0)) {
-      u.u -= 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(int x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  int i = u.f;
-  if(i < x) {
-    if(x > 0)
-      u.u += 1;
-    else
-      u.u -= 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(int x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long i = u.f;  //avoid overflow
-  if(i > x) {
-    if(x > 0)
-      u.u = u.u - 1;
-    else
-      u.u = u.u + 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtz(uint x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  ulong i = u.f;
-  if(i > x)
-    u.u -= 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(uint x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  uint i = u.f;
-  if(i < x)
-    u.u += 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(uint x)
-{
-  return __convert_float_rtz(x);
-}
-'
-
-# convert_DSTTYPE_ROUNDING function
-for vector_length in $VECTOR_LENGTHS; do
-  for ftype in $TYPES; do
-    fbasetype=`IFS=:; set -- dummy $ftype; echo $2`
-    if test $fbasetype = "double"; then continue; fi
-
-    for ttype in $TYPES; do
-      tbasetype=`IFS=:; set -- dummy $ttype; echo $2`
-      if test $tbasetype = "double"; then continue; fi
-
-      if test $vector_length -eq 1; then
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_rte($fbasetype x)"
-        if test $fbasetype = "float" -a $tbasetype != "float"; then
-          echo "{ return __gen_ocl_rnde(x); }"
-        else
-          echo "{ return x; }"
-        fi
-
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_rtz($fbasetype x)"
-        if test $fbasetype = "float" -a $tbasetype != "float"; then
-          echo "{ return __gen_ocl_rndz(x); }"
-        elif [ "$fbasetype" = "int" -o "$fbasetype" = "uint" -o "$fbasetype" = "long" -o "$fbasetype" = "ulong" ] && [ "$tbasetype" = "float" ]; then
-          echo "{ return __convert_${tbasetype}_rtz(x); }"
-        else
-          echo "{ return x; }"
-        fi
-
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_rtp($fbasetype x)"
-        if test $fbasetype = "float" -a $tbasetype != "float"; then
-          echo "{ return __gen_ocl_rndu(x); }"
-        elif [ "$fbasetype" = "int" -o "$fbasetype" = "uint" -o "$fbasetype" = "long" -o "$fbasetype" = "ulong" ] && [ "$tbasetype" = "float" ]; then
-          echo "{ return __convert_${tbasetype}_rtp(x); }"
-        else
-          echo "{ return x; }"
-        fi
-
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_rtn($fbasetype x)"
-        if test $fbasetype = "float" -a $tbasetype != "float"; then
-          echo "{ return __gen_ocl_rndd(x); }"
-        elif [ "$fbasetype" = "int" -o "$fbasetype" = "uint" -o "$fbasetype" = "long" -o "$fbasetype" = "ulong" ] && [ "$tbasetype" = "float" ]; then
-          echo "{ return __convert_${tbasetype}_rtn(x); }"
-        else
-          echo "{ return x; }"
-        fi
-
-        continue
-      fi
-
-      for rounding in $ROUNDING_MODES; do
-        fvectortype=$fbasetype$vector_length
-        tvectortype=$tbasetype$vector_length
-        conv="convert_${tbasetype}_${rounding}"
-
-        construct="$conv(v.s0)"
-        if test $vector_length -gt 1; then
-          construct="$construct, $conv(v.s1)"
-        fi
-        if test $vector_length -gt 2; then
-          construct="$construct, $conv(v.s2)"
-        fi
-        if test $vector_length -gt 3; then
-          construct="$construct, $conv(v.s3)"
-        fi
-        if test $vector_length -gt 4; then
-          construct="$construct, $conv(v.s4)"
-          construct="$construct, $conv(v.s5)"
-          construct="$construct, $conv(v.s6)"
-          construct="$construct, $conv(v.s7)"
-        fi
-        if test $vector_length -gt 8; then
-          construct="$construct, $conv(v.s8)"
-          construct="$construct, $conv(v.s9)"
-          construct="$construct, $conv(v.sA)"
-          construct="$construct, $conv(v.sB)"
-          construct="$construct, $conv(v.sC)"
-          construct="$construct, $conv(v.sD)"
-          construct="$construct, $conv(v.sE)"
-          construct="$construct, $conv(v.sF)"
-        fi
-
-        echo "INLINE OVERLOADABLE $tvectortype convert_${tvectortype}_${rounding}($fvectortype v) {"
-        echo "  return ($tvectortype)($construct);"
-        echo "}"
-        echo
-      done
-    done
-  done
-done
-
-# convert_DSTTYPE_sat_ROUNDING function
-for vector_length in $VECTOR_LENGTHS; do
-  for ftype in $TYPES; do
-    fbasetype=`IFS=:; set -- dummy $ftype; echo $2`
-    if test $fbasetype = "double"; then continue; fi
-
-    for ttype in $TYPES; do
-      tbasetype=`IFS=:; set -- dummy $ttype; echo $2`
-      if test $tbasetype = "double" -o $tbasetype = "float"; then continue; fi
-
-      if test $vector_length -eq 1; then
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_sat_rte($fbasetype x)"
-        if test $fbasetype = "float"; then
-          echo "{ return convert_${tbasetype}_sat(__gen_ocl_rnde(x)); }"
-        else
-          echo "{ return convert_${tbasetype}_sat(x); }"
-        fi
-
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_sat_rtz($fbasetype x)"
-        if test $fbasetype = "float"; then
-          echo "{ return convert_${tbasetype}_sat(__gen_ocl_rndz(x)); }"
-        else
-          echo "{ return convert_${tbasetype}_sat(x); }"
-        fi
-
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_sat_rtp($fbasetype x)"
-        if test $fbasetype = "float"; then
-          echo "{ return convert_${tbasetype}_sat(__gen_ocl_rndu(x)); }"
-        else
-          echo "{ return convert_${tbasetype}_sat(x); }"
-        fi
-
-        echo "INLINE_OVERLOADABLE $tbasetype convert_${tbasetype}_sat_rtn($fbasetype x)"
-        if test $fbasetype = "float"; then
-          echo "{ return convert_${tbasetype}_sat(__gen_ocl_rndd(x)); }"
-        else
-          echo "{ return convert_${tbasetype}_sat(x); }"
-        fi
-
-        continue
-      fi
-
-      for rounding in $ROUNDING_MODES; do
-        fvectortype=$fbasetype$vector_length
-        tvectortype=$tbasetype$vector_length
-        conv="convert_${tbasetype}_sat_${rounding}"
-
-        construct="$conv(v.s0)"
-        if test $vector_length -gt 1; then
-          construct="$construct, $conv(v.s1)"
-        fi
-        if test $vector_length -gt 2; then
-          construct="$construct, $conv(v.s2)"
-        fi
-        if test $vector_length -gt 3; then
-          construct="$construct, $conv(v.s3)"
-        fi
-        if test $vector_length -gt 4; then
-          construct="$construct, $conv(v.s4)"
-          construct="$construct, $conv(v.s5)"
-          construct="$construct, $conv(v.s6)"
-          construct="$construct, $conv(v.s7)"
-        fi
-        if test $vector_length -gt 8; then
-          construct="$construct, $conv(v.s8)"
-          construct="$construct, $conv(v.s9)"
-          construct="$construct, $conv(v.sA)"
-          construct="$construct, $conv(v.sB)"
-          construct="$construct, $conv(v.sC)"
-          construct="$construct, $conv(v.sD)"
-          construct="$construct, $conv(v.sE)"
-          construct="$construct, $conv(v.sF)"
-        fi
-
-        echo "INLINE OVERLOADABLE $tvectortype convert_${tvectortype}_sat_${rounding}($fvectortype v) {"
-        echo "  return ($tvectortype)($construct);"
-        echo "}"
-        echo
-      done
-    done
-  done
-done
diff --git a/backend/src/genconfig.sh b/backend/src/genconfig.sh
deleted file mode 100644
index 689499e..0000000
--- a/backend/src/genconfig.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /bin/false
-# This is to be sourced by the generation scripts
-
-# Supported base types and their lengths
-TYPES="long:8 ulong:8 int:4 uint:4 short:2 ushort:2 char:1 uchar:1 double:8 float:4"
-
-# Supported vector lengths
-VECTOR_LENGTHS="1 2 3 4 8 16"
-
-ROUNDING_MODES="rte rtz rtp rtn"
-## No user serviceable parts below here
diff --git a/backend/src/ocl_as.h b/backend/src/ocl_as.h
deleted file mode 100644
index 692e892..0000000
--- a/backend/src/ocl_as.h
+++ /dev/null
@@ -1,3086 +0,0 @@
-// This file is autogenerated by gen_as.sh.
-// Don't modify it manually.
-union _type_cast_1_b {
-  char _char;
-  uchar _uchar;
-};
-
-INLINE OVERLOADABLE uchar as_uchar(char v) {
-  union _type_cast_1_b u;
-  u._char = v;
-  return u._uchar;
-}
-
-INLINE OVERLOADABLE char as_char(uchar v) {
-  union _type_cast_1_b u;
-  u._uchar = v;
-  return u._char;
-}
-
-union _type_cast_2_b {
-  short _short;
-  ushort _ushort;
-  char2 _char2;
-  uchar2 _uchar2;
-};
-
-INLINE OVERLOADABLE ushort as_ushort(short v) {
-  union _type_cast_2_b u;
-  u._short = v;
-  return u._ushort;
-}
-
-INLINE OVERLOADABLE char2 as_char2(short v) {
-  union _type_cast_2_b u;
-  u._short = v;
-  return u._char2;
-}
-
-INLINE OVERLOADABLE uchar2 as_uchar2(short v) {
-  union _type_cast_2_b u;
-  u._short = v;
-  return u._uchar2;
-}
-
-INLINE OVERLOADABLE short as_short(ushort v) {
-  union _type_cast_2_b u;
-  u._ushort = v;
-  return u._short;
-}
-
-INLINE OVERLOADABLE char2 as_char2(ushort v) {
-  union _type_cast_2_b u;
-  u._ushort = v;
-  return u._char2;
-}
-
-INLINE OVERLOADABLE uchar2 as_uchar2(ushort v) {
-  union _type_cast_2_b u;
-  u._ushort = v;
-  return u._uchar2;
-}
-
-INLINE OVERLOADABLE short as_short(char2 v) {
-  union _type_cast_2_b u;
-  u._char2 = v;
-  return u._short;
-}
-
-INLINE OVERLOADABLE ushort as_ushort(char2 v) {
-  union _type_cast_2_b u;
-  u._char2 = v;
-  return u._ushort;
-}
-
-INLINE OVERLOADABLE uchar2 as_uchar2(char2 v) {
-  union _type_cast_2_b u;
-  u._char2 = v;
-  return u._uchar2;
-}
-
-INLINE OVERLOADABLE short as_short(uchar2 v) {
-  union _type_cast_2_b u;
-  u._uchar2 = v;
-  return u._short;
-}
-
-INLINE OVERLOADABLE ushort as_ushort(uchar2 v) {
-  union _type_cast_2_b u;
-  u._uchar2 = v;
-  return u._ushort;
-}
-
-INLINE OVERLOADABLE char2 as_char2(uchar2 v) {
-  union _type_cast_2_b u;
-  u._uchar2 = v;
-  return u._char2;
-}
-
-union _type_cast_4_b {
-  int _int;
-  uint _uint;
-  short2 _short2;
-  ushort2 _ushort2;
-  char3 _char3;
-  char4 _char4;
-  uchar3 _uchar3;
-  uchar4 _uchar4;
-  float _float;
-};
-
-INLINE OVERLOADABLE uint as_uint(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._uchar4;
-}
-
-INLINE OVERLOADABLE float as_float(int v) {
-  union _type_cast_4_b u;
-  u._int = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE short2 as_short2(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._uchar4;
-}
-
-INLINE OVERLOADABLE float as_float(uint v) {
-  union _type_cast_4_b u;
-  u._uint = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._uchar4;
-}
-
-INLINE OVERLOADABLE float as_float(short2 v) {
-  union _type_cast_4_b u;
-  u._short2 = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._uchar4;
-}
-
-INLINE OVERLOADABLE float as_float(ushort2 v) {
-  union _type_cast_4_b u;
-  u._ushort2 = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._uchar4;
-}
-
-INLINE OVERLOADABLE float as_float(char3 v) {
-  union _type_cast_4_b u;
-  u._char3 = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._uchar4;
-}
-
-INLINE OVERLOADABLE float as_float(char4 v) {
-  union _type_cast_4_b u;
-  u._char4 = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE float as_float(uchar3 v) {
-  union _type_cast_4_b u;
-  u._uchar3 = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE float as_float(uchar4 v) {
-  union _type_cast_4_b u;
-  u._uchar4 = v;
-  return u._float;
-}
-
-INLINE OVERLOADABLE int as_int(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._int;
-}
-
-INLINE OVERLOADABLE uint as_uint(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._uint;
-}
-
-INLINE OVERLOADABLE short2 as_short2(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._short2;
-}
-
-INLINE OVERLOADABLE ushort2 as_ushort2(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._ushort2;
-}
-
-INLINE OVERLOADABLE char3 as_char3(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._char3;
-}
-
-INLINE OVERLOADABLE char4 as_char4(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._char4;
-}
-
-INLINE OVERLOADABLE uchar3 as_uchar3(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._uchar3;
-}
-
-INLINE OVERLOADABLE uchar4 as_uchar4(float v) {
-  union _type_cast_4_b u;
-  u._float = v;
-  return u._uchar4;
-}
-
-union _type_cast_8_b {
-  long _long;
-  ulong _ulong;
-  int2 _int2;
-  uint2 _uint2;
-  short3 _short3;
-  short4 _short4;
-  ushort3 _ushort3;
-  ushort4 _ushort4;
-  char8 _char8;
-  uchar8 _uchar8;
-  double _double;
-  float2 _float2;
-};
-
-INLINE OVERLOADABLE ulong as_ulong(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(long v) {
-  union _type_cast_8_b u;
-  u._long = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE int2 as_int2(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(ulong v) {
-  union _type_cast_8_b u;
-  u._ulong = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(int2 v) {
-  union _type_cast_8_b u;
-  u._int2 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(uint2 v) {
-  union _type_cast_8_b u;
-  u._uint2 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(short3 v) {
-  union _type_cast_8_b u;
-  u._short3 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(short4 v) {
-  union _type_cast_8_b u;
-  u._short4 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(ushort3 v) {
-  union _type_cast_8_b u;
-  u._ushort3 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(ushort4 v) {
-  union _type_cast_8_b u;
-  u._ushort4 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(char8 v) {
-  union _type_cast_8_b u;
-  u._char8 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE double as_double(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._double;
-}
-
-INLINE OVERLOADABLE float2 as_float2(uchar8 v) {
-  union _type_cast_8_b u;
-  u._uchar8 = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE float2 as_float2(double v) {
-  union _type_cast_8_b u;
-  u._double = v;
-  return u._float2;
-}
-
-INLINE OVERLOADABLE long as_long(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._long;
-}
-
-INLINE OVERLOADABLE ulong as_ulong(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._ulong;
-}
-
-INLINE OVERLOADABLE int2 as_int2(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._int2;
-}
-
-INLINE OVERLOADABLE uint2 as_uint2(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._uint2;
-}
-
-INLINE OVERLOADABLE short3 as_short3(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._short3;
-}
-
-INLINE OVERLOADABLE short4 as_short4(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._short4;
-}
-
-INLINE OVERLOADABLE ushort3 as_ushort3(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._ushort3;
-}
-
-INLINE OVERLOADABLE ushort4 as_ushort4(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._ushort4;
-}
-
-INLINE OVERLOADABLE char8 as_char8(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._char8;
-}
-
-INLINE OVERLOADABLE uchar8 as_uchar8(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._uchar8;
-}
-
-INLINE OVERLOADABLE double as_double(float2 v) {
-  union _type_cast_8_b u;
-  u._float2 = v;
-  return u._double;
-}
-
-union _type_cast_16_b {
-  long2 _long2;
-  ulong2 _ulong2;
-  int3 _int3;
-  int4 _int4;
-  uint3 _uint3;
-  uint4 _uint4;
-  short8 _short8;
-  ushort8 _ushort8;
-  char16 _char16;
-  uchar16 _uchar16;
-  double2 _double2;
-  float3 _float3;
-  float4 _float4;
-};
-
-INLINE OVERLOADABLE ulong2 as_ulong2(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(long2 v) {
-  union _type_cast_16_b u;
-  u._long2 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(ulong2 v) {
-  union _type_cast_16_b u;
-  u._ulong2 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(int3 v) {
-  union _type_cast_16_b u;
-  u._int3 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(int4 v) {
-  union _type_cast_16_b u;
-  u._int4 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(uint3 v) {
-  union _type_cast_16_b u;
-  u._uint3 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(uint4 v) {
-  union _type_cast_16_b u;
-  u._uint4 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(short8 v) {
-  union _type_cast_16_b u;
-  u._short8 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(ushort8 v) {
-  union _type_cast_16_b u;
-  u._ushort8 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(char16 v) {
-  union _type_cast_16_b u;
-  u._char16 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE float3 as_float3(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(uchar16 v) {
-  union _type_cast_16_b u;
-  u._uchar16 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE float3 as_float3(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._float3;
-}
-
-INLINE OVERLOADABLE float4 as_float4(double2 v) {
-  union _type_cast_16_b u;
-  u._double2 = v;
-  return u._float4;
-}
-
-INLINE OVERLOADABLE long2 as_long2(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(float3 v) {
-  union _type_cast_16_b u;
-  u._float3 = v;
-  return u._double2;
-}
-
-INLINE OVERLOADABLE long2 as_long2(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._long2;
-}
-
-INLINE OVERLOADABLE ulong2 as_ulong2(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._ulong2;
-}
-
-INLINE OVERLOADABLE int3 as_int3(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._int3;
-}
-
-INLINE OVERLOADABLE int4 as_int4(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._int4;
-}
-
-INLINE OVERLOADABLE uint3 as_uint3(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._uint3;
-}
-
-INLINE OVERLOADABLE uint4 as_uint4(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._uint4;
-}
-
-INLINE OVERLOADABLE short8 as_short8(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._short8;
-}
-
-INLINE OVERLOADABLE ushort8 as_ushort8(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._ushort8;
-}
-
-INLINE OVERLOADABLE char16 as_char16(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._char16;
-}
-
-INLINE OVERLOADABLE uchar16 as_uchar16(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._uchar16;
-}
-
-INLINE OVERLOADABLE double2 as_double2(float4 v) {
-  union _type_cast_16_b u;
-  u._float4 = v;
-  return u._double2;
-}
-
-union _type_cast_32_b {
-  long3 _long3;
-  long4 _long4;
-  ulong3 _ulong3;
-  ulong4 _ulong4;
-  int8 _int8;
-  uint8 _uint8;
-  short16 _short16;
-  ushort16 _ushort16;
-  double3 _double3;
-  double4 _double4;
-  float8 _float8;
-};
-
-INLINE OVERLOADABLE ulong3 as_ulong3(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(long3 v) {
-  union _type_cast_32_b u;
-  u._long3 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(long4 v) {
-  union _type_cast_32_b u;
-  u._long4 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(ulong3 v) {
-  union _type_cast_32_b u;
-  u._ulong3 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(ulong4 v) {
-  union _type_cast_32_b u;
-  u._ulong4 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(int8 v) {
-  union _type_cast_32_b u;
-  u._int8 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(uint8 v) {
-  union _type_cast_32_b u;
-  u._uint8 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(short16 v) {
-  union _type_cast_32_b u;
-  u._short16 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._double4;
-}
-
-INLINE OVERLOADABLE float8 as_float8(ushort16 v) {
-  union _type_cast_32_b u;
-  u._ushort16 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE float8 as_float8(double3 v) {
-  union _type_cast_32_b u;
-  u._double3 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE float8 as_float8(double4 v) {
-  union _type_cast_32_b u;
-  u._double4 = v;
-  return u._float8;
-}
-
-INLINE OVERLOADABLE long3 as_long3(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._long3;
-}
-
-INLINE OVERLOADABLE long4 as_long4(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._long4;
-}
-
-INLINE OVERLOADABLE ulong3 as_ulong3(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._ulong3;
-}
-
-INLINE OVERLOADABLE ulong4 as_ulong4(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._ulong4;
-}
-
-INLINE OVERLOADABLE int8 as_int8(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._int8;
-}
-
-INLINE OVERLOADABLE uint8 as_uint8(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._uint8;
-}
-
-INLINE OVERLOADABLE short16 as_short16(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._short16;
-}
-
-INLINE OVERLOADABLE ushort16 as_ushort16(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._ushort16;
-}
-
-INLINE OVERLOADABLE double3 as_double3(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._double3;
-}
-
-INLINE OVERLOADABLE double4 as_double4(float8 v) {
-  union _type_cast_32_b u;
-  u._float8 = v;
-  return u._double4;
-}
-
-union _type_cast_64_b {
-  long8 _long8;
-  ulong8 _ulong8;
-  int16 _int16;
-  uint16 _uint16;
-  double8 _double8;
-  float16 _float16;
-};
-
-INLINE OVERLOADABLE ulong8 as_ulong8(long8 v) {
-  union _type_cast_64_b u;
-  u._long8 = v;
-  return u._ulong8;
-}
-
-INLINE OVERLOADABLE int16 as_int16(long8 v) {
-  union _type_cast_64_b u;
-  u._long8 = v;
-  return u._int16;
-}
-
-INLINE OVERLOADABLE uint16 as_uint16(long8 v) {
-  union _type_cast_64_b u;
-  u._long8 = v;
-  return u._uint16;
-}
-
-INLINE OVERLOADABLE double8 as_double8(long8 v) {
-  union _type_cast_64_b u;
-  u._long8 = v;
-  return u._double8;
-}
-
-INLINE OVERLOADABLE float16 as_float16(long8 v) {
-  union _type_cast_64_b u;
-  u._long8 = v;
-  return u._float16;
-}
-
-INLINE OVERLOADABLE long8 as_long8(ulong8 v) {
-  union _type_cast_64_b u;
-  u._ulong8 = v;
-  return u._long8;
-}
-
-INLINE OVERLOADABLE int16 as_int16(ulong8 v) {
-  union _type_cast_64_b u;
-  u._ulong8 = v;
-  return u._int16;
-}
-
-INLINE OVERLOADABLE uint16 as_uint16(ulong8 v) {
-  union _type_cast_64_b u;
-  u._ulong8 = v;
-  return u._uint16;
-}
-
-INLINE OVERLOADABLE double8 as_double8(ulong8 v) {
-  union _type_cast_64_b u;
-  u._ulong8 = v;
-  return u._double8;
-}
-
-INLINE OVERLOADABLE float16 as_float16(ulong8 v) {
-  union _type_cast_64_b u;
-  u._ulong8 = v;
-  return u._float16;
-}
-
-INLINE OVERLOADABLE long8 as_long8(int16 v) {
-  union _type_cast_64_b u;
-  u._int16 = v;
-  return u._long8;
-}
-
-INLINE OVERLOADABLE ulong8 as_ulong8(int16 v) {
-  union _type_cast_64_b u;
-  u._int16 = v;
-  return u._ulong8;
-}
-
-INLINE OVERLOADABLE uint16 as_uint16(int16 v) {
-  union _type_cast_64_b u;
-  u._int16 = v;
-  return u._uint16;
-}
-
-INLINE OVERLOADABLE double8 as_double8(int16 v) {
-  union _type_cast_64_b u;
-  u._int16 = v;
-  return u._double8;
-}
-
-INLINE OVERLOADABLE float16 as_float16(int16 v) {
-  union _type_cast_64_b u;
-  u._int16 = v;
-  return u._float16;
-}
-
-INLINE OVERLOADABLE long8 as_long8(uint16 v) {
-  union _type_cast_64_b u;
-  u._uint16 = v;
-  return u._long8;
-}
-
-INLINE OVERLOADABLE ulong8 as_ulong8(uint16 v) {
-  union _type_cast_64_b u;
-  u._uint16 = v;
-  return u._ulong8;
-}
-
-INLINE OVERLOADABLE int16 as_int16(uint16 v) {
-  union _type_cast_64_b u;
-  u._uint16 = v;
-  return u._int16;
-}
-
-INLINE OVERLOADABLE double8 as_double8(uint16 v) {
-  union _type_cast_64_b u;
-  u._uint16 = v;
-  return u._double8;
-}
-
-INLINE OVERLOADABLE float16 as_float16(uint16 v) {
-  union _type_cast_64_b u;
-  u._uint16 = v;
-  return u._float16;
-}
-
-INLINE OVERLOADABLE long8 as_long8(double8 v) {
-  union _type_cast_64_b u;
-  u._double8 = v;
-  return u._long8;
-}
-
-INLINE OVERLOADABLE ulong8 as_ulong8(double8 v) {
-  union _type_cast_64_b u;
-  u._double8 = v;
-  return u._ulong8;
-}
-
-INLINE OVERLOADABLE int16 as_int16(double8 v) {
-  union _type_cast_64_b u;
-  u._double8 = v;
-  return u._int16;
-}
-
-INLINE OVERLOADABLE uint16 as_uint16(double8 v) {
-  union _type_cast_64_b u;
-  u._double8 = v;
-  return u._uint16;
-}
-
-INLINE OVERLOADABLE float16 as_float16(double8 v) {
-  union _type_cast_64_b u;
-  u._double8 = v;
-  return u._float16;
-}
-
-INLINE OVERLOADABLE long8 as_long8(float16 v) {
-  union _type_cast_64_b u;
-  u._float16 = v;
-  return u._long8;
-}
-
-INLINE OVERLOADABLE ulong8 as_ulong8(float16 v) {
-  union _type_cast_64_b u;
-  u._float16 = v;
-  return u._ulong8;
-}
-
-INLINE OVERLOADABLE int16 as_int16(float16 v) {
-  union _type_cast_64_b u;
-  u._float16 = v;
-  return u._int16;
-}
-
-INLINE OVERLOADABLE uint16 as_uint16(float16 v) {
-  union _type_cast_64_b u;
-  u._float16 = v;
-  return u._uint16;
-}
-
-INLINE OVERLOADABLE double8 as_double8(float16 v) {
-  union _type_cast_64_b u;
-  u._float16 = v;
-  return u._double8;
-}
-
-union _type_cast_128_b {
-  long16 _long16;
-  ulong16 _ulong16;
-  double16 _double16;
-};
-
-INLINE OVERLOADABLE ulong16 as_ulong16(long16 v) {
-  union _type_cast_128_b u;
-  u._long16 = v;
-  return u._ulong16;
-}
-
-INLINE OVERLOADABLE double16 as_double16(long16 v) {
-  union _type_cast_128_b u;
-  u._long16 = v;
-  return u._double16;
-}
-
-INLINE OVERLOADABLE long16 as_long16(ulong16 v) {
-  union _type_cast_128_b u;
-  u._ulong16 = v;
-  return u._long16;
-}
-
-INLINE OVERLOADABLE double16 as_double16(ulong16 v) {
-  union _type_cast_128_b u;
-  u._ulong16 = v;
-  return u._double16;
-}
-
-INLINE OVERLOADABLE long16 as_long16(double16 v) {
-  union _type_cast_128_b u;
-  u._double16 = v;
-  return u._long16;
-}
-
-INLINE OVERLOADABLE ulong16 as_ulong16(double16 v) {
-  union _type_cast_128_b u;
-  u._double16 = v;
-  return u._ulong16;
-}
-
diff --git a/backend/src/ocl_barrier.ll b/backend/src/ocl_barrier.ll
deleted file mode 100644
index 4e55fcb..0000000
--- a/backend/src/ocl_barrier.ll
+++ /dev/null
@@ -1,39 +0,0 @@
-;XXX FIXME as llvm can't use macros, we hardcoded 3, 1, 2
-;here, we may need to use a more grace way to handle this type
-;of values latter.
-;#define CLK_LOCAL_MEM_FENCE  (1 << 0)
-;#define CLK_GLOBAL_MEM_FENCE (1 << 1)
-
-declare i32 @_get_local_mem_fence() nounwind alwaysinline
-declare i32 @_get_global_mem_fence() nounwind alwaysinline
-declare void @__gen_ocl_barrier_local() nounwind alwaysinline noduplicate
-declare void @__gen_ocl_barrier_global() nounwind alwaysinline noduplicate
-declare void @__gen_ocl_barrier_local_and_global() nounwind alwaysinline noduplicate
-
-define void @barrier(i32 %flags) nounwind noduplicate alwaysinline {
-  %1 = icmp eq i32 %flags, 3
-  br i1 %1, label %barrier_local_global, label %barrier_local_check
-
-barrier_local_global:
-  call void @__gen_ocl_barrier_local_and_global()
-  br label %done
-
-barrier_local_check:
-  %2 = icmp eq i32 %flags, 1
-  br i1 %2, label %barrier_local, label %barrier_global_check
-
-barrier_local:
-  call void @__gen_ocl_barrier_local()
-  br label %done
-
-barrier_global_check:
-  %3 = icmp eq i32 %flags, 2
-  br i1 %3, label %barrier_global, label %done
-
-barrier_global:
-  call void @__gen_ocl_barrier_global()
-  br label %done
-
-done:
-  ret void
-}
diff --git a/backend/src/ocl_convert.h b/backend/src/ocl_convert.h
deleted file mode 100644
index 8326768..0000000
--- a/backend/src/ocl_convert.h
+++ /dev/null
@@ -1,17415 +0,0 @@
-// This file is autogenerated by gen_convert.sh.
-// Don't modify it manually.
-INLINE OVERLOADABLE long convert_long(long v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(long v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(long v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(long v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(long v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(long v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(long v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(long v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(long v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(long v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(ulong v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(ulong v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(ulong v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(ulong v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(ulong v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(ulong v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(ulong v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(ulong v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(ulong v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(ulong v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(int v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(int v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(int v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(int v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(int v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(int v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(int v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(int v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(int v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(int v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(uint v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(uint v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(uint v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(uint v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(uint v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(uint v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(uint v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(uint v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(uint v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(uint v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(short v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(short v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(short v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(short v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(short v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(short v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(short v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(short v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(short v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(short v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(ushort v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(ushort v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(ushort v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(ushort v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(ushort v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(ushort v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(ushort v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(ushort v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(ushort v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(ushort v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(char v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(char v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(char v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(char v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(char v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(char v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(char v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(char v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(char v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(char v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(uchar v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(uchar v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(uchar v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(uchar v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(uchar v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(uchar v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(uchar v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(uchar v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(uchar v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(uchar v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(double v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(double v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(double v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(double v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(double v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(double v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(double v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(double v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(double v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(double v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long convert_long(float v) {
-  return (long)v;
-}
-
-INLINE OVERLOADABLE ulong convert_ulong(float v) {
-  return (ulong)v;
-}
-
-INLINE OVERLOADABLE int convert_int(float v) {
-  return (int)v;
-}
-
-INLINE OVERLOADABLE uint convert_uint(float v) {
-  return (uint)v;
-}
-
-INLINE OVERLOADABLE short convert_short(float v) {
-  return (short)v;
-}
-
-INLINE OVERLOADABLE ushort convert_ushort(float v) {
-  return (ushort)v;
-}
-
-INLINE OVERLOADABLE char convert_char(float v) {
-  return (char)v;
-}
-
-INLINE OVERLOADABLE uchar convert_uchar(float v) {
-  return (uchar)v;
-}
-
-INLINE OVERLOADABLE double convert_double(float v) {
-  return (double)v;
-}
-
-INLINE OVERLOADABLE float convert_float(float v) {
-  return (float)v;
-}
-
-INLINE OVERLOADABLE long2 convert_long2(long2 v) { return v; }
-INLINE OVERLOADABLE ulong2 convert_ulong2(long2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(long2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(long2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(long2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(long2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(long2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(long2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(long2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(long2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(ulong2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(ulong2 v) { return v; }
-INLINE OVERLOADABLE int2 convert_int2(ulong2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(ulong2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(ulong2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(ulong2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(ulong2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(ulong2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(ulong2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(ulong2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(int2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(int2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(int2 v) { return v; }
-INLINE OVERLOADABLE uint2 convert_uint2(int2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(int2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(int2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(int2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(int2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(int2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(int2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(uint2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(uint2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(uint2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(uint2 v) { return v; }
-INLINE OVERLOADABLE short2 convert_short2(uint2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(uint2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(uint2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(uint2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(uint2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(uint2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(short2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(short2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(short2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(short2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(short2 v) { return v; }
-INLINE OVERLOADABLE ushort2 convert_ushort2(short2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(short2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(short2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(short2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(short2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(ushort2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(ushort2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(ushort2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(ushort2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(ushort2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(ushort2 v) { return v; }
-INLINE OVERLOADABLE char2 convert_char2(ushort2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(ushort2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(ushort2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(ushort2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(char2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(char2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(char2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(char2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(char2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(char2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(char2 v) { return v; }
-INLINE OVERLOADABLE uchar2 convert_uchar2(char2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(char2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(char2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(uchar2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(uchar2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(uchar2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(uchar2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(uchar2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(uchar2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(uchar2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(uchar2 v) { return v; }
-INLINE OVERLOADABLE double2 convert_double2(uchar2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(uchar2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(double2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(double2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(double2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(double2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(double2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(double2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(double2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(double2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(double2 v) { return v; }
-INLINE OVERLOADABLE float2 convert_float2(double2 v) {
-  return (float2)((float)(v.s0), (float)(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2(float2 v) {
-  return (long2)((long)(v.s0), (long)(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2(float2 v) {
-  return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2(float2 v) {
-  return (int2)((int)(v.s0), (int)(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2(float2 v) {
-  return (uint2)((uint)(v.s0), (uint)(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2(float2 v) {
-  return (short2)((short)(v.s0), (short)(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2(float2 v) {
-  return (ushort2)((ushort)(v.s0), (ushort)(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2(float2 v) {
-  return (char2)((char)(v.s0), (char)(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2(float2 v) {
-  return (uchar2)((uchar)(v.s0), (uchar)(v.s1));
-}
-
-INLINE OVERLOADABLE double2 convert_double2(float2 v) {
-  return (double2)((double)(v.s0), (double)(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2(float2 v) { return v; }
-INLINE OVERLOADABLE long3 convert_long3(long3 v) { return v; }
-INLINE OVERLOADABLE ulong3 convert_ulong3(long3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(long3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(long3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(long3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(long3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(long3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(long3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(long3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(long3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(ulong3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(ulong3 v) { return v; }
-INLINE OVERLOADABLE int3 convert_int3(ulong3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(ulong3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(ulong3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(ulong3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(ulong3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(ulong3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(ulong3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(ulong3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(int3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(int3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(int3 v) { return v; }
-INLINE OVERLOADABLE uint3 convert_uint3(int3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(int3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(int3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(int3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(int3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(int3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(int3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(uint3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(uint3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(uint3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(uint3 v) { return v; }
-INLINE OVERLOADABLE short3 convert_short3(uint3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(uint3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(uint3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(uint3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(uint3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(uint3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(short3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(short3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(short3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(short3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(short3 v) { return v; }
-INLINE OVERLOADABLE ushort3 convert_ushort3(short3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(short3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(short3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(short3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(short3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(ushort3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(ushort3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(ushort3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(ushort3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(ushort3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(ushort3 v) { return v; }
-INLINE OVERLOADABLE char3 convert_char3(ushort3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(ushort3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(ushort3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(ushort3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(char3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(char3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(char3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(char3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(char3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(char3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(char3 v) { return v; }
-INLINE OVERLOADABLE uchar3 convert_uchar3(char3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(char3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(char3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(uchar3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(uchar3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(uchar3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(uchar3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(uchar3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(uchar3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(uchar3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(uchar3 v) { return v; }
-INLINE OVERLOADABLE double3 convert_double3(uchar3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(uchar3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(double3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(double3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(double3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(double3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(double3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(double3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(double3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(double3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(double3 v) { return v; }
-INLINE OVERLOADABLE float3 convert_float3(double3 v) {
-  return (float3)((float)(v.s0), (float)(v.s1), (float)(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3(float3 v) {
-  return (long3)((long)(v.s0), (long)(v.s1), (long)(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3(float3 v) {
-  return (ulong3)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3(float3 v) {
-  return (int3)((int)(v.s0), (int)(v.s1), (int)(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3(float3 v) {
-  return (uint3)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3(float3 v) {
-  return (short3)((short)(v.s0), (short)(v.s1), (short)(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3(float3 v) {
-  return (ushort3)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3(float3 v) {
-  return (char3)((char)(v.s0), (char)(v.s1), (char)(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3(float3 v) {
-  return (uchar3)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2));
-}
-
-INLINE OVERLOADABLE double3 convert_double3(float3 v) {
-  return (double3)((double)(v.s0), (double)(v.s1), (double)(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3(float3 v) { return v; }
-INLINE OVERLOADABLE long4 convert_long4(long4 v) { return v; }
-INLINE OVERLOADABLE ulong4 convert_ulong4(long4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(long4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(long4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(long4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(long4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(long4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(long4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(long4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(long4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(ulong4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(ulong4 v) { return v; }
-INLINE OVERLOADABLE int4 convert_int4(ulong4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(ulong4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(ulong4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(ulong4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(ulong4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(ulong4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(ulong4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(ulong4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(int4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(int4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(int4 v) { return v; }
-INLINE OVERLOADABLE uint4 convert_uint4(int4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(int4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(int4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(int4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(int4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(int4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(int4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(uint4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(uint4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(uint4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(uint4 v) { return v; }
-INLINE OVERLOADABLE short4 convert_short4(uint4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(uint4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(uint4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(uint4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(uint4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(uint4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(short4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(short4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(short4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(short4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(short4 v) { return v; }
-INLINE OVERLOADABLE ushort4 convert_ushort4(short4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(short4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(short4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(short4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(short4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(ushort4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(ushort4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(ushort4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(ushort4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(ushort4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(ushort4 v) { return v; }
-INLINE OVERLOADABLE char4 convert_char4(ushort4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(ushort4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(ushort4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(ushort4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(char4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(char4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(char4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(char4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(char4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(char4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(char4 v) { return v; }
-INLINE OVERLOADABLE uchar4 convert_uchar4(char4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(char4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(char4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(uchar4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(uchar4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(uchar4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(uchar4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(uchar4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(uchar4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(uchar4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(uchar4 v) { return v; }
-INLINE OVERLOADABLE double4 convert_double4(uchar4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(uchar4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(double4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(double4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(double4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(double4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(double4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(double4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(double4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(double4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(double4 v) { return v; }
-INLINE OVERLOADABLE float4 convert_float4(double4 v) {
-  return (float4)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4(float4 v) {
-  return (long4)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4(float4 v) {
-  return (ulong4)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4(float4 v) {
-  return (int4)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4(float4 v) {
-  return (uint4)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4(float4 v) {
-  return (short4)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4(float4 v) {
-  return (ushort4)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4(float4 v) {
-  return (char4)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4(float4 v) {
-  return (uchar4)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3));
-}
-
-INLINE OVERLOADABLE double4 convert_double4(float4 v) {
-  return (double4)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4(float4 v) { return v; }
-INLINE OVERLOADABLE long8 convert_long8(long8 v) { return v; }
-INLINE OVERLOADABLE ulong8 convert_ulong8(long8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(long8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(long8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(long8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(long8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(long8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(long8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(long8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(long8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(ulong8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(ulong8 v) { return v; }
-INLINE OVERLOADABLE int8 convert_int8(ulong8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(ulong8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(ulong8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(ulong8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(ulong8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(ulong8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(ulong8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(ulong8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(int8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(int8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(int8 v) { return v; }
-INLINE OVERLOADABLE uint8 convert_uint8(int8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(int8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(int8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(int8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(int8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(int8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(int8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(uint8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(uint8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(uint8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(uint8 v) { return v; }
-INLINE OVERLOADABLE short8 convert_short8(uint8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(uint8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(uint8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(uint8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(uint8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(uint8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(short8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(short8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(short8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(short8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(short8 v) { return v; }
-INLINE OVERLOADABLE ushort8 convert_ushort8(short8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(short8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(short8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(short8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(short8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(ushort8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(ushort8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(ushort8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(ushort8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(ushort8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(ushort8 v) { return v; }
-INLINE OVERLOADABLE char8 convert_char8(ushort8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(ushort8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(ushort8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(ushort8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(char8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(char8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(char8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(char8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(char8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(char8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(char8 v) { return v; }
-INLINE OVERLOADABLE uchar8 convert_uchar8(char8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(char8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(char8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(uchar8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(uchar8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(uchar8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(uchar8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(uchar8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(uchar8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(uchar8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(uchar8 v) { return v; }
-INLINE OVERLOADABLE double8 convert_double8(uchar8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(uchar8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(double8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(double8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(double8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(double8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(double8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(double8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(double8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(double8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(double8 v) { return v; }
-INLINE OVERLOADABLE float8 convert_float8(double8 v) {
-  return (float8)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8(float8 v) {
-  return (long8)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8(float8 v) {
-  return (ulong8)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8(float8 v) {
-  return (int8)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8(float8 v) {
-  return (uint8)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8(float8 v) {
-  return (short8)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8(float8 v) {
-  return (ushort8)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8(float8 v) {
-  return (char8)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8(float8 v) {
-  return (uchar8)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7));
-}
-
-INLINE OVERLOADABLE double8 convert_double8(float8 v) {
-  return (double8)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8(float8 v) { return v; }
-INLINE OVERLOADABLE long16 convert_long16(long16 v) { return v; }
-INLINE OVERLOADABLE ulong16 convert_ulong16(long16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(long16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(long16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(long16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(long16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(long16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(long16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(long16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(long16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(ulong16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(ulong16 v) { return v; }
-INLINE OVERLOADABLE int16 convert_int16(ulong16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(ulong16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(ulong16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(ulong16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(ulong16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(ulong16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(ulong16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(ulong16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(int16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(int16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(int16 v) { return v; }
-INLINE OVERLOADABLE uint16 convert_uint16(int16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(int16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(int16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(int16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(int16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(int16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(int16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(uint16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(uint16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(uint16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(uint16 v) { return v; }
-INLINE OVERLOADABLE short16 convert_short16(uint16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(uint16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(uint16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(uint16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(uint16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(uint16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(short16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(short16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(short16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(short16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(short16 v) { return v; }
-INLINE OVERLOADABLE ushort16 convert_ushort16(short16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(short16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(short16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(short16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(short16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(ushort16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(ushort16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(ushort16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(ushort16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(ushort16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(ushort16 v) { return v; }
-INLINE OVERLOADABLE char16 convert_char16(ushort16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(ushort16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(ushort16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(ushort16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(char16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(char16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(char16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(char16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(char16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(char16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(char16 v) { return v; }
-INLINE OVERLOADABLE uchar16 convert_uchar16(char16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(char16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(char16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(uchar16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(uchar16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(uchar16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(uchar16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(uchar16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(uchar16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(uchar16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(uchar16 v) { return v; }
-INLINE OVERLOADABLE double16 convert_double16(uchar16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(uchar16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(double16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(double16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(double16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(double16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(double16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(double16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(double16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(double16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(double16 v) { return v; }
-INLINE OVERLOADABLE float16 convert_float16(double16 v) {
-  return (float16)((float)(v.s0), (float)(v.s1), (float)(v.s2), (float)(v.s3), (float)(v.s4), (float)(v.s5), (float)(v.s6), (float)(v.s7), (float)(v.s8), (float)(v.s9), (float)(v.sA), (float)(v.sB), (float)(v.sC), (float)(v.sD), (float)(v.sE), (float)(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16(float16 v) {
-  return (long16)((long)(v.s0), (long)(v.s1), (long)(v.s2), (long)(v.s3), (long)(v.s4), (long)(v.s5), (long)(v.s6), (long)(v.s7), (long)(v.s8), (long)(v.s9), (long)(v.sA), (long)(v.sB), (long)(v.sC), (long)(v.sD), (long)(v.sE), (long)(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16(float16 v) {
-  return (ulong16)((ulong)(v.s0), (ulong)(v.s1), (ulong)(v.s2), (ulong)(v.s3), (ulong)(v.s4), (ulong)(v.s5), (ulong)(v.s6), (ulong)(v.s7), (ulong)(v.s8), (ulong)(v.s9), (ulong)(v.sA), (ulong)(v.sB), (ulong)(v.sC), (ulong)(v.sD), (ulong)(v.sE), (ulong)(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16(float16 v) {
-  return (int16)((int)(v.s0), (int)(v.s1), (int)(v.s2), (int)(v.s3), (int)(v.s4), (int)(v.s5), (int)(v.s6), (int)(v.s7), (int)(v.s8), (int)(v.s9), (int)(v.sA), (int)(v.sB), (int)(v.sC), (int)(v.sD), (int)(v.sE), (int)(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16(float16 v) {
-  return (uint16)((uint)(v.s0), (uint)(v.s1), (uint)(v.s2), (uint)(v.s3), (uint)(v.s4), (uint)(v.s5), (uint)(v.s6), (uint)(v.s7), (uint)(v.s8), (uint)(v.s9), (uint)(v.sA), (uint)(v.sB), (uint)(v.sC), (uint)(v.sD), (uint)(v.sE), (uint)(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16(float16 v) {
-  return (short16)((short)(v.s0), (short)(v.s1), (short)(v.s2), (short)(v.s3), (short)(v.s4), (short)(v.s5), (short)(v.s6), (short)(v.s7), (short)(v.s8), (short)(v.s9), (short)(v.sA), (short)(v.sB), (short)(v.sC), (short)(v.sD), (short)(v.sE), (short)(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16(float16 v) {
-  return (ushort16)((ushort)(v.s0), (ushort)(v.s1), (ushort)(v.s2), (ushort)(v.s3), (ushort)(v.s4), (ushort)(v.s5), (ushort)(v.s6), (ushort)(v.s7), (ushort)(v.s8), (ushort)(v.s9), (ushort)(v.sA), (ushort)(v.sB), (ushort)(v.sC), (ushort)(v.sD), (ushort)(v.sE), (ushort)(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16(float16 v) {
-  return (char16)((char)(v.s0), (char)(v.s1), (char)(v.s2), (char)(v.s3), (char)(v.s4), (char)(v.s5), (char)(v.s6), (char)(v.s7), (char)(v.s8), (char)(v.s9), (char)(v.sA), (char)(v.sB), (char)(v.sC), (char)(v.sD), (char)(v.sE), (char)(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16(float16 v) {
-  return (uchar16)((uchar)(v.s0), (uchar)(v.s1), (uchar)(v.s2), (uchar)(v.s3), (uchar)(v.s4), (uchar)(v.s5), (uchar)(v.s6), (uchar)(v.s7), (uchar)(v.s8), (uchar)(v.s9), (uchar)(v.sA), (uchar)(v.sB), (uchar)(v.sC), (uchar)(v.sD), (uchar)(v.sE), (uchar)(v.sF));
-}
-
-INLINE OVERLOADABLE double16 convert_double16(float16 v) {
-  return (double16)((double)(v.s0), (double)(v.s1), (double)(v.s2), (double)(v.s3), (double)(v.s4), (double)(v.s5), (double)(v.s6), (double)(v.s7), (double)(v.s8), (double)(v.s9), (double)(v.sA), (double)(v.sB), (double)(v.sC), (double)(v.sD), (double)(v.sE), (double)(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16(float16 v) { return v; }
-
-#define DEF(DSTTYPE, SRCTYPE) \
-  OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x);
-DEF(char, uchar);
-DEF(char, short);
-DEF(char, ushort);
-DEF(char, int);
-DEF(char, uint);
-DEF(char, float);
-DEF(uchar, char);
-DEF(uchar, short);
-DEF(uchar, ushort);
-DEF(uchar, int);
-DEF(uchar, uint);
-DEF(uchar, float);
-DEF(short, ushort);
-DEF(short, int);
-DEF(short, uint);
-DEF(short, float);
-DEF(ushort, short);
-DEF(ushort, int);
-DEF(ushort, uint);
-DEF(ushort, float);
-DEF(int, uint);
-DEF(int, float);
-DEF(uint, int);
-DEF(uint, float);
-#undef DEF
-
-#define DEF(DSTTYPE, SRCTYPE, MIN, MAX) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x >= MAX ? (DSTTYPE)MAX : x <= MIN ? (DSTTYPE)MIN : x; \
-  }
-DEF(char, long, -128, 127);
-DEF(uchar, long, 0, 255);
-DEF(short, long, -32768, 32767);
-DEF(ushort, long, 0, 65535);
-DEF(int, long, -0x7fffffff-1, 0x7fffffff);
-DEF(uint, long, 0, 0xffffffffu);
-DEF(long, float, -9.223372036854776e+18f, 9.223372036854776e+18f);
-DEF(ulong, float, 0, 1.8446744073709552e+19f);
-#undef DEF
-
-#define DEF(DSTTYPE, SRCTYPE, MAX) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x >= MAX ? (DSTTYPE)MAX : x; \
-  }
-DEF(char, ulong, 127);
-DEF(uchar, ulong, 255);
-DEF(short, ulong, 32767);
-DEF(ushort, ulong, 65535);
-DEF(int, ulong, 0x7fffffff);
-DEF(uint, ulong, 0xffffffffu);
-#undef DEF
-
-INLINE_OVERLOADABLE long convert_long_sat(ulong x) {
-  ulong MAX = 0x7ffffffffffffffful;
-  return x >= MAX ? MAX : x;
-}
-
-#define DEF(DSTTYPE, SRCTYPE) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x <= 0 ? 0 : x; \
-  }
-DEF(ushort, char);
-DEF(uint, char);
-DEF(uint, short);
-DEF(ulong, char);
-DEF(ulong, short);
-DEF(ulong, int);
-DEF(ulong, long);
-#undef DEF
-
-#define DEF(DSTTYPE, SRCTYPE) \
-  INLINE_OVERLOADABLE DSTTYPE convert_ ## DSTTYPE ## _sat(SRCTYPE x) { \
-    return x; \
-  }
-DEF(char, char);
-DEF(uchar, uchar);
-DEF(short, char);
-DEF(short, uchar);
-DEF(short, short);
-DEF(ushort, uchar);
-DEF(ushort, ushort);
-DEF(int, char);
-DEF(int, uchar);
-DEF(int, short);
-DEF(int, ushort);
-DEF(int, int);
-DEF(uint, uchar);
-DEF(uint, ushort);
-DEF(uint, uint);
-DEF(long, char);
-DEF(long, uchar);
-DEF(long, short);
-DEF(long, ushort);
-DEF(long, int);
-DEF(long, uint);
-DEF(long, long);
-DEF(ulong, uchar);
-DEF(ulong, ushort);
-DEF(ulong, uint);
-DEF(ulong, ulong);
-#undef DEF
-
-INLINE OVERLOADABLE long2 convert_long2_sat(long2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(long2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(long2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(long2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(long2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(long2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(long2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(long2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(ulong2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(ulong2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(ulong2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(ulong2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(ulong2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(ulong2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(ulong2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(ulong2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(int2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(int2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(int2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(int2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(int2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(int2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(int2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(int2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(uint2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(uint2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(uint2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(uint2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(uint2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(uint2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(uint2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(uint2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(short2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(short2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(short2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(short2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(short2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(short2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(short2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(short2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(ushort2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(ushort2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(ushort2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(ushort2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(ushort2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(ushort2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(ushort2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(ushort2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(char2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(char2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(char2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(char2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(char2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(char2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(char2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(char2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(uchar2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(uchar2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(uchar2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(uchar2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(uchar2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(uchar2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(uchar2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(uchar2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat(float2 v) {
-  return (long2)(convert_long_sat(v.s0), convert_long_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat(float2 v) {
-  return (ulong2)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat(float2 v) {
-  return (int2)(convert_int_sat(v.s0), convert_int_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat(float2 v) {
-  return (uint2)(convert_uint_sat(v.s0), convert_uint_sat(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat(float2 v) {
-  return (short2)(convert_short_sat(v.s0), convert_short_sat(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat(float2 v) {
-  return (ushort2)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat(float2 v) {
-  return (char2)(convert_char_sat(v.s0), convert_char_sat(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat(float2 v) {
-  return (uchar2)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(long3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(long3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(long3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(long3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(long3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(long3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(long3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(long3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(ulong3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(ulong3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(ulong3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(ulong3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(ulong3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(ulong3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(ulong3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(ulong3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(int3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(int3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(int3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(int3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(int3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(int3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(int3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(int3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(uint3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(uint3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(uint3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(uint3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(uint3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(uint3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(uint3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(uint3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(short3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(short3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(short3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(short3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(short3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(short3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(short3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(short3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(ushort3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(ushort3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(ushort3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(ushort3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(ushort3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(ushort3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(ushort3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(ushort3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(char3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(char3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(char3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(char3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(char3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(char3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(char3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(char3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(uchar3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(uchar3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(uchar3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(uchar3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(uchar3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(uchar3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(uchar3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(uchar3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat(float3 v) {
-  return (long3)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat(float3 v) {
-  return (ulong3)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat(float3 v) {
-  return (int3)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat(float3 v) {
-  return (uint3)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat(float3 v) {
-  return (short3)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat(float3 v) {
-  return (ushort3)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat(float3 v) {
-  return (char3)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat(float3 v) {
-  return (uchar3)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(long4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(long4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(long4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(long4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(long4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(long4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(long4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(long4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(ulong4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(ulong4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(ulong4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(ulong4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(ulong4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(ulong4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(ulong4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(ulong4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(int4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(int4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(int4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(int4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(int4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(int4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(int4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(int4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(uint4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(uint4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(uint4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(uint4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(uint4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(uint4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(uint4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(uint4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(short4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(short4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(short4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(short4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(short4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(short4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(short4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(short4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(ushort4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(ushort4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(ushort4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(ushort4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(ushort4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(ushort4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(ushort4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(ushort4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(char4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(char4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(char4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(char4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(char4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(char4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(char4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(char4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(uchar4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(uchar4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(uchar4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(uchar4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(uchar4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(uchar4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(uchar4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(uchar4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat(float4 v) {
-  return (long4)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat(float4 v) {
-  return (ulong4)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat(float4 v) {
-  return (int4)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat(float4 v) {
-  return (uint4)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat(float4 v) {
-  return (short4)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat(float4 v) {
-  return (ushort4)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat(float4 v) {
-  return (char4)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat(float4 v) {
-  return (uchar4)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(long8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(long8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(long8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(long8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(long8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(long8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(long8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(long8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(ulong8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(ulong8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(ulong8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(ulong8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(ulong8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(ulong8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(ulong8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(ulong8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(int8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(int8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(int8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(int8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(int8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(int8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(int8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(int8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(uint8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(uint8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(uint8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(uint8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(uint8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(uint8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(uint8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(uint8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(short8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(short8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(short8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(short8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(short8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(short8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(short8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(short8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(ushort8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(ushort8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(ushort8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(ushort8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(ushort8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(ushort8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(ushort8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(ushort8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(char8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(char8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(char8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(char8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(char8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(char8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(char8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(char8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(uchar8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(uchar8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(uchar8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(uchar8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(uchar8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(uchar8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(uchar8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(uchar8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat(float8 v) {
-  return (long8)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat(float8 v) {
-  return (ulong8)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat(float8 v) {
-  return (int8)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat(float8 v) {
-  return (uint8)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat(float8 v) {
-  return (short8)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat(float8 v) {
-  return (ushort8)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat(float8 v) {
-  return (char8)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat(float8 v) {
-  return (uchar8)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(long16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(long16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(long16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(long16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(long16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(long16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(long16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(long16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(ulong16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(ulong16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(ulong16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(ulong16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(ulong16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(ulong16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(ulong16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(ulong16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(int16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(int16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(int16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(int16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(int16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(int16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(int16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(int16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(uint16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(uint16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(uint16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(uint16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(uint16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(uint16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(uint16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(uint16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(short16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(short16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(short16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(short16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(short16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(short16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(short16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(short16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(ushort16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(ushort16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(ushort16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(ushort16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(ushort16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(ushort16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(ushort16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(ushort16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(char16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(char16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(char16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(char16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(char16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(char16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(char16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(char16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(uchar16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(uchar16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(uchar16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(uchar16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(uchar16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(uchar16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(uchar16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(uchar16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat(float16 v) {
-  return (long16)(convert_long_sat(v.s0), convert_long_sat(v.s1), convert_long_sat(v.s2), convert_long_sat(v.s3), convert_long_sat(v.s4), convert_long_sat(v.s5), convert_long_sat(v.s6), convert_long_sat(v.s7), convert_long_sat(v.s8), convert_long_sat(v.s9), convert_long_sat(v.sA), convert_long_sat(v.sB), convert_long_sat(v.sC), convert_long_sat(v.sD), convert_long_sat(v.sE), convert_long_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat(float16 v) {
-  return (ulong16)(convert_ulong_sat(v.s0), convert_ulong_sat(v.s1), convert_ulong_sat(v.s2), convert_ulong_sat(v.s3), convert_ulong_sat(v.s4), convert_ulong_sat(v.s5), convert_ulong_sat(v.s6), convert_ulong_sat(v.s7), convert_ulong_sat(v.s8), convert_ulong_sat(v.s9), convert_ulong_sat(v.sA), convert_ulong_sat(v.sB), convert_ulong_sat(v.sC), convert_ulong_sat(v.sD), convert_ulong_sat(v.sE), convert_ulong_sat(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat(float16 v) {
-  return (int16)(convert_int_sat(v.s0), convert_int_sat(v.s1), convert_int_sat(v.s2), convert_int_sat(v.s3), convert_int_sat(v.s4), convert_int_sat(v.s5), convert_int_sat(v.s6), convert_int_sat(v.s7), convert_int_sat(v.s8), convert_int_sat(v.s9), convert_int_sat(v.sA), convert_int_sat(v.sB), convert_int_sat(v.sC), convert_int_sat(v.sD), convert_int_sat(v.sE), convert_int_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat(float16 v) {
-  return (uint16)(convert_uint_sat(v.s0), convert_uint_sat(v.s1), convert_uint_sat(v.s2), convert_uint_sat(v.s3), convert_uint_sat(v.s4), convert_uint_sat(v.s5), convert_uint_sat(v.s6), convert_uint_sat(v.s7), convert_uint_sat(v.s8), convert_uint_sat(v.s9), convert_uint_sat(v.sA), convert_uint_sat(v.sB), convert_uint_sat(v.sC), convert_uint_sat(v.sD), convert_uint_sat(v.sE), convert_uint_sat(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat(float16 v) {
-  return (short16)(convert_short_sat(v.s0), convert_short_sat(v.s1), convert_short_sat(v.s2), convert_short_sat(v.s3), convert_short_sat(v.s4), convert_short_sat(v.s5), convert_short_sat(v.s6), convert_short_sat(v.s7), convert_short_sat(v.s8), convert_short_sat(v.s9), convert_short_sat(v.sA), convert_short_sat(v.sB), convert_short_sat(v.sC), convert_short_sat(v.sD), convert_short_sat(v.sE), convert_short_sat(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat(float16 v) {
-  return (ushort16)(convert_ushort_sat(v.s0), convert_ushort_sat(v.s1), convert_ushort_sat(v.s2), convert_ushort_sat(v.s3), convert_ushort_sat(v.s4), convert_ushort_sat(v.s5), convert_ushort_sat(v.s6), convert_ushort_sat(v.s7), convert_ushort_sat(v.s8), convert_ushort_sat(v.s9), convert_ushort_sat(v.sA), convert_ushort_sat(v.sB), convert_ushort_sat(v.sC), convert_ushort_sat(v.sD), convert_ushort_sat(v.sE), convert_ushort_sat(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat(float16 v) {
-  return (char16)(convert_char_sat(v.s0), convert_char_sat(v.s1), convert_char_sat(v.s2), convert_char_sat(v.s3), convert_char_sat(v.s4), convert_char_sat(v.s5), convert_char_sat(v.s6), convert_char_sat(v.s7), convert_char_sat(v.s8), convert_char_sat(v.s9), convert_char_sat(v.sA), convert_char_sat(v.sB), convert_char_sat(v.sC), convert_char_sat(v.sD), convert_char_sat(v.sE), convert_char_sat(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat(float16 v) {
-  return (uchar16)(convert_uchar_sat(v.s0), convert_uchar_sat(v.s1), convert_uchar_sat(v.s2), convert_uchar_sat(v.s3), convert_uchar_sat(v.s4), convert_uchar_sat(v.s5), convert_uchar_sat(v.s6), convert_uchar_sat(v.s7), convert_uchar_sat(v.s8), convert_uchar_sat(v.s9), convert_uchar_sat(v.sA), convert_uchar_sat(v.sB), convert_uchar_sat(v.sC), convert_uchar_sat(v.sD), convert_uchar_sat(v.sE), convert_uchar_sat(v.sF));
-}
-
-
-float __gen_ocl_rndz(float x);
-float __gen_ocl_rnde(float x);
-float __gen_ocl_rndu(float x);
-float __gen_ocl_rndd(float x);
-INLINE_OVERLOADABLE float __convert_float_rtz(long x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long l = u.f;
-  if((l > x && x > 0) || x >= 0x7fffffc000000000 ||
-     (l < x && x < 0)) {
-      u.u -= 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(long x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long l = u.f;  //can not use u.f < x
-  if(l < x && x < 0x7fffffc000000000) {
-    if(x > 0)
-      u.u = u.u + 1;
-    else
-      u.u = u.u - 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(long x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long l = u.f;  //avoid overflow
-  if(l > x || x >= 0x7fffffc000000000) {
-    if(x > 0)
-      u.u = u.u - 1;
-    else
-      u.u = u.u + 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtz(ulong x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  ulong l = u.f;
-  if(l > x  || x >= 0xffffff8000000000)
-      u.u -= 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(ulong x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  ulong l = u.f;  //can not use u.f < x
-  if(l < x && x < 0xffffff8000000000)
-    u.u = u.u + 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(ulong x)
-{
-  return __convert_float_rtz(x);
-}
-INLINE_OVERLOADABLE float __convert_float_rtz(int x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long i = u.f;
-  if((i > x && x > 0) ||
-     (i < x && x < 0)) {
-      u.u -= 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(int x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  int i = u.f;
-  if(i < x) {
-    if(x > 0)
-      u.u += 1;
-    else
-      u.u -= 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(int x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  long i = u.f;  //avoid overflow
-  if(i > x) {
-    if(x > 0)
-      u.u = u.u - 1;
-    else
-      u.u = u.u + 1;
-  }
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtz(uint x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  ulong i = u.f;
-  if(i > x)
-    u.u -= 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtp(uint x)
-{
-  union {
-    uint u;
-    float f;
-  } u;
-  u.f = x;
-  uint i = u.f;
-  if(i < x)
-    u.u += 1;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __convert_float_rtn(uint x)
-{
-  return __convert_float_rtz(x);
-}
-
-INLINE_OVERLOADABLE long convert_long_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(long x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(long x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(long x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(long x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(long x)
-{ return __convert_float_rtz(x); }
-INLINE_OVERLOADABLE float convert_float_rtp(long x)
-{ return __convert_float_rtp(x); }
-INLINE_OVERLOADABLE float convert_float_rtn(long x)
-{ return __convert_float_rtn(x); }
-INLINE_OVERLOADABLE long convert_long_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(ulong x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(ulong x)
-{ return __convert_float_rtz(x); }
-INLINE_OVERLOADABLE float convert_float_rtp(ulong x)
-{ return __convert_float_rtp(x); }
-INLINE_OVERLOADABLE float convert_float_rtn(ulong x)
-{ return __convert_float_rtn(x); }
-INLINE_OVERLOADABLE long convert_long_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(int x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(int x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(int x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(int x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(int x)
-{ return __convert_float_rtz(x); }
-INLINE_OVERLOADABLE float convert_float_rtp(int x)
-{ return __convert_float_rtp(x); }
-INLINE_OVERLOADABLE float convert_float_rtn(int x)
-{ return __convert_float_rtn(x); }
-INLINE_OVERLOADABLE long convert_long_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(uint x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(uint x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(uint x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(uint x)
-{ return __convert_float_rtz(x); }
-INLINE_OVERLOADABLE float convert_float_rtp(uint x)
-{ return __convert_float_rtp(x); }
-INLINE_OVERLOADABLE float convert_float_rtn(uint x)
-{ return __convert_float_rtn(x); }
-INLINE_OVERLOADABLE long convert_long_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(short x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(short x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtp(short x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtn(short x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtp(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtn(ushort x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(char x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(char x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtp(char x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtn(char x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE int convert_int_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uint convert_uint_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE short convert_short_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE char convert_char_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rte(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtp(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtn(uchar x)
-{ return x; }
-INLINE_OVERLOADABLE long convert_long_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE long convert_long_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE long convert_long_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE long convert_long_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE int convert_int_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE int convert_int_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE int convert_int_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE int convert_int_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE uint convert_uint_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE uint convert_uint_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE uint convert_uint_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE uint convert_uint_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE short convert_short_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE short convert_short_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE short convert_short_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE short convert_short_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE char convert_char_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE char convert_char_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE char convert_char_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE char convert_char_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_rte(float x)
-{ return __gen_ocl_rnde(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_rtz(float x)
-{ return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_rtp(float x)
-{ return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_rtn(float x)
-{ return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE float convert_float_rte(float x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtz(float x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtp(float x)
-{ return x; }
-INLINE_OVERLOADABLE float convert_float_rtn(float x)
-{ return x; }
-INLINE OVERLOADABLE long2 convert_long2_rte(long2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(long2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(long2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(long2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(long2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(long2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(long2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(long2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(long2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(long2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(long2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(long2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(long2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(long2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(long2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(long2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(long2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(long2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(long2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(long2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(long2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(long2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(long2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(long2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(long2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(long2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(long2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(long2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(long2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(long2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(long2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(long2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(long2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(long2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(long2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(long2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(ulong2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(ulong2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(ulong2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(ulong2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(ulong2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(ulong2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(ulong2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(ulong2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(ulong2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(ulong2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(ulong2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(ulong2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(ulong2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(ulong2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(ulong2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(ulong2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(ulong2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(ulong2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(ulong2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(ulong2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(ulong2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(ulong2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(ulong2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(ulong2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(ulong2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(ulong2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(ulong2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(ulong2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(ulong2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(ulong2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(ulong2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(ulong2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(ulong2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(ulong2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(ulong2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(ulong2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(int2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(int2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(int2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(int2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(int2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(int2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(int2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(int2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(int2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(int2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(int2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(int2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(int2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(int2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(int2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(int2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(int2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(int2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(int2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(int2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(int2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(int2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(int2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(int2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(int2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(int2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(int2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(int2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(int2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(int2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(int2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(int2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(int2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(int2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(int2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(int2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(uint2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(uint2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(uint2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(uint2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(uint2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(uint2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(uint2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(uint2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(uint2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(uint2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(uint2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(uint2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(uint2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(uint2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(uint2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(uint2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(uint2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(uint2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(uint2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(uint2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(uint2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(uint2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(uint2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(uint2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(uint2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(uint2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(uint2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(uint2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(uint2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(uint2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(uint2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(uint2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(uint2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(uint2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(uint2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(uint2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(short2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(short2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(short2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(short2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(short2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(short2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(short2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(short2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(short2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(short2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(short2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(short2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(short2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(short2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(short2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(short2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(short2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(short2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(short2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(short2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(short2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(short2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(short2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(short2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(short2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(short2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(short2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(short2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(short2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(short2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(short2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(short2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(short2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(short2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(short2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(short2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(ushort2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(ushort2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(ushort2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(ushort2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(ushort2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(ushort2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(ushort2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(ushort2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(ushort2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(ushort2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(ushort2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(ushort2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(ushort2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(ushort2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(ushort2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(ushort2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(ushort2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(ushort2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(ushort2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(ushort2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(ushort2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(ushort2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(ushort2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(ushort2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(ushort2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(ushort2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(ushort2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(ushort2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(ushort2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(ushort2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(ushort2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(ushort2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(ushort2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(ushort2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(ushort2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(ushort2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(char2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(char2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(char2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(char2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(char2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(char2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(char2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(char2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(char2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(char2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(char2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(char2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(char2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(char2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(char2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(char2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(char2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(char2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(char2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(char2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(char2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(char2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(char2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(char2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(char2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(char2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(char2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(char2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(char2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(char2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(char2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(char2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(char2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(char2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(char2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(char2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(uchar2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(uchar2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(uchar2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(uchar2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(uchar2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(uchar2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(uchar2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(uchar2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(uchar2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(uchar2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(uchar2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(uchar2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(uchar2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(uchar2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(uchar2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(uchar2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(uchar2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(uchar2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(uchar2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(uchar2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(uchar2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(uchar2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(uchar2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(uchar2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(uchar2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(uchar2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(uchar2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(uchar2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(uchar2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(uchar2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(uchar2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(uchar2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(uchar2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(uchar2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(uchar2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(uchar2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rte(float2 v) {
-  return (long2)(convert_long_rte(v.s0), convert_long_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtz(float2 v) {
-  return (long2)(convert_long_rtz(v.s0), convert_long_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtp(float2 v) {
-  return (long2)(convert_long_rtp(v.s0), convert_long_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_rtn(float2 v) {
-  return (long2)(convert_long_rtn(v.s0), convert_long_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rte(float2 v) {
-  return (ulong2)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtz(float2 v) {
-  return (ulong2)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtp(float2 v) {
-  return (ulong2)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_rtn(float2 v) {
-  return (ulong2)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rte(float2 v) {
-  return (int2)(convert_int_rte(v.s0), convert_int_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtz(float2 v) {
-  return (int2)(convert_int_rtz(v.s0), convert_int_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtp(float2 v) {
-  return (int2)(convert_int_rtp(v.s0), convert_int_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_rtn(float2 v) {
-  return (int2)(convert_int_rtn(v.s0), convert_int_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rte(float2 v) {
-  return (uint2)(convert_uint_rte(v.s0), convert_uint_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtz(float2 v) {
-  return (uint2)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtp(float2 v) {
-  return (uint2)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_rtn(float2 v) {
-  return (uint2)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rte(float2 v) {
-  return (short2)(convert_short_rte(v.s0), convert_short_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtz(float2 v) {
-  return (short2)(convert_short_rtz(v.s0), convert_short_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtp(float2 v) {
-  return (short2)(convert_short_rtp(v.s0), convert_short_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_rtn(float2 v) {
-  return (short2)(convert_short_rtn(v.s0), convert_short_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rte(float2 v) {
-  return (ushort2)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtz(float2 v) {
-  return (ushort2)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtp(float2 v) {
-  return (ushort2)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_rtn(float2 v) {
-  return (ushort2)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rte(float2 v) {
-  return (char2)(convert_char_rte(v.s0), convert_char_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtz(float2 v) {
-  return (char2)(convert_char_rtz(v.s0), convert_char_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtp(float2 v) {
-  return (char2)(convert_char_rtp(v.s0), convert_char_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_rtn(float2 v) {
-  return (char2)(convert_char_rtn(v.s0), convert_char_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rte(float2 v) {
-  return (uchar2)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtz(float2 v) {
-  return (uchar2)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtp(float2 v) {
-  return (uchar2)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_rtn(float2 v) {
-  return (uchar2)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rte(float2 v) {
-  return (float2)(convert_float_rte(v.s0), convert_float_rte(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtz(float2 v) {
-  return (float2)(convert_float_rtz(v.s0), convert_float_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtp(float2 v) {
-  return (float2)(convert_float_rtp(v.s0), convert_float_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE float2 convert_float2_rtn(float2 v) {
-  return (float2)(convert_float_rtn(v.s0), convert_float_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(long3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(long3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(long3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(long3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(long3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(long3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(long3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(long3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(long3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(long3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(long3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(long3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(long3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(long3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(long3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(long3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(long3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(long3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(long3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(long3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(long3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(long3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(long3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(long3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(long3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(long3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(long3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(long3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(long3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(long3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(long3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(long3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(long3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(long3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(long3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(long3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(ulong3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(ulong3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(ulong3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(ulong3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(ulong3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(ulong3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(ulong3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(ulong3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(ulong3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(ulong3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(ulong3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(ulong3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(ulong3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(ulong3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(ulong3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(ulong3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(ulong3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(ulong3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(ulong3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(ulong3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(ulong3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(ulong3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(ulong3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(ulong3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(ulong3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(ulong3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(ulong3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(ulong3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(ulong3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(ulong3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(ulong3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(ulong3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(ulong3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(ulong3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(ulong3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(ulong3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(int3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(int3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(int3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(int3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(int3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(int3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(int3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(int3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(int3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(int3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(int3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(int3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(int3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(int3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(int3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(int3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(int3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(int3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(int3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(int3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(int3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(int3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(int3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(int3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(int3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(int3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(int3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(int3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(int3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(int3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(int3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(int3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(int3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(int3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(int3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(int3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(uint3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(uint3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(uint3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(uint3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(uint3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(uint3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(uint3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(uint3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(uint3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(uint3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(uint3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(uint3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(uint3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(uint3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(uint3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(uint3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(uint3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(uint3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(uint3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(uint3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(uint3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(uint3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(uint3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(uint3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(uint3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(uint3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(uint3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(uint3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(uint3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(uint3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(uint3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(uint3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(uint3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(uint3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(uint3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(uint3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(short3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(short3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(short3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(short3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(short3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(short3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(short3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(short3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(short3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(short3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(short3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(short3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(short3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(short3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(short3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(short3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(short3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(short3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(short3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(short3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(short3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(short3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(short3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(short3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(short3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(short3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(short3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(short3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(short3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(short3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(short3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(short3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(short3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(short3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(short3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(short3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(ushort3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(ushort3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(ushort3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(ushort3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(ushort3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(ushort3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(ushort3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(ushort3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(ushort3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(ushort3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(ushort3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(ushort3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(ushort3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(ushort3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(ushort3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(ushort3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(ushort3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(ushort3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(ushort3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(ushort3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(ushort3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(ushort3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(ushort3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(ushort3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(ushort3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(ushort3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(ushort3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(ushort3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(ushort3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(ushort3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(ushort3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(ushort3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(ushort3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(ushort3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(ushort3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(ushort3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(char3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(char3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(char3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(char3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(char3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(char3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(char3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(char3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(char3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(char3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(char3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(char3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(char3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(char3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(char3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(char3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(char3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(char3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(char3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(char3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(char3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(char3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(char3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(char3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(char3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(char3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(char3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(char3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(char3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(char3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(char3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(char3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(char3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(char3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(char3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(char3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(uchar3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(uchar3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(uchar3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(uchar3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(uchar3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(uchar3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(uchar3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(uchar3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(uchar3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(uchar3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(uchar3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(uchar3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(uchar3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(uchar3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(uchar3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(uchar3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(uchar3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(uchar3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(uchar3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(uchar3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(uchar3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(uchar3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(uchar3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(uchar3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(uchar3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(uchar3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(uchar3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(uchar3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(uchar3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(uchar3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(uchar3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(uchar3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(uchar3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(uchar3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(uchar3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(uchar3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rte(float3 v) {
-  return (long3)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtz(float3 v) {
-  return (long3)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtp(float3 v) {
-  return (long3)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_rtn(float3 v) {
-  return (long3)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rte(float3 v) {
-  return (ulong3)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtz(float3 v) {
-  return (ulong3)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtp(float3 v) {
-  return (ulong3)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_rtn(float3 v) {
-  return (ulong3)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rte(float3 v) {
-  return (int3)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtz(float3 v) {
-  return (int3)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtp(float3 v) {
-  return (int3)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_rtn(float3 v) {
-  return (int3)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rte(float3 v) {
-  return (uint3)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtz(float3 v) {
-  return (uint3)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtp(float3 v) {
-  return (uint3)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_rtn(float3 v) {
-  return (uint3)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rte(float3 v) {
-  return (short3)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtz(float3 v) {
-  return (short3)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtp(float3 v) {
-  return (short3)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_rtn(float3 v) {
-  return (short3)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rte(float3 v) {
-  return (ushort3)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtz(float3 v) {
-  return (ushort3)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtp(float3 v) {
-  return (ushort3)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_rtn(float3 v) {
-  return (ushort3)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rte(float3 v) {
-  return (char3)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtz(float3 v) {
-  return (char3)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtp(float3 v) {
-  return (char3)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_rtn(float3 v) {
-  return (char3)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rte(float3 v) {
-  return (uchar3)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtz(float3 v) {
-  return (uchar3)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtp(float3 v) {
-  return (uchar3)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_rtn(float3 v) {
-  return (uchar3)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rte(float3 v) {
-  return (float3)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtz(float3 v) {
-  return (float3)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtp(float3 v) {
-  return (float3)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE float3 convert_float3_rtn(float3 v) {
-  return (float3)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(long4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(long4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(long4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(long4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(long4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(long4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(long4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(long4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(long4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(long4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(long4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(long4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(long4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(long4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(long4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(long4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(long4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(long4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(long4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(long4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(long4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(long4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(long4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(long4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(long4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(long4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(long4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(long4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(long4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(long4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(long4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(long4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(long4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(long4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(long4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(long4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(ulong4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(ulong4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(ulong4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(ulong4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(ulong4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(ulong4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(ulong4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(ulong4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(ulong4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(ulong4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(ulong4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(ulong4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(ulong4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(ulong4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(ulong4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(ulong4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(ulong4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(ulong4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(ulong4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(ulong4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(ulong4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(ulong4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(ulong4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(ulong4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(ulong4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(ulong4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(ulong4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(ulong4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(ulong4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(ulong4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(ulong4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(ulong4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(ulong4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(ulong4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(ulong4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(ulong4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(int4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(int4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(int4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(int4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(int4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(int4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(int4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(int4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(int4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(int4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(int4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(int4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(int4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(int4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(int4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(int4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(int4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(int4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(int4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(int4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(int4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(int4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(int4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(int4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(int4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(int4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(int4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(int4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(int4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(int4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(int4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(int4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(int4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(int4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(int4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(int4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(uint4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(uint4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(uint4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(uint4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(uint4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(uint4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(uint4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(uint4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(uint4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(uint4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(uint4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(uint4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(uint4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(uint4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(uint4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(uint4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(uint4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(uint4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(uint4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(uint4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(uint4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(uint4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(uint4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(uint4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(uint4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(uint4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(uint4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(uint4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(uint4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(uint4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(uint4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(uint4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(uint4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(uint4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(uint4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(uint4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(short4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(short4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(short4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(short4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(short4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(short4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(short4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(short4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(short4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(short4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(short4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(short4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(short4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(short4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(short4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(short4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(short4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(short4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(short4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(short4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(short4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(short4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(short4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(short4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(short4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(short4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(short4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(short4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(short4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(short4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(short4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(short4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(short4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(short4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(short4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(short4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(ushort4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(ushort4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(ushort4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(ushort4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(ushort4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(ushort4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(ushort4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(ushort4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(ushort4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(ushort4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(ushort4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(ushort4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(ushort4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(ushort4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(ushort4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(ushort4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(ushort4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(ushort4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(ushort4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(ushort4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(ushort4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(ushort4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(ushort4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(ushort4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(ushort4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(ushort4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(ushort4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(ushort4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(ushort4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(ushort4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(ushort4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(ushort4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(ushort4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(ushort4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(ushort4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(ushort4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(char4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(char4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(char4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(char4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(char4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(char4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(char4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(char4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(char4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(char4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(char4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(char4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(char4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(char4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(char4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(char4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(char4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(char4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(char4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(char4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(char4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(char4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(char4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(char4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(char4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(char4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(char4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(char4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(char4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(char4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(char4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(char4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(char4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(char4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(char4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(char4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(uchar4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(uchar4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(uchar4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(uchar4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(uchar4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(uchar4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(uchar4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(uchar4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(uchar4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(uchar4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(uchar4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(uchar4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(uchar4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(uchar4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(uchar4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(uchar4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(uchar4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(uchar4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(uchar4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(uchar4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(uchar4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(uchar4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(uchar4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(uchar4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(uchar4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(uchar4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(uchar4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(uchar4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(uchar4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(uchar4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(uchar4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(uchar4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(uchar4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(uchar4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(uchar4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(uchar4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rte(float4 v) {
-  return (long4)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtz(float4 v) {
-  return (long4)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtp(float4 v) {
-  return (long4)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_rtn(float4 v) {
-  return (long4)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rte(float4 v) {
-  return (ulong4)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtz(float4 v) {
-  return (ulong4)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtp(float4 v) {
-  return (ulong4)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_rtn(float4 v) {
-  return (ulong4)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rte(float4 v) {
-  return (int4)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtz(float4 v) {
-  return (int4)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtp(float4 v) {
-  return (int4)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_rtn(float4 v) {
-  return (int4)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rte(float4 v) {
-  return (uint4)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtz(float4 v) {
-  return (uint4)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtp(float4 v) {
-  return (uint4)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_rtn(float4 v) {
-  return (uint4)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rte(float4 v) {
-  return (short4)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtz(float4 v) {
-  return (short4)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtp(float4 v) {
-  return (short4)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_rtn(float4 v) {
-  return (short4)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rte(float4 v) {
-  return (ushort4)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtz(float4 v) {
-  return (ushort4)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtp(float4 v) {
-  return (ushort4)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_rtn(float4 v) {
-  return (ushort4)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rte(float4 v) {
-  return (char4)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtz(float4 v) {
-  return (char4)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtp(float4 v) {
-  return (char4)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_rtn(float4 v) {
-  return (char4)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rte(float4 v) {
-  return (uchar4)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtz(float4 v) {
-  return (uchar4)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtp(float4 v) {
-  return (uchar4)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_rtn(float4 v) {
-  return (uchar4)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rte(float4 v) {
-  return (float4)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtz(float4 v) {
-  return (float4)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtp(float4 v) {
-  return (float4)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE float4 convert_float4_rtn(float4 v) {
-  return (float4)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(long8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(long8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(long8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(long8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(long8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(long8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(long8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(long8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(long8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(long8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(long8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(long8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(long8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(long8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(long8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(long8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(long8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(long8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(long8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(long8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(long8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(long8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(long8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(long8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(long8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(long8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(long8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(long8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(long8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(long8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(long8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(long8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(long8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(long8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(long8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(long8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(ulong8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(ulong8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(ulong8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(ulong8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(ulong8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(ulong8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(ulong8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(ulong8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(ulong8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(ulong8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(ulong8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(ulong8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(ulong8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(ulong8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(ulong8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(ulong8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(ulong8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(ulong8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(ulong8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(ulong8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(ulong8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(ulong8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(ulong8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(ulong8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(ulong8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(ulong8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(ulong8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(ulong8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(ulong8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(ulong8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(ulong8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(ulong8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(ulong8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(ulong8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(ulong8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(ulong8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(int8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(int8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(int8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(int8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(int8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(int8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(int8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(int8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(int8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(int8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(int8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(int8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(int8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(int8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(int8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(int8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(int8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(int8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(int8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(int8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(int8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(int8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(int8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(int8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(int8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(int8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(int8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(int8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(int8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(int8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(int8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(int8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(int8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(int8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(int8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(int8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(uint8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(uint8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(uint8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(uint8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(uint8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(uint8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(uint8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(uint8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(uint8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(uint8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(uint8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(uint8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(uint8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(uint8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(uint8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(uint8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(uint8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(uint8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(uint8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(uint8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(uint8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(uint8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(uint8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(uint8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(uint8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(uint8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(uint8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(uint8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(uint8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(uint8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(uint8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(uint8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(uint8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(uint8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(uint8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(uint8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(short8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(short8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(short8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(short8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(short8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(short8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(short8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(short8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(short8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(short8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(short8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(short8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(short8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(short8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(short8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(short8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(short8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(short8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(short8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(short8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(short8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(short8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(short8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(short8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(short8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(short8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(short8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(short8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(short8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(short8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(short8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(short8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(short8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(short8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(short8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(short8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(ushort8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(ushort8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(ushort8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(ushort8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(ushort8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(ushort8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(ushort8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(ushort8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(ushort8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(ushort8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(ushort8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(ushort8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(ushort8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(ushort8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(ushort8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(ushort8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(ushort8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(ushort8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(ushort8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(ushort8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(ushort8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(ushort8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(ushort8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(ushort8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(ushort8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(ushort8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(ushort8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(ushort8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(ushort8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(ushort8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(ushort8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(ushort8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(ushort8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(ushort8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(ushort8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(ushort8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(char8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(char8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(char8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(char8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(char8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(char8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(char8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(char8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(char8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(char8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(char8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(char8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(char8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(char8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(char8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(char8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(char8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(char8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(char8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(char8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(char8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(char8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(char8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(char8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(char8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(char8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(char8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(char8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(char8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(char8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(char8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(char8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(char8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(char8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(char8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(char8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(uchar8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(uchar8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(uchar8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(uchar8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(uchar8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(uchar8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(uchar8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(uchar8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(uchar8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(uchar8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(uchar8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(uchar8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(uchar8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(uchar8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(uchar8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(uchar8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(uchar8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(uchar8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(uchar8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(uchar8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(uchar8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(uchar8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(uchar8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(uchar8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(uchar8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(uchar8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(uchar8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(uchar8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(uchar8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(uchar8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(uchar8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(uchar8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(uchar8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(uchar8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(uchar8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(uchar8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rte(float8 v) {
-  return (long8)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtz(float8 v) {
-  return (long8)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtp(float8 v) {
-  return (long8)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_rtn(float8 v) {
-  return (long8)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rte(float8 v) {
-  return (ulong8)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtz(float8 v) {
-  return (ulong8)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtp(float8 v) {
-  return (ulong8)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_rtn(float8 v) {
-  return (ulong8)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rte(float8 v) {
-  return (int8)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtz(float8 v) {
-  return (int8)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtp(float8 v) {
-  return (int8)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_rtn(float8 v) {
-  return (int8)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rte(float8 v) {
-  return (uint8)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtz(float8 v) {
-  return (uint8)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtp(float8 v) {
-  return (uint8)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_rtn(float8 v) {
-  return (uint8)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rte(float8 v) {
-  return (short8)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtz(float8 v) {
-  return (short8)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtp(float8 v) {
-  return (short8)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_rtn(float8 v) {
-  return (short8)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rte(float8 v) {
-  return (ushort8)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtz(float8 v) {
-  return (ushort8)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtp(float8 v) {
-  return (ushort8)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_rtn(float8 v) {
-  return (ushort8)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rte(float8 v) {
-  return (char8)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtz(float8 v) {
-  return (char8)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtp(float8 v) {
-  return (char8)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_rtn(float8 v) {
-  return (char8)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rte(float8 v) {
-  return (uchar8)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtz(float8 v) {
-  return (uchar8)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtp(float8 v) {
-  return (uchar8)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_rtn(float8 v) {
-  return (uchar8)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rte(float8 v) {
-  return (float8)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtz(float8 v) {
-  return (float8)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtp(float8 v) {
-  return (float8)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE float8 convert_float8_rtn(float8 v) {
-  return (float8)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(long16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(long16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(long16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(long16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(long16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(long16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(long16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(long16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(long16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(long16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(long16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(long16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(long16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(long16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(long16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(long16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(long16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(long16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(long16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(long16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(long16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(long16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(long16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(long16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(long16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(long16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(long16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(long16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(long16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(long16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(long16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(long16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(long16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(long16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(long16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(long16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(ulong16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(ulong16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(ulong16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(ulong16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(ulong16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(ulong16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(ulong16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(ulong16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(ulong16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(ulong16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(ulong16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(ulong16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(ulong16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(ulong16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(ulong16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(ulong16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(ulong16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(ulong16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(ulong16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(ulong16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(ulong16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(ulong16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(ulong16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(ulong16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(ulong16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(ulong16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(ulong16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(ulong16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(ulong16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(ulong16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(ulong16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(ulong16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(ulong16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(ulong16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(ulong16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(ulong16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(int16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(int16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(int16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(int16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(int16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(int16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(int16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(int16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(int16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(int16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(int16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(int16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(int16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(int16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(int16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(int16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(int16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(int16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(int16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(int16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(int16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(int16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(int16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(int16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(int16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(int16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(int16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(int16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(int16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(int16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(int16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(int16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(int16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(int16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(int16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(int16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(uint16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(uint16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(uint16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(uint16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(uint16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(uint16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(uint16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(uint16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(uint16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(uint16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(uint16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(uint16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(uint16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(uint16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(uint16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(uint16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(uint16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(uint16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(uint16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(uint16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(uint16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(uint16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(uint16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(uint16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(uint16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(uint16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(uint16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(uint16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(uint16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(uint16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(uint16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(uint16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(uint16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(uint16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(uint16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(uint16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(short16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(short16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(short16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(short16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(short16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(short16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(short16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(short16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(short16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(short16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(short16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(short16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(short16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(short16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(short16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(short16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(short16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(short16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(short16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(short16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(short16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(short16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(short16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(short16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(short16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(short16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(short16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(short16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(short16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(short16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(short16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(short16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(short16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(short16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(short16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(short16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(ushort16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(ushort16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(ushort16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(ushort16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(ushort16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(ushort16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(ushort16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(ushort16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(ushort16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(ushort16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(ushort16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(ushort16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(ushort16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(ushort16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(ushort16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(ushort16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(ushort16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(ushort16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(ushort16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(ushort16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(ushort16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(ushort16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(ushort16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(ushort16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(ushort16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(ushort16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(ushort16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(ushort16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(ushort16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(ushort16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(ushort16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(ushort16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(ushort16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(ushort16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(ushort16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(ushort16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(char16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(char16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(char16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(char16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(char16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(char16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(char16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(char16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(char16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(char16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(char16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(char16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(char16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(char16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(char16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(char16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(char16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(char16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(char16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(char16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(char16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(char16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(char16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(char16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(char16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(char16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(char16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(char16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(char16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(char16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(char16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(char16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(char16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(char16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(char16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(char16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(uchar16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(uchar16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(uchar16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(uchar16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(uchar16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(uchar16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(uchar16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(uchar16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(uchar16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(uchar16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(uchar16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(uchar16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(uchar16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(uchar16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(uchar16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(uchar16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(uchar16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(uchar16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(uchar16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(uchar16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(uchar16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(uchar16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(uchar16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(uchar16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(uchar16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(uchar16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(uchar16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(uchar16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(uchar16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(uchar16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(uchar16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(uchar16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(uchar16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(uchar16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(uchar16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(uchar16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rte(float16 v) {
-  return (long16)(convert_long_rte(v.s0), convert_long_rte(v.s1), convert_long_rte(v.s2), convert_long_rte(v.s3), convert_long_rte(v.s4), convert_long_rte(v.s5), convert_long_rte(v.s6), convert_long_rte(v.s7), convert_long_rte(v.s8), convert_long_rte(v.s9), convert_long_rte(v.sA), convert_long_rte(v.sB), convert_long_rte(v.sC), convert_long_rte(v.sD), convert_long_rte(v.sE), convert_long_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtz(float16 v) {
-  return (long16)(convert_long_rtz(v.s0), convert_long_rtz(v.s1), convert_long_rtz(v.s2), convert_long_rtz(v.s3), convert_long_rtz(v.s4), convert_long_rtz(v.s5), convert_long_rtz(v.s6), convert_long_rtz(v.s7), convert_long_rtz(v.s8), convert_long_rtz(v.s9), convert_long_rtz(v.sA), convert_long_rtz(v.sB), convert_long_rtz(v.sC), convert_long_rtz(v.sD), convert_long_rtz(v.sE), convert_long_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtp(float16 v) {
-  return (long16)(convert_long_rtp(v.s0), convert_long_rtp(v.s1), convert_long_rtp(v.s2), convert_long_rtp(v.s3), convert_long_rtp(v.s4), convert_long_rtp(v.s5), convert_long_rtp(v.s6), convert_long_rtp(v.s7), convert_long_rtp(v.s8), convert_long_rtp(v.s9), convert_long_rtp(v.sA), convert_long_rtp(v.sB), convert_long_rtp(v.sC), convert_long_rtp(v.sD), convert_long_rtp(v.sE), convert_long_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_rtn(float16 v) {
-  return (long16)(convert_long_rtn(v.s0), convert_long_rtn(v.s1), convert_long_rtn(v.s2), convert_long_rtn(v.s3), convert_long_rtn(v.s4), convert_long_rtn(v.s5), convert_long_rtn(v.s6), convert_long_rtn(v.s7), convert_long_rtn(v.s8), convert_long_rtn(v.s9), convert_long_rtn(v.sA), convert_long_rtn(v.sB), convert_long_rtn(v.sC), convert_long_rtn(v.sD), convert_long_rtn(v.sE), convert_long_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rte(float16 v) {
-  return (ulong16)(convert_ulong_rte(v.s0), convert_ulong_rte(v.s1), convert_ulong_rte(v.s2), convert_ulong_rte(v.s3), convert_ulong_rte(v.s4), convert_ulong_rte(v.s5), convert_ulong_rte(v.s6), convert_ulong_rte(v.s7), convert_ulong_rte(v.s8), convert_ulong_rte(v.s9), convert_ulong_rte(v.sA), convert_ulong_rte(v.sB), convert_ulong_rte(v.sC), convert_ulong_rte(v.sD), convert_ulong_rte(v.sE), convert_ulong_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtz(float16 v) {
-  return (ulong16)(convert_ulong_rtz(v.s0), convert_ulong_rtz(v.s1), convert_ulong_rtz(v.s2), convert_ulong_rtz(v.s3), convert_ulong_rtz(v.s4), convert_ulong_rtz(v.s5), convert_ulong_rtz(v.s6), convert_ulong_rtz(v.s7), convert_ulong_rtz(v.s8), convert_ulong_rtz(v.s9), convert_ulong_rtz(v.sA), convert_ulong_rtz(v.sB), convert_ulong_rtz(v.sC), convert_ulong_rtz(v.sD), convert_ulong_rtz(v.sE), convert_ulong_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtp(float16 v) {
-  return (ulong16)(convert_ulong_rtp(v.s0), convert_ulong_rtp(v.s1), convert_ulong_rtp(v.s2), convert_ulong_rtp(v.s3), convert_ulong_rtp(v.s4), convert_ulong_rtp(v.s5), convert_ulong_rtp(v.s6), convert_ulong_rtp(v.s7), convert_ulong_rtp(v.s8), convert_ulong_rtp(v.s9), convert_ulong_rtp(v.sA), convert_ulong_rtp(v.sB), convert_ulong_rtp(v.sC), convert_ulong_rtp(v.sD), convert_ulong_rtp(v.sE), convert_ulong_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_rtn(float16 v) {
-  return (ulong16)(convert_ulong_rtn(v.s0), convert_ulong_rtn(v.s1), convert_ulong_rtn(v.s2), convert_ulong_rtn(v.s3), convert_ulong_rtn(v.s4), convert_ulong_rtn(v.s5), convert_ulong_rtn(v.s6), convert_ulong_rtn(v.s7), convert_ulong_rtn(v.s8), convert_ulong_rtn(v.s9), convert_ulong_rtn(v.sA), convert_ulong_rtn(v.sB), convert_ulong_rtn(v.sC), convert_ulong_rtn(v.sD), convert_ulong_rtn(v.sE), convert_ulong_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rte(float16 v) {
-  return (int16)(convert_int_rte(v.s0), convert_int_rte(v.s1), convert_int_rte(v.s2), convert_int_rte(v.s3), convert_int_rte(v.s4), convert_int_rte(v.s5), convert_int_rte(v.s6), convert_int_rte(v.s7), convert_int_rte(v.s8), convert_int_rte(v.s9), convert_int_rte(v.sA), convert_int_rte(v.sB), convert_int_rte(v.sC), convert_int_rte(v.sD), convert_int_rte(v.sE), convert_int_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtz(float16 v) {
-  return (int16)(convert_int_rtz(v.s0), convert_int_rtz(v.s1), convert_int_rtz(v.s2), convert_int_rtz(v.s3), convert_int_rtz(v.s4), convert_int_rtz(v.s5), convert_int_rtz(v.s6), convert_int_rtz(v.s7), convert_int_rtz(v.s8), convert_int_rtz(v.s9), convert_int_rtz(v.sA), convert_int_rtz(v.sB), convert_int_rtz(v.sC), convert_int_rtz(v.sD), convert_int_rtz(v.sE), convert_int_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtp(float16 v) {
-  return (int16)(convert_int_rtp(v.s0), convert_int_rtp(v.s1), convert_int_rtp(v.s2), convert_int_rtp(v.s3), convert_int_rtp(v.s4), convert_int_rtp(v.s5), convert_int_rtp(v.s6), convert_int_rtp(v.s7), convert_int_rtp(v.s8), convert_int_rtp(v.s9), convert_int_rtp(v.sA), convert_int_rtp(v.sB), convert_int_rtp(v.sC), convert_int_rtp(v.sD), convert_int_rtp(v.sE), convert_int_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_rtn(float16 v) {
-  return (int16)(convert_int_rtn(v.s0), convert_int_rtn(v.s1), convert_int_rtn(v.s2), convert_int_rtn(v.s3), convert_int_rtn(v.s4), convert_int_rtn(v.s5), convert_int_rtn(v.s6), convert_int_rtn(v.s7), convert_int_rtn(v.s8), convert_int_rtn(v.s9), convert_int_rtn(v.sA), convert_int_rtn(v.sB), convert_int_rtn(v.sC), convert_int_rtn(v.sD), convert_int_rtn(v.sE), convert_int_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rte(float16 v) {
-  return (uint16)(convert_uint_rte(v.s0), convert_uint_rte(v.s1), convert_uint_rte(v.s2), convert_uint_rte(v.s3), convert_uint_rte(v.s4), convert_uint_rte(v.s5), convert_uint_rte(v.s6), convert_uint_rte(v.s7), convert_uint_rte(v.s8), convert_uint_rte(v.s9), convert_uint_rte(v.sA), convert_uint_rte(v.sB), convert_uint_rte(v.sC), convert_uint_rte(v.sD), convert_uint_rte(v.sE), convert_uint_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtz(float16 v) {
-  return (uint16)(convert_uint_rtz(v.s0), convert_uint_rtz(v.s1), convert_uint_rtz(v.s2), convert_uint_rtz(v.s3), convert_uint_rtz(v.s4), convert_uint_rtz(v.s5), convert_uint_rtz(v.s6), convert_uint_rtz(v.s7), convert_uint_rtz(v.s8), convert_uint_rtz(v.s9), convert_uint_rtz(v.sA), convert_uint_rtz(v.sB), convert_uint_rtz(v.sC), convert_uint_rtz(v.sD), convert_uint_rtz(v.sE), convert_uint_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtp(float16 v) {
-  return (uint16)(convert_uint_rtp(v.s0), convert_uint_rtp(v.s1), convert_uint_rtp(v.s2), convert_uint_rtp(v.s3), convert_uint_rtp(v.s4), convert_uint_rtp(v.s5), convert_uint_rtp(v.s6), convert_uint_rtp(v.s7), convert_uint_rtp(v.s8), convert_uint_rtp(v.s9), convert_uint_rtp(v.sA), convert_uint_rtp(v.sB), convert_uint_rtp(v.sC), convert_uint_rtp(v.sD), convert_uint_rtp(v.sE), convert_uint_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_rtn(float16 v) {
-  return (uint16)(convert_uint_rtn(v.s0), convert_uint_rtn(v.s1), convert_uint_rtn(v.s2), convert_uint_rtn(v.s3), convert_uint_rtn(v.s4), convert_uint_rtn(v.s5), convert_uint_rtn(v.s6), convert_uint_rtn(v.s7), convert_uint_rtn(v.s8), convert_uint_rtn(v.s9), convert_uint_rtn(v.sA), convert_uint_rtn(v.sB), convert_uint_rtn(v.sC), convert_uint_rtn(v.sD), convert_uint_rtn(v.sE), convert_uint_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rte(float16 v) {
-  return (short16)(convert_short_rte(v.s0), convert_short_rte(v.s1), convert_short_rte(v.s2), convert_short_rte(v.s3), convert_short_rte(v.s4), convert_short_rte(v.s5), convert_short_rte(v.s6), convert_short_rte(v.s7), convert_short_rte(v.s8), convert_short_rte(v.s9), convert_short_rte(v.sA), convert_short_rte(v.sB), convert_short_rte(v.sC), convert_short_rte(v.sD), convert_short_rte(v.sE), convert_short_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtz(float16 v) {
-  return (short16)(convert_short_rtz(v.s0), convert_short_rtz(v.s1), convert_short_rtz(v.s2), convert_short_rtz(v.s3), convert_short_rtz(v.s4), convert_short_rtz(v.s5), convert_short_rtz(v.s6), convert_short_rtz(v.s7), convert_short_rtz(v.s8), convert_short_rtz(v.s9), convert_short_rtz(v.sA), convert_short_rtz(v.sB), convert_short_rtz(v.sC), convert_short_rtz(v.sD), convert_short_rtz(v.sE), convert_short_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtp(float16 v) {
-  return (short16)(convert_short_rtp(v.s0), convert_short_rtp(v.s1), convert_short_rtp(v.s2), convert_short_rtp(v.s3), convert_short_rtp(v.s4), convert_short_rtp(v.s5), convert_short_rtp(v.s6), convert_short_rtp(v.s7), convert_short_rtp(v.s8), convert_short_rtp(v.s9), convert_short_rtp(v.sA), convert_short_rtp(v.sB), convert_short_rtp(v.sC), convert_short_rtp(v.sD), convert_short_rtp(v.sE), convert_short_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_rtn(float16 v) {
-  return (short16)(convert_short_rtn(v.s0), convert_short_rtn(v.s1), convert_short_rtn(v.s2), convert_short_rtn(v.s3), convert_short_rtn(v.s4), convert_short_rtn(v.s5), convert_short_rtn(v.s6), convert_short_rtn(v.s7), convert_short_rtn(v.s8), convert_short_rtn(v.s9), convert_short_rtn(v.sA), convert_short_rtn(v.sB), convert_short_rtn(v.sC), convert_short_rtn(v.sD), convert_short_rtn(v.sE), convert_short_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rte(float16 v) {
-  return (ushort16)(convert_ushort_rte(v.s0), convert_ushort_rte(v.s1), convert_ushort_rte(v.s2), convert_ushort_rte(v.s3), convert_ushort_rte(v.s4), convert_ushort_rte(v.s5), convert_ushort_rte(v.s6), convert_ushort_rte(v.s7), convert_ushort_rte(v.s8), convert_ushort_rte(v.s9), convert_ushort_rte(v.sA), convert_ushort_rte(v.sB), convert_ushort_rte(v.sC), convert_ushort_rte(v.sD), convert_ushort_rte(v.sE), convert_ushort_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtz(float16 v) {
-  return (ushort16)(convert_ushort_rtz(v.s0), convert_ushort_rtz(v.s1), convert_ushort_rtz(v.s2), convert_ushort_rtz(v.s3), convert_ushort_rtz(v.s4), convert_ushort_rtz(v.s5), convert_ushort_rtz(v.s6), convert_ushort_rtz(v.s7), convert_ushort_rtz(v.s8), convert_ushort_rtz(v.s9), convert_ushort_rtz(v.sA), convert_ushort_rtz(v.sB), convert_ushort_rtz(v.sC), convert_ushort_rtz(v.sD), convert_ushort_rtz(v.sE), convert_ushort_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtp(float16 v) {
-  return (ushort16)(convert_ushort_rtp(v.s0), convert_ushort_rtp(v.s1), convert_ushort_rtp(v.s2), convert_ushort_rtp(v.s3), convert_ushort_rtp(v.s4), convert_ushort_rtp(v.s5), convert_ushort_rtp(v.s6), convert_ushort_rtp(v.s7), convert_ushort_rtp(v.s8), convert_ushort_rtp(v.s9), convert_ushort_rtp(v.sA), convert_ushort_rtp(v.sB), convert_ushort_rtp(v.sC), convert_ushort_rtp(v.sD), convert_ushort_rtp(v.sE), convert_ushort_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_rtn(float16 v) {
-  return (ushort16)(convert_ushort_rtn(v.s0), convert_ushort_rtn(v.s1), convert_ushort_rtn(v.s2), convert_ushort_rtn(v.s3), convert_ushort_rtn(v.s4), convert_ushort_rtn(v.s5), convert_ushort_rtn(v.s6), convert_ushort_rtn(v.s7), convert_ushort_rtn(v.s8), convert_ushort_rtn(v.s9), convert_ushort_rtn(v.sA), convert_ushort_rtn(v.sB), convert_ushort_rtn(v.sC), convert_ushort_rtn(v.sD), convert_ushort_rtn(v.sE), convert_ushort_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rte(float16 v) {
-  return (char16)(convert_char_rte(v.s0), convert_char_rte(v.s1), convert_char_rte(v.s2), convert_char_rte(v.s3), convert_char_rte(v.s4), convert_char_rte(v.s5), convert_char_rte(v.s6), convert_char_rte(v.s7), convert_char_rte(v.s8), convert_char_rte(v.s9), convert_char_rte(v.sA), convert_char_rte(v.sB), convert_char_rte(v.sC), convert_char_rte(v.sD), convert_char_rte(v.sE), convert_char_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtz(float16 v) {
-  return (char16)(convert_char_rtz(v.s0), convert_char_rtz(v.s1), convert_char_rtz(v.s2), convert_char_rtz(v.s3), convert_char_rtz(v.s4), convert_char_rtz(v.s5), convert_char_rtz(v.s6), convert_char_rtz(v.s7), convert_char_rtz(v.s8), convert_char_rtz(v.s9), convert_char_rtz(v.sA), convert_char_rtz(v.sB), convert_char_rtz(v.sC), convert_char_rtz(v.sD), convert_char_rtz(v.sE), convert_char_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtp(float16 v) {
-  return (char16)(convert_char_rtp(v.s0), convert_char_rtp(v.s1), convert_char_rtp(v.s2), convert_char_rtp(v.s3), convert_char_rtp(v.s4), convert_char_rtp(v.s5), convert_char_rtp(v.s6), convert_char_rtp(v.s7), convert_char_rtp(v.s8), convert_char_rtp(v.s9), convert_char_rtp(v.sA), convert_char_rtp(v.sB), convert_char_rtp(v.sC), convert_char_rtp(v.sD), convert_char_rtp(v.sE), convert_char_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_rtn(float16 v) {
-  return (char16)(convert_char_rtn(v.s0), convert_char_rtn(v.s1), convert_char_rtn(v.s2), convert_char_rtn(v.s3), convert_char_rtn(v.s4), convert_char_rtn(v.s5), convert_char_rtn(v.s6), convert_char_rtn(v.s7), convert_char_rtn(v.s8), convert_char_rtn(v.s9), convert_char_rtn(v.sA), convert_char_rtn(v.sB), convert_char_rtn(v.sC), convert_char_rtn(v.sD), convert_char_rtn(v.sE), convert_char_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rte(float16 v) {
-  return (uchar16)(convert_uchar_rte(v.s0), convert_uchar_rte(v.s1), convert_uchar_rte(v.s2), convert_uchar_rte(v.s3), convert_uchar_rte(v.s4), convert_uchar_rte(v.s5), convert_uchar_rte(v.s6), convert_uchar_rte(v.s7), convert_uchar_rte(v.s8), convert_uchar_rte(v.s9), convert_uchar_rte(v.sA), convert_uchar_rte(v.sB), convert_uchar_rte(v.sC), convert_uchar_rte(v.sD), convert_uchar_rte(v.sE), convert_uchar_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtz(float16 v) {
-  return (uchar16)(convert_uchar_rtz(v.s0), convert_uchar_rtz(v.s1), convert_uchar_rtz(v.s2), convert_uchar_rtz(v.s3), convert_uchar_rtz(v.s4), convert_uchar_rtz(v.s5), convert_uchar_rtz(v.s6), convert_uchar_rtz(v.s7), convert_uchar_rtz(v.s8), convert_uchar_rtz(v.s9), convert_uchar_rtz(v.sA), convert_uchar_rtz(v.sB), convert_uchar_rtz(v.sC), convert_uchar_rtz(v.sD), convert_uchar_rtz(v.sE), convert_uchar_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtp(float16 v) {
-  return (uchar16)(convert_uchar_rtp(v.s0), convert_uchar_rtp(v.s1), convert_uchar_rtp(v.s2), convert_uchar_rtp(v.s3), convert_uchar_rtp(v.s4), convert_uchar_rtp(v.s5), convert_uchar_rtp(v.s6), convert_uchar_rtp(v.s7), convert_uchar_rtp(v.s8), convert_uchar_rtp(v.s9), convert_uchar_rtp(v.sA), convert_uchar_rtp(v.sB), convert_uchar_rtp(v.sC), convert_uchar_rtp(v.sD), convert_uchar_rtp(v.sE), convert_uchar_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_rtn(float16 v) {
-  return (uchar16)(convert_uchar_rtn(v.s0), convert_uchar_rtn(v.s1), convert_uchar_rtn(v.s2), convert_uchar_rtn(v.s3), convert_uchar_rtn(v.s4), convert_uchar_rtn(v.s5), convert_uchar_rtn(v.s6), convert_uchar_rtn(v.s7), convert_uchar_rtn(v.s8), convert_uchar_rtn(v.s9), convert_uchar_rtn(v.sA), convert_uchar_rtn(v.sB), convert_uchar_rtn(v.sC), convert_uchar_rtn(v.sD), convert_uchar_rtn(v.sE), convert_uchar_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rte(float16 v) {
-  return (float16)(convert_float_rte(v.s0), convert_float_rte(v.s1), convert_float_rte(v.s2), convert_float_rte(v.s3), convert_float_rte(v.s4), convert_float_rte(v.s5), convert_float_rte(v.s6), convert_float_rte(v.s7), convert_float_rte(v.s8), convert_float_rte(v.s9), convert_float_rte(v.sA), convert_float_rte(v.sB), convert_float_rte(v.sC), convert_float_rte(v.sD), convert_float_rte(v.sE), convert_float_rte(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtz(float16 v) {
-  return (float16)(convert_float_rtz(v.s0), convert_float_rtz(v.s1), convert_float_rtz(v.s2), convert_float_rtz(v.s3), convert_float_rtz(v.s4), convert_float_rtz(v.s5), convert_float_rtz(v.s6), convert_float_rtz(v.s7), convert_float_rtz(v.s8), convert_float_rtz(v.s9), convert_float_rtz(v.sA), convert_float_rtz(v.sB), convert_float_rtz(v.sC), convert_float_rtz(v.sD), convert_float_rtz(v.sE), convert_float_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtp(float16 v) {
-  return (float16)(convert_float_rtp(v.s0), convert_float_rtp(v.s1), convert_float_rtp(v.s2), convert_float_rtp(v.s3), convert_float_rtp(v.s4), convert_float_rtp(v.s5), convert_float_rtp(v.s6), convert_float_rtp(v.s7), convert_float_rtp(v.s8), convert_float_rtp(v.s9), convert_float_rtp(v.sA), convert_float_rtp(v.sB), convert_float_rtp(v.sC), convert_float_rtp(v.sD), convert_float_rtp(v.sE), convert_float_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE float16 convert_float16_rtn(float16 v) {
-  return (float16)(convert_float_rtn(v.s0), convert_float_rtn(v.s1), convert_float_rtn(v.s2), convert_float_rtn(v.s3), convert_float_rtn(v.s4), convert_float_rtn(v.s5), convert_float_rtn(v.s6), convert_float_rtn(v.s7), convert_float_rtn(v.s8), convert_float_rtn(v.s9), convert_float_rtn(v.sA), convert_float_rtn(v.sB), convert_float_rtn(v.sC), convert_float_rtn(v.sD), convert_float_rtn(v.sE), convert_float_rtn(v.sF));
-}
-
-INLINE_OVERLOADABLE long convert_long_sat_rte(long x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(long x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(long x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(long x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(long x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(long x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(long x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(long x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(long x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(long x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(long x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(long x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(long x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(long x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(long x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(long x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(long x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(long x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(long x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(long x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(long x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(long x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(long x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(long x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(long x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(long x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(long x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(long x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(long x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(long x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(long x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(long x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(ulong x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(ulong x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(ulong x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(ulong x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(ulong x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(ulong x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(ulong x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(ulong x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(ulong x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(ulong x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(ulong x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(ulong x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(ulong x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(ulong x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(ulong x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(ulong x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(ulong x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(ulong x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(ulong x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(ulong x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(ulong x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(ulong x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(ulong x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(ulong x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(ulong x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(ulong x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(ulong x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(ulong x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(ulong x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(ulong x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(ulong x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(ulong x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(int x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(int x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(int x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(int x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(int x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(int x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(int x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(int x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(int x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(int x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(int x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(int x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(int x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(int x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(int x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(int x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(int x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(int x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(int x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(int x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(int x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(int x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(int x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(int x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(int x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(int x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(int x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(int x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(int x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(int x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(int x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(int x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(uint x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(uint x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(uint x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(uint x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(uint x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(uint x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(uint x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(uint x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(uint x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(uint x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(uint x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(uint x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(uint x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(uint x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(uint x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(uint x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(uint x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(uint x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(uint x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(uint x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(uint x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(uint x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(uint x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(uint x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(uint x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(uint x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(uint x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(uint x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(uint x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(uint x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(uint x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(uint x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(short x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(short x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(short x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(short x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(short x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(short x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(short x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(short x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(short x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(short x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(short x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(short x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(short x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(short x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(short x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(short x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(short x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(short x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(short x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(short x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(short x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(short x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(short x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(short x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(short x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(short x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(short x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(short x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(short x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(short x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(short x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(short x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(ushort x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(ushort x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(ushort x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(ushort x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(ushort x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(ushort x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(ushort x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(ushort x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(ushort x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(ushort x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(ushort x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(ushort x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(ushort x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(ushort x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(ushort x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(ushort x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(ushort x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(ushort x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(ushort x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(ushort x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(ushort x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(ushort x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(ushort x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(ushort x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(ushort x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(ushort x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(ushort x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(ushort x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(ushort x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(ushort x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(ushort x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(ushort x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(char x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(char x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(char x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(char x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(char x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(char x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(char x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(char x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(char x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(char x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(char x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(char x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(char x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(char x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(char x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(char x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(char x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(char x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(char x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(char x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(char x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(char x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(char x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(char x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(char x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(char x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(char x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(char x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(char x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(char x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(char x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(char x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(uchar x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(uchar x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(uchar x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(uchar x)
-{ return convert_long_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(uchar x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(uchar x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(uchar x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(uchar x)
-{ return convert_ulong_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(uchar x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(uchar x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(uchar x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(uchar x)
-{ return convert_int_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(uchar x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(uchar x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(uchar x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(uchar x)
-{ return convert_uint_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(uchar x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(uchar x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(uchar x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(uchar x)
-{ return convert_short_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(uchar x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(uchar x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(uchar x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(uchar x)
-{ return convert_ushort_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(uchar x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(uchar x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(uchar x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(uchar x)
-{ return convert_char_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(uchar x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(uchar x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(uchar x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(uchar x)
-{ return convert_uchar_sat(x); }
-INLINE_OVERLOADABLE long convert_long_sat_rte(float x)
-{ return convert_long_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE long convert_long_sat_rtz(float x)
-{ return convert_long_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE long convert_long_sat_rtp(float x)
-{ return convert_long_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE long convert_long_sat_rtn(float x)
-{ return convert_long_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rte(float x)
-{ return convert_ulong_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtz(float x)
-{ return convert_ulong_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtp(float x)
-{ return convert_ulong_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE ulong convert_ulong_sat_rtn(float x)
-{ return convert_ulong_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE int convert_int_sat_rte(float x)
-{ return convert_int_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE int convert_int_sat_rtz(float x)
-{ return convert_int_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE int convert_int_sat_rtp(float x)
-{ return convert_int_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE int convert_int_sat_rtn(float x)
-{ return convert_int_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rte(float x)
-{ return convert_uint_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtz(float x)
-{ return convert_uint_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtp(float x)
-{ return convert_uint_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE uint convert_uint_sat_rtn(float x)
-{ return convert_uint_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE short convert_short_sat_rte(float x)
-{ return convert_short_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE short convert_short_sat_rtz(float x)
-{ return convert_short_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE short convert_short_sat_rtp(float x)
-{ return convert_short_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE short convert_short_sat_rtn(float x)
-{ return convert_short_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rte(float x)
-{ return convert_ushort_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtz(float x)
-{ return convert_ushort_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtp(float x)
-{ return convert_ushort_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE ushort convert_ushort_sat_rtn(float x)
-{ return convert_ushort_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE char convert_char_sat_rte(float x)
-{ return convert_char_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE char convert_char_sat_rtz(float x)
-{ return convert_char_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE char convert_char_sat_rtp(float x)
-{ return convert_char_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE char convert_char_sat_rtn(float x)
-{ return convert_char_sat(__gen_ocl_rndd(x)); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rte(float x)
-{ return convert_uchar_sat(__gen_ocl_rnde(x)); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtz(float x)
-{ return convert_uchar_sat(__gen_ocl_rndz(x)); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtp(float x)
-{ return convert_uchar_sat(__gen_ocl_rndu(x)); }
-INLINE_OVERLOADABLE uchar convert_uchar_sat_rtn(float x)
-{ return convert_uchar_sat(__gen_ocl_rndd(x)); }
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(long2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(long2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(long2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(long2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(long2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(long2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(long2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(long2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(long2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(long2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(long2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(long2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(long2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(long2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(long2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(long2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(long2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(long2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(long2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(long2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(long2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(long2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(long2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(long2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(long2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(long2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(long2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(long2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(long2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(long2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(long2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(long2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(ulong2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(ulong2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(ulong2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(ulong2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(ulong2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(ulong2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(ulong2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(ulong2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(ulong2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(ulong2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(ulong2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(ulong2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(ulong2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(ulong2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(ulong2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(ulong2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(ulong2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(ulong2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(ulong2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(ulong2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(ulong2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(ulong2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(ulong2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(ulong2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(ulong2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(ulong2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(ulong2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(ulong2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(ulong2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(ulong2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(ulong2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(ulong2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(int2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(int2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(int2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(int2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(int2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(int2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(int2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(int2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(int2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(int2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(int2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(int2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(int2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(int2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(int2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(int2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(int2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(int2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(int2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(int2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(int2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(int2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(int2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(int2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(int2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(int2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(int2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(int2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(int2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(int2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(int2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(int2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(uint2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(uint2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(uint2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(uint2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(uint2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(uint2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(uint2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(uint2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(uint2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(uint2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(uint2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(uint2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(uint2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(uint2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(uint2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(uint2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(uint2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(uint2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(uint2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(uint2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(uint2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(uint2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(uint2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(uint2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(uint2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(uint2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(uint2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(uint2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(uint2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(uint2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(uint2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(uint2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(short2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(short2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(short2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(short2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(short2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(short2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(short2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(short2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(short2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(short2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(short2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(short2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(short2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(short2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(short2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(short2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(short2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(short2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(short2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(short2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(short2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(short2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(short2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(short2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(short2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(short2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(short2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(short2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(short2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(short2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(short2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(short2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(ushort2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(ushort2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(ushort2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(ushort2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(ushort2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(ushort2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(ushort2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(ushort2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(ushort2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(ushort2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(ushort2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(ushort2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(ushort2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(ushort2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(ushort2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(ushort2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(ushort2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(ushort2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(ushort2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(ushort2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(ushort2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(ushort2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(ushort2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(ushort2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(ushort2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(ushort2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(ushort2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(ushort2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(ushort2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(ushort2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(ushort2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(ushort2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(char2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(char2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(char2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(char2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(char2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(char2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(char2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(char2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(char2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(char2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(char2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(char2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(char2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(char2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(char2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(char2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(char2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(char2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(char2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(char2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(char2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(char2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(char2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(char2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(char2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(char2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(char2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(char2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(char2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(char2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(char2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(char2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(uchar2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(uchar2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(uchar2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(uchar2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(uchar2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(uchar2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(uchar2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(uchar2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(uchar2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(uchar2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(uchar2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(uchar2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(uchar2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(uchar2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(uchar2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(uchar2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(uchar2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(uchar2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(uchar2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(uchar2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(uchar2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(uchar2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(uchar2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(uchar2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(uchar2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(uchar2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(uchar2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(uchar2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(uchar2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(uchar2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(uchar2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(uchar2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rte(float2 v) {
-  return (long2)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtz(float2 v) {
-  return (long2)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtp(float2 v) {
-  return (long2)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE long2 convert_long2_sat_rtn(float2 v) {
-  return (long2)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rte(float2 v) {
-  return (ulong2)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtz(float2 v) {
-  return (ulong2)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtp(float2 v) {
-  return (ulong2)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ulong2 convert_ulong2_sat_rtn(float2 v) {
-  return (ulong2)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rte(float2 v) {
-  return (int2)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtz(float2 v) {
-  return (int2)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtp(float2 v) {
-  return (int2)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE int2 convert_int2_sat_rtn(float2 v) {
-  return (int2)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rte(float2 v) {
-  return (uint2)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtz(float2 v) {
-  return (uint2)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtp(float2 v) {
-  return (uint2)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uint2 convert_uint2_sat_rtn(float2 v) {
-  return (uint2)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rte(float2 v) {
-  return (short2)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtz(float2 v) {
-  return (short2)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtp(float2 v) {
-  return (short2)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE short2 convert_short2_sat_rtn(float2 v) {
-  return (short2)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rte(float2 v) {
-  return (ushort2)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtz(float2 v) {
-  return (ushort2)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtp(float2 v) {
-  return (ushort2)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE ushort2 convert_ushort2_sat_rtn(float2 v) {
-  return (ushort2)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rte(float2 v) {
-  return (char2)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtz(float2 v) {
-  return (char2)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtp(float2 v) {
-  return (char2)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE char2 convert_char2_sat_rtn(float2 v) {
-  return (char2)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rte(float2 v) {
-  return (uchar2)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtz(float2 v) {
-  return (uchar2)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtp(float2 v) {
-  return (uchar2)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1));
-}
-
-INLINE OVERLOADABLE uchar2 convert_uchar2_sat_rtn(float2 v) {
-  return (uchar2)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(long3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(long3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(long3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(long3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(long3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(long3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(long3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(long3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(long3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(long3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(long3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(long3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(long3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(long3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(long3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(long3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(long3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(long3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(long3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(long3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(long3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(long3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(long3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(long3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(long3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(long3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(long3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(long3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(long3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(long3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(long3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(long3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(ulong3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(ulong3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(ulong3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(ulong3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(ulong3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(ulong3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(ulong3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(ulong3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(ulong3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(ulong3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(ulong3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(ulong3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(ulong3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(ulong3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(ulong3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(ulong3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(ulong3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(ulong3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(ulong3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(ulong3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(ulong3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(ulong3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(ulong3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(ulong3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(ulong3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(ulong3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(ulong3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(ulong3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(ulong3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(ulong3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(ulong3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(ulong3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(int3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(int3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(int3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(int3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(int3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(int3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(int3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(int3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(int3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(int3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(int3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(int3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(int3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(int3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(int3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(int3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(int3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(int3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(int3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(int3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(int3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(int3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(int3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(int3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(int3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(int3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(int3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(int3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(int3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(int3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(int3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(int3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(uint3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(uint3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(uint3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(uint3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(uint3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(uint3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(uint3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(uint3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(uint3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(uint3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(uint3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(uint3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(uint3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(uint3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(uint3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(uint3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(uint3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(uint3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(uint3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(uint3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(uint3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(uint3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(uint3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(uint3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(uint3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(uint3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(uint3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(uint3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(uint3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(uint3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(uint3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(uint3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(short3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(short3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(short3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(short3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(short3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(short3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(short3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(short3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(short3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(short3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(short3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(short3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(short3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(short3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(short3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(short3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(short3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(short3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(short3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(short3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(short3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(short3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(short3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(short3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(short3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(short3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(short3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(short3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(short3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(short3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(short3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(short3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(ushort3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(ushort3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(ushort3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(ushort3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(ushort3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(ushort3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(ushort3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(ushort3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(ushort3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(ushort3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(ushort3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(ushort3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(ushort3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(ushort3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(ushort3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(ushort3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(ushort3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(ushort3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(ushort3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(ushort3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(ushort3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(ushort3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(ushort3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(ushort3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(ushort3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(ushort3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(ushort3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(ushort3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(ushort3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(ushort3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(ushort3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(ushort3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(char3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(char3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(char3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(char3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(char3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(char3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(char3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(char3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(char3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(char3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(char3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(char3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(char3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(char3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(char3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(char3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(char3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(char3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(char3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(char3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(char3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(char3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(char3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(char3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(char3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(char3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(char3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(char3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(char3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(char3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(char3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(char3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(uchar3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(uchar3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(uchar3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(uchar3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(uchar3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(uchar3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(uchar3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(uchar3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(uchar3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(uchar3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(uchar3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(uchar3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(uchar3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(uchar3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(uchar3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(uchar3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(uchar3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(uchar3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(uchar3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(uchar3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(uchar3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(uchar3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(uchar3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(uchar3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(uchar3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(uchar3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(uchar3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(uchar3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(uchar3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(uchar3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(uchar3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(uchar3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rte(float3 v) {
-  return (long3)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtz(float3 v) {
-  return (long3)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtp(float3 v) {
-  return (long3)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE long3 convert_long3_sat_rtn(float3 v) {
-  return (long3)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rte(float3 v) {
-  return (ulong3)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtz(float3 v) {
-  return (ulong3)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtp(float3 v) {
-  return (ulong3)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ulong3 convert_ulong3_sat_rtn(float3 v) {
-  return (ulong3)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rte(float3 v) {
-  return (int3)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtz(float3 v) {
-  return (int3)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtp(float3 v) {
-  return (int3)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE int3 convert_int3_sat_rtn(float3 v) {
-  return (int3)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rte(float3 v) {
-  return (uint3)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtz(float3 v) {
-  return (uint3)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtp(float3 v) {
-  return (uint3)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uint3 convert_uint3_sat_rtn(float3 v) {
-  return (uint3)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rte(float3 v) {
-  return (short3)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtz(float3 v) {
-  return (short3)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtp(float3 v) {
-  return (short3)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE short3 convert_short3_sat_rtn(float3 v) {
-  return (short3)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rte(float3 v) {
-  return (ushort3)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtz(float3 v) {
-  return (ushort3)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtp(float3 v) {
-  return (ushort3)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE ushort3 convert_ushort3_sat_rtn(float3 v) {
-  return (ushort3)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rte(float3 v) {
-  return (char3)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtz(float3 v) {
-  return (char3)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtp(float3 v) {
-  return (char3)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE char3 convert_char3_sat_rtn(float3 v) {
-  return (char3)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rte(float3 v) {
-  return (uchar3)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtz(float3 v) {
-  return (uchar3)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtp(float3 v) {
-  return (uchar3)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2));
-}
-
-INLINE OVERLOADABLE uchar3 convert_uchar3_sat_rtn(float3 v) {
-  return (uchar3)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(long4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(long4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(long4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(long4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(long4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(long4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(long4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(long4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(long4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(long4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(long4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(long4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(long4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(long4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(long4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(long4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(long4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(long4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(long4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(long4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(long4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(long4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(long4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(long4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(long4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(long4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(long4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(long4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(long4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(long4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(long4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(long4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(ulong4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(ulong4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(ulong4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(ulong4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(ulong4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(ulong4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(ulong4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(ulong4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(ulong4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(ulong4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(ulong4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(ulong4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(ulong4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(ulong4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(ulong4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(ulong4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(ulong4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(ulong4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(ulong4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(ulong4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(ulong4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(ulong4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(ulong4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(ulong4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(ulong4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(ulong4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(ulong4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(ulong4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(ulong4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(ulong4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(ulong4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(ulong4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(int4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(int4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(int4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(int4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(int4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(int4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(int4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(int4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(int4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(int4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(int4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(int4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(int4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(int4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(int4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(int4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(int4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(int4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(int4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(int4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(int4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(int4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(int4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(int4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(int4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(int4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(int4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(int4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(int4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(int4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(int4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(int4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(uint4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(uint4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(uint4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(uint4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(uint4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(uint4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(uint4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(uint4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(uint4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(uint4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(uint4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(uint4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(uint4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(uint4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(uint4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(uint4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(uint4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(uint4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(uint4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(uint4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(uint4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(uint4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(uint4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(uint4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(uint4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(uint4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(uint4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(uint4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(uint4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(uint4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(uint4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(uint4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(short4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(short4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(short4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(short4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(short4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(short4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(short4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(short4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(short4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(short4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(short4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(short4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(short4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(short4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(short4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(short4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(short4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(short4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(short4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(short4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(short4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(short4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(short4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(short4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(short4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(short4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(short4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(short4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(short4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(short4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(short4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(short4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(ushort4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(ushort4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(ushort4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(ushort4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(ushort4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(ushort4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(ushort4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(ushort4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(ushort4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(ushort4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(ushort4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(ushort4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(ushort4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(ushort4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(ushort4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(ushort4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(ushort4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(ushort4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(ushort4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(ushort4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(ushort4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(ushort4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(ushort4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(ushort4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(ushort4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(ushort4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(ushort4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(ushort4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(ushort4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(ushort4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(ushort4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(ushort4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(char4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(char4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(char4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(char4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(char4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(char4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(char4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(char4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(char4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(char4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(char4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(char4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(char4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(char4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(char4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(char4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(char4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(char4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(char4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(char4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(char4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(char4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(char4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(char4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(char4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(char4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(char4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(char4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(char4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(char4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(char4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(char4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(uchar4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(uchar4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(uchar4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(uchar4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(uchar4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(uchar4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(uchar4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(uchar4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(uchar4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(uchar4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(uchar4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(uchar4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(uchar4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(uchar4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(uchar4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(uchar4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(uchar4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(uchar4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(uchar4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(uchar4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(uchar4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(uchar4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(uchar4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(uchar4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(uchar4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(uchar4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(uchar4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(uchar4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(uchar4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(uchar4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(uchar4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(uchar4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rte(float4 v) {
-  return (long4)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtz(float4 v) {
-  return (long4)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtp(float4 v) {
-  return (long4)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE long4 convert_long4_sat_rtn(float4 v) {
-  return (long4)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rte(float4 v) {
-  return (ulong4)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtz(float4 v) {
-  return (ulong4)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtp(float4 v) {
-  return (ulong4)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ulong4 convert_ulong4_sat_rtn(float4 v) {
-  return (ulong4)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rte(float4 v) {
-  return (int4)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtz(float4 v) {
-  return (int4)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtp(float4 v) {
-  return (int4)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE int4 convert_int4_sat_rtn(float4 v) {
-  return (int4)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rte(float4 v) {
-  return (uint4)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtz(float4 v) {
-  return (uint4)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtp(float4 v) {
-  return (uint4)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uint4 convert_uint4_sat_rtn(float4 v) {
-  return (uint4)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rte(float4 v) {
-  return (short4)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtz(float4 v) {
-  return (short4)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtp(float4 v) {
-  return (short4)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE short4 convert_short4_sat_rtn(float4 v) {
-  return (short4)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rte(float4 v) {
-  return (ushort4)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtz(float4 v) {
-  return (ushort4)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtp(float4 v) {
-  return (ushort4)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE ushort4 convert_ushort4_sat_rtn(float4 v) {
-  return (ushort4)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rte(float4 v) {
-  return (char4)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtz(float4 v) {
-  return (char4)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtp(float4 v) {
-  return (char4)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE char4 convert_char4_sat_rtn(float4 v) {
-  return (char4)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rte(float4 v) {
-  return (uchar4)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtz(float4 v) {
-  return (uchar4)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtp(float4 v) {
-  return (uchar4)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3));
-}
-
-INLINE OVERLOADABLE uchar4 convert_uchar4_sat_rtn(float4 v) {
-  return (uchar4)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(long8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(long8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(long8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(long8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(long8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(long8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(long8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(long8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(long8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(long8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(long8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(long8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(long8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(long8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(long8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(long8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(long8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(long8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(long8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(long8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(long8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(long8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(long8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(long8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(long8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(long8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(long8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(long8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(long8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(long8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(long8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(long8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(ulong8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(ulong8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(ulong8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(ulong8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(ulong8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(ulong8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(ulong8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(ulong8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(ulong8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(ulong8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(ulong8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(ulong8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(ulong8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(ulong8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(ulong8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(ulong8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(ulong8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(ulong8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(ulong8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(ulong8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(ulong8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(ulong8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(ulong8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(ulong8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(ulong8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(ulong8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(ulong8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(ulong8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(ulong8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(ulong8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(ulong8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(ulong8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(int8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(int8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(int8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(int8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(int8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(int8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(int8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(int8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(int8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(int8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(int8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(int8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(int8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(int8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(int8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(int8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(int8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(int8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(int8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(int8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(int8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(int8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(int8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(int8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(int8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(int8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(int8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(int8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(int8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(int8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(int8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(int8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(uint8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(uint8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(uint8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(uint8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(uint8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(uint8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(uint8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(uint8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(uint8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(uint8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(uint8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(uint8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(uint8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(uint8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(uint8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(uint8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(uint8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(uint8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(uint8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(uint8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(uint8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(uint8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(uint8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(uint8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(uint8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(uint8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(uint8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(uint8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(uint8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(uint8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(uint8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(uint8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(short8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(short8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(short8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(short8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(short8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(short8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(short8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(short8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(short8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(short8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(short8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(short8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(short8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(short8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(short8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(short8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(short8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(short8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(short8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(short8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(short8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(short8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(short8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(short8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(short8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(short8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(short8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(short8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(short8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(short8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(short8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(short8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(ushort8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(ushort8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(ushort8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(ushort8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(ushort8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(ushort8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(ushort8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(ushort8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(ushort8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(ushort8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(ushort8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(ushort8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(ushort8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(ushort8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(ushort8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(ushort8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(ushort8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(ushort8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(ushort8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(ushort8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(ushort8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(ushort8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(ushort8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(ushort8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(ushort8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(ushort8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(ushort8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(ushort8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(ushort8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(ushort8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(ushort8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(ushort8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(char8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(char8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(char8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(char8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(char8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(char8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(char8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(char8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(char8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(char8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(char8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(char8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(char8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(char8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(char8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(char8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(char8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(char8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(char8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(char8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(char8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(char8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(char8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(char8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(char8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(char8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(char8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(char8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(char8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(char8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(char8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(char8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(uchar8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(uchar8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(uchar8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(uchar8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(uchar8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(uchar8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(uchar8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(uchar8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(uchar8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(uchar8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(uchar8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(uchar8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(uchar8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(uchar8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(uchar8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(uchar8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(uchar8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(uchar8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(uchar8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(uchar8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(uchar8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(uchar8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(uchar8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(uchar8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(uchar8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(uchar8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(uchar8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(uchar8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(uchar8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(uchar8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(uchar8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(uchar8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rte(float8 v) {
-  return (long8)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtz(float8 v) {
-  return (long8)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtp(float8 v) {
-  return (long8)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE long8 convert_long8_sat_rtn(float8 v) {
-  return (long8)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rte(float8 v) {
-  return (ulong8)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtz(float8 v) {
-  return (ulong8)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtp(float8 v) {
-  return (ulong8)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ulong8 convert_ulong8_sat_rtn(float8 v) {
-  return (ulong8)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rte(float8 v) {
-  return (int8)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtz(float8 v) {
-  return (int8)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtp(float8 v) {
-  return (int8)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE int8 convert_int8_sat_rtn(float8 v) {
-  return (int8)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rte(float8 v) {
-  return (uint8)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtz(float8 v) {
-  return (uint8)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtp(float8 v) {
-  return (uint8)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uint8 convert_uint8_sat_rtn(float8 v) {
-  return (uint8)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rte(float8 v) {
-  return (short8)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtz(float8 v) {
-  return (short8)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtp(float8 v) {
-  return (short8)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE short8 convert_short8_sat_rtn(float8 v) {
-  return (short8)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rte(float8 v) {
-  return (ushort8)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtz(float8 v) {
-  return (ushort8)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtp(float8 v) {
-  return (ushort8)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE ushort8 convert_ushort8_sat_rtn(float8 v) {
-  return (ushort8)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rte(float8 v) {
-  return (char8)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtz(float8 v) {
-  return (char8)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtp(float8 v) {
-  return (char8)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE char8 convert_char8_sat_rtn(float8 v) {
-  return (char8)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rte(float8 v) {
-  return (uchar8)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtz(float8 v) {
-  return (uchar8)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtp(float8 v) {
-  return (uchar8)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7));
-}
-
-INLINE OVERLOADABLE uchar8 convert_uchar8_sat_rtn(float8 v) {
-  return (uchar8)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(long16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(long16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(long16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(long16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(long16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(long16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(long16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(long16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(long16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(long16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(long16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(long16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(long16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(long16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(long16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(long16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(long16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(long16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(long16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(long16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(long16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(long16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(long16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(long16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(long16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(long16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(long16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(long16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(long16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(long16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(long16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(long16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(ulong16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(ulong16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(ulong16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(ulong16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(ulong16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(ulong16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(ulong16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(ulong16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(ulong16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(ulong16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(ulong16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(ulong16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(ulong16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(ulong16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(ulong16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(ulong16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(ulong16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(ulong16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(ulong16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(ulong16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(ulong16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(ulong16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(ulong16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(ulong16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(ulong16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(ulong16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(ulong16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(ulong16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(ulong16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(ulong16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(ulong16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(ulong16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(int16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(int16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(int16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(int16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(int16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(int16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(int16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(int16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(int16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(int16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(int16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(int16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(int16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(int16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(int16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(int16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(int16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(int16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(int16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(int16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(int16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(int16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(int16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(int16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(int16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(int16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(int16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(int16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(int16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(int16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(int16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(int16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(uint16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(uint16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(uint16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(uint16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(uint16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(uint16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(uint16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(uint16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(uint16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(uint16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(uint16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(uint16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(uint16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(uint16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(uint16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(uint16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(uint16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(uint16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(uint16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(uint16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(uint16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(uint16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(uint16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(uint16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(uint16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(uint16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(uint16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(uint16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(uint16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(uint16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(uint16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(uint16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(short16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(short16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(short16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(short16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(short16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(short16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(short16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(short16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(short16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(short16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(short16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(short16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(short16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(short16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(short16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(short16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(short16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(short16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(short16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(short16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(short16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(short16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(short16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(short16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(short16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(short16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(short16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(short16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(short16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(short16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(short16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(short16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(ushort16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(ushort16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(ushort16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(ushort16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(ushort16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(ushort16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(ushort16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(ushort16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(ushort16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(ushort16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(ushort16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(ushort16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(ushort16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(ushort16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(ushort16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(ushort16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(ushort16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(ushort16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(ushort16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(ushort16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(ushort16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(ushort16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(ushort16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(ushort16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(ushort16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(ushort16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(ushort16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(ushort16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(ushort16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(ushort16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(ushort16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(ushort16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(char16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(char16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(char16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(char16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(char16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(char16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(char16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(char16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(char16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(char16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(char16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(char16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(char16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(char16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(char16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(char16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(char16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(char16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(char16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(char16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(char16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(char16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(char16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(char16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(char16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(char16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(char16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(char16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(char16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(char16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(char16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(char16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(uchar16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(uchar16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(uchar16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(uchar16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(uchar16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(uchar16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(uchar16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(uchar16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(uchar16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(uchar16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(uchar16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(uchar16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(uchar16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(uchar16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(uchar16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(uchar16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(uchar16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(uchar16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(uchar16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(uchar16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(uchar16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(uchar16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(uchar16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(uchar16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(uchar16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(uchar16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(uchar16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(uchar16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(uchar16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(uchar16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(uchar16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(uchar16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rte(float16 v) {
-  return (long16)(convert_long_sat_rte(v.s0), convert_long_sat_rte(v.s1), convert_long_sat_rte(v.s2), convert_long_sat_rte(v.s3), convert_long_sat_rte(v.s4), convert_long_sat_rte(v.s5), convert_long_sat_rte(v.s6), convert_long_sat_rte(v.s7), convert_long_sat_rte(v.s8), convert_long_sat_rte(v.s9), convert_long_sat_rte(v.sA), convert_long_sat_rte(v.sB), convert_long_sat_rte(v.sC), convert_long_sat_rte(v.sD), convert_long_sat_rte(v.sE), convert_long_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtz(float16 v) {
-  return (long16)(convert_long_sat_rtz(v.s0), convert_long_sat_rtz(v.s1), convert_long_sat_rtz(v.s2), convert_long_sat_rtz(v.s3), convert_long_sat_rtz(v.s4), convert_long_sat_rtz(v.s5), convert_long_sat_rtz(v.s6), convert_long_sat_rtz(v.s7), convert_long_sat_rtz(v.s8), convert_long_sat_rtz(v.s9), convert_long_sat_rtz(v.sA), convert_long_sat_rtz(v.sB), convert_long_sat_rtz(v.sC), convert_long_sat_rtz(v.sD), convert_long_sat_rtz(v.sE), convert_long_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtp(float16 v) {
-  return (long16)(convert_long_sat_rtp(v.s0), convert_long_sat_rtp(v.s1), convert_long_sat_rtp(v.s2), convert_long_sat_rtp(v.s3), convert_long_sat_rtp(v.s4), convert_long_sat_rtp(v.s5), convert_long_sat_rtp(v.s6), convert_long_sat_rtp(v.s7), convert_long_sat_rtp(v.s8), convert_long_sat_rtp(v.s9), convert_long_sat_rtp(v.sA), convert_long_sat_rtp(v.sB), convert_long_sat_rtp(v.sC), convert_long_sat_rtp(v.sD), convert_long_sat_rtp(v.sE), convert_long_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE long16 convert_long16_sat_rtn(float16 v) {
-  return (long16)(convert_long_sat_rtn(v.s0), convert_long_sat_rtn(v.s1), convert_long_sat_rtn(v.s2), convert_long_sat_rtn(v.s3), convert_long_sat_rtn(v.s4), convert_long_sat_rtn(v.s5), convert_long_sat_rtn(v.s6), convert_long_sat_rtn(v.s7), convert_long_sat_rtn(v.s8), convert_long_sat_rtn(v.s9), convert_long_sat_rtn(v.sA), convert_long_sat_rtn(v.sB), convert_long_sat_rtn(v.sC), convert_long_sat_rtn(v.sD), convert_long_sat_rtn(v.sE), convert_long_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rte(float16 v) {
-  return (ulong16)(convert_ulong_sat_rte(v.s0), convert_ulong_sat_rte(v.s1), convert_ulong_sat_rte(v.s2), convert_ulong_sat_rte(v.s3), convert_ulong_sat_rte(v.s4), convert_ulong_sat_rte(v.s5), convert_ulong_sat_rte(v.s6), convert_ulong_sat_rte(v.s7), convert_ulong_sat_rte(v.s8), convert_ulong_sat_rte(v.s9), convert_ulong_sat_rte(v.sA), convert_ulong_sat_rte(v.sB), convert_ulong_sat_rte(v.sC), convert_ulong_sat_rte(v.sD), convert_ulong_sat_rte(v.sE), convert_ulong_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtz(float16 v) {
-  return (ulong16)(convert_ulong_sat_rtz(v.s0), convert_ulong_sat_rtz(v.s1), convert_ulong_sat_rtz(v.s2), convert_ulong_sat_rtz(v.s3), convert_ulong_sat_rtz(v.s4), convert_ulong_sat_rtz(v.s5), convert_ulong_sat_rtz(v.s6), convert_ulong_sat_rtz(v.s7), convert_ulong_sat_rtz(v.s8), convert_ulong_sat_rtz(v.s9), convert_ulong_sat_rtz(v.sA), convert_ulong_sat_rtz(v.sB), convert_ulong_sat_rtz(v.sC), convert_ulong_sat_rtz(v.sD), convert_ulong_sat_rtz(v.sE), convert_ulong_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtp(float16 v) {
-  return (ulong16)(convert_ulong_sat_rtp(v.s0), convert_ulong_sat_rtp(v.s1), convert_ulong_sat_rtp(v.s2), convert_ulong_sat_rtp(v.s3), convert_ulong_sat_rtp(v.s4), convert_ulong_sat_rtp(v.s5), convert_ulong_sat_rtp(v.s6), convert_ulong_sat_rtp(v.s7), convert_ulong_sat_rtp(v.s8), convert_ulong_sat_rtp(v.s9), convert_ulong_sat_rtp(v.sA), convert_ulong_sat_rtp(v.sB), convert_ulong_sat_rtp(v.sC), convert_ulong_sat_rtp(v.sD), convert_ulong_sat_rtp(v.sE), convert_ulong_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ulong16 convert_ulong16_sat_rtn(float16 v) {
-  return (ulong16)(convert_ulong_sat_rtn(v.s0), convert_ulong_sat_rtn(v.s1), convert_ulong_sat_rtn(v.s2), convert_ulong_sat_rtn(v.s3), convert_ulong_sat_rtn(v.s4), convert_ulong_sat_rtn(v.s5), convert_ulong_sat_rtn(v.s6), convert_ulong_sat_rtn(v.s7), convert_ulong_sat_rtn(v.s8), convert_ulong_sat_rtn(v.s9), convert_ulong_sat_rtn(v.sA), convert_ulong_sat_rtn(v.sB), convert_ulong_sat_rtn(v.sC), convert_ulong_sat_rtn(v.sD), convert_ulong_sat_rtn(v.sE), convert_ulong_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rte(float16 v) {
-  return (int16)(convert_int_sat_rte(v.s0), convert_int_sat_rte(v.s1), convert_int_sat_rte(v.s2), convert_int_sat_rte(v.s3), convert_int_sat_rte(v.s4), convert_int_sat_rte(v.s5), convert_int_sat_rte(v.s6), convert_int_sat_rte(v.s7), convert_int_sat_rte(v.s8), convert_int_sat_rte(v.s9), convert_int_sat_rte(v.sA), convert_int_sat_rte(v.sB), convert_int_sat_rte(v.sC), convert_int_sat_rte(v.sD), convert_int_sat_rte(v.sE), convert_int_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtz(float16 v) {
-  return (int16)(convert_int_sat_rtz(v.s0), convert_int_sat_rtz(v.s1), convert_int_sat_rtz(v.s2), convert_int_sat_rtz(v.s3), convert_int_sat_rtz(v.s4), convert_int_sat_rtz(v.s5), convert_int_sat_rtz(v.s6), convert_int_sat_rtz(v.s7), convert_int_sat_rtz(v.s8), convert_int_sat_rtz(v.s9), convert_int_sat_rtz(v.sA), convert_int_sat_rtz(v.sB), convert_int_sat_rtz(v.sC), convert_int_sat_rtz(v.sD), convert_int_sat_rtz(v.sE), convert_int_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtp(float16 v) {
-  return (int16)(convert_int_sat_rtp(v.s0), convert_int_sat_rtp(v.s1), convert_int_sat_rtp(v.s2), convert_int_sat_rtp(v.s3), convert_int_sat_rtp(v.s4), convert_int_sat_rtp(v.s5), convert_int_sat_rtp(v.s6), convert_int_sat_rtp(v.s7), convert_int_sat_rtp(v.s8), convert_int_sat_rtp(v.s9), convert_int_sat_rtp(v.sA), convert_int_sat_rtp(v.sB), convert_int_sat_rtp(v.sC), convert_int_sat_rtp(v.sD), convert_int_sat_rtp(v.sE), convert_int_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE int16 convert_int16_sat_rtn(float16 v) {
-  return (int16)(convert_int_sat_rtn(v.s0), convert_int_sat_rtn(v.s1), convert_int_sat_rtn(v.s2), convert_int_sat_rtn(v.s3), convert_int_sat_rtn(v.s4), convert_int_sat_rtn(v.s5), convert_int_sat_rtn(v.s6), convert_int_sat_rtn(v.s7), convert_int_sat_rtn(v.s8), convert_int_sat_rtn(v.s9), convert_int_sat_rtn(v.sA), convert_int_sat_rtn(v.sB), convert_int_sat_rtn(v.sC), convert_int_sat_rtn(v.sD), convert_int_sat_rtn(v.sE), convert_int_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rte(float16 v) {
-  return (uint16)(convert_uint_sat_rte(v.s0), convert_uint_sat_rte(v.s1), convert_uint_sat_rte(v.s2), convert_uint_sat_rte(v.s3), convert_uint_sat_rte(v.s4), convert_uint_sat_rte(v.s5), convert_uint_sat_rte(v.s6), convert_uint_sat_rte(v.s7), convert_uint_sat_rte(v.s8), convert_uint_sat_rte(v.s9), convert_uint_sat_rte(v.sA), convert_uint_sat_rte(v.sB), convert_uint_sat_rte(v.sC), convert_uint_sat_rte(v.sD), convert_uint_sat_rte(v.sE), convert_uint_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtz(float16 v) {
-  return (uint16)(convert_uint_sat_rtz(v.s0), convert_uint_sat_rtz(v.s1), convert_uint_sat_rtz(v.s2), convert_uint_sat_rtz(v.s3), convert_uint_sat_rtz(v.s4), convert_uint_sat_rtz(v.s5), convert_uint_sat_rtz(v.s6), convert_uint_sat_rtz(v.s7), convert_uint_sat_rtz(v.s8), convert_uint_sat_rtz(v.s9), convert_uint_sat_rtz(v.sA), convert_uint_sat_rtz(v.sB), convert_uint_sat_rtz(v.sC), convert_uint_sat_rtz(v.sD), convert_uint_sat_rtz(v.sE), convert_uint_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtp(float16 v) {
-  return (uint16)(convert_uint_sat_rtp(v.s0), convert_uint_sat_rtp(v.s1), convert_uint_sat_rtp(v.s2), convert_uint_sat_rtp(v.s3), convert_uint_sat_rtp(v.s4), convert_uint_sat_rtp(v.s5), convert_uint_sat_rtp(v.s6), convert_uint_sat_rtp(v.s7), convert_uint_sat_rtp(v.s8), convert_uint_sat_rtp(v.s9), convert_uint_sat_rtp(v.sA), convert_uint_sat_rtp(v.sB), convert_uint_sat_rtp(v.sC), convert_uint_sat_rtp(v.sD), convert_uint_sat_rtp(v.sE), convert_uint_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uint16 convert_uint16_sat_rtn(float16 v) {
-  return (uint16)(convert_uint_sat_rtn(v.s0), convert_uint_sat_rtn(v.s1), convert_uint_sat_rtn(v.s2), convert_uint_sat_rtn(v.s3), convert_uint_sat_rtn(v.s4), convert_uint_sat_rtn(v.s5), convert_uint_sat_rtn(v.s6), convert_uint_sat_rtn(v.s7), convert_uint_sat_rtn(v.s8), convert_uint_sat_rtn(v.s9), convert_uint_sat_rtn(v.sA), convert_uint_sat_rtn(v.sB), convert_uint_sat_rtn(v.sC), convert_uint_sat_rtn(v.sD), convert_uint_sat_rtn(v.sE), convert_uint_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rte(float16 v) {
-  return (short16)(convert_short_sat_rte(v.s0), convert_short_sat_rte(v.s1), convert_short_sat_rte(v.s2), convert_short_sat_rte(v.s3), convert_short_sat_rte(v.s4), convert_short_sat_rte(v.s5), convert_short_sat_rte(v.s6), convert_short_sat_rte(v.s7), convert_short_sat_rte(v.s8), convert_short_sat_rte(v.s9), convert_short_sat_rte(v.sA), convert_short_sat_rte(v.sB), convert_short_sat_rte(v.sC), convert_short_sat_rte(v.sD), convert_short_sat_rte(v.sE), convert_short_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtz(float16 v) {
-  return (short16)(convert_short_sat_rtz(v.s0), convert_short_sat_rtz(v.s1), convert_short_sat_rtz(v.s2), convert_short_sat_rtz(v.s3), convert_short_sat_rtz(v.s4), convert_short_sat_rtz(v.s5), convert_short_sat_rtz(v.s6), convert_short_sat_rtz(v.s7), convert_short_sat_rtz(v.s8), convert_short_sat_rtz(v.s9), convert_short_sat_rtz(v.sA), convert_short_sat_rtz(v.sB), convert_short_sat_rtz(v.sC), convert_short_sat_rtz(v.sD), convert_short_sat_rtz(v.sE), convert_short_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtp(float16 v) {
-  return (short16)(convert_short_sat_rtp(v.s0), convert_short_sat_rtp(v.s1), convert_short_sat_rtp(v.s2), convert_short_sat_rtp(v.s3), convert_short_sat_rtp(v.s4), convert_short_sat_rtp(v.s5), convert_short_sat_rtp(v.s6), convert_short_sat_rtp(v.s7), convert_short_sat_rtp(v.s8), convert_short_sat_rtp(v.s9), convert_short_sat_rtp(v.sA), convert_short_sat_rtp(v.sB), convert_short_sat_rtp(v.sC), convert_short_sat_rtp(v.sD), convert_short_sat_rtp(v.sE), convert_short_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE short16 convert_short16_sat_rtn(float16 v) {
-  return (short16)(convert_short_sat_rtn(v.s0), convert_short_sat_rtn(v.s1), convert_short_sat_rtn(v.s2), convert_short_sat_rtn(v.s3), convert_short_sat_rtn(v.s4), convert_short_sat_rtn(v.s5), convert_short_sat_rtn(v.s6), convert_short_sat_rtn(v.s7), convert_short_sat_rtn(v.s8), convert_short_sat_rtn(v.s9), convert_short_sat_rtn(v.sA), convert_short_sat_rtn(v.sB), convert_short_sat_rtn(v.sC), convert_short_sat_rtn(v.sD), convert_short_sat_rtn(v.sE), convert_short_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rte(float16 v) {
-  return (ushort16)(convert_ushort_sat_rte(v.s0), convert_ushort_sat_rte(v.s1), convert_ushort_sat_rte(v.s2), convert_ushort_sat_rte(v.s3), convert_ushort_sat_rte(v.s4), convert_ushort_sat_rte(v.s5), convert_ushort_sat_rte(v.s6), convert_ushort_sat_rte(v.s7), convert_ushort_sat_rte(v.s8), convert_ushort_sat_rte(v.s9), convert_ushort_sat_rte(v.sA), convert_ushort_sat_rte(v.sB), convert_ushort_sat_rte(v.sC), convert_ushort_sat_rte(v.sD), convert_ushort_sat_rte(v.sE), convert_ushort_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtz(float16 v) {
-  return (ushort16)(convert_ushort_sat_rtz(v.s0), convert_ushort_sat_rtz(v.s1), convert_ushort_sat_rtz(v.s2), convert_ushort_sat_rtz(v.s3), convert_ushort_sat_rtz(v.s4), convert_ushort_sat_rtz(v.s5), convert_ushort_sat_rtz(v.s6), convert_ushort_sat_rtz(v.s7), convert_ushort_sat_rtz(v.s8), convert_ushort_sat_rtz(v.s9), convert_ushort_sat_rtz(v.sA), convert_ushort_sat_rtz(v.sB), convert_ushort_sat_rtz(v.sC), convert_ushort_sat_rtz(v.sD), convert_ushort_sat_rtz(v.sE), convert_ushort_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtp(float16 v) {
-  return (ushort16)(convert_ushort_sat_rtp(v.s0), convert_ushort_sat_rtp(v.s1), convert_ushort_sat_rtp(v.s2), convert_ushort_sat_rtp(v.s3), convert_ushort_sat_rtp(v.s4), convert_ushort_sat_rtp(v.s5), convert_ushort_sat_rtp(v.s6), convert_ushort_sat_rtp(v.s7), convert_ushort_sat_rtp(v.s8), convert_ushort_sat_rtp(v.s9), convert_ushort_sat_rtp(v.sA), convert_ushort_sat_rtp(v.sB), convert_ushort_sat_rtp(v.sC), convert_ushort_sat_rtp(v.sD), convert_ushort_sat_rtp(v.sE), convert_ushort_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE ushort16 convert_ushort16_sat_rtn(float16 v) {
-  return (ushort16)(convert_ushort_sat_rtn(v.s0), convert_ushort_sat_rtn(v.s1), convert_ushort_sat_rtn(v.s2), convert_ushort_sat_rtn(v.s3), convert_ushort_sat_rtn(v.s4), convert_ushort_sat_rtn(v.s5), convert_ushort_sat_rtn(v.s6), convert_ushort_sat_rtn(v.s7), convert_ushort_sat_rtn(v.s8), convert_ushort_sat_rtn(v.s9), convert_ushort_sat_rtn(v.sA), convert_ushort_sat_rtn(v.sB), convert_ushort_sat_rtn(v.sC), convert_ushort_sat_rtn(v.sD), convert_ushort_sat_rtn(v.sE), convert_ushort_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rte(float16 v) {
-  return (char16)(convert_char_sat_rte(v.s0), convert_char_sat_rte(v.s1), convert_char_sat_rte(v.s2), convert_char_sat_rte(v.s3), convert_char_sat_rte(v.s4), convert_char_sat_rte(v.s5), convert_char_sat_rte(v.s6), convert_char_sat_rte(v.s7), convert_char_sat_rte(v.s8), convert_char_sat_rte(v.s9), convert_char_sat_rte(v.sA), convert_char_sat_rte(v.sB), convert_char_sat_rte(v.sC), convert_char_sat_rte(v.sD), convert_char_sat_rte(v.sE), convert_char_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtz(float16 v) {
-  return (char16)(convert_char_sat_rtz(v.s0), convert_char_sat_rtz(v.s1), convert_char_sat_rtz(v.s2), convert_char_sat_rtz(v.s3), convert_char_sat_rtz(v.s4), convert_char_sat_rtz(v.s5), convert_char_sat_rtz(v.s6), convert_char_sat_rtz(v.s7), convert_char_sat_rtz(v.s8), convert_char_sat_rtz(v.s9), convert_char_sat_rtz(v.sA), convert_char_sat_rtz(v.sB), convert_char_sat_rtz(v.sC), convert_char_sat_rtz(v.sD), convert_char_sat_rtz(v.sE), convert_char_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtp(float16 v) {
-  return (char16)(convert_char_sat_rtp(v.s0), convert_char_sat_rtp(v.s1), convert_char_sat_rtp(v.s2), convert_char_sat_rtp(v.s3), convert_char_sat_rtp(v.s4), convert_char_sat_rtp(v.s5), convert_char_sat_rtp(v.s6), convert_char_sat_rtp(v.s7), convert_char_sat_rtp(v.s8), convert_char_sat_rtp(v.s9), convert_char_sat_rtp(v.sA), convert_char_sat_rtp(v.sB), convert_char_sat_rtp(v.sC), convert_char_sat_rtp(v.sD), convert_char_sat_rtp(v.sE), convert_char_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE char16 convert_char16_sat_rtn(float16 v) {
-  return (char16)(convert_char_sat_rtn(v.s0), convert_char_sat_rtn(v.s1), convert_char_sat_rtn(v.s2), convert_char_sat_rtn(v.s3), convert_char_sat_rtn(v.s4), convert_char_sat_rtn(v.s5), convert_char_sat_rtn(v.s6), convert_char_sat_rtn(v.s7), convert_char_sat_rtn(v.s8), convert_char_sat_rtn(v.s9), convert_char_sat_rtn(v.sA), convert_char_sat_rtn(v.sB), convert_char_sat_rtn(v.sC), convert_char_sat_rtn(v.sD), convert_char_sat_rtn(v.sE), convert_char_sat_rtn(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rte(float16 v) {
-  return (uchar16)(convert_uchar_sat_rte(v.s0), convert_uchar_sat_rte(v.s1), convert_uchar_sat_rte(v.s2), convert_uchar_sat_rte(v.s3), convert_uchar_sat_rte(v.s4), convert_uchar_sat_rte(v.s5), convert_uchar_sat_rte(v.s6), convert_uchar_sat_rte(v.s7), convert_uchar_sat_rte(v.s8), convert_uchar_sat_rte(v.s9), convert_uchar_sat_rte(v.sA), convert_uchar_sat_rte(v.sB), convert_uchar_sat_rte(v.sC), convert_uchar_sat_rte(v.sD), convert_uchar_sat_rte(v.sE), convert_uchar_sat_rte(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtz(float16 v) {
-  return (uchar16)(convert_uchar_sat_rtz(v.s0), convert_uchar_sat_rtz(v.s1), convert_uchar_sat_rtz(v.s2), convert_uchar_sat_rtz(v.s3), convert_uchar_sat_rtz(v.s4), convert_uchar_sat_rtz(v.s5), convert_uchar_sat_rtz(v.s6), convert_uchar_sat_rtz(v.s7), convert_uchar_sat_rtz(v.s8), convert_uchar_sat_rtz(v.s9), convert_uchar_sat_rtz(v.sA), convert_uchar_sat_rtz(v.sB), convert_uchar_sat_rtz(v.sC), convert_uchar_sat_rtz(v.sD), convert_uchar_sat_rtz(v.sE), convert_uchar_sat_rtz(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtp(float16 v) {
-  return (uchar16)(convert_uchar_sat_rtp(v.s0), convert_uchar_sat_rtp(v.s1), convert_uchar_sat_rtp(v.s2), convert_uchar_sat_rtp(v.s3), convert_uchar_sat_rtp(v.s4), convert_uchar_sat_rtp(v.s5), convert_uchar_sat_rtp(v.s6), convert_uchar_sat_rtp(v.s7), convert_uchar_sat_rtp(v.s8), convert_uchar_sat_rtp(v.s9), convert_uchar_sat_rtp(v.sA), convert_uchar_sat_rtp(v.sB), convert_uchar_sat_rtp(v.sC), convert_uchar_sat_rtp(v.sD), convert_uchar_sat_rtp(v.sE), convert_uchar_sat_rtp(v.sF));
-}
-
-INLINE OVERLOADABLE uchar16 convert_uchar16_sat_rtn(float16 v) {
-  return (uchar16)(convert_uchar_sat_rtn(v.s0), convert_uchar_sat_rtn(v.s1), convert_uchar_sat_rtn(v.s2), convert_uchar_sat_rtn(v.s3), convert_uchar_sat_rtn(v.s4), convert_uchar_sat_rtn(v.s5), convert_uchar_sat_rtn(v.s6), convert_uchar_sat_rtn(v.s7), convert_uchar_sat_rtn(v.s8), convert_uchar_sat_rtn(v.s9), convert_uchar_sat_rtn(v.sA), convert_uchar_sat_rtn(v.sB), convert_uchar_sat_rtn(v.sC), convert_uchar_sat_rtn(v.sD), convert_uchar_sat_rtn(v.sE), convert_uchar_sat_rtn(v.sF));
-}
-
diff --git a/backend/src/ocl_memcpy.ll b/backend/src/ocl_memcpy.ll
deleted file mode 100644
index 476033e..0000000
--- a/backend/src/ocl_memcpy.ll
+++ /dev/null
@@ -1,336 +0,0 @@
-;The memcpy's source code.
-; INLINE_OVERLOADABLE void __gen_memcpy(uchar* dst, uchar* src, size_t size) {
-;   size_t index = 0;
-;   while((index + 4) >= size) {
-;     *((uint *)(dst + index)) = *((uint *)(src + index));
-;     index += 4;
-;   }
-;   while(index < size) {
-;     dst[index] = src[index];
-;     index++;
-;   }
-; }
-
-define void @__gen_memcpy_gg(i8 addrspace(1)* %dst, i8 addrspace(1)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(1)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(1)* %add.ptr to i32 addrspace(1)*
-  %1 = load i32 addrspace(1)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(1)* %add.ptr1 to i32 addrspace(1)*
-  store i32 %1, i32 addrspace(1)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(1)* %src, i32 %index.1
-  %3 = load i8 addrspace(1)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(1)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_gp(i8 addrspace(1)* %dst, i8 addrspace(0)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(0)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(0)* %add.ptr to i32 addrspace(0)*
-  %1 = load i32 addrspace(0)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(1)* %add.ptr1 to i32 addrspace(1)*
-  store i32 %1, i32 addrspace(1)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(0)* %src, i32 %index.1
-  %3 = load i8 addrspace(0)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(1)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_gl(i8 addrspace(1)* %dst, i8 addrspace(3)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(3)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(3)* %add.ptr to i32 addrspace(3)*
-  %1 = load i32 addrspace(3)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(1)* %add.ptr1 to i32 addrspace(1)*
-  store i32 %1, i32 addrspace(1)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(3)* %src, i32 %index.1
-  %3 = load i8 addrspace(3)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(1)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_pg(i8 addrspace(0)* %dst, i8 addrspace(1)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(1)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(1)* %add.ptr to i32 addrspace(1)*
-  %1 = load i32 addrspace(1)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(0)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(0)* %add.ptr1 to i32 addrspace(0)*
-  store i32 %1, i32 addrspace(0)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(1)* %src, i32 %index.1
-  %3 = load i8 addrspace(1)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(0)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(0)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_pp(i8 addrspace(0)* %dst, i8 addrspace(0)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(0)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(0)* %add.ptr to i32 addrspace(0)*
-  %1 = load i32 addrspace(0)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(0)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(0)* %add.ptr1 to i32 addrspace(0)*
-  store i32 %1, i32 addrspace(0)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(0)* %src, i32 %index.1
-  %3 = load i8 addrspace(0)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(0)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(0)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_pl(i8 addrspace(0)* %dst, i8 addrspace(3)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(3)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(3)* %add.ptr to i32 addrspace(3)*
-  %1 = load i32 addrspace(3)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(0)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(0)* %add.ptr1 to i32 addrspace(0)*
-  store i32 %1, i32 addrspace(0)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(3)* %src, i32 %index.1
-  %3 = load i8 addrspace(3)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(0)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(0)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_lg(i8 addrspace(3)* %dst, i8 addrspace(1)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(1)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(1)* %add.ptr to i32 addrspace(1)*
-  %1 = load i32 addrspace(1)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(3)* %add.ptr1 to i32 addrspace(3)*
-  store i32 %1, i32 addrspace(3)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(1)* %src, i32 %index.1
-  %3 = load i8 addrspace(1)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(3)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_lp(i8 addrspace(3)* %dst, i8 addrspace(0)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(0)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(0)* %add.ptr to i32 addrspace(0)*
-  %1 = load i32 addrspace(0)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(3)* %add.ptr1 to i32 addrspace(3)*
-  store i32 %1, i32 addrspace(3)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(0)* %src, i32 %index.1
-  %3 = load i8 addrspace(0)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(3)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
-
-define void @__gen_memcpy_ll(i8 addrspace(3)* %dst, i8 addrspace(3)* %src, i32 %size) nounwind alwaysinline {
-entry:
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond3, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(3)* %src, i32 %index.0
-  %0 = bitcast i8 addrspace(3)* %add.ptr to i32 addrspace(3)*
-  %1 = load i32 addrspace(3)* %0, align 4
-  %add.ptr1 = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.0
-  %2 = bitcast i8 addrspace(3)* %add.ptr1 to i32 addrspace(3)*
-  store i32 %1, i32 addrspace(3)* %2, align 4
-  br label %while.cond
-
-while.cond3:                                      ; preds = %while.cond, %while.body5
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body5 ]
-  %cmp4 = icmp ult i32 %index.1, %size
-  br i1 %cmp4, label %while.body5, label %while.end7
-
-while.body5:                                      ; preds = %while.cond3
-  %arrayidx = getelementptr inbounds i8 addrspace(3)* %src, i32 %index.1
-  %3 = load i8 addrspace(3)* %arrayidx, align 1
-  %arrayidx6 = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.1
-  store i8 %3, i8 addrspace(3)* %arrayidx6, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond3
-
-while.end7:                                       ; preds = %while.cond3
-  ret void
-}
diff --git a/backend/src/ocl_memset.ll b/backend/src/ocl_memset.ll
deleted file mode 100644
index addf9f5..0000000
--- a/backend/src/ocl_memset.ll
+++ /dev/null
@@ -1,127 +0,0 @@
-;The memset's source code.
-; INLINE_OVERLOADABLE void __gen_memset(uchar* dst, uchar val, size_t size) {
-;   size_t index = 0;
-;   uint v = (val << 24) | (val << 16) | (val << 8) | val;
-;   while((index + 4) >= size) {
-;     *((uint *)(dst + index)) = v;
-;     index += 4;
-;   }
-;   while(index < size) {
-;     dst[index] = val;
-;     index++;
-;  }
-; }
-
-define void @__gen_memset_p(i8* %dst, i8 zeroext %val, i32 %size) nounwind alwaysinline {
-entry:
-  %conv = zext i8 %val to i32
-  %shl = shl nuw i32 %conv, 24
-  %shl2 = shl nuw nsw i32 %conv, 16
-  %or = or i32 %shl, %shl2
-  %shl4 = shl nuw nsw i32 %conv, 8
-  %or5 = or i32 %or, %shl4
-  %or7 = or i32 %or5, %conv
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond10, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8* %dst, i32 %index.0
-  %0 = bitcast i8* %add.ptr to i32*
-  store i32 %or7, i32* %0, align 4
-  br label %while.cond
-
-while.cond10:                                     ; preds = %while.cond, %while.body13
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body13 ]
-  %cmp11 = icmp ult i32 %index.1, %size
-  br i1 %cmp11, label %while.body13, label %while.end14
-
-while.body13:                                     ; preds = %while.cond10
-  %arrayidx = getelementptr inbounds i8* %dst, i32 %index.1
-  store i8 %val, i8* %arrayidx, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond10
-
-while.end14:                                      ; preds = %while.cond10
-  ret void
-}
-
-define void @__gen_memset_g(i8 addrspace(1)* %dst, i8 zeroext %val, i32 %size) nounwind alwaysinline {
-entry:
-  %conv = zext i8 %val to i32
-  %shl = shl nuw i32 %conv, 24
-  %shl2 = shl nuw nsw i32 %conv, 16
-  %or = or i32 %shl, %shl2
-  %shl4 = shl nuw nsw i32 %conv, 8
-  %or5 = or i32 %or, %shl4
-  %or7 = or i32 %or5, %conv
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond10, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.0
-  %0 = bitcast i8 addrspace(1)* %add.ptr to i32 addrspace(1)*
-  store i32 %or7, i32 addrspace(1)* %0, align 4
-  br label %while.cond
-
-while.cond10:                                     ; preds = %while.cond, %while.body13
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body13 ]
-  %cmp11 = icmp ult i32 %index.1, %size
-  br i1 %cmp11, label %while.body13, label %while.end14
-
-while.body13:                                     ; preds = %while.cond10
-  %arrayidx = getelementptr inbounds i8 addrspace(1)* %dst, i32 %index.1
-  store i8 %val, i8 addrspace(1)* %arrayidx, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond10
-
-while.end14:                                      ; preds = %while.cond10
-  ret void
-}
-
-define void @__gen_memset_l(i8 addrspace(3)* %dst, i8 zeroext %val, i32 %size) nounwind alwaysinline {
-entry:
-  %conv = zext i8 %val to i32
-  %shl = shl nuw i32 %conv, 24
-  %shl2 = shl nuw nsw i32 %conv, 16
-  %or = or i32 %shl, %shl2
-  %shl4 = shl nuw nsw i32 %conv, 8
-  %or5 = or i32 %or, %shl4
-  %or7 = or i32 %or5, %conv
-  br label %while.cond
-
-while.cond:                                       ; preds = %while.body, %entry
-  %index.0 = phi i32 [ 0, %entry ], [ %add, %while.body ]
-  %add = add i32 %index.0, 4
-  %cmp = icmp ult i32 %add, %size
-  br i1 %cmp, label %while.cond10, label %while.body
-
-while.body:                                       ; preds = %while.cond
-  %add.ptr = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.0
-  %0 = bitcast i8 addrspace(3)* %add.ptr to i32 addrspace(3)*
-  store i32 %or7, i32 addrspace(3)* %0, align 4
-  br label %while.cond
-
-while.cond10:                                     ; preds = %while.cond, %while.body13
-  %index.1 = phi i32 [ %index.0, %while.cond ], [ %inc, %while.body13 ]
-  %cmp11 = icmp ult i32 %index.1, %size
-  br i1 %cmp11, label %while.body13, label %while.end14
-
-while.body13:                                     ; preds = %while.cond10
-  %arrayidx = getelementptr inbounds i8 addrspace(3)* %dst, i32 %index.1
-  store i8 %val, i8 addrspace(3)* %arrayidx, align 1
-  %inc = add i32 %index.1, 1
-  br label %while.cond10
-
-while.end14:                                      ; preds = %while.cond10
-  ret void
-}
diff --git a/backend/src/ocl_stdlib.tmpl.h b/backend/src/ocl_stdlib.tmpl.h
deleted file mode 100755
index 01bcbef..0000000
--- a/backend/src/ocl_stdlib.tmpl.h
+++ /dev/null
@@ -1,5149 +0,0 @@
-/*
- * Copyright © 2012 Intel Corporation
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Author: Benjamin Segovia <benjamin.segovia at intel.com>
- */
-
-#ifndef __GEN_OCL_STDLIB_H__
-#define __GEN_OCL_STDLIB_H__
-
-#define INLINE inline __attribute__((always_inline))
-#define OVERLOADABLE __attribute__((overloadable))
-#define PURE __attribute__((pure))
-#define CONST __attribute__((const))
-#define INLINE_OVERLOADABLE inline __attribute__((overloadable,always_inline))
-// FIXME, clang's opencl FE doesn't support static.
-#define static
-
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL built-in scalar data types
-/////////////////////////////////////////////////////////////////////////////
-typedef unsigned char uchar;
-typedef unsigned short ushort;
-typedef unsigned int uint;
-typedef unsigned long ulong;
-typedef __typeof__(sizeof(int)) size_t;
-typedef __typeof__((int *)0-(int *)0) ptrdiff_t;
-typedef signed int intptr_t;
-typedef unsigned int uintptr_t;
-
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL address space
-/////////////////////////////////////////////////////////////////////////////
-// These are built-ins in LLVM 3.3.
-#if 100*__clang_major__ + __clang_minor__ <= 302
-#define __private __attribute__((address_space(0)))
-#define __global __attribute__((address_space(1)))
-#define __constant __attribute__((address_space(2)))
-#define __local __attribute__((address_space(3)))
-#define global __global
-#define local __local
-#define constant __constant
-#define private __private
-#endif
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : enable
-
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL built-in vector data types
-/////////////////////////////////////////////////////////////////////////////
-#define DEF(type) typedef type type##2 __attribute__((ext_vector_type(2)));\
-                  typedef type type##3 __attribute__((ext_vector_type(3)));\
-                  typedef type type##4 __attribute__((ext_vector_type(4)));\
-                  typedef type type##8 __attribute__((ext_vector_type(8)));\
-                  typedef type type##16 __attribute__((ext_vector_type(16)));
-DEF(char);
-DEF(uchar);
-DEF(short);
-DEF(ushort);
-DEF(int);
-DEF(uint);
-DEF(long);
-DEF(ulong);
-DEF(float);
-DEF(double);
-#undef DEF
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL other built-in data types
-/////////////////////////////////////////////////////////////////////////////
-// FIXME:
-// This is a transitional hack to bypass the LLVM 3.3 built-in types.
-// See the Khronos SPIR specification for handling of these types.
-#define __texture __attribute__((address_space(4)))
-struct _image1d_t;
-typedef __texture struct _image1d_t* __image1d_t;
-struct _image1d_buffer_t;
-typedef __texture struct _image1d_buffer_t* __image1d_buffer_t;
-struct _image1d_array_t;
-typedef __texture struct _image1d_array_t* __image1d_array_t;
-struct _image2d_t;
-typedef __texture struct _image2d_t* __image2d_t;
-struct _image2d_array_t;
-typedef __texture struct _image2d_array_t* __image2d_array_t;
-struct _image3d_t;
-typedef __texture struct _image3d_t* __image3d_t;
-typedef const ushort __sampler_t;
-typedef size_t __event_t;
-#define image1d_t __image1d_t
-#define image1d_buffer_t __image1d_buffer_t
-#define image1d_array_t __image1d_array_t
-#define image2d_t __image2d_t
-#define image2d_array_t __image2d_array_t
-#define image3d_t __image3d_t
-#define sampler_t __sampler_t
-#define event_t __event_t
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL conversions & type casting
-/////////////////////////////////////////////////////////////////////////////
-
-// ##BEGIN_AS##
-
-// ##END_AS##
-
-// ##BEGIN_CONVERT##
-
-// ##END_CONVERT##
-
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL preprocessor directives & macros
-/////////////////////////////////////////////////////////////////////////////
-#define __OPENCL_VERSION__ 110
-#define __CL_VERSION_1_0__ 100
-#define __CL_VERSION_1_1__ 110
-#define __ENDIAN_LITTLE__ 1
-#define __IMAGE_SUPPORT__ 1
-#define __kernel_exec(X, TYPE) __kernel __attribute__((work_group_size_hint(X,1,1))) \
-                                        __attribute__((vec_type_hint(TYPE)))
-#define kernel_exec(X, TYPE) __kernel_exec(X, TYPE)
-#define cl_khr_global_int32_base_atomics
-#define cl_khr_global_int32_extended_atomics
-#define cl_khr_local_int32_base_atomics
-#define cl_khr_local_int32_extended_atomics
-#define cl_khr_byte_addressable_store
-#define cl_khr_icd
-#define cl_khr_gl_sharing
-
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL floating-point macros and pragmas
-/////////////////////////////////////////////////////////////////////////////
-#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_ONE 1.0000000000e+00         /* 0x3F800000 */
-#define FLT_MAX 0x1.fffffep127f
-#define FLT_MIN 0x1.0p-126f
-#define FLT_EPSILON 0x1.0p-23f
-
-#define MAXFLOAT     3.40282347e38F
-INLINE_OVERLOADABLE float __ocl_inff(void) {
-  union { uint u; float f; } u;
-  u.u = 0x7F800000;
-  return u.f;
-}
-INLINE_OVERLOADABLE float __ocl_nanf(void) {
-  union { uint u; float f; } u;
-  u.u = 0x7F800001;
-  return u.f;
-}
-typedef union
-{
-  float value;
-  uint  word;
-} float_shape_type;
-
-/* Get a 32 bit int from a float.  */
-#ifndef GEN_OCL_GET_FLOAT_WORD
-# define GEN_OCL_GET_FLOAT_WORD(i,d)  \
-do {                                  \
-  float_shape_type gf_u;              \
-  gf_u.value = (d);                   \
-  (i) = gf_u.word;                    \
-} while (0)
-#endif
-/* Set a float from a 32 bit int.  */
-#ifndef GEN_OCL_SET_FLOAT_WORD
-# define GEN_OCL_SET_FLOAT_WORD(d,i)  \
-do {                                  \
-  float_shape_type sf_u;              \
-  sf_u.word = (i);                    \
-  (d) = sf_u.value;                   \
-} while (0)
-#endif
-
-INLINE_OVERLOADABLE int __ocl_finitef (float x){
-  unsigned ix;
-  GEN_OCL_GET_FLOAT_WORD (ix, x);
-  return (ix & 0x7fffffff) < 0x7f800000;
-}
-
-#define HUGE_VALF    (__ocl_inff())
-#define INFINITY     (__ocl_inff())
-#define NAN          (__ocl_nanf())
-#define M_E_F        2.718281828459045F
-#define M_LOG2E_F    1.4426950408889634F
-#define M_LOG10E_F   0.43429448190325176F
-#define M_LN2_F      0.6931471805599453F
-#define M_LN10_F     2.302585092994046F
-#define M_PI_F       3.141592653589793F
-#define M_PI_2_F     1.5707963267948966F
-#define M_PI_4_F     0.7853981633974483F
-#define M_1_PI_F     0.3183098861837907F
-#define M_2_PI_F     0.6366197723675814F
-#define M_2_SQRTPI_F 1.1283791670955126F
-#define M_SQRT2_F    1.4142135623730951F
-#define M_SQRT1_2_F  0.7071067811865476F
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL integer built-in macros
-/////////////////////////////////////////////////////////////////////////////
-#define CHAR_BIT    8
-#define CHAR_MAX    SCHAR_MAX
-#define CHAR_MIN    SCHAR_MIN
-#define INT_MAX     2147483647
-#define INT_MIN     (-2147483647 - 1)
-#define LONG_MAX    0x7fffffffffffffffL
-#define LONG_MIN    (-0x7fffffffffffffffL - 1)
-#define SCHAR_MAX   127
-#define SCHAR_MIN   (-127 - 1)
-#define SHRT_MAX    32767
-#define SHRT_MIN    (-32767 - 1)
-#define UCHAR_MAX   255
-#define USHRT_MAX   65535
-#define UINT_MAX    0xffffffff
-#define ULONG_MAX   0xffffffffffffffffUL
-/////////////////////////////////////////////////////////////////////////////
-// OpenCL relational built-in functions
-/////////////////////////////////////////////////////////////////////////////
-
-int INLINE_OVERLOADABLE isequal(float x, float y) { return x == y; }
-int INLINE_OVERLOADABLE isnotequal(float x, float y) { return x != y; }
-int INLINE_OVERLOADABLE isgreater(float x, float y) { return x > y; }
-int INLINE_OVERLOADABLE isgreaterequal(float x, float y) { return x >= y; }
-int INLINE_OVERLOADABLE isless(float x, float y) { return x < y; }
-int INLINE_OVERLOADABLE islessequal(float x, float y) { return x <= y; }
-int INLINE_OVERLOADABLE islessgreater(float x, float y) { return (x < y) || (x > y); }
-
-#define SDEF(TYPE)                                                              \
-OVERLOADABLE TYPE ocl_sadd_sat(TYPE x, TYPE y);                          \
-OVERLOADABLE TYPE ocl_ssub_sat(TYPE x, TYPE y);                          \
-INLINE_OVERLOADABLE TYPE add_sat(TYPE x, TYPE y) { return ocl_sadd_sat(x, y); } \
-INLINE_OVERLOADABLE TYPE sub_sat(TYPE x, TYPE y) { return ocl_ssub_sat(x, y); }
-SDEF(char);
-SDEF(short);
-#undef SDEF
-OVERLOADABLE int ocl_sadd_sat(int x, int y);
-INLINE_OVERLOADABLE int add_sat(int x, int y) { return ocl_sadd_sat(x, y); }
-OVERLOADABLE int ocl_ssub_sat(int x, int y);
-INLINE_OVERLOADABLE int sub_sat(int x, int y) {
-  return (y == 0x80000000u) ? (x & 0x7FFFFFFF) : ocl_ssub_sat(x, y);
-}
-OVERLOADABLE long ocl_sadd_sat(long x, long y);
-INLINE_OVERLOADABLE long add_sat(long x, long y) {
-  union {long l; uint i[2];} ux, uy;
-  ux.l = x;
-  uy.l = y;
-  if((ux.i[1] ^ uy.i[1]) & 0x80000000u)
-    return x + y;
-  return ocl_sadd_sat(x, y);
-}
-OVERLOADABLE long ocl_ssub_sat(long x, long y);
-INLINE_OVERLOADABLE long sub_sat(long x, long y) {
-  union {long l; uint i[2];} ux, uy;
-  ux.l = x;
-  uy.l = y;
-  if((ux.i[1] ^ uy.i[1]) & 0x80000000u)
-    return ocl_ssub_sat(x, y);
-  return x - y;
-}
-#define UDEF(TYPE)                                                              \
-OVERLOADABLE TYPE ocl_uadd_sat(TYPE x, TYPE y);                          \
-OVERLOADABLE TYPE ocl_usub_sat(TYPE x, TYPE y);                          \
-INLINE_OVERLOADABLE TYPE add_sat(TYPE x, TYPE y) { return ocl_uadd_sat(x, y); } \
-INLINE_OVERLOADABLE TYPE sub_sat(TYPE x, TYPE y) { return ocl_usub_sat(x, y); }
-UDEF(uchar);
-UDEF(ushort);
-UDEF(uint);
-UDEF(ulong);
-#undef UDEF
-
-INLINE_OVERLOADABLE int isfinite(float x) {
-  union { uint u; float f; } u;
-  u.f = x;
-  return (u.u & 0x7FFFFFFF) < 0x7F800000;
-}
-INLINE_OVERLOADABLE int isinf(float x) {
-  union { uint u; float f; } u;
-  u.f = x;
-  return (u.u & 0x7FFFFFFF) == 0x7F800000;
-}
-INLINE_OVERLOADABLE int isnan(float x) {
-  return x != x;
-}
-INLINE_OVERLOADABLE int isnormal(float x) {
-  union { uint u; float f; } u;
-  u.f = x;
-  u.u &= 0x7FFFFFFF;
-  return (u.u < 0x7F800000) && (u.u >= 0x800000);
-}
-INLINE_OVERLOADABLE int isordered(float x, float y) { return isequal(x, x) && isequal(y, y); }
-INLINE_OVERLOADABLE int isunordered(float x, float y) { return isnan(x) || isnan(y); }
-INLINE_OVERLOADABLE int signbit(float x) {
-  union { uint u; float f; } u;
-  u.f = x;
-  return u.u >> 31;
-}
-
-#define DEC1(type) INLINE_OVERLOADABLE int any(type a) { return a<0; }
-#define DEC2(type) INLINE_OVERLOADABLE int any(type a) { return a.s0<0 || a.s1<0; }
-#define DEC3(type) INLINE_OVERLOADABLE int any(type a) { return a.s0<0 || a.s1<0 || a.s2<0; }
-#define DEC4(type) INLINE_OVERLOADABLE int any(type a) { return a.s0<0 || a.s1<0 || a.s2<0 || a.s3<0; }
-#define DEC8(type) INLINE_OVERLOADABLE int any(type a) { return a.s0<0 || a.s1<0 || a.s2<0 || a.s3<0 || a.s4<0 || a.s5<0 || a.s6<0 || a.s7<0; }
-#define DEC16(type) INLINE_OVERLOADABLE int any(type a) { return a.s0<0 || a.s1<0 || a.s2<0 || a.s3<0 || a.s4<0 || a.s5<0 || a.s6<0 || a.s7<0 || a.s8<0 || a.s9<0 || a.sA<0 || a.sB<0 || a.sC<0 || a.sD<0 || a.sE<0 || a.sF<0; }
-DEC1(char);
-DEC1(short);
-DEC1(int);
-DEC1(long);
-#define DEC(n) DEC##n(char##n); DEC##n(short##n); DEC##n(int##n); DEC##n(long##n);
-DEC(2);
-DEC(3);
-DEC(4);
-DEC(8);
-DEC(16);
-#undef DEC
-#undef DEC1
-#undef DEC2
-#undef DEC3
-#undef DEC4
-#undef DEC8
-#undef DEC16
-#define DEC1(type) INLINE_OVERLOADABLE int all(type a) { return a<0; }
-#define DEC2(type) INLINE_OVERLOADABLE int all(type a) { return a.s0<0 && a.s1<0; }
-#define DEC3(type) INLINE_OVERLOADABLE int all(type a) { return a.s0<0 && a.s1<0 && a.s2<0; }
-#define DEC4(type) INLINE_OVERLOADABLE int all(type a) { return a.s0<0 && a.s1<0 && a.s2<0 && a.s3<0; }
-#define DEC8(type) INLINE_OVERLOADABLE int all(type a) { return a.s0<0 && a.s1<0 && a.s2<0 && a.s3<0 && a.s4<0 && a.s5<0 && a.s6<0 && a.s7<0; }
-#define DEC16(type) INLINE_OVERLOADABLE int all(type a) { return a.s0<0 && a.s1<0 && a.s2<0 && a.s3<0 && a.s4<0 && a.s5<0 && a.s6<0 && a.s7<0 && a.s8<0 && a.s9<0 && a.sA<0 && a.sB<0 && a.sC<0 && a.sD<0 && a.sE<0 && a.sF<0; }
-DEC1(char);
-DEC1(short);
-DEC1(int);
-DEC1(long);
-#define DEC(n) DEC##n(char##n); DEC##n(short##n); DEC##n(int##n); DEC##n(long##n);
-DEC(2);
-DEC(3);
-DEC(4);
-DEC(8);
-DEC(16);
-#undef DEC
-#undef DEC1
-#undef DEC2
-#undef DEC3
-#undef DEC4
-#undef DEC8
-#undef DEC16
-
-#define DEF(type) INLINE_OVERLOADABLE type bitselect(type a, type b, type c) { return (a & ~c) | (b & c); }
-DEF(char); DEF(uchar); DEF(short); DEF(ushort); DEF(int); DEF(uint)
-DEF(long); DEF(ulong)
-#undef DEF
-INLINE_OVERLOADABLE float bitselect(float a, float b, float c) {
-  return as_float(bitselect(as_int(a), as_int(b), as_int(c)));
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Integer built-in functions
-/////////////////////////////////////////////////////////////////////////////
-PURE CONST uint __gen_ocl_fbh(uint);
-PURE CONST uint __gen_ocl_fbl(uint);
-
-INLINE_OVERLOADABLE char clz(char x) {
-  if (x < 0)
-    return 0;
-  if (x == 0)
-    return 8;
-  return __gen_ocl_fbh(x) - 24;
-}
-
-INLINE_OVERLOADABLE uchar clz(uchar x) {
-  if (x == 0)
-    return 8;
-  return __gen_ocl_fbh(x) - 24;
-}
-
-INLINE_OVERLOADABLE short clz(short x) {
-  if (x < 0)
-    return 0;
-  if (x == 0)
-    return 16;
-  return __gen_ocl_fbh(x) - 16;
-}
-
-INLINE_OVERLOADABLE ushort clz(ushort x) {
-  if (x == 0)
-    return 16;
-  return __gen_ocl_fbh(x) - 16;
-}
-
-INLINE_OVERLOADABLE int clz(int x) {
-  if (x < 0)
-    return 0;
-  if (x == 0)
-    return 32;
-  return __gen_ocl_fbh(x);
-}
-
-INLINE_OVERLOADABLE uint clz(uint x) {
-  if (x == 0)
-    return 32;
-  return __gen_ocl_fbh(x);
-}
-
-INLINE_OVERLOADABLE long clz(long x) {
-  union { int i[2]; long x; } u;
-  u.x = x;
-  if (u.i[1] & 0x80000000u)
-    return 0;
-  if (u.i[1] == 0 && u.i[0] == 0)
-    return 64;
-  uint v = clz(u.i[1]);
-  if(v == 32)
-    v += clz(u.i[0]);
-  return v;
-}
-
-INLINE_OVERLOADABLE ulong clz(ulong x) {
-  if (x == 0)
-    return 64;
-  union { uint i[2]; ulong x; } u;
-  u.x = x;
-  uint v = clz(u.i[1]);
-  if(v == 32)
-    v += clz(u.i[0]);
-  return v;
-}
-
-OVERLOADABLE int __gen_ocl_mul_hi(int x, int y);
-OVERLOADABLE uint __gen_ocl_mul_hi(uint x, uint y);
-OVERLOADABLE long __gen_ocl_mul_hi(long x, long y);
-OVERLOADABLE ulong __gen_ocl_mul_hi(ulong x, ulong y);
-INLINE_OVERLOADABLE char mul_hi(char x, char y) { return (x * y) >> 8; }
-INLINE_OVERLOADABLE uchar mul_hi(uchar x, uchar y) { return (x * y) >> 8; }
-INLINE_OVERLOADABLE short mul_hi(short x, short y) { return (x * y) >> 16; }
-INLINE_OVERLOADABLE ushort mul_hi(ushort x, ushort y) { return (x * y) >> 16; }
-INLINE_OVERLOADABLE int mul_hi(int x, int y) { return __gen_ocl_mul_hi(x, y); }
-INLINE_OVERLOADABLE uint mul_hi(uint x, uint y) { return __gen_ocl_mul_hi(x, y); }
-INLINE_OVERLOADABLE long mul_hi(long x, long y) {
-  return __gen_ocl_mul_hi(x, y);
-}
-INLINE_OVERLOADABLE ulong mul_hi(ulong x, ulong y) {
-  return __gen_ocl_mul_hi(x, y);
-}
-
-#define DEF(type) INLINE_OVERLOADABLE type mad_hi(type a, type b, type c) { return mul_hi(a, b) + c; }
-DEF(char)
-DEF(uchar)
-DEF(short)
-DEF(ushort)
-DEF(int)
-DEF(uint)
-DEF(long)
-DEF(ulong)
-#undef DEF
-
-INLINE_OVERLOADABLE int mul24(int a, int b) { return ((a << 8) >> 8) * ((b << 8) >> 8); }
-INLINE_OVERLOADABLE uint mul24(uint a, uint b) { return (a & 0xFFFFFF) * (b & 0xFFFFFF); }
-
-INLINE_OVERLOADABLE int mad24(int a, int b, int c) { return mul24(a, b) + c; }
-INLINE_OVERLOADABLE uint mad24(uint a, uint b, uint c) { return mul24(a, b) + c; }
-
-INLINE_OVERLOADABLE char mad_sat(char a, char b, char c) {
-  int x = (int)a * (int)b + (int)c;
-  if (x > 127)
-    x = 127;
-  if (x < -128)
-    x = -128;
-  return x;
-}
-
-INLINE_OVERLOADABLE uchar mad_sat(uchar a, uchar b, uchar c) {
-  uint x = (uint)a * (uint)b + (uint)c;
-  if (x > 255)
-    x = 255;
-  return x;
-}
-
-INLINE_OVERLOADABLE short mad_sat(short a, short b, short c) {
-  int x = (int)a * (int)b + (int)c;
-  if (x > 32767)
-    x = 32767;
-  if (x < -32768)
-    x = -32768;
-  return x;
-}
-
-INLINE_OVERLOADABLE ushort mad_sat(ushort a, ushort b, ushort c) {
-  uint x = (uint)a * (uint)b + (uint)c;
-  if (x > 65535)
-    x = 65535;
-  return x;
-}
-
-INLINE_OVERLOADABLE int mad_sat(int a, int b, int c) {
-  long x = (long)a * (long)b + (long)c;
-  if (x > 0x7FFFFFFF)
-    x = 0x7FFFFFFF;
-  else if (x < -0x7FFFFFFF-1)
-    x = -0x7FFFFFFF-1;
-  return (int)x;
-}
-
-INLINE_OVERLOADABLE uint mad_sat(uint a, uint b, uint c) {
-  ulong x = (ulong)a * (ulong)b + (ulong)c;
-  if (x > 0xFFFFFFFFu)
-    x = 0xFFFFFFFFu;
-  return (uint)x;
-}
-
-OVERLOADABLE long __gen_ocl_mad_sat(long a, long b, long c);
-OVERLOADABLE ulong __gen_ocl_mad_sat(ulong a, ulong b, ulong c);
-
-INLINE_OVERLOADABLE long mad_sat(long a, long b, long c) {
-  return __gen_ocl_mad_sat(a, b, c);
-}
-
-INLINE_OVERLOADABLE ulong mad_sat(ulong a, ulong b, ulong c) {
-  return __gen_ocl_mad_sat(a, b, c);
-}
-
-INLINE_OVERLOADABLE uchar __rotate_left(uchar x, uchar y) { return (x << y) | (x >> (8 - y)); }
-INLINE_OVERLOADABLE char __rotate_left(char x, char y) { return __rotate_left((uchar)x, (uchar)y); }
-INLINE_OVERLOADABLE ushort __rotate_left(ushort x, ushort y) { return (x << y) | (x >> (16 - y)); }
-INLINE_OVERLOADABLE short __rotate_left(short x, short y) { return __rotate_left((ushort)x, (ushort)y); }
-INLINE_OVERLOADABLE uint __rotate_left(uint x, uint y) { return (x << y) | (x >> (32 - y)); }
-INLINE_OVERLOADABLE int __rotate_left(int x, int y) { return __rotate_left((uint)x, (uint)y); }
-INLINE_OVERLOADABLE ulong __rotate_left(ulong x, ulong y) { return (x << y) | (x >> (64 - y)); }
-INLINE_OVERLOADABLE long __rotate_left(long x, long y) { return __rotate_left((ulong)x, (ulong)y); }
-#define DEF(type, m) INLINE_OVERLOADABLE type rotate(type x, type y) { return __rotate_left(x, (type)(y & m)); }
-DEF(char, 7)
-DEF(uchar, 7)
-DEF(short, 15)
-DEF(ushort, 15)
-DEF(int, 31)
-DEF(uint, 31)
-DEF(long, 63)
-DEF(ulong, 63)
-#undef DEF
-
-OVERLOADABLE short __gen_ocl_upsample(short hi, short lo);
-OVERLOADABLE int __gen_ocl_upsample(int hi, int lo);
-OVERLOADABLE long __gen_ocl_upsample(long hi, long lo);
-INLINE_OVERLOADABLE short upsample(char hi, uchar lo) { return __gen_ocl_upsample((short)hi, (short)lo); }
-INLINE_OVERLOADABLE ushort upsample(uchar hi, uchar lo) { return __gen_ocl_upsample((short)hi, (short)lo); }
-INLINE_OVERLOADABLE int upsample(short hi, ushort lo) { return __gen_ocl_upsample((int)hi, (int)lo); }
-INLINE_OVERLOADABLE uint upsample(ushort hi, ushort lo) { return __gen_ocl_upsample((int)hi, (int)lo); }
-INLINE_OVERLOADABLE long upsample(int hi, uint lo) {
-  return __gen_ocl_upsample((long)hi, (long)lo);
-}
-INLINE_OVERLOADABLE ulong upsample(uint hi, uint lo) {
-  return __gen_ocl_upsample((long)hi, (long)lo);
-}
-
-OVERLOADABLE uint __gen_ocl_hadd(uint x, uint y);
-OVERLOADABLE uint __gen_ocl_rhadd(uint x, uint y);
-#define DEC DEF(char); DEF(uchar); DEF(short); DEF(ushort)
-#define DEF(type) INLINE_OVERLOADABLE type hadd(type x, type y) { return (x + y) >> 1; }
-DEC
-#undef DEF
-#define DEF(type) INLINE_OVERLOADABLE type rhadd(type x, type y) { return (x + y + 1) >> 1; }
-DEC
-#undef DEF
-#undef DEC
-INLINE_OVERLOADABLE int hadd(int x, int y) {
-  return (x < 0 && y > 0) || (x > 0 && y < 0) ?
-         ((x + y) >> 1) :
-         __gen_ocl_hadd((uint)x, (uint)y);
-}
-INLINE_OVERLOADABLE uint hadd(uint x, uint y) { return __gen_ocl_hadd(x, y); }
-INLINE_OVERLOADABLE int rhadd(int x, int y) {
-  return (x < 0 && y > 0) || (x > 0 && y < 0) ?
-         ((x + y + 1) >> 1) :
-         __gen_ocl_rhadd((uint)x, (uint)y);
- }
-INLINE_OVERLOADABLE uint rhadd(uint x, uint y) { return __gen_ocl_rhadd(x, y); }
-OVERLOADABLE ulong __gen_ocl_hadd(ulong x, ulong y);
-OVERLOADABLE ulong __gen_ocl_rhadd(ulong x, ulong y);
-INLINE_OVERLOADABLE long hadd(long x, long y) {
-  return (x < 0 && y > 0) || (x > 0 && y < 0) ?
-         ((x + y) >> 1) :
-         __gen_ocl_hadd((ulong)x, (ulong)y);
-}
-INLINE_OVERLOADABLE ulong hadd(ulong x, ulong y) {
-  return __gen_ocl_hadd(x, y);
-}
-INLINE_OVERLOADABLE long rhadd(long x, long y) {
-  return (x < 0 && y > 0) || (x > 0 && y < 0) ?
-         ((x + y + 1) >> 1) :
-         __gen_ocl_rhadd((ulong)x, (ulong)y);
-}
-INLINE_OVERLOADABLE ulong rhadd(ulong x, ulong y) {
-  return __gen_ocl_rhadd(x, y);
-}
-
-int __gen_ocl_abs(int x);
-#define DEC(TYPE) INLINE_OVERLOADABLE u##TYPE abs(TYPE x) { return (u##TYPE) __gen_ocl_abs(x); }
-DEC(int)
-DEC(short)
-DEC(char)
-#undef DEC
-INLINE_OVERLOADABLE ulong abs(long x) { return x < 0 ? -x : x; }
-/* For unsigned types, do nothing. */
-#define DEC(TYPE) INLINE_OVERLOADABLE TYPE abs(TYPE x) { return x; }
-DEC(uint)
-DEC(ushort)
-DEC(uchar)
-DEC(ulong)
-#undef DEC
-
-/* Char and short type abs diff */
-/* promote char and short to int and will be no module overflow */
-#define DEC(TYPE, UTYPE) INLINE_OVERLOADABLE UTYPE abs_diff(TYPE x, TYPE y) \
-                         { return (UTYPE) (abs((int)x - (int)y)); }
-DEC(char, uchar)
-DEC(uchar, uchar)
-DEC(short, ushort)
-DEC(ushort, ushort)
-#undef DEC
-
-INLINE_OVERLOADABLE uint abs_diff (uint x, uint y) {
-    /* same signed will never overflow. */
-    return y > x ? (y -x) : (x - y);
-}
-
-INLINE_OVERLOADABLE uint abs_diff (int x, int y) {
-    /* same signed will never module overflow. */
-    if ((x >= 0 && y >= 0) || (x <= 0 && y <= 0))
-        return abs(x - y);
-
-    return (abs(x) + abs(y));
-}
-
-INLINE_OVERLOADABLE ulong abs_diff (long x, long y) {
-  if ((x >= 0 && y >= 0) || (x <= 0 && y <= 0))
-    return abs(x - y);
-  return abs(x) + abs(y);
-}
-INLINE_OVERLOADABLE ulong abs_diff (ulong x, ulong y) {
-  return y > x ? (y - x) : (x - y);
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// SIMD level function
-/////////////////////////////////////////////////////////////////////////////
-short __gen_ocl_simd_any(short);
-short __gen_ocl_simd_all(short);
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Work Items functions (see 6.11.1 of OCL 1.1 spec)
-/////////////////////////////////////////////////////////////////////////////
-
-PURE CONST uint __gen_ocl_get_work_dim(void);
-INLINE uint get_work_dim(void) {
-  return __gen_ocl_get_work_dim();
-}
-
-#define DECL_INTERNAL_WORK_ITEM_FN(NAME) \
-PURE CONST unsigned int __gen_ocl_##NAME##0(void); \
-PURE CONST unsigned int __gen_ocl_##NAME##1(void); \
-PURE CONST unsigned int __gen_ocl_##NAME##2(void);
-DECL_INTERNAL_WORK_ITEM_FN(get_group_id)
-DECL_INTERNAL_WORK_ITEM_FN(get_local_id)
-DECL_INTERNAL_WORK_ITEM_FN(get_local_size)
-DECL_INTERNAL_WORK_ITEM_FN(get_global_size)
-DECL_INTERNAL_WORK_ITEM_FN(get_global_offset)
-DECL_INTERNAL_WORK_ITEM_FN(get_num_groups)
-#undef DECL_INTERNAL_WORK_ITEM_FN
-
-#define DECL_PUBLIC_WORK_ITEM_FN(NAME, OTHER_RET)    \
-INLINE unsigned NAME(unsigned int dim) {             \
-  if (dim == 0) return __gen_ocl_##NAME##0();        \
-  else if (dim == 1) return __gen_ocl_##NAME##1();   \
-  else if (dim == 2) return __gen_ocl_##NAME##2();   \
-  else return OTHER_RET;                             \
-}
-
-DECL_PUBLIC_WORK_ITEM_FN(get_group_id, 0)
-DECL_PUBLIC_WORK_ITEM_FN(get_local_id, 0)
-DECL_PUBLIC_WORK_ITEM_FN(get_local_size, 1)
-DECL_PUBLIC_WORK_ITEM_FN(get_global_size, 1)
-DECL_PUBLIC_WORK_ITEM_FN(get_global_offset, 0)
-DECL_PUBLIC_WORK_ITEM_FN(get_num_groups, 1)
-#undef DECL_PUBLIC_WORK_ITEM_FN
-
-INLINE uint get_global_id(uint dim) {
-  return get_local_id(dim) + get_local_size(dim) * get_group_id(dim) + get_global_offset(dim);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Math Functions (see 6.11.2 of OCL 1.1 spec)
-/////////////////////////////////////////////////////////////////////////////
-PURE CONST float __gen_ocl_fabs(float x);
-PURE CONST float __gen_ocl_sin(float x);
-PURE CONST float __gen_ocl_cos(float x);
-PURE CONST float __gen_ocl_sqrt(float x);
-PURE CONST float __gen_ocl_rsqrt(float x);
-PURE CONST float __gen_ocl_log(float x);
-PURE CONST float __gen_ocl_exp(float x);
-PURE CONST float __gen_ocl_pow(float x, float y);
-PURE CONST float __gen_ocl_rcp(float x);
-PURE CONST float __gen_ocl_rndz(float x);
-PURE CONST float __gen_ocl_rnde(float x);
-PURE CONST float __gen_ocl_rndu(float x);
-PURE CONST float __gen_ocl_rndd(float x);
-INLINE_OVERLOADABLE float __gen_ocl_internal_floor(float x) { return __gen_ocl_rndd(x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_copysign(float x, float y) {
-  union { unsigned u; float f; } ux, uy;
-  ux.f = x;
-  uy.f = y;
-  ux.u = (ux.u & 0x7fffffff) | (uy.u & 0x80000000u);
-  return ux.f;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_log(float x) {
-/*
- *  Conversion to float by Ian Lance Taylor, Cygnus Support, ian at cygnus.com
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-  union { unsigned int i; float f; } u;
-  const float
-  ln2_hi =   6.9313812256e-01,  /* 0x3f317180 */
-  ln2_lo =   9.0580006145e-06,  /* 0x3717f7d1 */
-  two25 =    3.355443200e+07, /* 0x4c000000 */
-  Lg1 = 6.6666668653e-01, /* 3F2AAAAB */
-  Lg2 = 4.0000000596e-01, /* 3ECCCCCD */
-  Lg3 = 2.8571429849e-01, /* 3E924925 */
-  Lg4 = 2.2222198546e-01, /* 3E638E29 */
-  Lg5 = 1.8183572590e-01, /* 3E3A3325 */
-  Lg6 = 1.5313838422e-01, /* 3E1CD04F */
-  Lg7 = 1.4798198640e-01; /* 3E178897 */
-
-  const float zero   =  0.0;
-  float hfsq,f,s,z,R,w,t1,t2,dk;
-  int k,ix,i,j;
-
-  u.f = x;  ix = u.i;
-  k=0;
-  if (ix < 0x00800000) {      /* x < 2**-126  */
-      if ((ix&0x7fffffff)==0)
-    return -two25/zero;   /* log(+-0)=-inf */
-      if (ix<0) return (x-x)/zero;  /* log(-#) = NaN */
-      return -INFINITY;  /* Gen does not support subnormal number now */
-      //k -= 25; x *= two25; /* subnormal number, scale up x */
-      //u.f = x;  ix = u.i;
-  }
-  if (ix >= 0x7f800000) return x+x;
-  k += (ix>>23)-127;
-  ix &= 0x007fffff;
-  i = (ix+(0x95f64<<3))&0x800000;
-  u.i = ix|(i^0x3f800000); x = u.f;
-  k += (i>>23);
-  f = x-(float)1.0;
-  if((0x007fffff&(15+ix))<16) { /* |f| < 2**-20 */
-      if(f==zero) {
-        if(k==0) return zero;
-        else {
-          dk=(float)k; return dk*ln2_hi+dk*ln2_lo;
-        }
-      }
-      R = f*f*((float)0.5-(float)0.33333333333333333*f);
-      if(k==0)
-        return f-R;
-      else {
-        dk=(float)k;  return dk*ln2_hi-((R-dk*ln2_lo)-f);
-      }
-  }
-  s = f/((float)2.0+f);
-  dk = (float)k;
-  z = s*s;
-  i = ix-(0x6147a<<3);
-  w = z*z;
-  j = (0x6b851<<3)-ix;
-  t1= w*(Lg2+w*(Lg4+w*Lg6));
-  t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
-  i |= j;
-  R = t2+t1;
-  if(i>0) {
-      hfsq=(float)0.5*f*f;
-      if(k==0) return f-(hfsq-s*(hfsq+R)); else
-         return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
-  } else {
-      if(k==0) return f-s*(f-R); else
-         return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
-  }
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_log10(float x) {
-/*
- *  Conversion to float by Ian Lance Taylor, Cygnus Support, ian at cygnus.com
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-  union {float f; unsigned i; }u;
-  const float
-  zero       = 0.0,
-  two25      =  3.3554432000e+07, /* 0x4c000000 */
-  ivln10     =  4.3429449201e-01, /* 0x3ede5bd9 */
-  log10_2hi  =  3.0102920532e-01, /* 0x3e9a2080 */
-  log10_2lo  =  7.9034151668e-07; /* 0x355427db */
-
-  float y,z;
-  int i,k,hx;
-
-  u.f = x; hx = u.i;
-  k=0;
-  if (hx < 0x00800000) {                  /* x < 2**-126  */
-    if ((hx&0x7fffffff)==0)
-      return -two25/zero;             /* log(+-0)=-inf */
-    if (hx<0) return NAN;        /* log(-#) = NaN */
-    return -INFINITY;      /* Gen does not support subnormal now */
-    //k -= 25; x *= two25; /* subnormal number, scale up x */
-    //u.f = x; hx = u.i;
-  }
-  if (hx >= 0x7f800000) return x+x;
-  k += (hx>>23)-127;
-  i  = ((unsigned)k&0x80000000)>>31;
-  hx = (hx&0x007fffff)|((0x7f-i)<<23);
-  y  = (float)(k+i);
-  u.i = hx; x = u.f;
-  z  = y*log10_2lo + ivln10*__gen_ocl_internal_log(x);
-  return  z+y*log10_2hi;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_log2(float x) {
-/*
- *  Conversion to float by Ian Lance Taylor, Cygnus Support, ian at cygnus.com
- *  adapted for log2 by Ulrich Drepper <drepper at cygnus.com>
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-  const float zero   =  0.0,
-  ln2 = 0.69314718055994530942,
-  two25 =    3.355443200e+07, /** 0x4c000000 */
-  Lg1 = 6.6666668653e-01, /** 3F2AAAAB */
-  Lg2 = 4.0000000596e-01, /** 3ECCCCCD */
-  Lg3 = 2.8571429849e-01, /** 3E924925 */
-  Lg4 = 2.2222198546e-01, /** 3E638E29 */
-  Lg5 = 1.8183572590e-01, /** 3E3A3325 */
-  Lg6 = 1.5313838422e-01, /** 3E1CD04F */
-  Lg7 = 1.4798198640e-01; /** 3E178897 */
-
-  float hfsq,f,s,z,R,w,t1,t2,dk;
-  int k,ix,i,j;
-
-  union {float f; int i; }u;//GET_FLOAT_WORD(ix,x);
-  u.f = x; ix = u.i;
-
-  k=0;
-  if (ix < 0x00800000) {           /** x < 2**-126  */
-      if ((ix&0x7fffffff)==0)
-      return -two25/(x-x);        /** log(+-0)=-inf */
-
-      if (ix<0) return (x-x)/(x-x);    /** log(-#) = NaN */
-      return -INFINITY;
-      k -= 25; x *= two25; /** subnormal number, scale up x */
-      u.f = x; ix = u.i; //GET_FLOAT_WORD(ix,x);
-  }
-
-  if (ix >= 0x7f800000) return x+x;
-
-  k += (ix>>23)-127;
-  ix &= 0x007fffff;
-  i = (ix+(0x95f64<<3))&0x800000;
-
-  u.i = ix|(i^0x3f800000); x = u.f;//SET_FLOAT_WORD(x,ix|(i^0x3f800000));    /** normalize x or x/2 */
-  k += (i>>23);
-  dk = (float)k;
-  f = x-(float)1.0;
-
-  if((0x007fffff&(15+ix))<16) {    /** |f| < 2**-20 */
-      if(f==zero) return dk;
-
-      R = f*f*((float)0.5-(float)0.33333333333333333*f);
-      return dk-(R-f)/ln2;
-  }
-
-  s = f/((float)2.0+f);
-  z = s*s;
-  i = ix-(0x6147a<<3);
-  w = z*z;
-  j = (0x6b851<<3)-ix;
-  t1= w*(Lg2+w*(Lg4+w*Lg6));
-  t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
-  i |= j;
-  R = t2+t1;
-
-  if(i>0) {
-      hfsq=(float)0.5*f*f;
-      return dk-((hfsq-(s*(hfsq+R)))-f)/ln2;
-  } else {
-      return dk-((s*(f-R))-f)/ln2;
-  }
-}
-
-INLINE float __gen_ocl_scalbnf (float x, int n){
-  /* copy from fdlibm */
-  float two25 = 3.355443200e+07,	/* 0x4c000000 */
-  twom25 = 2.9802322388e-08,	        /* 0x33000000 */
-  huge = 1.0e+30,
-  tiny = 1.0e-30;
-  int k,ix;
-  GEN_OCL_GET_FLOAT_WORD(ix,x);
-  k = (ix&0x7f800000)>>23; /* extract exponent */
-  if (k==0) {	/* 0 or subnormal x */
-    if ((ix&0x7fffffff)==0) return x; /* +-0 */
-    x *= two25;
-    GEN_OCL_GET_FLOAT_WORD(ix,x);
-    k = ((ix&0x7f800000)>>23) - 25;
-  }
-  if (k==0xff) return x+x;	/* NaN or Inf */
-  if (n< -50000)
-    return tiny*__gen_ocl_internal_copysign(tiny,x);	/*underflow*/
-  if (n> 50000 || k+n > 0xfe)
-    return huge*__gen_ocl_internal_copysign(huge,x); /* overflow  */
-  /* Now k and n are bounded we know that k = k+n does not overflow. */
-  k = k+n;
-  if (k > 0) { /* normal result */
-    GEN_OCL_SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
-    return x;
-  }
-  if (k <= -25)
-    return tiny*__gen_ocl_internal_copysign(tiny,x);	/*underflow*/
-  k += 25;				/* subnormal result */
-  GEN_OCL_SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
-  return x*twom25;
-}
-
-
-
-__constant const float PIo2[] = {
-  1.5703125000e+00, /* 0x3fc90000 */
-  4.5776367188e-04, /* 0x39f00000 */
-  2.5987625122e-05, /* 0x37da0000 */
-  7.5437128544e-08, /* 0x33a20000 */
-  6.0026650317e-11, /* 0x2e840000 */
-  7.3896444519e-13, /* 0x2b500000 */
-  5.3845816694e-15, /* 0x27c20000 */
-  5.6378512969e-18, /* 0x22d00000 */
-  8.3009228831e-20, /* 0x1fc40000 */
-  3.2756352257e-22, /* 0x1bc60000 */
-  6.3331015649e-25, /* 0x17440000 */
-};
-
-INLINE int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const __constant int *ipio2)
-{
-  /* copied from fdlibm */
-const float
-zero   = 0.0,
-one    = 1.0,
-two8   =  2.5600000000e+02, /* 0x43800000 */
-twon8  =  3.9062500000e-03; /* 0x3b800000 */
-
-  int init_jk[3]; /* initial value for jk */
-  int jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
-  float z,fw,f[20],fq[20],q[20];
-  init_jk[0] = 4; init_jk[1] = 7; init_jk[2] = 9;
-    /* initialize jk*/
-  jk = init_jk[prec];
-  jp = jk;
-
-    /* determine jx,jv,q0, note that 3>q0 */
-  jx =  nx-1;
-  jv = (e0-3)/8; if(jv<0) jv=0;
-  q0 =  e0-8*(jv+1);
-
-    /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
-  j = jv-jx; m = jx+jk;
-  for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (float) ipio2[j];
-
-    /* compute q[0],q[1],...q[jk] */
-  for (i=0;i<=jk;i++) {
-      for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw;
-  }
-
-  jz = jk;
-recompute:
-    /* distill q[] into iq[] reversingly */
-  for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
-      fw    =  (float)((int)(twon8* z));
-      iq[i] =  (int)(z-two8*fw);
-      z     =  q[j-1]+fw;
-  }
-
-    /* compute n */
-  z  = __gen_ocl_scalbnf(z,q0);   /* actual value of z */
-  z -= (float)8.0*__gen_ocl_internal_floor(z*(float)0.125); /* trim off integer >= 8 */
-  n  = (int) z;
-  z -= (float)n;
-  ih = 0;
-  if(q0>0) {  /* need iq[jz-1] to determine n */
-      i  = (iq[jz-1]>>(8-q0)); n += i;
-      iq[jz-1] -= i<<(8-q0);
-      ih = iq[jz-1]>>(7-q0);
-  }
-  else if(q0==0) ih = iq[jz-1]>>8;
-  else if(z>=(float)0.5) ih=2;
-
-  if(ih>0) {  /* q > 0.5 */
-      n += 1; carry = 0;
-      for(i=0;i<jz ;i++) {  /* compute 1-q */
-    j = iq[i];
-    if(carry==0) {
-        if(j!=0) {
-      carry = 1; iq[i] = 0x100- j;
-        }
-    } else  iq[i] = 0xff - j;
-      }
-      if(q0>0) {    /* rare case: chance is 1 in 12 */
-          switch(q0) {
-          case 1:
-           iq[jz-1] &= 0x7f; break;
-        case 2:
-           iq[jz-1] &= 0x3f; break;
-          }
-      }
-      if(ih==2) {
-    z = one - z;
-    if(carry!=0) z -= __gen_ocl_scalbnf(one,q0);
-      }
-  }
-
-    /* check if recomputation is needed */
-  if(z==zero) {
-      j = 0;
-      for (i=jz-1;i>=jk;i--) j |= iq[i];
-      if(j==0) { /* need recomputation */
-    for(k=1;iq[jk-k]==0;k++);   /* k = no. of terms needed */
-
-    for(i=jz+1;i<=jz+k;i++) {   /* add q[jz+1] to q[jz+k] */
-        f[jx+i] = (float) ipio2[jv+i];
-        for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
-        q[i] = fw;
-    }
-    jz += k;
-    goto recompute;
-      }
-  }
-
-    /* chop off zero terms */
-  if(z==(float)0.0) {
-      jz -= 1; q0 -= 8;
-      while(iq[jz]==0) { jz--; q0-=8;}
-  } else { /* break z into 8-bit if necessary */
-      z = __gen_ocl_scalbnf(z,-q0);
-      if(z>=two8) {
-    fw = (float)((int)(twon8*z));
-    iq[jz] = (int)(z-two8*fw);
-    jz += 1; q0 += 8;
-    iq[jz] = (int) fw;
-      } else iq[jz] = (int) z ;
-  }
-
-    /* convert integer "bit" chunk to floating-point value */
-  fw = __gen_ocl_scalbnf(one,q0);
-  for(i=jz;i>=0;i--) {
-      q[i] = fw*(float)iq[i]; fw*=twon8;
-  }
-
-    /* compute PIo2[0,...,jp]*q[jz,...,0] */
-  for(i=jz;i>=0;i--) {
-      for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
-      fq[jz-i] = fw;
-  }
-
-    /* compress fq[] into y[] */
-  switch(prec) {
-      case 0:
-    fw = 0.0;
-    for (i=jz;i>=0;i--) fw += fq[i];
-    y[0] = (ih==0)? fw: -fw;
-    break;
-      case 1:
-      case 2:
-    fw = 0.0;
-    for (i=jz;i>=0;i--) fw += fq[i];
-    y[0] = (ih==0)? fw: -fw;
-    fw = fq[0]-fw;
-    for (i=1;i<=jz;i++) fw += fq[i];
-    y[1] = (ih==0)? fw: -fw;
-    break;
-      case 3: /* painful */
-    for (i=jz;i>0;i--) {
-        fw      = fq[i-1]+fq[i];
-        fq[i]  += fq[i-1]-fw;
-        fq[i-1] = fw;
-    }
-    for (i=jz;i>1;i--) {
-        fw      = fq[i-1]+fq[i];
-        fq[i]  += fq[i-1]-fw;
-        fq[i-1] = fw;
-    }
-    for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
-    if(ih==0) {
-        y[0] =  fq[0]; y[1] =  fq[1]; y[2] =  fw;
-    } else {
-        y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
-    }
-  }
-  return n&7;
-
-}
-__constant const int npio2_hw[32] = {
-0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00,
-0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00,
-0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100,
-0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00,
-0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00,
-0x4242c700, 0x42490f00
-};
-
-__constant const int two_over_pi[22*9] = {
-0xA2, 0xF9, 0x83, 0x6E, 0x4E, 0x44, 0x15, 0x29, 0xFC,
-0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62,
-0x95, 0x99, 0x3C, 0x43, 0x90, 0x41, 0xFE, 0x51, 0x63,
-0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A,
-0x42, 0x4D, 0xD2, 0xE0, 0x06, 0x49, 0x2E, 0xEA, 0x09,
-0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29,
-0xA7, 0x3E, 0xE8, 0x82, 0x35, 0xF5, 0x2E, 0xBB, 0x44,
-0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41,
-0x39, 0x91, 0xD6, 0x39, 0x83, 0x53, 0x39, 0xF4, 0x9C,
-0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8,
-0x97, 0xFF, 0xDE, 0x05, 0x98, 0x0F, 0xEF, 0x2F, 0x11,
-0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF,
-0x27, 0xCB, 0x09, 0xB7, 0x4F, 0x46, 0x3F, 0x66, 0x9E,
-0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5,
-0xF1, 0x7B, 0x3D, 0x07, 0x39, 0xF7, 0x8A, 0x52, 0x92,
-0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08,
-0x56, 0x03, 0x30, 0x46, 0xFC, 0x7B, 0x6B, 0xAB, 0xF0,
-0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3,
-0x91, 0x61, 0x5E, 0xE6, 0x1B, 0x08, 0x65, 0x99, 0x85,
-0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80,
-0x4D, 0x73, 0x27, 0x31, 0x06, 0x06, 0x15, 0x56, 0xCA,
-0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B,
-};
-
-
-
-INLINE int __ieee754_rem_pio2f(float x, float *y) {
-  /* copied from fdlibm */
-  float z,w,t,r,fn;
-  float tx[3];
-
-const float half_value = 5.0000000e-1;
-const float zero =  0.0000000000;
-const float two8 =  2.5600000000e+02;
-const float invpio2 =  6.3661980629e-01;
-const float pio2_1  =  1.5707855225e+00;
-const float pio2_1t =  1.0804334124e-05;
-const float pio2_2  =  1.0804273188e-05;
-const float pio2_2t =  6.0770999344e-11;
-const float pio2_3  =  6.0770943833e-11;
-const float pio2_3t =  6.1232342629e-17;
-  int e0,i,j,nx,n,ix,hx;
-
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  ix = hx&0x7fffffff;
-  if(ix<=0x3f490fd8)   /* |x| ~<= pi/4 , no need for reduction */
-      {y[0] = x; y[1] = 0; return 0;}
-  if(ix<0x4016cbe4) {  /* |x| < 3pi/4, special case with n=+-1 */
-      if(hx>0) {
-    z = x - pio2_1;
-    if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */
-        y[0] = z - pio2_1t;
-        y[1] = (z-y[0])-pio2_1t;
-    } else {    /* near pi/2, use 24+24+24 bit pi */
-        z -= pio2_2;
-        y[0] = z - pio2_2t;
-        y[1] = (z-y[0])-pio2_2t;
-    }
-    return 1;
-      } else {  /* negative x */
-    z = x + pio2_1;
-    if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */
-        y[0] = z + pio2_1t;
-        y[1] = (z-y[0])+pio2_1t;
-    } else {    /* near pi/2, use 24+24+24 bit pi */
-        z += pio2_2;
-        y[0] = z + pio2_2t;
-        y[1] = (z-y[0])+pio2_2t;
-    }
-    return -1;
-      }
-  }
-  if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */
-      t  = __gen_ocl_fabs(x);
-      n  = (int) (t*invpio2+half_value);
-      fn = (float)n;
-      r  = t-fn*pio2_1;
-      w  = fn*pio2_1t;  /* 1st round good to 40 bit */
-      if(n<32&&(ix&0xffffff00)!=npio2_hw[n-1]) {
-    y[0] = r-w; /* quick check no cancellation */
-      } else {
-          uint high;
-          j  = ix>>23;
-          y[0] = r-w;
-    GEN_OCL_GET_FLOAT_WORD(high,y[0]);
-          i = j-((high>>23)&0xff);
-          if(i>8) {  /* 2nd iteration needed, good to 57 */
-        t  = r;
-        w  = fn*pio2_2;
-        r  = t-w;
-        w  = fn*pio2_2t-((t-r)-w);
-        y[0] = r-w;
-        GEN_OCL_GET_FLOAT_WORD(high,y[0]);
-        i = j-((high>>23)&0xff);
-        if(i>25)  { /* 3rd iteration need, 74 bits acc */
-          t  = r; /* will cover all possible cases */
-          w  = fn*pio2_3;
-          r  = t-w;
-          w  = fn*pio2_3t-((t-r)-w);
-          y[0] = r-w;
-        }
-    }
-      }
-      y[1] = (r-y[0])-w;
-      if(hx<0)  {y[0] = -y[0]; y[1] = -y[1]; return -n;}
-      else   return n;
-  }
-    /*
-     * all other (large) arguments
-     */
-  if(ix>=0x7f800000) {    /* x is inf or NaN */
-      y[0]=y[1]=x-x; return 0;
-  }
-    /* set z = scalbn(|x|,ilogb(x)-7) */
-  e0  = (ix>>23)-134;   /* e0 = ilogb(z)-7; */
-  GEN_OCL_SET_FLOAT_WORD(z, ix - ((int)(e0<<23)));
-  for(i=0;i<2;i++) {
-    tx[i] = (float)((int)(z));
-    z     = (z-tx[i])*two8;
-  }
-  tx[2] = z;
-  nx = 3;
-  while(tx[nx-1]==zero) nx--; /* skip zero term */
-  n  =  __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi);
-  if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
-  return n;
-}
-
-INLINE_OVERLOADABLE float __kernel_sinf(float x, float y, int iy)
-{
-  /* copied from fdlibm */
-const float
-half_value =  5.0000000000e-01,/* 0x3f000000 */
-S1  = -1.6666667163e-01, /* 0xbe2aaaab */
-S2  =  8.3333337680e-03, /* 0x3c088889 */
-S3  = -1.9841270114e-04, /* 0xb9500d01 */
-S4  =  2.7557314297e-06, /* 0x3638ef1b */
-S5  = -2.5050759689e-08, /* 0xb2d72f34 */
-S6  =  1.5896910177e-10; /* 0x2f2ec9d3 */
-  float z,r,v;
-  int ix;
-  GEN_OCL_GET_FLOAT_WORD(ix,x);
-  ix &= 0x7fffffff;     /* high word of x */
-  if(ix<0x32000000)     /* |x| < 2**-27 */
-     {if((int)x==0) return x;}    /* generate inexact */
-  z =  x*x;
-  v =  z*x;
-  r =  S2+z*(S3+z*(S4+z*(S5+z*S6)));
-  if(iy==0) return x+v*(S1+z*r);
-  else      return x-((z*(half_value*y-v*r)-y)-v*S1);
-}
-
-INLINE  float __kernel_cosf(float x, float y)
-{
-  /* copied from fdlibm */
-  const float
-  one =  1.0000000000e+00, /* 0x3f800000 */
-  C1  =  4.1666667908e-02, /* 0x3d2aaaab */
-  C2  = -1.3888889225e-03, /* 0xbab60b61 */
-  C3  =  2.4801587642e-05, /* 0x37d00d01 */
-  C4  = -2.7557314297e-07, /* 0xb493f27c */
-  C5  =  2.0875723372e-09, /* 0x310f74f6 */
-  C6  = -1.1359647598e-11; /* 0xad47d74e */
-  const float pio2_hi = 0x1.92p0, pio2_mid = 0x1.fb4p-12, pio2_low = 0x1.4442d2p-24;
-  float a,hz,z,r,qx;
-  int ix;
-  GEN_OCL_GET_FLOAT_WORD(ix,x);
-  ix &= 0x7fffffff;     /* ix = |x|'s high word*/
-  if(ix<0x32000000) {     /* if x < 2**27 */
-      if(((int)x)==0) return one;   /* generate inexact */
-  }
-
-  if(x < 0.0f) { x= -x; y = -y; }
-  if(ix > 0x3f490fdb) { /* |x|>pi/4*/
-    return -__kernel_sinf(x-pio2_hi-pio2_mid-pio2_low, y, 1);
-  }
-  z  = x*x;
-  r  = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
-  if(ix < 0x3e99999a)       /* if |x| < 0.3 */
-      return one - ((float)0.5*z - (z*r - x*y));
-  else {
-      GEN_OCL_SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */
-      hz = (float)0.5*z-qx;
-      a  = one-qx;
-      return a - (hz - (z*r-x*y));
-  }
-}
-
-INLINE_OVERLOADABLE  float sin(float x) {
-  /* copied from fdlibm */
-  float y[2],z=0.0;
-  int n, ix;
-
-  GEN_OCL_GET_FLOAT_WORD(ix,x);
-
-    /* |x| ~< pi/4 */
-  ix &= 0x7fffffff;
-  if(ix <= 0x3f490fd8) return __kernel_sinf(x,z,0);
-
-    /* sin(Inf or NaN) is NaN */
-  else if (ix>=0x7f800000) return x-x;
-
-    /* argument reduction needed */
-  else {
-      n = __ieee754_rem_pio2f(x,y);
-      switch(n&3) {
-    case 0: return  __kernel_sinf(y[0],y[1],1);
-    case 1: return  __kernel_cosf(y[0],y[1]);
-    case 2: return -__kernel_sinf(y[0],y[1],1);
-    default:
-      return -__kernel_cosf(y[0],y[1]);
-      }
-  }
-}
-INLINE_OVERLOADABLE  float cos(float x) {
-  /* copied from fdlibm */
-  float y[2],z=0.0;
-  int n, ix;
-
-  GEN_OCL_GET_FLOAT_WORD(ix,x);
-
-    /* |x| ~< pi/4 */
-  ix &= 0x7fffffff;
-  if(ix <= 0x3f490fd8) return __kernel_cosf(x,z);
-
-    /* cos(Inf or NaN) is NaN */
-  else if (ix>=0x7f800000) return x-x;
-
-    /* argument reduction needed */
-  else {
-      n = __ieee754_rem_pio2f(x,y);
-      switch(n&3) {
-    case 0: return  __kernel_cosf(y[0],y[1]);
-    case 1: return  -__kernel_sinf(y[0],y[1],1);
-    case 2: return -__kernel_cosf(y[0],y[1]);
-    default:
-      return __kernel_sinf(y[0],y[1],1);
-      }
-  }
-}
-
-INLINE float __kernel_tanf(float x, float y, int iy)
-{
-  /* copied from fdlibm */
-        float z,r,v,w,s;
-        int ix,hx;
-        const float
-        one   =  1.0000000000e+00, /* 0x3f800000 */
-        pio4  =  7.8539812565e-01, /* 0x3f490fda */
-        pio4lo=  3.7748947079e-08; /* 0x33222168 */
-        float T[13];// =  {
-         T[0] = 3.3333334327e-01; /* 0x3eaaaaab */
-         T[1] = 1.3333334029e-01; /* 0x3e088889 */
-         T[2] = 5.3968254477e-02; /* 0x3d5d0dd1 */
-         T[3] = 2.1869488060e-02; /* 0x3cb327a4 */
-         T[4] = 8.8632395491e-03; /* 0x3c11371f */
-         T[5] = 3.5920790397e-03; /* 0x3b6b6916 */
-         T[6] = 1.4562094584e-03; /* 0x3abede48 */
-         T[7] = 5.8804126456e-04; /* 0x3a1a26c8 */
-         T[8] = 2.4646313977e-04; /* 0x398137b9 */
-         T[9] = 7.8179444245e-05; /* 0x38a3f445 */
-         T[10] = 7.1407252108e-05; /* 0x3895c07a */
-         T[11] = -1.8558637748e-05; /* 0xb79bae5f */
-         T[12] = 2.5907305826e-05; /* 0x37d95384 */
-
-
-        GEN_OCL_GET_FLOAT_WORD(hx,x);
-        ix = hx&0x7fffffff;     /* high word of |x| */
-        if(ix<0x31800000)                       /* x < 2**-28 */
-            {if((int)x==0) {                    /* generate inexact */
-                if((ix|(iy+1))==0) return one/__gen_ocl_fabs(x);
-                else return (iy==1)? x: -one/x;
-            }
-            }
-        if(ix>=0x3f2ca140) {                    /* |x|>=0.6744 */
-            if(hx<0) {x = -x; y = -y;}
-
-
-            z = pio4-x;
-            w = pio4lo-y;
-            x = z+w; y = 0.0;
-        }
-        z       =  x*x;
-        w       =  z*z;
-    /* Break x^5*(T[1]+x^2*T[2]+...) into
-     *    x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
-     *    x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
-     */
-        r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
-        v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
-        s = z*x;
-        r = y + z*(s*(r+v)+y);
-        r += T[0]*s;
-        w = x+r;
-        if(ix>=0x3f2ca140) {
-            v = (float)iy;
-            return (float)(1-((hx>>30)&2))*(v-(float)2.0*(x-(w*w/(w+v)-r)));
-        }
-        if(iy==1) return w;
-        else {          /* if allow error up to 2 ulp
-                           simply return -1.0/(x+r) here */
-     /*  compute -1.0/(x+r) accurately */
-            float a,t;
-            int i;
-            z  = w;
-            GEN_OCL_GET_FLOAT_WORD(i,z);
-            GEN_OCL_SET_FLOAT_WORD(z,i&0xfffff000);
-            v  = r-(z - x);     /* z+v = r+x */
-            t = a  = -(float)1.0/w;     /* a = -1.0/w */
-            GEN_OCL_GET_FLOAT_WORD(i,t);
-            GEN_OCL_SET_FLOAT_WORD(t,i&0xfffff000);
-            s  = (float)1.0+t*z;
-            return t+a*(s+t*v);
-        }
-}
-
-INLINE_OVERLOADABLE float tan(float x)
-{
-  /* copied from fdlibm */
-        const float pio2_hi = 0x1.92p-0, pio2_mid = 0x1.fb4p-12, pio2_low = 0x1.4442d2p-24;
-        const float pio4  =  7.8539812565e-01;
-        float y[2],z=0.0;
-        int n, ix;
-
-        GEN_OCL_GET_FLOAT_WORD(ix,x);
-
-    /* |x| ~< pi/4 */
-        ix &= 0x7fffffff;
-        if(ix <= 0x3f490fda) return __kernel_tanf(x,z,1);
-
-    /* tan(Inf or NaN) is NaN */
-        else if (ix>=0x7f800000) return x-x;            /* NaN */
-
-    /* argument reduction needed */
-      else {
-        n = __ieee754_rem_pio2f(x,y);
-
-        x = y[0];
-        float m = y[1];
-        int iy = 1-((n&1)<<1);
-        GEN_OCL_GET_FLOAT_WORD(ix,x);
-        float sign = 1.0f;
-        if(ix < 0) {
-          x = -x; m = -m;
-          sign = -1.0f;
-        }
-
-        if(x > pio4) {/* reduce x to less than pi/4 through (pi/2-x) */
-          float t = __kernel_tanf(pio2_hi-x+pio2_mid+pio2_low, -m, 1);
-          if(iy == -1) return sign*(-t); else return sign*1/t;
-        } else
-            return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
-                                                              -1 -- n odd */
-      }
-}
-
-INLINE_OVERLOADABLE float native_cos(float x) { return __gen_ocl_cos(x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_cospi(float x) {
-  int ix;
-  if(isinf(x) || isnan(x)) { return NAN; }
-  if(x < 0.0f) { x = -x; }
-  GEN_OCL_GET_FLOAT_WORD(ix, x);
-  if(x> 0x1.0p24) return 1.0f;
-  float m = __gen_ocl_internal_floor(x);
-  ix = (int)m;
-  m = x-m;
-  if((ix&0x1) != 0) m+=1.0f;
-    ix = __gen_ocl_internal_floor(m*4.0f);
-
-  switch(ix) {
-   case 0:
-    return __kernel_cosf(m*M_PI_F, 0.0f);
-   case 1:
-   case 2:
-    return __kernel_sinf((0.5f-m)*M_PI_F, 0.0f, 0);
-   case 3:
-   case 4:
-    return -__kernel_cosf((m-1.0f)*M_PI_F, 0.0f);
-   case 5:
-   case 6:
-    return __kernel_sinf((m-1.5f)*M_PI_F, 0.0f, 0);
-   default:
-    return __kernel_cosf((2.0f-m)*M_PI_F, 0.0f);
-   }
-}
-INLINE_OVERLOADABLE float native_sin(float x) { return __gen_ocl_sin(x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_sinpi(float x) {
-  float sign = 1.0f;
-  int ix;
-  if(isinf(x)) return NAN;
-  if(x < 0.0f) { x = -x; sign = -1.0f; }
-  GEN_OCL_GET_FLOAT_WORD(ix, x);
-  if(x> 0x1.0p24) return 0.0f;
-  float m = __gen_ocl_internal_floor(x);
-  ix = (int)m;
-  m = x-m;
-  if((ix&0x1) != 0) m+=1.0f;
-    ix = __gen_ocl_internal_floor(m*4.0f);
-
-  switch(ix) {
-   case 0:
-    return sign*__kernel_sinf(m*M_PI_F, 0.0f, 0);
-   case 1:
-   case 2:
-    return sign*__kernel_cosf((m-0.5f)*M_PI_F, 0.0f);
-   case 3:
-   case 4:
-    return -sign*__kernel_sinf((m-1.0f)*M_PI_F, 0.0f, 0);
-   case 5:
-   case 6:
-    return -sign*__kernel_cosf((m-1.5f)*M_PI_F, 0.0f);
-   default:
-    return -sign*__kernel_sinf((2.0f-m)*M_PI_F, 0.0f, 0);
-   }
-
-}
-INLINE_OVERLOADABLE float native_sqrt(float x) { return __gen_ocl_sqrt(x); }
-INLINE_OVERLOADABLE float native_rsqrt(float x) { return __gen_ocl_rsqrt(x); }
-INLINE_OVERLOADABLE float native_log2(float x) { return __gen_ocl_log(x); }
-INLINE_OVERLOADABLE float native_log(float x) {
-  return native_log2(x) * 0.6931472002f;
-}
-INLINE_OVERLOADABLE float tgamma(float x) {
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-  float pi = 3.1415927410e+00,
-    a0 = 7.7215664089e-02,
-    a1 = 3.2246702909e-01,
-    a2 = 6.7352302372e-02,
-    a3 = 2.0580807701e-02,
-    a4 = 7.3855509982e-03,
-    a5 = 2.8905137442e-03,
-    a6 = 1.1927076848e-03,
-    a7 = 5.1006977446e-04,
-    a8 = 2.2086278477e-04,
-    a9 = 1.0801156895e-04,
-    a10 = 2.5214456400e-05,
-    a11 = 4.4864096708e-05,
-    tc = 1.4616321325e+00,
-    tf = -1.2148628384e-01,
-    tt = 6.6971006518e-09,
-    t0 = 4.8383611441e-01,
-    t1 = -1.4758771658e-01,
-    t2 = 6.4624942839e-02,
-    t3 = -3.2788541168e-02,
-    t4 = 1.7970675603e-02,
-    t5 = -1.0314224288e-02,
-    t6 = 6.1005386524e-03,
-    t7 = -3.6845202558e-03,
-    t8 = 2.2596477065e-03,
-    t9 = -1.4034647029e-03,
-    t10 = 8.8108185446e-04,
-    t11 = -5.3859531181e-04,
-    t12 = 3.1563205994e-04,
-    t13 = -3.1275415677e-04,
-    t14 = 3.3552918467e-04,
-    u0 = -7.7215664089e-02,
-    u1 = 6.3282704353e-01,
-    u2 = 1.4549225569e+00,
-    u3 = 9.7771751881e-01,
-    u4 = 2.2896373272e-01,
-    u5 = 1.3381091878e-02,
-    v1 = 2.4559779167e+00,
-    v2 = 2.1284897327e+00,
-    v3 = 7.6928514242e-01,
-    v4 = 1.0422264785e-01,
-    v5 = 3.2170924824e-03,
-    s0 = -7.7215664089e-02,
-    s1 = 2.1498242021e-01,
-    s2 = 3.2577878237e-01,
-    s3 = 1.4635047317e-01,
-    s4 = 2.6642270386e-02,
-    s5 = 1.8402845599e-03,
-    s6 = 3.1947532989e-05,
-    r1 = 1.3920053244e+00,
-    r2 = 7.2193557024e-01,
-    r3 = 1.7193385959e-01,
-    r4 = 1.8645919859e-02,
-    r5 = 7.7794247773e-04,
-    r6 = 7.3266842264e-06,
-    w0 = 4.1893854737e-01,
-    w1 = 8.3333335817e-02,
-    w2 = -2.7777778450e-03,
-    w3 = 7.9365057172e-04,
-    w4 = -5.9518753551e-04,
-    w5 = 8.3633989561e-04,
-    w6 = -1.6309292987e-03;
-  float t, y, z, nadj, p, p1, p2, p3, q, r, w;
-  int i, hx, ix;
-  nadj = 0;
-  hx = *(int *) (&x);
-  ix = hx & 0x7fffffff;
-  if (ix >= 0x7f800000)
-    return x * x;
-  if (ix == 0)
-    return INFINITY;
-  if (ix < 0x1c800000) {
-    if (hx < 0) {
-      return - native_log(-x);
-    } else
-      return - native_log(x);
-  }
-  if (hx < 0) {
-    if (ix >= 0x4b000000)
-      return INFINITY;
-    t = __gen_ocl_internal_sinpi(x);
-    if (__gen_ocl_fabs(t) < 1e-8f)
-      return INFINITY;
-    nadj = native_log(M_PI_F / __gen_ocl_fabs(t * x));
-    x = -x;
-  }
-
-  if (ix == 0x3f800000 || ix == 0x40000000)
-    r = 0;
-  else if (ix < 0x40000000) {
-    if (ix <= 0x3f666666) {
-      r = - native_log(x);
-      if (ix >= 0x3f3b4a20) {
-        y = 1 - x;
-        i = 0;
-      } else if (ix >= 0x3e6d3308) {
-        y = x - (tc - 1);
-        i = 1;
-      } else {
-        y = x;
-        i = 2;
-      }
-    } else {
-      r = 0;
-      if (ix >= 0x3fdda618) {
-        y = 2 - x;
-        i = 0;
-      } else if (ix >= 0x3F9da620) {
-        y = x - tc;
-        i = 1;
-      } else {
-        y = x - 1;
-        i = 2;
-      }
-    }
-    switch (i) {
-    case 0:
-      z = y * y;
-      p1 = a0 + z * (a2 + z * (a4 + z * (a6 + z * (a8 + z * a10))));
-      p2 = z * (a1 + z * (a3 + z * (a5 + z * (a7 + z * (a9 + z * a11)))));
-      p = y * p1 + p2;
-      r += (p - .5f * y);
-      break;
-    case 1:
-      z = y * y;
-      w = z * y;
-      p1 = t0 + w * (t3 + w * (t6 + w * (t9 + w * t12)));
-      p2 = t1 + w * (t4 + w * (t7 + w * (t10 + w * t13)));
-      p3 = t2 + w * (t5 + w * (t8 + w * (t11 + w * t14)));
-      p = z * p1 - (tt - w * (p2 + y * p3));
-      r += (tf + p);
-      break;
-    case 2:
-      p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * u5)))));
-      p2 = 1 + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5))));
-      r += (-.5f * y + p1 / p2);
-    }
-  } else if (ix < 0x41000000) {
-    i = x;
-    t = 0;
-    y = x - i;
-    p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
-    q = 1 + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6)))));
-    r = .5f * y + p / q;
-    z = 1;
-    switch (i) {
-    case 7:
-      z *= (y + 6.f);
-    case 6:
-      z *= (y + 5.f);
-    case 5:
-      z *= (y + 4.f);
-    case 4:
-      z *= (y + 3.f);
-    case 3:
-      z *= (y + 2.f);
-      r += native_log(z);
-      break;
-    }
-  } else if (ix < 0x5c800000) {
-    t = native_log(x);
-    z = 1 / x;
-    y = z * z;
-    w = w0 + z * (w1 + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6)))));
-    r = (x - .5f) * (t - 1) + w;
-  } else
-    r = x * (native_log(x) - 1);
-  if (hx < 0)
-    r = nadj - r;
-  return r;
-}
-
-INLINE_OVERLOADABLE float lgamma(float x) {
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-    const float
-        zero=  0.,
-        one =  1.0000000000e+00,
-        pi  =  3.1415927410e+00,
-        a0  =  7.7215664089e-02,
-        a1  =  3.2246702909e-01,
-        a2  =  6.7352302372e-02,
-        a3  =  2.0580807701e-02,
-        a4  =  7.3855509982e-03,
-        a5  =  2.8905137442e-03,
-        a6  =  1.1927076848e-03,
-        a7  =  5.1006977446e-04,
-        a8  =  2.2086278477e-04,
-        a9  =  1.0801156895e-04,
-        a10 =  2.5214456400e-05,
-        a11 =  4.4864096708e-05,
-        tc  =  1.4616321325e+00,
-        tf  = -1.2148628384e-01,
-        tt  =  6.6971006518e-09,
-        t0  =  4.8383611441e-01,
-        t1  = -1.4758771658e-01,
-        t2  =  6.4624942839e-02,
-        t3  = -3.2788541168e-02,
-        t4  =  1.7970675603e-02,
-        t5  = -1.0314224288e-02,
-        t6  =  6.1005386524e-03,
-        t7  = -3.6845202558e-03,
-        t8  =  2.2596477065e-03,
-        t9  = -1.4034647029e-03,
-        t10 =  8.8108185446e-04,
-        t11 = -5.3859531181e-04,
-        t12 =  3.1563205994e-04,
-        t13 = -3.1275415677e-04,
-        t14 =  3.3552918467e-04,
-        u0  = -7.7215664089e-02,
-        u1  =  6.3282704353e-01,
-        u2  =  1.4549225569e+00,
-        u3  =  9.7771751881e-01,
-        u4  =  2.2896373272e-01,
-        u5  =  1.3381091878e-02,
-        v1  =  2.4559779167e+00,
-        v2  =  2.1284897327e+00,
-        v3  =  7.6928514242e-01,
-        v4  =  1.0422264785e-01,
-        v5  =  3.2170924824e-03,
-        s0  = -7.7215664089e-02,
-        s1  =  2.1498242021e-01,
-        s2  =  3.2577878237e-01,
-        s3  =  1.4635047317e-01,
-        s4  =  2.6642270386e-02,
-        s5  =  1.8402845599e-03,
-        s6  =  3.1947532989e-05,
-        r1  =  1.3920053244e+00,
-        r2  =  7.2193557024e-01,
-        r3  =  1.7193385959e-01,
-        r4  =  1.8645919859e-02,
-        r5  =  7.7794247773e-04,
-        r6  =  7.3266842264e-06,
-        w0  =  4.1893854737e-01,
-        w1  =  8.3333335817e-02,
-        w2  = -2.7777778450e-03,
-        w3  =  7.9365057172e-04,
-        w4  = -5.9518753551e-04,
-        w5  =  8.3633989561e-04,
-        w6  = -1.6309292987e-03;
-	float t, y, z, nadj, p, p1, p2, p3, q, r, w;
-	int i, hx, ix;
-	nadj = 0;
-	hx = *(int *)&x;
-	ix = hx & 0x7fffffff;
-	if (ix >= 0x7f800000)
-		return x * x;
-	if (ix == 0)
-		return ((x + one) / zero);
-	if (ix < 0x1c800000) {
-		if (hx < 0) {
-			return -native_log(-x);
-		} else
-			return -native_log(x);
-	}
-	if (hx < 0) {
-		if (ix >= 0x4b000000)
-			return ((-x) / zero);
-		t = __gen_ocl_internal_sinpi(x);
-		if (t == zero)
-			return ((-x) / zero);
-		nadj = native_log(pi / __gen_ocl_fabs(t * x));
-		x = -x;
-	}
-	if (ix == 0x3f800000 || ix == 0x40000000)
-		r = 0;
-	else if (ix < 0x40000000) {
-		if (ix <= 0x3f666666) {
-			r = -native_log(x);
-			if (ix >= 0x3f3b4a20) {
-				y = one - x;
-				i = 0;
-			} else if (ix >= 0x3e6d3308) {
-				y = x - (tc - one);
-				i = 1;
-			} else {
-				y = x;
-				i = 2;
-			}
-		} else {
-			r = zero;
-			if (ix >= 0x3fdda618) {
-				y = (float) 2.0 - x;
-				i = 0;
-			}
-			else if (ix >= 0x3F9da620) {
-				y = x - tc;
-				i = 1;
-			}
-			else {
-				y = x - one;
-				i = 2;
-			}
-		}
-		switch (i) {
-		case 0:
-			z = y * y;
-			p1 = a0 + z * (a2 + z * (a4 + z * (a6 + z * (a8 + z * a10))));
-			p2 = z * (a1 + z * (a3 + z * (a5 + z * (a7 + z * (a9 + z * a11)))));
-			p = y * p1 + p2;
-			r += (p - (float) 0.5 * y);
-			break;
-		case 1:
-			z = y * y;
-			w = z * y;
-			p1 = t0 + w * (t3 + w * (t6 + w * (t9 + w * t12)));
-			p2 = t1 + w * (t4 + w * (t7 + w * (t10 + w * t13)));
-			p3 = t2 + w * (t5 + w * (t8 + w * (t11 + w * t14)));
-			p = z * p1 - (tt - w * (p2 + y * p3));
-			r += (tf + p);
-			break;
-		case 2:
-			p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * u5)))));
-			p2 = one + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5))));
-			r += (-(float) 0.5 * y + p1 / p2);
-		}
-	} else if (ix < 0x41000000) {
-		i = (int) x;
-		t = zero;
-		y = x - (float) i;
-		p = y * (s0 + y * (s1 + y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6))))));
-		q = one + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6)))));
-		r = .5f * y + p / q;
-		z = one;
-		switch (i) {
-		case 7:
-			z *= (y + (float) 6.0);
-		case 6:
-			z *= (y + (float) 5.0);
-		case 5:
-			z *= (y + (float) 4.0);
-		case 4:
-			z *= (y + (float) 3.0);
-		case 3:
-			z *= (y + (float) 2.0);
-			r += native_log(z);
-			break;
-		}
-
-	} else if (ix < 0x5c800000) {
-		t = native_log(x);
-		z = one / x;
-		y = z * z;
-		w = w0 + z * (w1 + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6)))));
-		r = (x - .5f) * (t - one) + w;
-	} else
-		r = x * (native_log(x) - one);
-	if (hx < 0)
-		r = nadj - r;
-	return r;
-}
-
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-#define BODY \
-    const float  \
-        zero=  0.,  \
-        one =  1.0000000000e+00,  \
-        pi  =  3.1415927410e+00,  \
-        a0  =  7.7215664089e-02,  \
-        a1  =  3.2246702909e-01,  \
-        a2  =  6.7352302372e-02,  \
-        a3  =  2.0580807701e-02,  \
-        a4  =  7.3855509982e-03,  \
-        a5  =  2.8905137442e-03,  \
-        a6  =  1.1927076848e-03,  \
-        a7  =  5.1006977446e-04,  \
-        a8  =  2.2086278477e-04,  \
-        a9  =  1.0801156895e-04,  \
-        a10 =  2.5214456400e-05,  \
-        a11 =  4.4864096708e-05,  \
-        tc  =  1.4616321325e+00,  \
-        tf  = -1.2148628384e-01,  \
-        tt  =  6.6971006518e-09,  \
-        t0  =  4.8383611441e-01,  \
-        t1  = -1.4758771658e-01,  \
-        t2  =  6.4624942839e-02,  \
-        t3  = -3.2788541168e-02,  \
-        t4  =  1.7970675603e-02,  \
-        t5  = -1.0314224288e-02,  \
-        t6  =  6.1005386524e-03,  \
-        t7  = -3.6845202558e-03,  \
-        t8  =  2.2596477065e-03,  \
-        t9  = -1.4034647029e-03,  \
-        t10 =  8.8108185446e-04,  \
-        t11 = -5.3859531181e-04,  \
-        t12 =  3.1563205994e-04,  \
-        t13 = -3.1275415677e-04,  \
-        t14 =  3.3552918467e-04,  \
-        u0  = -7.7215664089e-02,  \
-        u1  =  6.3282704353e-01,  \
-        u2  =  1.4549225569e+00,  \
-        u3  =  9.7771751881e-01,  \
-        u4  =  2.2896373272e-01,  \
-        u5  =  1.3381091878e-02,  \
-        v1  =  2.4559779167e+00,  \
-        v2  =  2.1284897327e+00,  \
-        v3  =  7.6928514242e-01,  \
-        v4  =  1.0422264785e-01,  \
-        v5  =  3.2170924824e-03,  \
-        s0  = -7.7215664089e-02,  \
-        s1  =  2.1498242021e-01,  \
-        s2  =  3.2577878237e-01,  \
-        s3  =  1.4635047317e-01,  \
-        s4  =  2.6642270386e-02,  \
-        s5  =  1.8402845599e-03,  \
-        s6  =  3.1947532989e-05,  \
-        r1  =  1.3920053244e+00,  \
-        r2  =  7.2193557024e-01,  \
-        r3  =  1.7193385959e-01,  \
-        r4  =  1.8645919859e-02,  \
-        r5  =  7.7794247773e-04,  \
-        r6  =  7.3266842264e-06,  \
-        w0  =  4.1893854737e-01,  \
-        w1  =  8.3333335817e-02,  \
-        w2  = -2.7777778450e-03,  \
-        w3  =  7.9365057172e-04,  \
-        w4  = -5.9518753551e-04,  \
-        w5  =  8.3633989561e-04,  \
-        w6  = -1.6309292987e-03;  \
-	float t, y, z, nadj, p, p1, p2, p3, q, r, w;  \
-	int i, hx, ix;  \
-	nadj = 0;  \
-	hx = *(int *)&x;  \
-	*signgamp = 1;  \
-	ix = hx & 0x7fffffff;  \
-	if (ix >= 0x7f800000)  \
-		return x * x;  \
-	if (ix == 0)  \
-		return ((x + one) / zero);  \
-	if (ix < 0x1c800000) {  \
-		if (hx < 0) {  \
-			*signgamp = -1;  \
-			return -native_log(-x);  \
-		} else  \
-			return -native_log(x);  \
-	}  \
-	if (hx < 0) {  \
-		if (ix >= 0x4b000000)  \
-			return ((-x) / zero);  \
-		t = __gen_ocl_internal_sinpi(x);  \
-		if (t == zero)  \
-			return ((-x) / zero);  \
-		nadj = native_log(pi / __gen_ocl_fabs(t * x));  \
-		if (t < zero)  \
-			*signgamp = -1;  \
-		x = -x;  \
-	}  \
-	if (ix == 0x3f800000 || ix == 0x40000000)  \
-		r = 0;  \
-	else if (ix < 0x40000000) {  \
-		if (ix <= 0x3f666666) {  \
-			r = -native_log(x);  \
-			if (ix >= 0x3f3b4a20) {  \
-				y = one - x;  \
-				i = 0;  \
-			} else if (ix >= 0x3e6d3308) {  \
-				y = x - (tc - one);  \
-				i = 1;  \
-			} else {  \
-				y = x;  \
-				i = 2;  \
-			}  \
-		} else {  \
-			r = zero;  \
-			if (ix >= 0x3fdda618) {  \
-				y = (float) 2.0 - x;  \
-				i = 0;  \
-			}  \
-			else if (ix >= 0x3F9da620) {  \
-				y = x - tc;  \
-				i = 1;  \
-			}  \
-			else {  \
-				y = x - one;  \
-				i = 2;  \
-			}  \
-		}  \
-		switch (i) {  \
-		case 0:  \
-			z = y * y;  \
-			p1 = a0 + z * (a2 + z * (a4 + z * (a6 + z * (a8 + z * a10))));  \
-			p2 = z * (a1 + z * (a3 + z * (a5 + z * (a7 + z * (a9 + z * a11)))));  \
-			p = y * p1 + p2;  \
-			r += (p - (float) 0.5 * y);  \
-			break;  \
-		case 1:  \
-			z = y * y;  \
-			w = z * y;  \
-			p1 = t0 + w * (t3 + w * (t6 + w * (t9 + w * t12)));  \
-			p2 = t1 + w * (t4 + w * (t7 + w * (t10 + w * t13)));  \
-			p3 = t2 + w * (t5 + w * (t8 + w * (t11 + w * t14)));  \
-			p = z * p1 - (tt - w * (p2 + y * p3));  \
-			r += (tf + p);  \
-			break;  \
-		case 2:  \
-			p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * u5)))));  \
-			p2 = one + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * v5))));  \
-			r += (-(float) 0.5 * y + p1 / p2);  \
-		}  \
-	} else if (ix < 0x41000000) {  \
-		i = (int) x;  \
-		t = zero;  \
-		y = x - (float) i;  \
-		p = y * (s0 + y * (s1 + y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6))))));  \
-		q = one + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * r6)))));  \
-		r = .5f * y + p / q;  \
-		z = one;  \
-		switch (i) {  \
-		case 7:  \
-			z *= (y + (float) 6.0);  \
-		case 6:  \
-			z *= (y + (float) 5.0);  \
-		case 5:  \
-			z *= (y + (float) 4.0);  \
-		case 4:  \
-			z *= (y + (float) 3.0);  \
-		case 3:  \
-			z *= (y + (float) 2.0);  \
-			r += native_log(z);  \
-			break;  \
-		}  \
-		  \
-	} else if (ix < 0x5c800000) {  \
-		t = native_log(x);  \
-		z = one / x;  \
-		y = z * z;  \
-		w = w0 + z * (w1 + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * w6)))));  \
-		r = (x - .5f) * (t - one) + w;  \
-	} else  \
-		r = x * (native_log(x) - one);  \
-	if (hx < 0)  \
-		r = nadj - r;  \
-	return r;
-INLINE_OVERLOADABLE float lgamma_r(float x, global int *signgamp) { BODY; }
-INLINE_OVERLOADABLE float lgamma_r(float x, local int *signgamp) { BODY; }
-INLINE_OVERLOADABLE float lgamma_r(float x, private int *signgamp) { BODY; }
-#undef BODY
-
-INLINE_OVERLOADABLE float native_log10(float x) {
-  return native_log2(x) * 0.3010299956f;
-}
-INLINE_OVERLOADABLE float log1p(float x) {
-/*
- *  Conversion to float by Ian Lance Taylor, Cygnus Support, ian at cygnus.com
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunPro, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-  const float
-  ln2_hi =   6.9313812256e-01,  /* 0x3f317180 */
-  ln2_lo =   9.0580006145e-06,  /* 0x3717f7d1 */
-  two25 =    3.355443200e+07, /* 0x4c000000 */
-  Lp1 = 6.6666668653e-01, /* 3F2AAAAB */
-  Lp2 = 4.0000000596e-01, /* 3ECCCCCD */
-  Lp3 = 2.8571429849e-01, /* 3E924925 */
-  Lp4 = 2.2222198546e-01, /* 3E638E29 */
-  Lp5 = 1.8183572590e-01, /* 3E3A3325 */
-  Lp6 = 1.5313838422e-01, /* 3E1CD04F */
-  Lp7 = 1.4798198640e-01; /* 3E178897 */
-  const float zero = 0.0;
-  float hfsq,f,c,s,z,R,u;
-  int k,hx,hu,ax;
-  union {float f; unsigned i;} un;
-  un.f = x;  hx = un.i;
-  ax = hx&0x7fffffff;
-
-  k = 1;
-  if (hx < 0x3ed413d7) {      /* x < 0.41422  */
-      if(ax>=0x3f800000) {    /* x <= -1.0 */
-    if(x==(float)-1.0) return -two25/zero; /* log1p(-1)=+inf */
-    else return (x-x)/(x-x);  /* log1p(x<-1)=NaN */
-      }
-      if(ax<0x31000000) {     /* |x| < 2**-29 */
-    if(two25+x>zero     /* raise inexact */
-              &&ax<0x24800000)    /* |x| < 2**-54 */
-        return x;
-    else
-        return x - x*x*(float)0.5;
-      }
-      if(hx>0||hx<=((int)0xbe95f61f)) {
-    k=0;f=x;hu=1;}  /* -0.2929<x<0.41422 */
-  }
-  if (hx >= 0x7f800000) return x+x;
-  if(k!=0) {
-      if(hx<0x5a000000) {
-    u  = (float)1.0+x;
-
-    un.f = u; hu = un.i;
-          k  = (hu>>23)-127;
-    /* correction term */
-          c  = (k>0)? (float)1.0-(u-x):x-(u-(float)1.0);
-    c /= u;
-      } else {
-    u  = x;
-    un.f = u; hu = un.i;
-          k  = (hu>>23)-127;
-    c  = 0;
-      }
-      hu &= 0x007fffff;
-      if(hu<0x3504f7) {
-          un.i = hu|0x3f800000; u = un.f;/* normalize u */
-      } else {
-          k += 1;
-          un.i = hu|0x3f000000; u = un.f;  /* normalize u/2 */
-          hu = (0x00800000-hu)>>2;
-      }
-      f = u-(float)1.0;
-  }
-  hfsq=(float)0.5*f*f;
-  if(hu==0) { /* |f| < 2**-20 */
-      if(f==zero) { if(k==0) return zero;
-      else {c += k*ln2_lo; return k*ln2_hi+c;} }
-      R = hfsq*((float)1.0-(float)0.66666666666666666*f);
-      if(k==0) return f-R; else
-             return k*ln2_hi-((R-(k*ln2_lo+c))-f);
-  }
-  s = f/((float)2.0+f);
-  z = s*s;
-  R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
-  if(k==0) return f-(hfsq-s*(hfsq+R)); else
-     return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
-
-}
-INLINE_OVERLOADABLE float logb(float x) {
-union {float f; unsigned i;} u;
-  u.f = x;
-  int e =  ((u.i & 0x7f800000) >> 23);
-  if(e == 0) {
-    /* sub normal or +/-0 */
-    return -INFINITY;
-  } else if(e == 0xff) {
-    /* inf & nan */
-    return x*x;
-  } else {
-    return (float)(e-127);
-  }
-}
-#define FP_ILOGB0 (-0x7FFFFFFF-1)
-#define FP_ILOGBNAN FP_ILOGB0
-INLINE_OVERLOADABLE int ilogb(float x) {
-  union { int i; float f; } u;
-  if (isnan(x))
-    return FP_ILOGBNAN;
-  if (isinf(x))
-    return 0x7FFFFFFF;
-  u.f = x;
-  u.i &= 0x7fffffff;
-  if (u.i == 0)
-    return FP_ILOGB0;
-  if (u.i >= 0x800000)
-    return (u.i >> 23) - 127;
-  int r = -126;
-  int a = u.i & 0x7FFFFF;
-  while(a < 0x800000) {
-    a <<= 1;
-    r --;
-  }
-  return r;
-}
-INLINE_OVERLOADABLE float nan(uint code) {
-  return NAN;
-}
-INLINE_OVERLOADABLE float native_powr(float x, float y) { return __gen_ocl_pow(x,y); }
-INLINE_OVERLOADABLE float native_recip(float x) { return __gen_ocl_rcp(x); }
-INLINE_OVERLOADABLE float native_tan(float x) {
-  return native_sin(x) / native_cos(x);
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_tanpi(float x) {
-  float sign = 1.0f;
-  int ix;
-  if(isinf(x)) return NAN;
-  if(x < 0.0f) { x = -x; sign = -1.0f; }
-  GEN_OCL_GET_FLOAT_WORD(ix, x);
-  if(x> 0x1.0p24) return 0.0f;
-  float m = __gen_ocl_internal_floor(x);
-  ix = (int)m;
-  m = x-m;
-  int n = __gen_ocl_internal_floor(m*4.0f);
-  if(m == 0.5f) {
-    return (ix&0x1) == 0 ? sign*INFINITY : sign*-INFINITY;
-  }
-  if(m == 0.0f) {
-    return (ix&0x1) == 0 ? 0.0f : -0.0f;
-  }
-
-  switch(n) {
-    case 0:
-      return sign * __kernel_tanf(m*M_PI_F, 0.0f, 1);
-    case 1:
-      return sign * 1.0f/__kernel_tanf((0.5f-m)*M_PI_F, 0.0f, 1);
-    case 2:
-      return sign * 1.0f/__kernel_tanf((0.5f-m)*M_PI_F, 0.0f, 1);
-    default:
-      return sign * -1.0f*__kernel_tanf((1.0f-m)*M_PI_F, 0.0f, 1);
-  }
-}
-INLINE_OVERLOADABLE float native_exp2(float x) { return __gen_ocl_exp(x); }
-INLINE_OVERLOADABLE float native_exp(float x) { return __gen_ocl_exp(M_LOG2E_F*x); }
-INLINE_OVERLOADABLE float native_exp10(float x) { return __gen_ocl_pow(10, x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_cbrt(float x) {
-  /* copied from fdlibm */
-  const unsigned
-  B1 = 709958130, /* B1 = (84+2/3-0.03306235651)*2**23 */
-  B2 = 642849266; /* B2 = (76+2/3-0.03306235651)*2**23 */
-
-  const float
-  C =  5.4285717010e-01, /* 19/35     = 0x3f0af8b0 */
-  D = -7.0530611277e-01, /* -864/1225 = 0xbf348ef1 */
-  E =  1.4142856598e+00, /* 99/70     = 0x3fb50750 */
-  F =  1.6071428061e+00, /* 45/28     = 0x3fcdb6db */
-  G =  3.5714286566e-01; /* 5/14      = 0x3eb6db6e */
-
-  float r,s,t, w;
-  int hx;
-  uint sign;
-  uint high;
-
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  sign=hx&0x80000000;     /* sign= sign(x) */
-  hx  ^=sign;
-  if(hx>=0x7f800000) return(x+x); /* cbrt(NaN,INF) is itself */
-  if(hx==0)
-      return(x);    /* cbrt(0) is itself */
-
-  GEN_OCL_SET_FLOAT_WORD(x,hx); /* x <- |x| */
-    /* rough cbrt to 5 bits */
-  if(hx<0x00800000)     /* subnormal number */
-    {
-    //SET_FLOAT_WORD(t,0x4b800000); /* set t= 2**24 */
-     //t*=x; GET_FLOAT_WORD(high,t); SET_FLOAT_WORD(t,high/3+B2);
-      t = (sign = 0) ? 0.0f : -0.0f;
-      return t;
-    }
-  else
-    GEN_OCL_SET_FLOAT_WORD(t,hx/3+B1);
-
-
-    /* new cbrt to 23 bits */
-  r=t*t/x;
-  s=C+r*t;
-  t*=G+F/(s+E+D/s);
-    /* one step newton iteration to 53 bits with error less than 0.667 ulps */
-  s=t*t;    /* t*t is exact */
-  r=x/s;
-  w=t+t;
-  r=(r-t)/(w+r);  /* r-s is exact */
-  t=t+t*r;
-
-    /* retore the sign bit */
-  GEN_OCL_GET_FLOAT_WORD(high,t);
-  GEN_OCL_SET_FLOAT_WORD(t,high|sign);
-  return(t);
-}
-
-#define BODY \
-  *cosval = cos(x); \
-  return sin(x);
-INLINE_OVERLOADABLE float sincos(float x, global float *cosval) { BODY; }
-INLINE_OVERLOADABLE float sincos(float x, local float *cosval) { BODY; }
-INLINE_OVERLOADABLE float sincos(float x, private float *cosval) { BODY; }
-#undef BODY
-
-INLINE float __gen_ocl_asin_util(float x) {
-/*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
- *
- * Developed at SunSoft, a Sun Microsystems, Inc. business.
- * Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
- * is preserved.
- * ====================================================
- */
-  float
-  pS0 =  1.66666666666666657415e-01,
-  pS1 = -3.25565818622400915405e-01,
-  pS2 =  2.01212532134862925881e-01,
-  pS3 = -4.00555345006794114027e-02,
-  pS4 =  7.91534994289814532176e-04,
-  pS5 =  3.47933107596021167570e-05,
-  qS1 = -2.40339491173441421878e+00,
-  qS2 =  2.02094576023350569471e+00,
-  qS3 = -6.88283971605453293030e-01,
-  qS4 =  7.70381505559019352791e-02;
-
-  float t = x*x;
-  float p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5)))));
-  float q = 1.0+t*(qS1+t*(qS2+t*(qS3+t*qS4)));
-  float w = p / q;
-  return x + x*w;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_asin(float x) {
-  uint ix;
-  union { uint i; float f; } u;
-  u.f = x;
-  ix = u.i & 0x7fffffff;
-  if(ix == 0x3f800000) {
-    return x * M_PI_2_F;  /* asin(|1|)=+-pi/2 with inexact */
-  }
-  if(ix > 0x3f800000) {            /* |x|>= 1 */
-    return  NAN;          /* asin(|x|>1) is NaN */
-  }
-
-  if(ix < 0x32000000) {            /* if |x| < 2**-27 */
-    if(HUGE_VALF + x > FLT_ONE) return x;   /* return x with inexact if x!=0*/
-  }
-
-  if(x < -0.5) {
-    return 2 * __gen_ocl_asin_util(native_sqrt((1+x) / 2)) - M_PI_2_F;
-  } else if(x > 0.5) {
-    return M_PI_2_F - 2 * __gen_ocl_asin_util(native_sqrt((1-x) / 2));
-  } else {
-    return __gen_ocl_asin_util(x);
-  }
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_asinpi(float x) {
-  return __gen_ocl_internal_asin(x) / M_PI_F;
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_acos(float x) {
-  if(x > 0.5)
-    return 2 * __gen_ocl_asin_util(native_sqrt((1-x)/2));
-  else
-    return M_PI_2_F - __gen_ocl_internal_asin(x);
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_acospi(float x) {
-  return __gen_ocl_internal_acos(x) / M_PI_F;
-}
-__constant float atanhi[4] = {
-  4.6364760399e-01, /* atan(0.5)hi 0x3eed6338 */
-  7.8539812565e-01, /* atan(1.0)hi 0x3f490fda */
-  9.8279368877e-01, /* atan(1.5)hi 0x3f7b985e */
-  1.5707962513e+00, /* atan(inf)hi 0x3fc90fda */
-};
-__constant float atanlo[4] = {
-  5.0121582440e-09, /* atan(0.5)lo 0x31ac3769 */
-  3.7748947079e-08, /* atan(1.0)lo 0x33222168 */
-  3.4473217170e-08, /* atan(1.5)lo 0x33140fb4 */
-  7.5497894159e-08, /* atan(inf)lo 0x33a22168 */
-};
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_atan(float x) {
-  /* copied from fdlibm */
-  float aT[11];
-  aT[0] = 3.3333334327e-01; /* 0x3eaaaaaa */
-  aT[1] =  -2.0000000298e-01; /* 0xbe4ccccd */
-  aT[2] =   1.4285714924e-01; /* 0x3e124925 */
-  aT[3] =  -1.1111110449e-01; /* 0xbde38e38 */
-  aT[4] =   9.0908870101e-02; /* 0x3dba2e6e */
-  aT[5] =  -7.6918758452e-02; /* 0xbd9d8795 */
-  aT[6] =   6.6610731184e-02; /* 0x3d886b35 */
-  aT[7] =  -5.8335702866e-02; /* 0xbd6ef16b */
-  aT[8] =   4.9768779427e-02; /* 0x3d4bda59 */
-  aT[9] =  -3.6531571299e-02; /* 0xbd15a221 */
-  aT[10] =   1.6285819933e-02; /* 0x3c8569d7 */
-  const float one = 1.0, huge = 1.0e30;
-
-  float w,s1,s2,z;
-  int ix,hx,id;
-
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  ix = hx&0x7fffffff;
-  if(ix>=0x50800000) {  /* if |x| >= 2^34 */
-      if(ix>0x7f800000)
-    return x+x;   /* NaN */
-      if(hx>0) return  atanhi[3]+atanlo[3];
-      else     return -atanhi[3]-atanlo[3];
-  } if (ix < 0x3ee00000) {  /* |x| < 0.4375 */
-      if (ix < 0x31000000) {  /* |x| < 2^-29 */
-    if(huge+x>one) return x;  /* raise inexact */
-      }
-      id = -1;
-  } else {
-  x = __gen_ocl_fabs(x);
-  if (ix < 0x3f980000) {    /* |x| < 1.1875 */
-      if (ix < 0x3f300000) {  /* 7/16 <=|x|<11/16 */
-    id = 0; x = ((float)2.0*x-one)/((float)2.0+x);
-      } else {      /* 11/16<=|x|< 19/16 */
-    id = 1; x  = (x-one)/(x+one);
-      }
-  } else {
-      if (ix < 0x401c0000) {  /* |x| < 2.4375 */
-    id = 2; x  = (x-(float)1.5)/(one+(float)1.5*x);
-      } else {      /* 2.4375 <= |x| < 2^66 */
-    id = 3; x  = -(float)1.0/x;
-      }
-  }}
-    /* end of argument reduction */
-  z = x*x;
-  w = z*z;
-    /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
-  s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10])))));
-  s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9]))));
-  if (id<0) return x - x*(s1+s2);
-  else {
-      z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
-      return (hx<0)? -z:z;
-  }
-
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_atanpi(float x) {
-  return __gen_ocl_internal_atan(x) / M_PI_F;
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_erf(float x) {
-  return M_2_SQRTPI_F * (x - __gen_ocl_pow(x, 3) / 3 + __gen_ocl_pow(x, 5) / 10 - __gen_ocl_pow(x, 7) / 42 + __gen_ocl_pow(x, 9) / 216);
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_erfc(float x) {
-  return 1 - __gen_ocl_internal_erf(x);
-}
-
-// XXX work-around PTX profile
-#define sqrt native_sqrt
-INLINE_OVERLOADABLE float rsqrt(float x) { return native_rsqrt(x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_atan2(float y, float x) {
-  /* copied from fdlibm */
-  float z;
-  int k,m,hx,hy,ix,iy;
-  const float
-  tiny  = 1.0e-30,
-  zero  = 0.0,
-  pi_o_4  = 7.8539818525e-01, /* 0x3f490fdb */
-  pi_o_2  = 1.5707963705e+00, /* 0x3fc90fdb */
-  pi      = 3.1415927410e+00, /* 0x40490fdb */
-  pi_lo   = -8.7422776573e-08; /* 0xb3bbbd2e */
-
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  ix = hx&0x7fffffff;
-  GEN_OCL_GET_FLOAT_WORD(hy,y);
-  iy = hy&0x7fffffff;
-
-  if((ix>0x7f800000)||
-     (iy>0x7f800000)) /* x or y is NaN */
-     return x+y;
-  if(hx==0x3f800000) return z=__gen_ocl_internal_atan(y);   /* x=1.0 */
-  m = ((hy>>31)&1)|((hx>>30)&2);  /* 2*sign(x)+sign(y) */
-
-    /* when y = 0 */
-  if(iy==0) {
-      switch(m) {
-    case 0:
-    case 1: return y;   /* atan(+-0,+anything)=+-0 */
-    case 2: return  pi+tiny;/* atan(+0,-anything) = pi */
-    case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
-      }
-  }
-    /* when x = 0 */
-  if(ix==0) return (hy<0)?  -pi_o_2-tiny: pi_o_2+tiny;
-
-  /* both are denorms. Gen does not support denorm, so we convert to normal float number*/
-  if(ix <= 0x7fffff && iy <= 0x7fffff) {
-    x = (float)(ix) * (1.0f - ((hx>>30) & 0x2));
-    y = (float)(iy) * (1.0f - ((hy>>30) & 0x2));
-  }
-
-    /* when x is INF */
-  if(ix==0x7f800000) {
-      if(iy==0x7f800000) {
-    switch(m) {
-        case 0: return  pi_o_4+tiny;/* atan(+INF,+INF) */
-        case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
-        case 2: return  (float)3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/
-        case 3: return (float)-3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/
-    }
-      } else {
-    switch(m) {
-        case 0: return  zero  ; /* atan(+...,+INF) */
-        case 1: return -zero  ; /* atan(-...,+INF) */
-        case 2: return  pi+tiny  ;  /* atan(+...,-INF) */
-        case 3: return -pi-tiny  ;  /* atan(-...,-INF) */
-    }
-      }
-  }
-    /* when y is INF */
-  if(iy==0x7f800000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
-
-    /* compute y/x */
-  k = (iy-ix)>>23;
-  if(k > 60) z=pi_o_2+(float)0.5*pi_lo;   /* |y/x| >  2**60 */
-  else if(hx<0&&k<-60) z=0.0;   /* |y|/x < -2**60 */
-  else z=__gen_ocl_internal_atan(__gen_ocl_fabs(y/x)); /* safe to do y/x */
-  switch (m) {
-      case 0: return       z  ; /* atan(+,+) */
-      case 1: {
-              uint zh;
-          GEN_OCL_GET_FLOAT_WORD(zh,z);
-          GEN_OCL_SET_FLOAT_WORD(z,zh ^ 0x80000000);
-        }
-        return       z  ; /* atan(-,+) */
-      case 2: return  pi-(z-pi_lo);/* atan(+,-) */
-      default: /* case 3 */
-            return  (z-pi_lo)-pi;/* atan(-,-) */
-  }
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_atan2pi(float y, float x) {
-  uint ix = as_uint(x), iy = as_uint(y),
-       pos_zero = 0, neg_zero = 0x80000000u,
-       pos_inf = 0x7f800000, neg_inf = 0xff800000u;
-  if(iy == pos_zero) {
-    if(ix == pos_zero)
-      return 0;
-    if(ix == neg_zero)
-      return 1;
-    if(x < 0)
-      return 1;
-    if(x > 0)
-      return 0;
-  }
-  if(iy == neg_zero) {
-    if(ix == pos_zero)
-      return -0.f;
-    if(ix == neg_zero)
-      return -1;
-    if(x < 0)
-      return -1;
-    if(x > 0)
-      return -0.f;
-  }
-  if((ix & 0x7fffffff) == 0) {
-    if(y < 0)
-      return -.5f;
-    if(y > 0)
-      return .5f;
-  }
-  if(ix == pos_inf) {
-    if(y > 0 && iy != pos_inf)
-      return 0;
-    if(y < 0 && iy != neg_inf)
-      return -0.f;
-  }
-  if(ix == neg_inf) {
-    if(y > 0 && iy != pos_inf)
-      return 1;
-    if(y < 0 && iy != neg_inf)
-      return -1;
-  }
-  if(iy == pos_inf) {
-    if(ix == pos_inf)
-      return 0.25f;
-    if(ix == neg_inf)
-      return 0.75f;
-    if(x >= 0 || x <= 0)
-      return 0.5f;
-  }
-  if(iy == neg_inf) {
-    if(ix == pos_inf)
-      return -0.25f;
-    if(ix == neg_inf)
-      return -0.75f;
-    if(x >= 0 || x <= 0)
-      return -0.5f;
-  }
-  return __gen_ocl_internal_atan2(y, x) / M_PI_F;
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_fabs(float x)  { return __gen_ocl_fabs(x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_trunc(float x) { return __gen_ocl_rndz(x); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_round(float x) {
-  float y = __gen_ocl_rndz(x);
-  if (__gen_ocl_fabs(x - y) >= 0.5f)
-    y += __gen_ocl_internal_copysign(1.f, x);
-  return y;
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_ceil(float x)  { return __gen_ocl_rndu(x); }
-INLINE_OVERLOADABLE float powr(float x, float y) { return __gen_ocl_pow(x,y); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_rint(float x) {
-  return __gen_ocl_rnde(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_exp(float x) {
-  //use native instruction when it has enough precision
-  if (x > -0x1.6p1 && x < 0x1.6p1)
-  {
-    return native_exp(x);
-  }
-
-  float o_threshold = 8.8721679688e+01,  /* 0x42b17180 */
-  u_threshold = -1.0397208405e+02,  /* 0xc2cff1b5 */
-  twom100 = 7.8886090522e-31, 	 /* 2**-100=0x0d800000 */
-  ivln2	 =	1.4426950216e+00; /* 0x3fb8aa3b =1/ln2 */
-  float y,hi=0.0,lo=0.0,t;
-  int k=0,xsb;
-  unsigned hx;
-  float ln2HI_0 = 6.9313812256e-01;	/* 0x3f317180 */
-  float ln2HI_1 = -6.9313812256e-01;	/* 0xbf317180 */
-  float ln2LO_0 = 9.0580006145e-06;  	/* 0x3717f7d1 */
-  float ln2LO_1 = -9.0580006145e-06; /* 0xb717f7d1 */
-  float half_0 = 0.5;
-  float half_1 =	-0.5;
-
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  xsb = (hx>>31)&1;		/* sign bit of x */
-  hx &= 0x7fffffff;		/* high word of |x| */
-
-  /* filter out non-finite argument */
-  if(hx >= 0x42b17218) {			/* if |x|>=88.721... */
-    // native_exp already handled this
-    return native_exp(x);
-  }
-
-  /* argument reduction */
-  if(hx > 0x3eb17218) {		/* if  |x| > 0.5 ln2 */
-    if(hx < 0x3F851592) {	/* and |x| < 1.5 ln2 */
-      hi = x-(xsb ==1 ? ln2HI_1 : ln2HI_0);
-      lo= xsb == 1? ln2LO_1 : ln2LO_0;
-      k = 1-xsb-xsb;
-    } else {
-      float tmp = xsb == 1 ? half_1 : half_0;
-      k  = ivln2*x+tmp;
-      t  = k;
-      hi = x - t*ln2HI_0;	/* t*ln2HI is exact here */
-      lo = t*ln2LO_0;
-    }
-    x  = hi - lo;
-  }
-
-  y = native_exp(x);
-  if(k >= -125) {
-    unsigned hy;
-    GEN_OCL_GET_FLOAT_WORD(hy,y);
-    GEN_OCL_SET_FLOAT_WORD(y,hy+(k<<23));	/* add k to y's exponent */
-    return y;
-  } else {
-    unsigned hy;
-    GEN_OCL_GET_FLOAT_WORD(hy,y);
-    GEN_OCL_SET_FLOAT_WORD(y,hy+((k+100)<<23)); /* add k to y's exponent */
-    return y*twom100;
-  }
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_fmod (float x, float y) {
-  //return x-y*__gen_ocl_rndz(x/y);
-  float one = 1.0;
-  float Zero[2];
-  int n,hx,hy,hz,ix,iy,sx,i;
-  Zero[0] = 0.0;
-  Zero[1] = -0.0;
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  GEN_OCL_GET_FLOAT_WORD(hy,y);
-  sx = hx&0x80000000;		/* sign of x */
-  hx ^=sx;		/* |x| */
-  hy &= 0x7fffffff;	/* |y| */
-  /* purge off exception values */
-  if(hy==0||(hx>=0x7f800000)||		/* y=0,or x not finite */
-  (hy>0x7f800000))			/* or y is NaN */
-    return (x*y)/(x*y);
-  if(hx<hy) return x;			/* |x|<|y| return x */
-  if(hx==hy)
-    return Zero[(unsigned)sx>>31];	/* |x|=|y| return x*0*/
-
-  /* determine ix = ilogb(x) */
-  if(hx<0x00800000) {	/* subnormal x */
-    for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1;
-  } else ix = (hx>>23)-127;
-
-  /* determine iy = ilogb(y) */
-  if(hy<0x00800000) {	/* subnormal y */
-    for (iy = -126,i=(hy<<8); i>=0; i<<=1) iy -=1;
-  } else iy = (hy>>23)-127;
-
-  /* set up {hx,lx}, {hy,ly} and align y to x */
-  if(ix >= -126)
-    hx = 0x00800000|(0x007fffff&hx);
-  else {		/* subnormal x, shift x to normal */
-    n = -126-ix;
-    hx = hx<<n;
-  }
-  if(iy >= -126)
-    hy = 0x00800000|(0x007fffff&hy);
-  else {		/* subnormal y, shift y to normal */
-    n = -126-iy;
-    hy = hy<<n;
-  }
-  /* fix point fmod */
-  n = ix - iy;
-  while(n--) {
-    hz=hx-hy;
-    if(hz<0){hx = hx+hx;}
-    else {
-      if(hz==0)		/* return sign(x)*0 */
-        return Zero[(unsigned)sx>>31];
-      hx = hz+hz;
-    }
-  }
-  hz=hx-hy;
-  if(hz>=0) {hx=hz;}
-
-    /* convert back to floating value and restore the sign */
-  if(hx==0)			/* return sign(x)*0 */
-    return Zero[(unsigned)sx>>31];
-  while(hx<0x00800000) {		/* normalize x */
-    hx = hx+hx;
-    iy -= 1;
-  }
-  if(iy>= -126) {		/* normalize output */
-    hx = ((hx-0x00800000)|((iy+127)<<23));
-	GEN_OCL_SET_FLOAT_WORD(x,hx|sx);
-   } else {		/* subnormal output */
-     n = -126 - iy;
-     hx >>= n;
-     GEN_OCL_SET_FLOAT_WORD(x,hx|sx);
-     x *= one;		/* create necessary signal */
-  }
-  return x;		/* exact output */
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_expm1(float x) {
-  //return __gen_ocl_pow(M_E_F, x) - 1;
-  float	Q1 = -3.3333335072e-02, /* 0xbd088889 */
-  ln2_hi = 6.9313812256e-01,	/* 0x3f317180 */
-  ln2_lo = 9.0580006145e-06,	/* 0x3717f7d1 */
-  Q2 = 1.5873016091e-03, /* 0x3ad00d01 */
-  Q3 = -7.9365076090e-05, /* 0xb8a670cd */
-  Q4 = 4.0082177293e-06, /* 0x36867e54 */
-  Q5 = -2.0109921195e-07, /* 0xb457edbb */
-  huge = 1.0e30,
-  tiny = 1.0e-30,
-  ivln2 = 1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
-  one	=  1.0,
-  o_threshold=  8.8721679688e+01;  /* 0x42b17180 */
-  float y,hi,lo,c,t,e,hxs,hfx,r1;
-  int k,xsb;
-  int hx;
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  xsb = hx&0x80000000;
-  /* sign bit of x */
-  //if(xsb==0)
-  //y=x;
-  //else
-  //y= -x; /* y = |x| */
-  y = __gen_ocl_internal_fabs(x);
-  hx &= 0x7fffffff;		/* high word of |x| */
-  /* filter out huge and non-finite argument */
-  if(hx >= 0x4195b844) {			/* if |x|>=27*ln2 */
-    if(hx >= 0x42b17218) {		/* if |x|>=88.721... */
-      if(hx>0x7f800000)
-        return x+x; 	 /* NaN */
-      if(hx==0x7f800000)
-        return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
-      if(x > o_threshold)
-        return huge*huge; /* overflow */
-    }
-    if(xsb!=0) { /* x < -27*ln2, return -1.0 with inexact */
-      if(x+tiny<(float)0.0)	/* raise inexact */
-        return tiny-one;	/* return -1 */
-    }
-  }
-  /* argument reduction */
-  if(hx > 0x3eb17218) {/* if  |x| > 0.5 ln2 */
-    if(hx < 0x3F851592) {/* and |x| < 1.5 ln2 */
-      if(xsb==0){
-        hi = x - ln2_hi; lo = ln2_lo;  k =  1;
-      }	else {
-        hi = x + ln2_hi; lo = -ln2_lo;  k = -1;
-      }
-    } else {
-      k  = ivln2*x+((xsb==0)?(float)0.5:(float)-0.5);
-      t  = k;
-      hi = x - t*ln2_hi;/* t*ln2_hi is exact here */
-      lo = t*ln2_lo;
-    }
-    x  = hi - lo;
-    c  = (hi-x)-lo;
-  } else if(hx < 0x33000000) {	/* when |x|<2**-25, return x */
-    //t = huge+x; /* return x with inexact flags when x!=0 */
-    //return x - (t-(huge+x));
-    return x;
-  } else k = 0;
-  /* x is now in primary range */
-  hfx = (float)0.5*x;
-  hxs = x*hfx;
-  r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
-  t = (float)3.0-r1*hfx;
-  e = hxs*((r1-t)/((float)6.0 - x*t));
-  if(k==0)
-    return x - (x*e-hxs);		/* c is 0 */
-  else{
-    e = (x*(e-c)-c);
-    e -= hxs;
-    if(k== -1)return (float)0.5*(x-e)-(float)0.5;
-    if(k==1){
-      if(x < (float)-0.25)
-        return -(float)2.0*(e-(x+(float)0.5));
-      else
-        return  (one+(float)2.0*(x-e));
-    }
-    if (k <= -2 || k>56) {	 /* suffice to return exp(x)-1 */
-      int i;
-      y = one-(e-x);
-      GEN_OCL_GET_FLOAT_WORD(i,y);
-      GEN_OCL_SET_FLOAT_WORD(y,i+(k<<23));	/* add k to y's exponent */
-      return y-one;
-    }
-    t = one;
-    if(k<23) {
-      int i;
-      GEN_OCL_SET_FLOAT_WORD(t,0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */
-      y = t-(e-x);
-      GEN_OCL_GET_FLOAT_WORD(i,y);
-      GEN_OCL_SET_FLOAT_WORD(y,i+(k<<23));	/* add k to y's exponent */
-    } else {
-      int i;
-      GEN_OCL_SET_FLOAT_WORD(t,((0x7f-k)<<23));	/* 2^-k */
-      y = x-(e+t);
-      y += one;
-      GEN_OCL_GET_FLOAT_WORD(i,y);
-      GEN_OCL_SET_FLOAT_WORD(y,i+(k<<23));	/* add k to y's exponent */
-    }
-  }
-  return y;
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_acosh(float x) {
-  //return native_log(x + native_sqrt(x + 1) * native_sqrt(x - 1));
-  float one	= 1.0,
-  ln2	= 6.9314718246e-01;/* 0x3f317218 */
-  float t;
-  int hx;
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  if(hx<0x3f800000) {	/* x < 1 */
-    return (x-x)/(x-x);
-  } else if(hx >=0x4d800000) {	/* x > 2**28 */
-    if(hx >=0x7f800000) {/* x is inf of NaN */
-      return x+x;
-    } else
-      return __gen_ocl_internal_log(x)+ln2;/* acosh(huge)=log(2x) */
-  } else if (hx==0x3f800000) {
-    return 0.0;			/* acosh(1) = 0 */
-  } else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
-    t=x*x;
-    return __gen_ocl_internal_log((float)2.0*x-one/(x+__gen_ocl_sqrt(t-one)));			
-  } else {			/* 1<x<2 */
-    t = x-one;
-    return log1p(t+__gen_ocl_sqrt((float)2.0*t+t*t));
-  }
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_asinh(float x){
-  //return native_log(x + native_sqrt(x * x + 1));
-  float one =  1.0000000000e+00, /* 0x3F800000 */
-  ln2 =  6.9314718246e-01, /* 0x3f317218 */
-  huge=  1.0000000000e+30;
-  float w;
-  int hx,ix;
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  ix = hx&0x7fffffff;
-  if(ix< 0x38000000) {	/* |x|<2**-14 */
-    if(huge+x>one) return x;	/* return x inexact except 0 */
-  }
-  if(ix>0x47000000) {/* |x| > 2**14 */
-    if(ix>=0x7f800000) return x+x;/* x is inf or NaN */
-    w = __gen_ocl_internal_log(__gen_ocl_internal_fabs(x))+ln2;
-  } else {
-    float xa = __gen_ocl_internal_fabs(x);
-    if (ix>0x40000000) {/* 2**14 > |x| > 2.0 */
-      w = __gen_ocl_internal_log(2.0f*xa+one/(__gen_ocl_sqrt(xa*xa+one)+xa));
-    } else {		/* 2.0 > |x| > 2**-14 */
-      float t = xa*xa;
-      w =log1p(xa+t/(one+__gen_ocl_sqrt(one+t)));
-    }
-  }
-  return __gen_ocl_internal_copysign(w, x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_sinh(float x){
-  //return (1 - native_exp(-2 * x)) / (2 * native_exp(-x));
-  float one = 1.0,
-  shuge = 1.0e37;
-  float t,w,h;
-  int ix,jx;
-  GEN_OCL_GET_FLOAT_WORD(jx,x);
-  ix = jx&0x7fffffff;
-  /* x is INF or NaN */
-  if(ix>=0x7f800000) return x+x;
-  h = 0.5;
-  if (jx<0) h = -h;
-  /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
-  if (ix < 0x41b00000) {		/* |x|<22 */
-    if (ix<0x31800000)	/* |x|<2**-28 */
-      if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */
-    t = __gen_ocl_internal_expm1(__gen_ocl_internal_fabs(x));
-    if(ix<0x3f800000) return h*((float)2.0*t-t*t/(t+one));
-      return h*(t+t/(t+one));
-  }
-  /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
-  if (ix < 0x42b17180)  return h*__gen_ocl_internal_exp(__gen_ocl_internal_fabs(x));
-  /* |x| in [log(maxdouble), overflowthresold] */
-  if (ix<=0x42b2d4fc) {
-    w = __gen_ocl_internal_exp((float)0.5*__gen_ocl_internal_fabs(x));
-    t = h*w;
-    return t*w;
-  }
-  /* |x| > overflowthresold, sinh(x) overflow */
-  return x*shuge;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_tanh(float x) {
-  //float y = native_exp(-2 * x);
-  //return (1 - y) / (1 + y);
-  float one=1.0, two=2.0, tiny = 1.0e-30;
-  float t,z;
-  int jx,ix;
-  GEN_OCL_GET_FLOAT_WORD(jx,x);
-  ix = jx&0x7fffffff;
-  /* x is INF or NaN */
-  if(ix>=0x7f800000) {
-    if (jx>=0)
-      return one/x+one; /* tanh(+-inf)=+-1 */
-    else
-      return one/x-one; /* tanh(NaN) = NaN */
-  }
-
-  if (ix < 0x41b00000) { /* |x|<22 */
-    if (ix == 0)
-      return x;		/* x == +-0 */
-    if (ix<0x24000000) 	/* |x|<2**-55 */
-      return x*(one+x);    	/* tanh(small) = small */
-    if (ix>=0x3f800000) {	/* |x|>=1  */
-      t = __gen_ocl_internal_expm1(two*__gen_ocl_internal_fabs(x));
-      z = one - two/(t+two);
-    } else {
-      t = __gen_ocl_internal_expm1(-two*__gen_ocl_internal_fabs(x));
-      z= -t/(t+two);
-    }
-  } else { /* |x| > 22, return +-1 */
-    z = one - tiny;		/* raised inexact flag */
-  }
-  return (jx>=0)? z: -z;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_cosh(float x) {
-  //return (1 + native_exp(-2 * x)) / (2 * native_exp(-x));
-  float halF = 0.5,
-  huge = 1.0e+30,
-  tiny = 1.0e-30,
-  one = 1.0;
-  float t,w;
-  int ix;
-  GEN_OCL_GET_FLOAT_WORD(ix,x);
-  ix &= 0x7fffffff;
-  /* |x| in [0,22] */
-  if (ix < 0x41b00000) {
-    /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
-    if(ix<0x3eb17218) {
-      t = __gen_ocl_internal_expm1(__gen_ocl_fabs(x));
-      w = one+t;
-      if (ix<0x24000000) return w;	/* cosh(tiny) = 1 */
-      return one+(t*t)/(w+w);
-    }
-    /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
-    t = __gen_ocl_internal_exp(__gen_ocl_fabs(x));
-    return halF*t+halF/t;
-  }
-  /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
-  if (ix < 0x42b17180)  return halF*__gen_ocl_internal_exp(__gen_ocl_fabs(x));
-  /* |x| in [log(maxdouble), overflowthresold] */
-  if (ix<=0x42b2d4fc) {
-    w = __gen_ocl_internal_exp(halF*__gen_ocl_fabs(x));
-    t = halF*w;
-    return t*w;
-  }
-  /* x is INF or NaN */
-  if(ix>=0x7f800000) return x*x;
-  /* |x| > overflowthresold, cosh(x) overflow */
-  return huge*huge;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_remainder(float x, float p){
-  //return x-y*__gen_ocl_rnde(x/y);
-  float zero = 0.0;
-  int hx,hp;
-  unsigned sx;
-  float p_half;
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  GEN_OCL_GET_FLOAT_WORD(hp,p);
-  sx = hx&0x80000000;
-  hp &= 0x7fffffff;
-  hx &= 0x7fffffff;
-  /* purge off exception values */
-  if(hp==0) return (x*p)/(x*p);	        /* p = 0 */
-  if((hx>=0x7f800000)||               /* x not finite */
-    ((hp>0x7f800000)))	               /* p is NaN */
-    return (x*p)/(x*p);
-  if (hp<=0x7effffff) x = __gen_ocl_internal_fmod(x,p+p); /* now x < 2p */
-  if ((hx-hp)==0) return zero*x;
-  x = __gen_ocl_fabs(x);
-  p = __gen_ocl_fabs(p);
-  if (hp<0x01000000) {
-    if(x+x>p) {
-      x-=p;
-      if(x+x>=p) x -= p;
-    }
-  } else {
-    p_half = (float)0.5*p;
-    if(x>p_half) {
-      x-=p;
-      if(x>=p_half) x -= p;
-    }
-  }
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  GEN_OCL_SET_FLOAT_WORD(x,hx^sx);
-  return x;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_ldexp(float x, int n) {
-  if(!__ocl_finitef(x)||x==(float)0.0) return x;
-  x = __gen_ocl_scalbnf(x,n);
-  return x;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_atanh(float x) {
-  //return 0.5f * native_sqrt((1 + x) / (1 - x));
-  float xa = __gen_ocl_fabs (x);
-  float t;
-  if (isless (xa, 0.5f)){
-    if (xa < 0x1.0p-28f) return x;
-    t = xa + xa;
-    t = 0.5f * log1p (t + t * xa / (1.0f - xa));
-  } else if (isless (xa, 1.0f)){
-    t = 0.5f * log1p ((xa + xa) / (1.0f - xa));
-  } else{
-    if (isgreater (xa, 1.0f)) return (x - x) / (x - x);
-    return x / 0.0f;
-  }
-  return __gen_ocl_internal_copysign(t, x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_exp10(float x){
-  float px, qx,ans;
-  short n;
-  int i;
-  float*p;
-  float MAXL10 = 38.230809449325611792;
-  float LOG210 = 3.32192809488736234787e0;
-  float LG102A = 3.00781250000000000000E-1;
-  float LG102B = 2.48745663981195213739E-4;
-  float P[6];
-  P[0] = 2.063216740311022E-001;
-  P[1] = 5.420251702225484E-001;
-  P[2] = 1.171292686296281E+000;
-  P[3] = 2.034649854009453E+000;
-  P[4] = 2.650948748208892E+000;
-  P[5] = 2.302585167056758E+000;
-  if( isinf(x))
-    return INFINITY;
-
-  if( x < -MAXL10 )return 0.0;
-  /* The following is necessary because range reduction blows up: */
-  if( x == 0 )return 1.0;
-
-  /* Express 10**x = 10**g 2**n
-    *	 = 10**g 10**( n log10(2) )
-    *	 = 10**( g + n log10(2) )
-    */
-  px = x * LOG210;
-  qx = __gen_ocl_internal_floor( px + 0.5 );
-  n = qx;
-  x -= qx * LG102A;
-  x -= qx * LG102B;
-
-  /* rational approximation for exponential
-    * of the fractional part:
-    * 10**x - 1  =  2x P(x**2)/( Q(x**2) - P(x**2) )
-    */
-  p = P;
-  ans = *p++;
-  i = 5;
-  do{
-    ans = ans * x  +  *p++;
-  }
-  while( --i );
-  px = 1.0 + x * ans;
-
-  /* multiply by power of 2 */
-  x = __gen_ocl_internal_ldexp( px, n );
-  return x;
-}
-
-// TODO use llvm intrinsics definitions
-#define cospi __gen_ocl_internal_cospi
-#define cosh __gen_ocl_internal_cosh
-#define acos __gen_ocl_internal_acos
-#define acospi __gen_ocl_internal_acospi
-#define acosh __gen_ocl_internal_acosh
-#define sinpi __gen_ocl_internal_sinpi
-#define sinh __gen_ocl_internal_sinh
-#define asin __gen_ocl_internal_asin
-#define asinpi __gen_ocl_internal_asinpi
-#define asinh __gen_ocl_internal_asinh
-#define tanpi __gen_ocl_internal_tanpi
-#define tanh __gen_ocl_internal_tanh
-#define atan __gen_ocl_internal_atan
-#define atan2 __gen_ocl_internal_atan2
-#define atan2pi __gen_ocl_internal_atan2pi
-#define atanpi __gen_ocl_internal_atanpi
-#define atanh __gen_ocl_internal_atanh
-#define pow powr
-#define cbrt __gen_ocl_internal_cbrt
-#define rint __gen_ocl_internal_rint
-#define copysign __gen_ocl_internal_copysign
-#define erf __gen_ocl_internal_erf
-#define erfc __gen_ocl_internal_erfc
-#define fmod __gen_ocl_internal_fmod
-#define remainder __gen_ocl_internal_remainder
-#define ldexp __gen_ocl_internal_ldexp
-PURE CONST float __gen_ocl_mad(float a, float b, float c);
-PURE CONST float __gen_ocl_fmax(float a, float b);
-PURE CONST float __gen_ocl_fmin(float a, float b);
-INLINE_OVERLOADABLE float mad(float a, float b, float c) {
-  return __gen_ocl_mad(a, b, c);
-}
-
-#define DEF(TYPE1, TYPE2) \
-  INLINE_OVERLOADABLE TYPE1 select(TYPE1 src0, TYPE1 src1, TYPE2 cond) { \
-    return cond ? src1 : src0; \
-  }
-DEF(char, char)
-DEF(char, uchar)
-DEF(uchar, char)
-DEF(uchar, uchar)
-DEF(short, short)
-DEF(short, ushort)
-DEF(ushort, short)
-DEF(ushort, ushort)
-DEF(int, int)
-DEF(int, uint)
-DEF(uint, int)
-DEF(uint, uint)
-DEF(long, long)
-DEF(long, ulong)
-DEF(ulong, long)
-DEF(ulong, ulong)
-DEF(float, int)
-DEF(float, uint)
-#undef DEF
-
-/////////////////////////////////////////////////////////////////////////////
-// Common Functions (see 6.11.4 of OCL 1.1 spec)
-/////////////////////////////////////////////////////////////////////////////
-INLINE_OVERLOADABLE float step(float edge, float x) {
-  return x < edge ? 0.0 : 1.0;
-}
-
-#define DECL_MIN_MAX_CLAMP(TYPE) \
-INLINE_OVERLOADABLE TYPE max(TYPE a, TYPE b) { \
-  return a > b ? a : b; \
-} \
-INLINE_OVERLOADABLE TYPE min(TYPE a, TYPE b) { \
-  return a < b ? a : b; \
-} \
-INLINE_OVERLOADABLE TYPE clamp(TYPE v, TYPE l, TYPE u) { \
-  return max(min(v, u), l); \
-}
-DECL_MIN_MAX_CLAMP(int)
-DECL_MIN_MAX_CLAMP(short)
-DECL_MIN_MAX_CLAMP(char)
-DECL_MIN_MAX_CLAMP(uint)
-DECL_MIN_MAX_CLAMP(unsigned short)
-DECL_MIN_MAX_CLAMP(unsigned char)
-DECL_MIN_MAX_CLAMP(long)
-DECL_MIN_MAX_CLAMP(ulong)
-#undef DECL_MIN_MAX_CLAMP
-INLINE_OVERLOADABLE float max(float a, float b) {
-  return __gen_ocl_fmax(a, b);
-}
-INLINE_OVERLOADABLE float min(float a, float b) {
-  return __gen_ocl_fmin(a, b);
-}
-INLINE_OVERLOADABLE float clamp(float v, float l, float u) {
-  return max(min(v, u), l);
-}
-
-#define BODY \
-  if (isnan(x) || isinf(x)) { \
-    *exp = 0; \
-    return x; \
-  } \
-  uint u = as_uint(x); \
-  uint a = u & 0x7FFFFFFFu; \
-  if (a == 0) { \
-    *exp = 0; \
-    return x; \
-  } \
-  if (a >= 0x800000) { \
-    *exp = (a >> 23) - 126; \
-    return as_float((u & (0x807FFFFFu)) | 0x3F000000); \
-  } \
-  int e = -126; \
-  while (a < 0x400000) { \
-    e --; \
-    a <<= 1; \
-  } \
-  a <<= 1; \
-  *exp = e; \
-  return as_float((a & (0x807FFFFFu)) | (u & 0x80000000u) | 0x3F000000);
-INLINE_OVERLOADABLE float frexp(float x, global int *exp) { BODY; }
-INLINE_OVERLOADABLE float frexp(float x, local int *exp) { BODY; }
-INLINE_OVERLOADABLE float frexp(float x, private int *exp) { BODY; }
-#undef BODY
-
-INLINE_OVERLOADABLE float nextafter(float x, float y) {
-  int hx, hy, ix, iy;
-  hx = as_int(x);
-  hy = as_int(y);
-  ix = hx & 0x7fffffff;
-  iy = hy & 0x7fffffff;
-  if(ix>0x7f800000 || iy>0x7f800000)
-    return x+y;
-  if(hx == hy)
-    return y;
-  if(ix == 0) {
-    if(iy == 0)
-      return y;
-    else
-      return as_float((hy&0x80000000) | 1);
-  }
-  if(hx >= 0) {
-    if(hx > hy) {
-      hx -= 1;
-    } else {
-      hx += 1;
-    }
-  } else {
-    if(hy >= 0 || hx > hy){
-      hx -= 1;
-    } else {
-      hx += 1;
-    }
-  }
-  return as_float(hx);
-}
-
-#define BODY \
-  uint hx = as_uint(x), ix = hx & 0x7FFFFFFF; \
-  if (ix > 0x7F800000) { \
-    *i = nan(0u); \
-    return nan(0u); \
-  } \
-  if (ix == 0x7F800000) { \
-    *i = x; \
-    return as_float(hx & 0x80000000u); \
-  } \
-  *i = __gen_ocl_rndz(x); \
-  return x - *i;
-INLINE_OVERLOADABLE float modf(float x, global float *i) { BODY; }
-INLINE_OVERLOADABLE float modf(float x, local float *i) { BODY; }
-INLINE_OVERLOADABLE float modf(float x, private float *i) { BODY; }
-#undef BODY
-INLINE_OVERLOADABLE float degrees(float radians) { return (180 / M_PI_F) * radians; }
-INLINE_OVERLOADABLE float radians(float degrees) { return (M_PI_F / 180) * degrees; }
-
-INLINE_OVERLOADABLE float smoothstep(float e0, float e1, float x) {
-  x = clamp((x - e0) / (e1 - e0), 0.f, 1.f);
-  return x * x * (3 - 2 * x);
-}
-
-INLINE_OVERLOADABLE float sign(float x) {
-  if(x > 0)
-    return 1;
-  if(x < 0)
-    return -1;
-  if(x == -0.f)
-    return -0.f;
-  return 0.f;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fmax(float a, float b) { return max(a,b); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_fmin(float a, float b) { return min(a,b); }
-INLINE_OVERLOADABLE float __gen_ocl_internal_maxmag(float x, float y) {
-  float a = __gen_ocl_fabs(x), b = __gen_ocl_fabs(y);
-  return a > b ? x : b > a ? y : max(x, y);
-}
-INLINE_OVERLOADABLE float __gen_ocl_internal_minmag(float x, float y) {
-  float a = __gen_ocl_fabs(x), b = __gen_ocl_fabs(y);
-  return a < b ? x : b < a ? y : min(x, y);
-}
-INLINE_OVERLOADABLE float mix(float x, float y, float a) { return x + (y-x)*a;}
-INLINE_OVERLOADABLE float __gen_ocl_internal_fdim(float x, float y) {
-  if(isnan(x))
-    return x;
-  if(isnan(y))
-    return y;
-  return x > y ? (x - y) : +0.f;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_pow(float x, float y) {
-  float z,ax,z_h,z_l,p_h,p_l;
-  float y1,t1,t2,r,s,sn,t,u,v,w;
-  int i,j,k,yisint,n;
-  int hx,hy,ix,iy,is;
-  float bp[2],dp_h[2],dp_l[2],
-  zero    =  0.0,
-  one	=  1.0,
-  two	=  2.0,
-  two24	=  16777216.0,	/* 0x4b800000 */
-  huge	=  1.0e30,
-  tiny    =  1.0e-30,
-  /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
-  L1  =  6.0000002384e-01, /* 0x3f19999a */
-  L2  =  4.2857143283e-01, /* 0x3edb6db7 */
-  L3  =  3.3333334327e-01, /* 0x3eaaaaab */
-  L4  =  2.7272811532e-01, /* 0x3e8ba305 */
-  L5  =  2.3066075146e-01, /* 0x3e6c3255 */
-  L6  =  2.0697501302e-01, /* 0x3e53f142 */
-  P1   =  1.6666667163e-01, /* 0x3e2aaaab */
-  P2   = -2.7777778450e-03, /* 0xbb360b61 */
-  P3   =  6.6137559770e-05, /* 0x388ab355 */
-  P4   = -1.6533901999e-06, /* 0xb5ddea0e */
-  P5   =  4.1381369442e-08, /* 0x3331bb4c */
-  lg2  =  6.9314718246e-01, /* 0x3f317218 */
-  lg2_h  =  6.93145752e-01, /* 0x3f317200 */
-  lg2_l  =  1.42860654e-06, /* 0x35bfbe8c */
-  ovt =  4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */
-  cp    =  9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */
-  cp_h  =  9.6179199219e-01, /* 0x3f763800 =head of cp */
-  cp_l  =  4.7017383622e-06, /* 0x369dc3a0 =tail of cp_h */
-  ivln2    =  1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
-  ivln2_h  =  1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
-  ivln2_l  =  7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
-  bp[0] = 1.0,bp[1] = 1.5,
-  dp_h[0] = 0.0,dp_h[1] = 5.84960938e-01,
-  dp_l[0] = 0.0,dp_l[1] = 1.56322085e-06;
-  GEN_OCL_GET_FLOAT_WORD(hx,x);
-  GEN_OCL_GET_FLOAT_WORD(hy,y);
-  ix = hx&0x7fffffff;  iy = hy&0x7fffffff;
-  if (ix < 0x00800000) {	   /* x < 2**-126  */
-    ix = 0;/* Gen does not support subnormal number now */
-  }
-  if (iy < 0x00800000) {	  /* y < 2**-126  */
-    iy = 0;/* Gen does not support subnormal number now */
-  }
-   /* y==zero: x**0 = 1 */
-  if(iy==0) return one;
-  if(hx==0x3f800000) return one;
-  /* +-NaN return x+y */
-  if(ix > 0x7f800000 || iy > 0x7f800000)
-    return (x+0.0f)+y+(0.0f);
-  /* determine if y is an odd int when x < 0
-     * yisint = 0	... y is not an integer
-     * yisint = 1	... y is an odd int
-     * yisint = 2	... y is an even int
-     */
-  yisint  = 0;
-  if(hx<0) {
-    if(iy>=0x4b800000) yisint = 2; /* even integer y */
-    else if(iy>=0x3f800000) {
-      k = (iy>>23)-0x7f;	   /* exponent */
-      j = iy>>(23-k);
-      if((j<<(23-k))==iy) yisint = 2-(j&1);
-    }
-  }
-  /* special value of y */
-  if (iy==0x7f800000) {	/* y is +-inf */
-    if (ix==0x3f800000)
-      //return  y - y;	/* inf**+-1 is NaN */
-      return one;
-    else if (ix > 0x3f800000)/* (|x|>1)**+-inf = inf,0 */
-      return (hy>=0)? y: zero;
-    else			/* (|x|<1)**-,+inf = inf,0 */
-      return (hy<0)?-y: zero;
-  }
-  if(iy==0x3f800000) {	/* y is  +-1 */
-    if(hy<0) return one/x; else return x;
-  }
-  if(hy==0x40000000) return x*x; /* y is  2 */
-  if(hy==0x3f000000) {	/* y is  0.5 */
-    if(hx>=0)return __gen_ocl_sqrt(x);
-  }
-
-  ax   = __gen_ocl_fabs(x);
-    /* special value of x */
-  if(ix==0x7f800000||ix==0||ix==0x3f800000){
-    z = ax;			/*x is +-0,+-inf,+-1*/
-    if(hy<0) z = one/z;	/* z = (1/|x|) */
-    if(hx<0) {
-      if(((ix-0x3f800000)|yisint)==0) {
-        z = (z-z)/(z-z); /* (-1)**non-int is NaN */
-      } else if(yisint==1)
-        z = -z;		/* (x<0)**odd = -(|x|**odd) */
-    }
-    return z;
-  }
-  n = ((uint)hx>>31)-1;
-
-  /* (x<0)**(non-int) is NaN */
-  if((n|yisint)==0) return (x-x)/(x-x);
-
-  sn = one; /* s (sign of result -ve**odd) = -1 else = 1 */
-  if((n|(yisint-1))==0) sn = -one;/* (-ve)**(odd int) */
-
-  /* |y| is huge */
-  if(iy>0x4d000000) { /* if |y| > 2**27 */
-    /* over/underflow if x is not close to one */
-    if(ix<0x3f7ffff8) return (hy<0)? sn*huge*huge:sn*tiny*tiny;
-    if(ix>0x3f800007) return (hy>0)? sn*huge*huge:sn*tiny*tiny;
-    /* now |1-x| is tiny <= 2**-20, suffice to compute
-          log(x) by x-x^2/2+x^3/3-x^4/4 */
-    t = ax-1;		/* t has 20 trailing zeros */
-    w = (t*t)*((float)0.5-t*(0.333333333333f-t*0.25f));
-    u = ivln2_h*t;	/* ivln2_h has 16 sig. bits */
-    v = t*ivln2_l-w*ivln2;
-    t1 = u+v;
-    GEN_OCL_GET_FLOAT_WORD(is,t1);
-    GEN_OCL_SET_FLOAT_WORD(t1,is&0xfffff000);
-    t2 = v-(t1-u);
-  } else {
-    float s2,s_h,s_l,t_h,t_l;
-    n = 0;
-	/* take care subnormal number */
-    //if(ix<0x00800000)
-      //{ax *= two24; n -= 24; GEN_OCL_GET_FLOAT_WORD(ix,ax); }
-    n  += ((ix)>>23)-0x7f;
-    j  = ix&0x007fffff;
-	/* determine interval */
-    ix = j|0x3f800000;		/* normalize ix */
-    if(j<=0x1cc471) k=0;	/* |x|<sqrt(3/2) */
-    else if(j<0x5db3d7) k=1;	/* |x|<sqrt(3)   */
-    else {k=0;n+=1;ix -= 0x00800000;}
-    GEN_OCL_SET_FLOAT_WORD(ax,ix);
-
-	/* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
-    u = ax-bp[k];		/* bp[0]=1.0, bp[1]=1.5 */
-    v = one/(ax+bp[k]);
-    s = u*v;
-    s_h = s;
-    GEN_OCL_GET_FLOAT_WORD(is,s_h);
-    GEN_OCL_SET_FLOAT_WORD(s_h,is&0xfffff000);
-    /* t_h=ax+bp[k] High */
-    is = ((ix>>1)&0xfffff000)|0x20000000;
-    GEN_OCL_SET_FLOAT_WORD(t_h,is+0x00400000+(k<<21));
-    t_l = ax - (t_h-bp[k]);
-    s_l = v*((u-s_h*t_h)-s_h*t_l);
-    /* compute log(ax) */
-    s2 = s*s;
-    r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
-    r += s_l*(s_h+s);
-    s2  = s_h*s_h;
-    t_h = 3.0f+s2+r;
-    GEN_OCL_GET_FLOAT_WORD(is,t_h);
-    GEN_OCL_SET_FLOAT_WORD(t_h,is&0xfffff000);
-    t_l = r-((t_h-3.0f)-s2);
-    /* u+v = s*(1+...) */
-    u = s_h*t_h;
-    v = s_l*t_h+t_l*s;
-    /* 2/(3log2)*(s+...) */
-    p_h = u+v;
-    GEN_OCL_GET_FLOAT_WORD(is,p_h);
-    GEN_OCL_SET_FLOAT_WORD(p_h,is&0xfffff000);
-    p_l = v-(p_h-u);
-    z_h = cp_h*p_h;		/* cp_h+cp_l = 2/(3*log2) */
-    z_l = cp_l*p_h+p_l*cp+dp_l[k];
-    /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
-    t = (float)n;
-    t1 = (((z_h+z_l)+dp_h[k])+t);
-    GEN_OCL_GET_FLOAT_WORD(is,t1);
-    GEN_OCL_SET_FLOAT_WORD(t1,is&0xfffff000);
-    t2 = z_l-(((t1-t)-dp_h[k])-z_h);
-  }
-
-  /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
-  GEN_OCL_GET_FLOAT_WORD(is,y);
-  GEN_OCL_SET_FLOAT_WORD(y1,is&0xfffff000);
-  p_l = (y-y1)*t1+y*t2;
-  p_h = y1*t1;
-  z = p_l+p_h;
-  GEN_OCL_GET_FLOAT_WORD(j,z);
-  if (j>0x43000000)				/* if z > 128 */
-    return sn*huge*huge;			/* overflow */
-  else if (j==0x43000000) {			/* if z == 128 */
-    if(p_l+ovt>z-p_h) return sn*huge*huge;	/* overflow */
-  }
-  else if ((j&0x7fffffff)>0x43160000)		/* z <= -150 */
-    return sn*tiny*tiny;			/* underflow */
-  else if (j==0xc3160000){			/* z == -150 */
-    if(p_l<=z-p_h) return sn*tiny*tiny;		/* underflow */
-  }
-
-  /*
-    * compute 2**(p_h+p_l)
-    */
-  i = j&0x7fffffff;
-  k = (i>>23)-0x7f;
-  n = 0;
-  if(i>0x3f000000) {		/* if |z| > 0.5, set n = [z+0.5] */
-    n = j+(0x00800000>>(k+1));
-    k = ((n&0x7fffffff)>>23)-0x7f;	/* new k for n */
-    GEN_OCL_SET_FLOAT_WORD(t,n&~(0x007fffff>>k));
-    n = ((n&0x007fffff)|0x00800000)>>(23-k);
-    if(j<0) n = -n;
-    p_h -= t;
-  }
-  t = p_l+p_h;
-  GEN_OCL_GET_FLOAT_WORD(is,t);
-  GEN_OCL_SET_FLOAT_WORD(t,is&0xffff8000);
-  u = t*lg2_h;
-  v = (p_l-(t-p_h))*lg2+t*lg2_l;
-  z = u+v;
-  w = v-(z-u);
-  t  = z*z;
-  t1  = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
-  r  = (z*t1)/(t1-two)-(w+z*w);
-  z  = one-(r-z);
-  GEN_OCL_GET_FLOAT_WORD(j,z);
-  j += (n<<23);
-  if((j>>23)<=0) z = __gen_ocl_scalbnf(z,n);	/* subnormal output */
-  else GEN_OCL_SET_FLOAT_WORD(z,j);
-  return sn*z;
-}
-
-
-INLINE_OVERLOADABLE float hypot(float x, float y) {
-  //return __gen_ocl_sqrt(x*x + y*y);
-  float a,b,an,bn,cn;
-  int e;
-  if (isfinite (x) && isfinite (y)){      /* Determine absolute values.  */
-  x = __gen_ocl_fabs (x);
-  y = __gen_ocl_fabs (y);
-  /* Find the bigger and the smaller one.  */
-  a = max(x,y);
-  b = min(x,y);
-  /* Now 0 <= b <= a.  */
-  /* Write a = an * 2^e, b = bn * 2^e with 0 <= bn <= an < 1.  */
-  an = frexp (a, &e);
-  bn = ldexp (b, - e);
-  /* Through the normalization, no unneeded overflow or underflow will occur here.  */
-  cn = __gen_ocl_sqrt (an * an + bn * bn);
-  return ldexp (cn, e);
-  }else{
-    if (isinf (x) || isinf (y))  /* x or y is infinite.  Return +Infinity.  */    
-      return INFINITY;
-    else        /* x or y is NaN.  Return NaN.  */
-      return x + y;
-  }
-}
-
-#define BODY \
-  if (isnan(x)) { \
-    *p = x; \
-    return x; \
-  } \
-  *p = __gen_ocl_internal_floor(x); \
-  if (isinf(x)) { \
-    return x > 0 ? +0. : -0.; \
-  } \
-  return __gen_ocl_internal_fmin(x - *p, 0x1.FFFFFep-1F);
-INLINE_OVERLOADABLE float fract(float x, global float *p) { BODY; }
-INLINE_OVERLOADABLE float fract(float x, local float *p) { BODY; }
-INLINE_OVERLOADABLE float fract(float x, private float *p) { BODY; }
-#undef BODY
-
-#define BODY \
-  float Zero[2]; \
-  int n,hx,hy,hz,ix,iy,sx,i,sy; \
-  uint q,sxy; \
-  Zero[0] = 0.0;Zero[1] = -0.0; \
-  GEN_OCL_GET_FLOAT_WORD(hx,x);GEN_OCL_GET_FLOAT_WORD(hy,y); \
-  sxy = (hx ^ hy) & 0x80000000;sx = hx&0x80000000;sy = hy&0x80000000; \
-  hx ^=sx; hy &= 0x7fffffff; \
-  if (hx < 0x00800000)hx = 0;if (hy < 0x00800000)hy = 0; \
-  if(hy==0||hx>=0x7f800000||hy>0x7f800000){ \
-    *quo = 0;return NAN; \
-  } \
-  if( hy == 0x7F800000 || hx == 0 ) { \
-    *quo = 0;return x; \
-  } \
-  if( hx == hy ) { \
-    *quo = (x == y) ? 1 : -1; \
-    return sx ? -0.0 : 0.0; \
-  } \
-  if(hx<hy) { \
-    q = 0; \
-    goto fixup; \
-  } else if(hx==hy) { \
-    *quo = (sxy ? -1 : 1); \
-    return Zero[(uint)sx>>31]; \
-  } \
-  ix = (hx>>23)-127; \
-  iy = (hy>>23)-127; \
-  hx = 0x00800000|(0x007fffff&hx); \
-  hy = 0x00800000|(0x007fffff&hy); \
-  n = ix - iy; \
-  q = 0; \
-  while(n--) { \
-    hz=hx-hy; \
-    if(hz<0) hx = hx << 1; \
-    else {hx = hz << 1; q++;} \
-    q <<= 1; \
-  } \
-  hz=hx-hy; \
-  if(hz>=0) {hx=hz;q++;} \
-  if(hx==0) { \
-    q &= 0x0000007f; \
-    *quo = (sxy ? -q : q); \
-    return Zero[(uint)sx>>31]; \
-  } \
-  while(hx<0x00800000) { \
-    hx <<= 1;iy -= 1; \
-  } \
-  if(iy>= -126) { \
-    hx = ((hx-0x00800000)|((iy+127)<<23)); \
-  } else {\
-    n = -126 - iy; \
-    hx >>= n; \
-  } \
-fixup: \
-  GEN_OCL_SET_FLOAT_WORD(x,hx); \
-  if(hx<0x00800000){ \
-    GEN_OCL_GET_FLOAT_WORD(hy,y); \
-    hy &= 0x7fffffff; \
-    if(hx+hx > hy ||(hx+hx==hy && (q & 1)))q++; \
-    x = 0; \
-  }else{ \
-    y = __gen_ocl_fabs(y); \
-    if (y < 0x1p-125f) { \
-      if (x+x>y || (x+x==y && (q & 1))) { \
-        q++;x-=y; \
-      } \
-    }else if (x>0.5f*y || (x==0.5f*y && (q & 1))) { \
-      q++;x-=y; \
-    } \
-    GEN_OCL_GET_FLOAT_WORD(hx,x);GEN_OCL_SET_FLOAT_WORD(x,hx^sx); \
-  } \
-  int sign = sx==sy?0:1; \
-  q &= 0x0000007f; \
-  *quo = (sign ? -q : q); \
-  return x;
-
-INLINE_OVERLOADABLE float remquo(float x, float y, global int *quo) {
-	BODY;
-}
-INLINE_OVERLOADABLE float remquo(float x, float y, local int *quo) { BODY; }
-INLINE_OVERLOADABLE float remquo(float x, float y, private int *quo) { BODY; }
-#undef BODY
-INLINE_OVERLOADABLE float native_divide(float x, float y) { return x/y; }
-INLINE_OVERLOADABLE float pown(float x, int n) {
-  if (x == 0 && n == 0)
-    return 1;
-  return powr(x, n);
-}
-INLINE_OVERLOADABLE float rootn(float x, int n) {
-  float ax,re;
-  int sign = 0;
-  if( n == 0 )return NAN;
-  //rootn ( x, n )  returns a NaN for x < 0 and n is even.
-  if( x < 0 && 0 == (n&1) )
-    return NAN;
-  if( x == 0.0 ){
-    switch( n & 0x80000001 ){
-      //rootn ( +-0,  n ) is +0 for even n > 0.
-      case 0:
-        return 0.0f;
-      //rootn ( +-0,  n ) is +-0 for odd n > 0.
-      case 1:
-        return x;
-      //rootn ( +-0,  n ) is +inf for even n < 0.
-      case 0x80000000:
-        return INFINITY;
-
-      //rootn ( +-0,  n ) is +-inf for odd n < 0.
-      case 0x80000001:
-        return __gen_ocl_internal_copysign(INFINITY, x);
-    }
-  }
-  ax = __gen_ocl_fabs(x);
-  if(x <0.0f && (n&1))
-    sign = 1;
-  re = __gen_ocl_internal_pow(ax,1.f/n);
-  if(sign)
-    re = -re;
-  return re;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Geometric functions (see 6.11.5 of OCL 1.1 spec)
-/////////////////////////////////////////////////////////////////////////////
-INLINE_OVERLOADABLE float dot(float p0, float p1) {
-  return p0 * p1;
-}
-INLINE_OVERLOADABLE float dot(float2 p0, float2 p1) {
-  return p0.x * p1.x + p0.y * p1.y;
-}
-INLINE_OVERLOADABLE float dot(float3 p0, float3 p1) {
-  return p0.x * p1.x + p0.y * p1.y + p0.z * p1.z;
-}
-INLINE_OVERLOADABLE float dot(float4 p0, float4 p1) {
-  return p0.x * p1.x + p0.y * p1.y + p0.z * p1.z + p0.w * p1.w;
-}
-INLINE_OVERLOADABLE float length(float x) { return __gen_ocl_fabs(x); }
-#define BODY \
-  if(m == 0) \
-    return 0; \
-  if(isinf(m)) \
-    return INFINITY; \
-  if(m < 1) \
-    m = 1; \
-  x /= m; \
-  return m * sqrt(dot(x,x));
-INLINE_OVERLOADABLE float length(float2 x) {
-  float m = max(__gen_ocl_fabs(x.s0), __gen_ocl_fabs(x.s1));
-  BODY;
-}
-INLINE_OVERLOADABLE float length(float3 x) {
-  float m = max(__gen_ocl_fabs(x.s0), max(__gen_ocl_fabs(x.s1), __gen_ocl_fabs(x.s2)));
-  BODY;
-}
-INLINE_OVERLOADABLE float length(float4 x) {
-  float m = max(__gen_ocl_fabs(x.s0), max(__gen_ocl_fabs(x.s1), max(__gen_ocl_fabs(x.s2), __gen_ocl_fabs(x.s3))));
-  BODY;
-}
-#undef BODY
-INLINE_OVERLOADABLE float distance(float x, float y) { return length(x-y); }
-INLINE_OVERLOADABLE float distance(float2 x, float2 y) { return length(x-y); }
-INLINE_OVERLOADABLE float distance(float3 x, float3 y) { return length(x-y); }
-INLINE_OVERLOADABLE float distance(float4 x, float4 y) { return length(x-y); }
-INLINE_OVERLOADABLE float normalize(float x) {
-  union { float f; unsigned u; } u;
-  u.f = x;
-  if(u.u == 0)
-    return 0.f;
-  if(isnan(x))
-    return NAN;
-  return u.u < 0x7fffffff ? 1.f : -1.f;
-}
-INLINE_OVERLOADABLE float2 normalize(float2 x) {
-  float m = length(x);
-  if(m == 0)
-    return 0;
-  return x / m;
-}
-INLINE_OVERLOADABLE float3 normalize(float3 x) {
-  float m = length(x);
-  if(m == 0)
-    return 0;
-  return x / m;
-}
-INLINE_OVERLOADABLE float4 normalize(float4 x) {
-  float m = length(x);
-  if(m == 0)
-    return 0;
-  return x / m;
-}
-
-INLINE_OVERLOADABLE float fast_length(float x) { return __gen_ocl_fabs(x); }
-INLINE_OVERLOADABLE float fast_length(float2 x) { return sqrt(dot(x,x)); }
-INLINE_OVERLOADABLE float fast_length(float3 x) { return sqrt(dot(x,x)); }
-INLINE_OVERLOADABLE float fast_length(float4 x) { return sqrt(dot(x,x)); }
-INLINE_OVERLOADABLE float fast_distance(float x, float y) { return length(x-y); }
-INLINE_OVERLOADABLE float fast_distance(float2 x, float2 y) { return length(x-y); }
-INLINE_OVERLOADABLE float fast_distance(float3 x, float3 y) { return length(x-y); }
-INLINE_OVERLOADABLE float fast_distance(float4 x, float4 y) { return length(x-y); }
-INLINE_OVERLOADABLE float fast_normalize(float x) { return x > 0 ? 1.f : (x < 0 ? -1.f : 0.f); }
-INLINE_OVERLOADABLE float2 fast_normalize(float2 x) { return x * rsqrt(dot(x, x)); }
-INLINE_OVERLOADABLE float3 fast_normalize(float3 x) { return x * rsqrt(dot(x, x)); }
-INLINE_OVERLOADABLE float4 fast_normalize(float4 x) { return x * rsqrt(dot(x, x)); }
-
-INLINE_OVERLOADABLE float3 cross(float3 v0, float3 v1) {
-   return v0.yzx*v1.zxy-v0.zxy*v1.yzx;
-}
-INLINE_OVERLOADABLE float4 cross(float4 v0, float4 v1) {
-   return (float4)(v0.yzx*v1.zxy-v0.zxy*v1.yzx, 0.f);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Vector loads and stores
-/////////////////////////////////////////////////////////////////////////////
-
-// These loads and stores will use untyped reads and writes, so we can just
-// cast to vector loads / stores. Not C99 compliant BTW due to aliasing issue.
-// Well we do not care, we do not activate TBAA in the compiler
-#define DECL_UNTYPED_RW_SPACE_N(TYPE, DIM, SPACE) \
-INLINE_OVERLOADABLE TYPE##DIM vload##DIM(size_t offset, const SPACE TYPE *p) { \
-  return *(SPACE TYPE##DIM *) (p + DIM * offset); \
-} \
-INLINE_OVERLOADABLE void vstore##DIM(TYPE##DIM v, size_t offset, SPACE TYPE *p) { \
-  *(SPACE TYPE##DIM *) (p + DIM * offset) = v; \
-}
-
-#define DECL_UNTYPED_RD_SPACE_N(TYPE, DIM, SPACE) \
-INLINE_OVERLOADABLE TYPE##DIM vload##DIM(size_t offset, const SPACE TYPE *p) { \
-  return *(SPACE TYPE##DIM *) (p + DIM * offset); \
-}
-
-#define DECL_UNTYPED_V3_SPACE(TYPE, SPACE) \
-INLINE_OVERLOADABLE void vstore3(TYPE##3 v, size_t offset, SPACE TYPE *p) {\
-  *(p + 3 * offset) = v.s0; \
-  *(p + 3 * offset + 1) = v.s1; \
-  *(p + 3 * offset + 2) = v.s2; \
-} \
-INLINE_OVERLOADABLE TYPE##3 vload3(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##3)(*(p + 3 * offset), *(p+ 3 * offset + 1), *(p + 3 * offset + 2));\
-}
-
-#define DECL_UNTYPED_RDV3_SPACE(TYPE, SPACE) \
-INLINE_OVERLOADABLE TYPE##3 vload3(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##3)(*(p + 3 * offset), *(p+ 3 * offset + 1), *(p + 3 * offset + 2));\
-}
-
-#define DECL_UNTYPED_RW_ALL_SPACE(TYPE, SPACE) \
-  DECL_UNTYPED_RW_SPACE_N(TYPE, 2, SPACE) \
-  DECL_UNTYPED_V3_SPACE(TYPE, SPACE) \
-  DECL_UNTYPED_RW_SPACE_N(TYPE, 4, SPACE) \
-  DECL_UNTYPED_RW_SPACE_N(TYPE, 8, SPACE) \
-  DECL_UNTYPED_RW_SPACE_N(TYPE, 16, SPACE)
-
-#define DECL_UNTYPED_RD_ALL_SPACE(TYPE, SPACE) \
-  DECL_UNTYPED_RD_SPACE_N(TYPE, 2, SPACE) \
-  DECL_UNTYPED_RDV3_SPACE(TYPE, SPACE) \
-  DECL_UNTYPED_RD_SPACE_N(TYPE, 4, SPACE) \
-  DECL_UNTYPED_RD_SPACE_N(TYPE, 8, SPACE) \
-  DECL_UNTYPED_RD_SPACE_N(TYPE, 16, SPACE)
-
-#define DECL_UNTYPED_RW_ALL(TYPE) \
-  DECL_UNTYPED_RW_ALL_SPACE(TYPE, __global) \
-  DECL_UNTYPED_RW_ALL_SPACE(TYPE, __local) \
-  DECL_UNTYPED_RD_ALL_SPACE(TYPE, __constant) \
-  DECL_UNTYPED_RW_ALL_SPACE(TYPE, __private)
-
-#define DECL_BYTE_RD_SPACE(TYPE, SPACE) \
-INLINE_OVERLOADABLE TYPE##2 vload2(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##2)(*(p+2*offset), *(p+2*offset+1)); \
-} \
-INLINE_OVERLOADABLE TYPE##3 vload3(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##3)(*(p+3*offset), *(p+3*offset+1), *(p+3*offset+2)); \
-} \
-INLINE_OVERLOADABLE TYPE##4 vload4(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##4)(vload2(2*offset, p), vload2(2*offset, p+2)); \
-} \
-INLINE_OVERLOADABLE TYPE##8 vload8(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##8)(vload4(2*offset, p), vload4(2*offset, p+4)); \
-} \
-INLINE_OVERLOADABLE TYPE##16 vload16(size_t offset, const SPACE TYPE *p) { \
-  return (TYPE##16)(vload8(2*offset, p), vload8(2*offset, p+8)); \
-}
-
-#define DECL_BYTE_WR_SPACE(TYPE, SPACE) \
-INLINE_OVERLOADABLE void vstore2(TYPE##2 v, size_t offset, SPACE TYPE *p) {\
-  *(p + 2 * offset) = v.s0; \
-  *(p + 2 * offset + 1) = v.s1; \
-} \
-INLINE_OVERLOADABLE void vstore3(TYPE##3 v, size_t offset, SPACE TYPE *p) {\
-  *(p + 3 * offset) = v.s0; \
-  *(p + 3 * offset + 1) = v.s1; \
-  *(p + 3 * offset + 2) = v.s2; \
-} \
-INLINE_OVERLOADABLE void vstore4(TYPE##4 v, size_t offset, SPACE TYPE *p) { \
-  vstore2(v.lo, 2*offset, p); \
-  vstore2(v.hi, 2*offset, p+2); \
-} \
-INLINE_OVERLOADABLE void vstore8(TYPE##8 v, size_t offset, SPACE TYPE *p) { \
-  vstore4(v.lo, 2*offset, p); \
-  vstore4(v.hi, 2*offset, p+4); \
-} \
-INLINE_OVERLOADABLE void vstore16(TYPE##16 v, size_t offset, SPACE TYPE *p) { \
-  vstore8(v.lo, 2*offset, p); \
-  vstore8(v.hi, 2*offset, p+8); \
-}
-
-#define DECL_BYTE_RW_ALL(TYPE) \
-  DECL_BYTE_RD_SPACE(TYPE, __global) \
-  DECL_BYTE_RD_SPACE(TYPE, __local) \
-  DECL_BYTE_RD_SPACE(TYPE, __private) \
-  DECL_BYTE_RD_SPACE(TYPE, __constant) \
-  DECL_BYTE_WR_SPACE(TYPE, __global) \
-  DECL_BYTE_WR_SPACE(TYPE, __local) \
-  DECL_BYTE_WR_SPACE(TYPE, __private)
-
-DECL_BYTE_RW_ALL(char)
-DECL_BYTE_RW_ALL(uchar)
-DECL_BYTE_RW_ALL(short)
-DECL_BYTE_RW_ALL(ushort)
-DECL_UNTYPED_RW_ALL(int)
-DECL_UNTYPED_RW_ALL(uint)
-DECL_UNTYPED_RW_ALL(long)
-DECL_UNTYPED_RW_ALL(ulong)
-DECL_UNTYPED_RW_ALL(float)
-DECL_UNTYPED_RW_ALL(double)
-
-#undef DECL_UNTYPED_RW_ALL
-#undef DECL_UNTYPED_RW_ALL_SPACE
-#undef DECL_UNTYPED_RD_ALL_SPACE
-#undef DECL_UNTYPED_RW_SPACE_N
-#undef DECL_UNTYPED_RD_SPACE_N
-#undef DECL_UNTYPED_V3_SPACE
-#undef DECL_UNTYPED_RDV3_SPACE
-#undef DECL_BYTE_RD_SPACE
-#undef DECL_BYTE_WR_SPACE
-#undef DECL_BYTE_RW_ALL
-
-PURE CONST float __gen_ocl_f16to32(short h);
-PURE CONST short __gen_ocl_f32to16(float f);
-
-INLINE_OVERLOADABLE short f32to16_rtp(float f) {
-  short s = __gen_ocl_f32to16(f);
-  float con = __gen_ocl_f16to32(s);
-  //if(isinf(con)) return s;
-  if (f > con)
-    return s - signbit(f) * 2 + 1;
-  else
-    return s;
-}
-
-INLINE_OVERLOADABLE short f32to16_rtn(float f) {
-  short s = __gen_ocl_f32to16(f);
-  float con = __gen_ocl_f16to32(s);
-  //if(isinf(con)) return s;
-  if (con > f)
-    return s + signbit(f) * 2 - 1;
-  else
-    return s;
-}
-
-INLINE_OVERLOADABLE short f32to16_rtz(float f) {
-  short s = __gen_ocl_f32to16(f);
-  float con = __gen_ocl_f16to32(s);
-  //if(isinf(con)) return s;
-  if (((con > f) && !signbit(f)) ||
-      ((con < f) && signbit(f)))
-    return s - 1;
-  else
-    return s;
-}
-
-#define DECL_HALF_LD_SPACE(SPACE) \
-INLINE_OVERLOADABLE float vload_half(size_t offset, const SPACE half *p) { \
-  return __gen_ocl_f16to32(*(SPACE short *)(p + offset)); \
-} \
-INLINE_OVERLOADABLE float2 vload_half2(size_t offset, const SPACE half *p) { \
-  return (float2)(vload_half(offset*2, p), \
-                  vload_half(offset*2 + 1, p)); \
-} \
-INLINE_OVERLOADABLE float3 vload_half3(size_t offset, const SPACE half *p) { \
-  return (float3)(vload_half(offset*3, p), \
-                  vload_half(offset*3 + 1, p), \
-                  vload_half(offset*3 + 2, p)); \
-} \
-INLINE_OVERLOADABLE float3 vloada_half3(size_t offset, const SPACE half *p) { \
-  return (float3)(vload_half(offset*4, p), \
-                  vload_half(offset*4 + 1, p), \
-                  vload_half(offset*4 + 2, p)); \
-} \
-INLINE_OVERLOADABLE float4 vload_half4(size_t offset, const SPACE half *p) { \
-  return (float4)(vload_half2(offset*2, p), \
-                  vload_half2(offset*2 + 1, p)); \
-} \
-INLINE_OVERLOADABLE float8 vload_half8(size_t offset, const SPACE half *p) { \
-  return (float8)(vload_half4(offset*2, p), \
-                  vload_half4(offset*2 + 1, p)); \
-} \
-INLINE_OVERLOADABLE float16 vload_half16(size_t offset, const SPACE half *p) { \
-  return (float16)(vload_half8(offset*2, p), \
-                   vload_half8(offset*2 + 1, p)); \
-}
-
-#define DECL_HALF_ST_SPACE_ROUND(SPACE, ROUND, FUNC) \
-INLINE_OVERLOADABLE void vstore_half##ROUND(float data, size_t offset, SPACE half *p) { \
-  *(SPACE short *)(p + offset) = FUNC(data); \
-} \
-INLINE_OVERLOADABLE void vstorea_half##ROUND(float data, size_t offset, SPACE half *p) { \
-  vstore_half##ROUND(data, offset, p); \
-} \
-INLINE_OVERLOADABLE void vstore_half2##ROUND(float2 data, size_t offset, SPACE half *p) { \
-  vstore_half##ROUND(data.lo, offset*2, p); \
-  vstore_half##ROUND(data.hi, offset*2 + 1, p); \
-} \
-INLINE_OVERLOADABLE void vstorea_half2##ROUND(float2 data, size_t offset, SPACE half *p) { \
-  vstore_half2##ROUND(data, offset, p); \
-} \
-INLINE_OVERLOADABLE void vstore_half3##ROUND(float3 data, size_t offset, SPACE half *p) { \
-  vstore_half##ROUND(data.s0, offset*3, p); \
-  vstore_half##ROUND(data.s1, offset*3 + 1, p); \
-  vstore_half##ROUND(data.s2, offset*3 + 2, p); \
-} \
-INLINE_OVERLOADABLE void vstorea_half3##ROUND(float3 data, size_t offset, SPACE half *p) { \
-  vstore_half##ROUND(data.s0, offset*4, p); \
-  vstore_half##ROUND(data.s1, offset*4 + 1, p); \
-  vstore_half##ROUND(data.s2, offset*4 + 2, p); \
-} \
-INLINE_OVERLOADABLE void vstore_half4##ROUND(float4 data, size_t offset, SPACE half *p) { \
-  vstore_half2##ROUND(data.lo, offset*2, p); \
-  vstore_half2##ROUND(data.hi, offset*2 + 1, p); \
-} \
-INLINE_OVERLOADABLE void vstorea_half4##ROUND(float4 data, size_t offset, SPACE half *p) { \
-  vstore_half4##ROUND(data, offset, p); \
-} \
-INLINE_OVERLOADABLE void vstore_half8##ROUND(float8 data, size_t offset, SPACE half *p) { \
-  vstore_half4##ROUND(data.lo, offset*2, p); \
-  vstore_half4##ROUND(data.hi, offset*2 + 1, p); \
-} \
-INLINE_OVERLOADABLE void vstorea_half8##ROUND(float8 data, size_t offset, SPACE half *p) { \
-  vstore_half8##ROUND(data, offset, p); \
-} \
-INLINE_OVERLOADABLE void vstore_half16##ROUND(float16 data, size_t offset, SPACE half *p) { \
-  vstore_half8##ROUND(data.lo, offset*2, p); \
-  vstore_half8##ROUND(data.hi, offset*2 + 1, p); \
-} \
-INLINE_OVERLOADABLE void vstorea_half16##ROUND(float16 data, size_t offset, SPACE half *p) { \
-  vstore_half16##ROUND(data, offset, p); \
-}
-
-#define DECL_HALF_ST_SPACE(SPACE) \
-  DECL_HALF_ST_SPACE_ROUND(SPACE,  , __gen_ocl_f32to16) \
-  DECL_HALF_ST_SPACE_ROUND(SPACE, _rte, __gen_ocl_f32to16) \
-  DECL_HALF_ST_SPACE_ROUND(SPACE, _rtz, f32to16_rtz) \
-  DECL_HALF_ST_SPACE_ROUND(SPACE, _rtp, f32to16_rtp) \
-  DECL_HALF_ST_SPACE_ROUND(SPACE, _rtn, f32to16_rtn) \
-
-DECL_HALF_LD_SPACE(__global)
-DECL_HALF_LD_SPACE(__local)
-DECL_HALF_LD_SPACE(__constant)
-DECL_HALF_LD_SPACE(__private)
-
-DECL_HALF_ST_SPACE(__global)
-DECL_HALF_ST_SPACE(__local)
-DECL_HALF_ST_SPACE(__private)
-
-//#undef DECL_UNTYPED_RW_ALL_SPACE
-#undef DECL_HALF_LD_SPACE
-#undef DECL_HALF_ST_SPACE
-#undef DECL_HALF_ST_SPACE_ROUND
-
-#define vloada_half vload_half
-#define vloada_half2 vload_half2
-#define vloada_half4 vload_half4
-#define vloada_half8 vload_half8
-#define vloada_half16 vload_half16
-
-// XXX workaround ptx profile
-#define fabs __gen_ocl_internal_fabs
-#define trunc __gen_ocl_internal_trunc
-#define round __gen_ocl_internal_round
-#define floor __gen_ocl_internal_floor
-#define ceil __gen_ocl_internal_ceil
-#define log __gen_ocl_internal_log
-#define log2 __gen_ocl_internal_log2
-#define log10 __gen_ocl_internal_log10
-#define exp __gen_ocl_internal_exp
-#define exp2 native_exp2
-#define exp10 __gen_ocl_internal_exp10
-#define expm1 __gen_ocl_internal_expm1
-#define fmin __gen_ocl_internal_fmin
-#define fmax __gen_ocl_internal_fmax
-#define fma mad
-#define fdim __gen_ocl_internal_fdim
-#define maxmag __gen_ocl_internal_maxmag
-#define minmag __gen_ocl_internal_minmag
-
-/////////////////////////////////////////////////////////////////////////////
-// Miscellaneous Vector Functions (see 6.11.12 of OCL 1.1 spec)
-/////////////////////////////////////////////////////////////////////////////
-#define DEC2(TYPE, XTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##2 shuffle(XTYPE x, MASKTYPE##2 mask) { \
-    TYPE##2 y; \
-    y.s0 = ((TYPE *) &x)[mask.s0 & (vec_step(x) - 1)]; \
-    y.s1 = ((TYPE *) &x)[mask.s1 & (vec_step(x) - 1)]; \
-    return y; \
-  }
-
-#define DEC4(TYPE, XTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##4 shuffle(XTYPE x, MASKTYPE##4 mask) { \
-    TYPE##4 y; \
-    y.s0 = ((TYPE *) &x)[mask.s0 & (vec_step(x) - 1)]; \
-    y.s1 = ((TYPE *) &x)[mask.s1 & (vec_step(x) - 1)]; \
-    y.s2 = ((TYPE *) &x)[mask.s2 & (vec_step(x) - 1)]; \
-    y.s3 = ((TYPE *) &x)[mask.s3 & (vec_step(x) - 1)]; \
-    return y; \
-  }
-
-#define DEC8(TYPE, XTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##8 shuffle(XTYPE x, MASKTYPE##8 mask) { \
-    TYPE##8 y; \
-    y.s0 = ((TYPE *) &x)[mask.s0 & (vec_step(x) - 1)]; \
-    y.s1 = ((TYPE *) &x)[mask.s1 & (vec_step(x) - 1)]; \
-    y.s2 = ((TYPE *) &x)[mask.s2 & (vec_step(x) - 1)]; \
-    y.s3 = ((TYPE *) &x)[mask.s3 & (vec_step(x) - 1)]; \
-    y.s4 = ((TYPE *) &x)[mask.s4 & (vec_step(x) - 1)]; \
-    y.s5 = ((TYPE *) &x)[mask.s5 & (vec_step(x) - 1)]; \
-    y.s6 = ((TYPE *) &x)[mask.s6 & (vec_step(x) - 1)]; \
-    y.s7 = ((TYPE *) &x)[mask.s7 & (vec_step(x) - 1)]; \
-    return y; \
-  }
-
-#define DEC16(TYPE, XTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##16 shuffle(XTYPE x, MASKTYPE##16 mask) { \
-    TYPE##16 y; \
-    y.s0 = ((TYPE *) &x)[mask.s0 & (vec_step(x) - 1)]; \
-    y.s1 = ((TYPE *) &x)[mask.s1 & (vec_step(x) - 1)]; \
-    y.s2 = ((TYPE *) &x)[mask.s2 & (vec_step(x) - 1)]; \
-    y.s3 = ((TYPE *) &x)[mask.s3 & (vec_step(x) - 1)]; \
-    y.s4 = ((TYPE *) &x)[mask.s4 & (vec_step(x) - 1)]; \
-    y.s5 = ((TYPE *) &x)[mask.s5 & (vec_step(x) - 1)]; \
-    y.s6 = ((TYPE *) &x)[mask.s6 & (vec_step(x) - 1)]; \
-    y.s7 = ((TYPE *) &x)[mask.s7 & (vec_step(x) - 1)]; \
-    y.s8 = ((TYPE *) &x)[mask.s8 & (vec_step(x) - 1)]; \
-    y.s9 = ((TYPE *) &x)[mask.s9 & (vec_step(x) - 1)]; \
-    y.sa = ((TYPE *) &x)[mask.sa & (vec_step(x) - 1)]; \
-    y.sb = ((TYPE *) &x)[mask.sb & (vec_step(x) - 1)]; \
-    y.sc = ((TYPE *) &x)[mask.sc & (vec_step(x) - 1)]; \
-    y.sd = ((TYPE *) &x)[mask.sd & (vec_step(x) - 1)]; \
-    y.se = ((TYPE *) &x)[mask.se & (vec_step(x) - 1)]; \
-    y.sf = ((TYPE *) &x)[mask.sf & (vec_step(x) - 1)]; \
-    return y; \
-  }
-
-#define DEFMASK(TYPE, MASKTYPE) \
-  DEC2(TYPE, TYPE##2, MASKTYPE); DEC2(TYPE, TYPE##4, MASKTYPE); DEC2(TYPE, TYPE##8, MASKTYPE); DEC2(TYPE, TYPE##16, MASKTYPE) \
-  DEC4(TYPE, TYPE##2, MASKTYPE); DEC4(TYPE, TYPE##4, MASKTYPE); DEC4(TYPE, TYPE##8, MASKTYPE); DEC4(TYPE, TYPE##16, MASKTYPE) \
-  DEC8(TYPE, TYPE##2, MASKTYPE); DEC8(TYPE, TYPE##4, MASKTYPE); DEC8(TYPE, TYPE##8, MASKTYPE); DEC8(TYPE, TYPE##16, MASKTYPE) \
-  DEC16(TYPE, TYPE##2, MASKTYPE); DEC16(TYPE, TYPE##4, MASKTYPE); DEC16(TYPE, TYPE##8, MASKTYPE); DEC16(TYPE, TYPE##16, MASKTYPE)
-
-#define DEF(TYPE) \
-  DEFMASK(TYPE, uchar) \
-  DEFMASK(TYPE, ushort) \
-  DEFMASK(TYPE, uint) \
-  DEFMASK(TYPE, ulong)
-
-DEF(char)
-DEF(uchar)
-DEF(short)
-DEF(ushort)
-DEF(int)
-DEF(uint)
-DEF(float)
-DEF(long)
-DEF(ulong)
-#undef DEF
-#undef DEFMASK
-#undef DEC2
-#undef DEC4
-#undef DEC8
-#undef DEC16
-
-#define DEC2(TYPE, ARGTYPE, TEMPTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##2 shuffle2(ARGTYPE x, ARGTYPE y, MASKTYPE##2 mask) { \
-    return shuffle((TEMPTYPE)(x, y), mask); \
-  }
-
-#define DEC2X(TYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##2 shuffle2(TYPE##16 x, TYPE##16 y, MASKTYPE##2 mask) { \
-    TYPE##2 z; \
-    z.s0 = mask.s0 < 16 ? ((TYPE *)&x)[mask.s0] : ((TYPE *)&y)[mask.s0 & 15]; \
-    z.s1 = mask.s1 < 16 ? ((TYPE *)&x)[mask.s1] : ((TYPE *)&y)[mask.s1 & 15]; \
-    return z; \
-  }
-
-#define DEC4(TYPE, ARGTYPE, TEMPTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##4 shuffle2(ARGTYPE x, ARGTYPE y, MASKTYPE##4 mask) { \
-    return shuffle((TEMPTYPE)(x, y), mask); \
-  }
-
-#define DEC4X(TYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##4 shuffle2(TYPE##16 x, TYPE##16 y, MASKTYPE##4 mask) { \
-    TYPE##4 z; \
-    z.s0 = mask.s0 < 16 ? ((TYPE *)&x)[mask.s0] : ((TYPE *)&y)[mask.s0 & 15]; \
-    z.s1 = mask.s1 < 16 ? ((TYPE *)&x)[mask.s1] : ((TYPE *)&y)[mask.s1 & 15]; \
-    z.s2 = mask.s2 < 16 ? ((TYPE *)&x)[mask.s2] : ((TYPE *)&y)[mask.s2 & 15]; \
-    z.s3 = mask.s3 < 16 ? ((TYPE *)&x)[mask.s3] : ((TYPE *)&y)[mask.s3 & 15]; \
-    return z; \
-  }
-
-#define DEC8(TYPE, ARGTYPE, TEMPTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##8 shuffle2(ARGTYPE x, ARGTYPE y, MASKTYPE##8 mask) { \
-    return shuffle((TEMPTYPE)(x, y), mask); \
-  }
-
-#define DEC8X(TYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##8 shuffle2(TYPE##16 x, TYPE##16 y, MASKTYPE##8 mask) { \
-    TYPE##8 z; \
-    z.s0 = mask.s0 < 16 ? ((TYPE *)&x)[mask.s0] : ((TYPE *)&y)[mask.s0 & 15]; \
-    z.s1 = mask.s1 < 16 ? ((TYPE *)&x)[mask.s1] : ((TYPE *)&y)[mask.s1 & 15]; \
-    z.s2 = mask.s2 < 16 ? ((TYPE *)&x)[mask.s2] : ((TYPE *)&y)[mask.s2 & 15]; \
-    z.s3 = mask.s3 < 16 ? ((TYPE *)&x)[mask.s3] : ((TYPE *)&y)[mask.s3 & 15]; \
-    z.s4 = mask.s4 < 16 ? ((TYPE *)&x)[mask.s4] : ((TYPE *)&y)[mask.s4 & 15]; \
-    z.s5 = mask.s5 < 16 ? ((TYPE *)&x)[mask.s5] : ((TYPE *)&y)[mask.s5 & 15]; \
-    z.s6 = mask.s6 < 16 ? ((TYPE *)&x)[mask.s6] : ((TYPE *)&y)[mask.s6 & 15]; \
-    z.s7 = mask.s7 < 16 ? ((TYPE *)&x)[mask.s7] : ((TYPE *)&y)[mask.s7 & 15]; \
-    return z; \
-  }
-
-#define DEC16(TYPE, ARGTYPE, TEMPTYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##16 shuffle2(ARGTYPE x, ARGTYPE y, MASKTYPE##16 mask) { \
-    return shuffle((TEMPTYPE)(x, y), mask); \
-  }
-
-#define DEC16X(TYPE, MASKTYPE) \
-  INLINE_OVERLOADABLE TYPE##16 shuffle2(TYPE##16 x, TYPE##16 y, MASKTYPE##16 mask) { \
-    TYPE##16 z; \
-    z.s0 = mask.s0 < 16 ? ((TYPE *)&x)[mask.s0] : ((TYPE *)&y)[mask.s0 & 15]; \
-    z.s1 = mask.s1 < 16 ? ((TYPE *)&x)[mask.s1] : ((TYPE *)&y)[mask.s1 & 15]; \
-    z.s2 = mask.s2 < 16 ? ((TYPE *)&x)[mask.s2] : ((TYPE *)&y)[mask.s2 & 15]; \
-    z.s3 = mask.s3 < 16 ? ((TYPE *)&x)[mask.s3] : ((TYPE *)&y)[mask.s3 & 15]; \
-    z.s4 = mask.s4 < 16 ? ((TYPE *)&x)[mask.s4] : ((TYPE *)&y)[mask.s4 & 15]; \
-    z.s5 = mask.s5 < 16 ? ((TYPE *)&x)[mask.s5] : ((TYPE *)&y)[mask.s5 & 15]; \
-    z.s6 = mask.s6 < 16 ? ((TYPE *)&x)[mask.s6] : ((TYPE *)&y)[mask.s6 & 15]; \
-    z.s7 = mask.s7 < 16 ? ((TYPE *)&x)[mask.s7] : ((TYPE *)&y)[mask.s7 & 15]; \
-    z.s8 = mask.s8 < 16 ? ((TYPE *)&x)[mask.s8] : ((TYPE *)&y)[mask.s8 & 15]; \
-    z.s9 = mask.s9 < 16 ? ((TYPE *)&x)[mask.s9] : ((TYPE *)&y)[mask.s9 & 15]; \
-    z.sa = mask.sa < 16 ? ((TYPE *)&x)[mask.sa] : ((TYPE *)&y)[mask.sa & 15]; \
-    z.sb = mask.sb < 16 ? ((TYPE *)&x)[mask.sb] : ((TYPE *)&y)[mask.sb & 15]; \
-    z.sc = mask.sc < 16 ? ((TYPE *)&x)[mask.sc] : ((TYPE *)&y)[mask.sc & 15]; \
-    z.sd = mask.sd < 16 ? ((TYPE *)&x)[mask.sd] : ((TYPE *)&y)[mask.sd & 15]; \
-    z.se = mask.se < 16 ? ((TYPE *)&x)[mask.se] : ((TYPE *)&y)[mask.se & 15]; \
-    z.sf = mask.sf < 16 ? ((TYPE *)&x)[mask.sf] : ((TYPE *)&y)[mask.sf & 15]; \
-    return z; \
-  }
-
-#define DEFMASK(TYPE, MASKTYPE) \
-  DEC2(TYPE, TYPE##2, TYPE##4, MASKTYPE) \
-  DEC2(TYPE, TYPE##4, TYPE##8, MASKTYPE) \
-  DEC2(TYPE, TYPE##8, TYPE##16, MASKTYPE) \
-  DEC2X(TYPE, MASKTYPE) \
-  DEC4(TYPE, TYPE##2, TYPE##4, MASKTYPE) \
-  DEC4(TYPE, TYPE##4, TYPE##8, MASKTYPE) \
-  DEC4(TYPE, TYPE##8, TYPE##16, MASKTYPE) \
-  DEC4X(TYPE, MASKTYPE) \
-  DEC8(TYPE, TYPE##2, TYPE##4, MASKTYPE) \
-  DEC8(TYPE, TYPE##4, TYPE##8, MASKTYPE) \
-  DEC8(TYPE, TYPE##8, TYPE##16, MASKTYPE) \
-  DEC8X(TYPE, MASKTYPE) \
-  DEC16(TYPE, TYPE##2, TYPE##4, MASKTYPE) \
-  DEC16(TYPE, TYPE##4, TYPE##8, MASKTYPE) \
-  DEC16(TYPE, TYPE##8, TYPE##16, MASKTYPE) \
-  DEC16X(TYPE, MASKTYPE)
-
-#define DEF(TYPE) \
-  DEFMASK(TYPE, uchar) \
-  DEFMASK(TYPE, ushort) \
-  DEFMASK(TYPE, uint) \
-  DEFMASK(TYPE, ulong)
-
-DEF(char)
-DEF(uchar)
-DEF(short)
-DEF(ushort)
-DEF(int)
-DEF(uint)
-DEF(float)
-DEF(long)
-DEF(ulong)
-#undef DEF
-#undef DEFMASK
-#undef DEC2
-#undef DEC2X
-#undef DEC4
-#undef DEC4X
-#undef DEC8
-#undef DEC8X
-#undef DEC16
-#undef DEC16X
-/////////////////////////////////////////////////////////////////////////////
-// Synchronization functions
-/////////////////////////////////////////////////////////////////////////////
-#define CLK_LOCAL_MEM_FENCE  (1 << 0)
-#define CLK_GLOBAL_MEM_FENCE (1 << 1)
-
-void __gen_ocl_barrier_local(void);
-void __gen_ocl_barrier_global(void);
-void __gen_ocl_barrier_local_and_global(void);
-
-typedef uint cl_mem_fence_flags;
-void barrier(cl_mem_fence_flags flags);
-
-INLINE void mem_fence(cl_mem_fence_flags flags) {
-}
-INLINE void read_mem_fence(cl_mem_fence_flags flags) {
-}
-INLINE void write_mem_fence(cl_mem_fence_flags flags) {
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Async Copies and prefetch
-/////////////////////////////////////////////////////////////////////////////
-#define BODY(SRC_STRIDE, DST_STRIDE) \
-  uint size = get_local_size(2) * get_local_size(1) * get_local_size(0); \
-  uint count = num / size;  \
-  uint offset = get_local_id(2) * get_local_size(1) + get_local_id(1);  \
-  offset = offset * get_local_size(0) + get_local_id(0); \
-  for(uint i=0; i<count; i+=1) { \
-    *(dst + offset * DST_STRIDE) = *(src + offset * SRC_STRIDE); \
-    offset += size;                                 \
-  } \
-  if(offset < num) \
-    *(dst + offset * DST_STRIDE) = *(src + offset * SRC_STRIDE); \
-  return 0;
-
-#define DEFN(TYPE) \
-INLINE_OVERLOADABLE event_t async_work_group_copy (local TYPE *dst,  const global TYPE *src, \
-										    size_t num, event_t event) { \
-  BODY(1, 1); \
-} \
-INLINE_OVERLOADABLE event_t async_work_group_copy (global TYPE *dst,  const local TYPE *src, \
-										    size_t num, event_t event) { \
-  BODY(1, 1); \
-} \
-INLINE_OVERLOADABLE event_t async_work_group_strided_copy (local TYPE *dst,  const global TYPE *src, \
-										            size_t num, size_t src_stride, event_t event) { \
-  BODY(src_stride, 1); \
-} \
-INLINE_OVERLOADABLE event_t async_work_group_strided_copy (global TYPE *dst,  const local TYPE *src, \
-										            size_t num, size_t dst_stride, event_t event) { \
-  BODY(1, dst_stride); \
-}
-#define DEF(TYPE) \
-  DEFN(TYPE); DEFN(TYPE##2); DEFN(TYPE##3); DEFN(TYPE##4); DEFN(TYPE##8); DEFN(TYPE##16);
-DEF(char)
-DEF(uchar)
-DEF(short)
-DEF(ushort)
-DEF(int)
-DEF(uint)
-DEF(long)
-DEF(ulong)
-DEF(float)
-DEF(double)
-#undef BODY
-#undef DEFN
-#undef DEF
-
-INLINE void wait_group_events (int num_events, event_t *event_list) {
-  barrier(CLK_LOCAL_MEM_FENCE | CLK_GLOBAL_MEM_FENCE);
-}
-
-#define DEFN(TYPE) \
-INLINE_OVERLOADABLE void prefetch(const global TYPE *p, size_t num) { }
-#define DEF(TYPE) \
-DEFN(TYPE); DEFN(TYPE##2); DEFN(TYPE##3); DEFN(TYPE##4); DEFN(TYPE##8); DEFN(TYPE##16)
-DEF(char);
-DEF(uchar);
-DEF(short);
-DEF(ushort);
-DEF(int);
-DEF(uint);
-DEF(long);
-DEF(ulong);
-DEF(float);
-#undef DEFN
-#undef DEF
-
-/////////////////////////////////////////////////////////////////////////////
-// Atomic functions
-/////////////////////////////////////////////////////////////////////////////
-OVERLOADABLE uint __gen_ocl_atomic_add(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_add(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_sub(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_sub(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_and(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_and(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_or(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_or(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_xor(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_xor(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_xchg(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_xchg(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_inc(__global uint *p);
-OVERLOADABLE uint __gen_ocl_atomic_inc(__local uint *p);
-OVERLOADABLE uint __gen_ocl_atomic_dec(__global uint *p);
-OVERLOADABLE uint __gen_ocl_atomic_dec(__local uint *p);
-OVERLOADABLE uint __gen_ocl_atomic_cmpxchg(__global uint *p, uint cmp, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_cmpxchg(__local uint *p, uint cmp, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_imin(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_imin(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_imax(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_imax(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_umin(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_umin(__local uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_umax(__global uint *p, uint val);
-OVERLOADABLE uint __gen_ocl_atomic_umax(__local uint *p, uint val);
-
-#define DECL_ATOMIC_OP_SPACE(NAME, TYPE, SPACE, PREFIX)                        \
-  INLINE_OVERLOADABLE TYPE atomic_##NAME (volatile SPACE TYPE *p, TYPE val) { \
-    return (TYPE)__gen_ocl_##PREFIX##NAME((SPACE uint *)p, val);            \
-  }
-
-#define DECL_ATOMIC_OP_TYPE(NAME, TYPE, PREFIX) \
-  DECL_ATOMIC_OP_SPACE(NAME, TYPE, __global, PREFIX) \
-  DECL_ATOMIC_OP_SPACE(NAME, TYPE, __local, PREFIX)
-
-#define DECL_ATOMIC_OP(NAME) \
-  DECL_ATOMIC_OP_TYPE(NAME, uint, atomic_)        \
-  DECL_ATOMIC_OP_TYPE(NAME, int, atomic_)
-
-DECL_ATOMIC_OP(add)
-DECL_ATOMIC_OP(sub)
-DECL_ATOMIC_OP(and)
-DECL_ATOMIC_OP(or)
-DECL_ATOMIC_OP(xor)
-DECL_ATOMIC_OP(xchg)
-DECL_ATOMIC_OP_TYPE(min, int, atomic_i)
-DECL_ATOMIC_OP_TYPE(max, int, atomic_i)
-DECL_ATOMIC_OP_TYPE(min, uint, atomic_u)
-DECL_ATOMIC_OP_TYPE(max, uint, atomic_u)
-
-#undef DECL_ATOMIC_OP_SPACE
-
-#define DECL_ATOMIC_OP_SPACE(NAME, TYPE, SPACE, PREFIX)                        \
-  INLINE_OVERLOADABLE TYPE atomic_##NAME (volatile SPACE TYPE *p, TYPE val) { \
-    return as_float(__gen_ocl_##PREFIX##NAME((SPACE uint *)p, as_uint(val))); \
-  }
-DECL_ATOMIC_OP_SPACE(xchg, float, __global, atomic_)
-DECL_ATOMIC_OP_SPACE(xchg, float, __local, atomic_)
-
-#undef DECL_ATOMIC_OP
-#undef DECL_ATOMIC_OP_TYPE
-#undef DECL_ATOMIC_OP_SPACE
-
-#define DECL_ATOMIC_OP_SPACE(NAME, TYPE, SPACE) \
-  INLINE_OVERLOADABLE TYPE atomic_##NAME (volatile SPACE TYPE *p) { \
-    return (TYPE)__gen_ocl_atomic_##NAME((SPACE uint *)p); \
-  }
-
-#define DECL_ATOMIC_OP_TYPE(NAME, TYPE) \
-  DECL_ATOMIC_OP_SPACE(NAME, TYPE, __global) \
-  DECL_ATOMIC_OP_SPACE(NAME, TYPE, __local)
-
-#define DECL_ATOMIC_OP(NAME) \
-  DECL_ATOMIC_OP_TYPE(NAME, uint) \
-  DECL_ATOMIC_OP_TYPE(NAME, int)
-
-DECL_ATOMIC_OP(inc)
-DECL_ATOMIC_OP(dec)
-
-#undef DECL_ATOMIC_OP
-#undef DECL_ATOMIC_OP_TYPE
-#undef DECL_ATOMIC_OP_SPACE
-
-#define DECL_ATOMIC_OP_SPACE(NAME, TYPE, SPACE)  \
-  INLINE_OVERLOADABLE TYPE atomic_##NAME (volatile SPACE TYPE *p, TYPE cmp, TYPE val) { \
-    return (TYPE)__gen_ocl_atomic_##NAME((SPACE uint *)p, (uint)cmp, (uint)val); \
-  }
-
-#define DECL_ATOMIC_OP_TYPE(NAME, TYPE) \
-  DECL_ATOMIC_OP_SPACE(NAME, TYPE, __global) \
-  DECL_ATOMIC_OP_SPACE(NAME, TYPE, __local)
-
-#define DECL_ATOMIC_OP(NAME) \
-  DECL_ATOMIC_OP_TYPE(NAME, uint) \
-  DECL_ATOMIC_OP_TYPE(NAME, int)
-
-DECL_ATOMIC_OP(cmpxchg)
-
-#undef DECL_ATOMIC_OP
-#undef DECL_ATOMIC_OP_TYPE
-#undef DECL_ATOMIC_OP_SPACE
-
-// XXX for conformance test
-// The following atom_xxx api is on OpenCL spec 1.0.
-// But the conformance test suite will test them anyway.
-#define atom_add atomic_add
-#define atom_sub atomic_sub
-#define atom_and atomic_and
-#define atom_or atomic_or
-#define atom_xor atomic_xor
-#define atom_xchg atomic_xchg
-#define atom_min atomic_min
-#define atom_max atomic_max
-#define atom_inc atomic_inc
-#define atom_dec atomic_dec
-#define atom_cmpxchg atomic_cmpxchg
-
-/////////////////////////////////////////////////////////////////////////////
-// Force the compilation to SIMD8 or SIMD16
-/////////////////////////////////////////////////////////////////////////////
-
-int __gen_ocl_force_simd8(void);
-int __gen_ocl_force_simd16(void);
-
-#define NULL ((void*)0)
-
-// ##BEGIN_COMMON_DEFINES##
-// ##END_COMMON_DEFINES##
-
-/////////////////////////////////////////////////////////////////////////////
-// Image access functions
-/////////////////////////////////////////////////////////////////////////////
-
-// 1D read
-OVERLOADABLE int4 __gen_ocl_read_imagei(uint surface_id, sampler_t sampler, float u, uint sampler_offset);
-OVERLOADABLE int4 __gen_ocl_read_imagei(uint surface_id, sampler_t sampler, int u, uint sampler_offset);
-OVERLOADABLE uint4 __gen_ocl_read_imageui(uint surface_id, sampler_t sampler, float u, uint sampler_offset);
-OVERLOADABLE uint4 __gen_ocl_read_imageui(uint surface_id, sampler_t sampler, int u, uint sampler_offset);
-OVERLOADABLE float4 __gen_ocl_read_imagef(uint surface_id, sampler_t sampler, float u, uint sampler_offset);
-OVERLOADABLE float4 __gen_ocl_read_imagef(uint surface_id, sampler_t sampler, int u, uint sampler_offset);
-
-// 2D & 1D Array read
-OVERLOADABLE int4 __gen_ocl_read_imagei(uint surface_id, sampler_t sampler, float u, float v, uint sampler_offset);
-OVERLOADABLE int4 __gen_ocl_read_imagei(uint surface_id, sampler_t sampler, int u, int v, uint sampler_offset);
-OVERLOADABLE uint4 __gen_ocl_read_imageui(uint surface_id, sampler_t sampler, float u, float v, uint sampler_offset);
-OVERLOADABLE uint4 __gen_ocl_read_imageui(uint surface_id, sampler_t sampler, int u, int v, uint sampler_offset);
-OVERLOADABLE float4 __gen_ocl_read_imagef(uint surface_id, sampler_t sampler, float u, float v, uint sampler_offset);
-OVERLOADABLE float4 __gen_ocl_read_imagef(uint surface_id, sampler_t sampler, int u, int v, uint sampler_offset);
-
-// 3D & 2D Array read
-OVERLOADABLE int4 __gen_ocl_read_imagei(uint surface_id, sampler_t sampler, float u, float v, float w, uint sampler_offset);
-OVERLOADABLE int4 __gen_ocl_read_imagei(uint surface_id, sampler_t sampler, int u, int v, int w, uint sampler_offset);
-OVERLOADABLE uint4 __gen_ocl_read_imageui(uint surface_id, sampler_t sampler, float u, float v, float w, uint sampler_offset);
-OVERLOADABLE uint4 __gen_ocl_read_imageui(uint surface_id, sampler_t sampler, int u, int v, int w, uint sampler_offset);
-OVERLOADABLE float4 __gen_ocl_read_imagef(uint surface_id, sampler_t sampler, float u, float v, float w, uint sampler_offset);
-OVERLOADABLE float4 __gen_ocl_read_imagef(uint surface_id, sampler_t sampler, int u, int v, int w, uint sampler_offset);
-
-// 1D write
-OVERLOADABLE void __gen_ocl_write_imagei(uint surface_id, int u, int4 color);
-OVERLOADABLE void __gen_ocl_write_imageui(uint surface_id, int u, uint4 color);
-OVERLOADABLE void __gen_ocl_write_imagef(uint surface_id, int u, float4 color);
-
-// 2D & 1D Array write
-OVERLOADABLE void __gen_ocl_write_imagei(uint surface_id, int u, int v, int4 color);
-OVERLOADABLE void __gen_ocl_write_imageui(uint surface_id, int u, int v, uint4 color);
-OVERLOADABLE void __gen_ocl_write_imagef(uint surface_id, int u, int v, float4 color);
-
-// 3D & 2D Array write
-OVERLOADABLE void __gen_ocl_write_imagei(uint surface_id, int u, int v, int w, int4 color);
-OVERLOADABLE void __gen_ocl_write_imageui(uint surface_id, int u, int v, int w, uint4 color);
-OVERLOADABLE void __gen_ocl_write_imagef(uint surface_id, int u, int v, int w, float4 color);
-
-int __gen_ocl_get_image_width(uint surface_id);
-int __gen_ocl_get_image_height(uint surface_id);
-int __gen_ocl_get_image_channel_data_type(uint surface_id);
-int __gen_ocl_get_image_channel_order(uint surface_id);
-int __gen_ocl_get_image_depth(uint surface_id);
-/* The printf function. */
-/* From LLVM 3.4, c string are all in constant address space */
-#if 100*__clang_major__ + __clang_minor__ < 304
-int __gen_ocl_printf_stub(const char * format, ...);
-#else
-int __gen_ocl_printf_stub(constant char * format, ...);
-#endif
-#define printf __gen_ocl_printf_stub
-
-// 2D 3D Image Common Macro
-#ifdef GEN7_SAMPLER_CLAMP_BORDER_WORKAROUND
-#define GEN_FIX_1 1
-#else
-#define GEN_FIX_1 0
-#endif
-
-#define GET_IMAGE(cl_image, surface_id) \
-    uint surface_id = (uint)cl_image
-INLINE_OVERLOADABLE float __gen_compute_array_index(const float index, image1d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  float array_size = __gen_ocl_get_image_depth(surface_id);
-  return clamp(rint(index), 0.f, array_size - 1.f);
-}
-
-INLINE_OVERLOADABLE float __gen_compute_array_index(float index, image2d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  float array_size = __gen_ocl_get_image_depth(surface_id);
-  return clamp(rint(index), 0.f, array_size - 1.f);
-}
-
-INLINE_OVERLOADABLE int __gen_compute_array_index(int index, image1d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  int array_size = __gen_ocl_get_image_depth(surface_id);
-  return clamp(index, 0, array_size - 1);
-}
-
-INLINE_OVERLOADABLE int __gen_compute_array_index(int index, image2d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  int array_size = __gen_ocl_get_image_depth(surface_id);
-  return clamp(index, 0, array_size - 1);
-}
-
-#define DECL_READ_IMAGE0(int_clamping_fix,                                   \
-                        image_type, type, suffix, coord_type, n)             \
-  INLINE_OVERLOADABLE type read_image ##suffix(image_type cl_image,          \
-                                               const sampler_t sampler,      \
-                                               coord_type coord)             \
-  {                                                                          \
-    GET_IMAGE(cl_image, surface_id);                                         \
-    GET_IMAGE_ARRAY_SIZE(cl_image, coord, int, ai);                          \
-    if (int_clamping_fix &&                                                  \
-        ((sampler & __CLK_ADDRESS_MASK) == CLK_ADDRESS_CLAMP) &&             \
-        ((sampler & __CLK_FILTER_MASK) == CLK_FILTER_NEAREST))               \
-            return   __gen_ocl_read_image ##suffix(                          \
-                        EXPEND_READ_COORD(surface_id, sampler, coord));      \
-    return  __gen_ocl_read_image ##suffix(                                   \
-                    EXPEND_READ_COORDF(surface_id, sampler, coord), 0);      \
-  }
-
-#define DECL_READ_IMAGE1(float_coord_rounding_fix, int_clamping_fix,         \
-                        image_type, type, suffix, coord_type, n)             \
-  INLINE_OVERLOADABLE type read_image ##suffix(image_type cl_image,          \
-                                               const sampler_t sampler,      \
-                                               coord_type coord)             \
-  {                                                                          \
-    GET_IMAGE(cl_image, surface_id);                                         \
-    GET_IMAGE_ARRAY_SIZE(cl_image, coord, float, ai)                         \
-    coord_type tmpCoord = coord;                                             \
-    if (float_coord_rounding_fix | int_clamping_fix) {                       \
-      if (((sampler & __CLK_ADDRESS_MASK) == CLK_ADDRESS_CLAMP)              \
-          && ((sampler & __CLK_FILTER_MASK) == CLK_FILTER_NEAREST)) {        \
-        if (float_coord_rounding_fix                                         \
-            && ((sampler & CLK_NORMALIZED_COORDS_TRUE) == 0)) {              \
-          FIXUP_FLOAT_COORD(tmpCoord);                                       \
-        }                                                                    \
-        if (int_clamping_fix) {                                              \
-            coord_type intCoord;                                             \
-            if (sampler & CLK_NORMALIZED_COORDS_TRUE) {                      \
-              DENORMALIZE_COORD(surface_id, intCoord, tmpCoord);             \
-            } else                                                           \
-              intCoord = tmpCoord;                                           \
-            return   __gen_ocl_read_image ##suffix(                          \
-                       EXPEND_READ_COORDI(surface_id, sampler, intCoord));\
-       }                                                                     \
-      }                                                                      \
-    }                                                                        \
-    return  __gen_ocl_read_image ##suffix(                                   \
-                        EXPEND_READ_COORDF(surface_id, sampler, tmpCoord), 0);\
-  }
-
-#define DECL_READ_IMAGE_NOSAMPLER(image_type, type, suffix, coord_type, n)   \
-  INLINE_OVERLOADABLE type read_image ##suffix(image_type cl_image,          \
-                                               coord_type coord)             \
-  {                                                                          \
-    GET_IMAGE(cl_image, surface_id);                                         \
-    GET_IMAGE_ARRAY_SIZE(cl_image, coord, int, ai)                           \
-    return __gen_ocl_read_image ##suffix(                                    \
-           EXPEND_READ_COORDF(surface_id,                                    \
-                             CLK_NORMALIZED_COORDS_FALSE                     \
-                             | CLK_ADDRESS_NONE                              \
-                             | CLK_FILTER_NEAREST, (float)coord), 0);        \
-  }
-
-#define DECL_WRITE_IMAGE(image_type, type, suffix, coord_type) \
-  INLINE_OVERLOADABLE void write_image ##suffix(image_type cl_image, coord_type coord, type color)\
-  {\
-    GET_IMAGE(cl_image, surface_id);\
-    __gen_ocl_write_image ##suffix(EXPEND_WRITE_COORD(surface_id, coord, color));\
-  }
-
-#define DECL_IMAGE_INFO_COMMON(image_type)    \
-  INLINE_OVERLOADABLE  int get_image_channel_data_type(image_type image)\
-  { \
-    GET_IMAGE(image, surface_id);\
-    return __gen_ocl_get_image_channel_data_type(surface_id); \
-  }\
-  INLINE_OVERLOADABLE  int get_image_channel_order(image_type image)\
-  { \
-    GET_IMAGE(image, surface_id);\
-    return __gen_ocl_get_image_channel_order(surface_id); \
-  } \
-  INLINE_OVERLOADABLE int get_image_width(image_type image) \
-  { \
-    GET_IMAGE(image, surface_id); \
-    return __gen_ocl_get_image_width(surface_id);  \
-  }
-
-// 1D
-#define DECL_IMAGE(int_clamping_fix, image_type, type, suffix)                       \
-  DECL_READ_IMAGE0(int_clamping_fix, image_type, type, suffix, int, 1)               \
-  DECL_READ_IMAGE1(GEN_FIX_1, int_clamping_fix, image_type, type, suffix, float, 1)  \
-  DECL_READ_IMAGE_NOSAMPLER(image_type, type, suffix, int, 1)                        \
-  DECL_WRITE_IMAGE(image_type, type, suffix, int)                                    \
-  DECL_WRITE_IMAGE(image_type, type, suffix, float)
-
-#define EXPEND_READ_COORD(id, sampler, coord) id, sampler, coord, 1
-#define EXPEND_READ_COORDF(id, sampler, coord) id, sampler, (float)coord
-#define EXPEND_READ_COORDI(id, sampler, coord) id, sampler, (int)(coord < 0 ? -1 : coord), 1
-#define DENORMALIZE_COORD(id, dstCoord, srcCoord) dstCoord = srcCoord * __gen_ocl_get_image_width(id);
-#define EXPEND_WRITE_COORD(id, coord, color) id, coord, color
-#define GET_IMAGE_ARRAY_SIZE(a,b,c,d)
-
-#define FIXUP_FLOAT_COORD(tmpCoord)                            \
-  {                                                            \
-    if (tmpCoord < 0 && tmpCoord > -0x1p-20f)                  \
-      tmpCoord += -0x1p-9;                                     \
-  }
-
-DECL_IMAGE(GEN_FIX_1, image1d_t, int4, i)
-DECL_IMAGE(GEN_FIX_1, image1d_t, uint4, ui)
-DECL_IMAGE(0, image1d_t, float4, f)
-DECL_IMAGE(GEN_FIX_1, image1d_buffer_t, int4, i)
-DECL_IMAGE(GEN_FIX_1, image1d_buffer_t, uint4, ui)
-DECL_IMAGE(0, image1d_buffer_t, float4, f)
-
-// 1D Info
-DECL_IMAGE_INFO_COMMON(image1d_t)
-DECL_IMAGE_INFO_COMMON(image1d_buffer_t)
-
-#undef EXPEND_READ_COORD
-#undef EXPEND_READ_COORDF
-#undef EXPEND_READ_COORDI
-#undef DENORMALIZE_COORD
-#undef EXPEND_WRITE_COORD
-#undef FIXUP_FLOAT_COORD
-#undef DECL_IMAGE
-// End of 1D
-
-#define DECL_IMAGE(int_clamping_fix, image_type, type, suffix, n)                       \
-  DECL_READ_IMAGE0(int_clamping_fix, image_type, type, suffix, int ##n, n)              \
-  DECL_READ_IMAGE1(GEN_FIX_1, int_clamping_fix, image_type, type, suffix, float ##n, n) \
-  DECL_READ_IMAGE_NOSAMPLER(image_type, type, suffix, int ##n, n)                       \
-  DECL_WRITE_IMAGE(image_type, type, suffix, int ## n)                                  \
-  DECL_WRITE_IMAGE(image_type, type, suffix, float ## n)
-// 2D
-#define EXPEND_READ_COORD(id, sampler, coord) id, sampler, coord.s0, coord.s1, 1
-#define EXPEND_READ_COORDF(id, sampler, coord) id, sampler, (float)coord.s0, (float)coord.s1
-#define EXPEND_READ_COORDI(id, sampler, coord) id, sampler, (int)(coord.s0 < 0 ? -1 : coord.s0), \
-                                               (int)(coord.s1 < 0 ? -1 : coord.s1), 1
-#define DENORMALIZE_COORD(id, dstCoord, srcCoord) dstCoord.x = srcCoord.x * __gen_ocl_get_image_width(id); \
-                                                  dstCoord.y = srcCoord.y * __gen_ocl_get_image_height(id);
-#define EXPEND_WRITE_COORD(id, coord, color) id, coord.s0, coord.s1, color
-
-#define FIXUP_FLOAT_COORD(tmpCoord)                            \
-  {                                                            \
-    if (tmpCoord.s0 < 0 && tmpCoord.s0 > -0x1p-20f)            \
-      tmpCoord.s0 += -0x1p-9;                                  \
-    if (tmpCoord.s1 < 0 && tmpCoord.s1 > -0x1p-20f)            \
-      tmpCoord.s1 += -0x1p-9f;                                 \
-  }
-
-DECL_IMAGE(GEN_FIX_1, image2d_t, int4, i, 2)
-DECL_IMAGE(GEN_FIX_1, image2d_t, uint4, ui, 2)
-DECL_IMAGE(0, image2d_t, float4, f, 2)
-
-// 1D Array
-#undef GET_IMAGE_ARRAY_SIZE
-#undef EXPEND_READ_COORD
-#undef EXPEND_READ_COORDF
-#undef EXPEND_READ_COORDI
-#undef DENORMALIZE_COORD
-#undef EXPEND_WRITE_COORD
-#undef FIXUP_FLOAT_COORD
-
-#define EXPEND_READ_COORD(id, sampler, coord) id, sampler, coord.s0, (int)0, ai, 2
-#define EXPEND_READ_COORDF(id, sampler, coord) id, sampler, (float)coord.s0, (float)ai
-#define EXPEND_READ_COORDI(id, sampler, coord) id, sampler, (int)(coord.s0 < 0 ? -1 : coord.s0), 0, (int)ai, 2
-#define DENORMALIZE_COORD(id, dstCoord, srcCoord) dstCoord.x = srcCoord.x * __gen_ocl_get_image_width(id);
-#define EXPEND_WRITE_COORD(id, coord, color) id, coord.s0, __gen_compute_array_index(coord.s1, cl_image), color
-#define GET_IMAGE_ARRAY_SIZE(image, coord, coord_type, ai) \
-  coord_type ai = __gen_compute_array_index(coord.s1, image);
-
-#define FIXUP_FLOAT_COORD(tmpCoord)                            \
-  {                                                            \
-    if (tmpCoord.s0 < 0 && tmpCoord.s0 > -0x1p-20f)            \
-      tmpCoord.s0 += -0x1p-9;                                  \
-  }
-
-DECL_IMAGE(GEN_FIX_1, image1d_array_t, int4, i, 2)
-DECL_IMAGE(GEN_FIX_1, image1d_array_t, uint4, ui, 2)
-DECL_IMAGE(0, image1d_array_t, float4, f, 2)
-
-// 2D Info
-DECL_IMAGE_INFO_COMMON(image2d_t)
-INLINE_OVERLOADABLE int get_image_height(image2d_t image)
-{
-  GET_IMAGE(image, surface_id);
-  return __gen_ocl_get_image_height(surface_id);
-}
-INLINE_OVERLOADABLE int2 get_image_dim(image2d_t image)
-{
-  return (int2){get_image_width(image), get_image_height(image)};
-}
-
-// 1D Array info
-DECL_IMAGE_INFO_COMMON(image1d_array_t)
-INLINE_OVERLOADABLE size_t get_image_array_size(image1d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  return __gen_ocl_get_image_depth(surface_id);
-}
-
-#undef EXPEND_READ_COORD
-#undef EXPEND_READ_COORDI
-#undef EXPEND_READ_COORDF
-#undef DENORMALIZE_COORD
-#undef EXPEND_WRITE_COORD
-#undef FIXUP_FLOAT_COORD
-#undef GET_IMAGE_ARRAY_SIZE
-// End of 2D and 1D Array
-
-// 3D
-#define EXPEND_READ_COORD(id, sampler, coord) id, sampler, coord.s0, coord.s1, coord.s2, 1
-#define EXPEND_READ_COORDF(id, sampler, coord) id, sampler, (float)coord.s0, (float)coord.s1, (float)coord.s2
-#define EXPEND_READ_COORDI(id, sampler, coord) id, sampler, (int) (coord.s0 < 0 ? -1 : coord.s0), \
-                                               (int)(coord.s1 < 0 ? -1 : coord.s1), (int)(coord.s2 < 0 ? -1 : coord.s2), 1
-#define DENORMALIZE_COORD(id, dstCoord, srcCoord) dstCoord.x = srcCoord.x * __gen_ocl_get_image_width(id); \
-                                                  dstCoord.y = srcCoord.y * __gen_ocl_get_image_height(id); \
-                                                  dstCoord.z = srcCoord.z * __gen_ocl_get_image_depth(id);
-#define EXPEND_WRITE_COORD(id, coord, color) id, coord.s0, coord.s1, coord.s2, color
-
-#define FIXUP_FLOAT_COORD(tmpCoord)                             \
-  {                                                             \
-    if (tmpCoord.s0 < 0 && tmpCoord.s0 > -0x1p-20)              \
-      tmpCoord.s0 += -0x1p-9;                                   \
-    if (tmpCoord.s1 < 0 && tmpCoord.s1 > -0x1p-20)              \
-      tmpCoord.s1 += -0x1p-9;                                   \
-    if (tmpCoord.s2 < 0 && tmpCoord.s2 > -0x1p-20)              \
-      tmpCoord.s2 += -0x1p-9;                                   \
-  }
-#define GET_IMAGE_ARRAY_SIZE(a,b,c,d)
-
-DECL_IMAGE(GEN_FIX_1, image3d_t, int4, i, 4)
-DECL_IMAGE(GEN_FIX_1, image3d_t, uint4, ui, 4)
-DECL_IMAGE(0, image3d_t, float4, f, 4)
-
-DECL_IMAGE(GEN_FIX_1, image3d_t, int4, i, 3)
-DECL_IMAGE(GEN_FIX_1, image3d_t, uint4, ui, 3)
-DECL_IMAGE(0, image3d_t, float4, f, 3)
-
-#undef EXPEND_READ_COORD
-#undef EXPEND_READ_COORDF
-#undef EXPEND_READ_COORDI
-#undef DENORMALIZE_COORD
-#undef EXPEND_WRITE_COORD
-#undef FIXUP_FLOAT_COORD
-#undef GET_IMAGE_ARRAY_SIZE
-
-#define EXPEND_READ_COORD(id, sampler, coord) id, sampler, coord.s0, coord.s1, ai, 1
-#define EXPEND_READ_COORDF(id, sampler, coord) id, sampler, (float)coord.s0, (float)coord.s1, (float)ai
-#define EXPEND_READ_COORDI(id, sampler, coord) id, sampler, (int) (coord.s0 < 0 ? -1 : coord.s0), \
-                                               (int)(coord.s1 < 0 ? -1 : coord.s1), (int)ai, 1
-#define DENORMALIZE_COORD(id, dstCoord, srcCoord) dstCoord.x = srcCoord.x * __gen_ocl_get_image_width(id); \
-                                                  dstCoord.y = srcCoord.y * __gen_ocl_get_image_height(id);
-#define EXPEND_WRITE_COORD(id, coord, color) id, coord.s0, coord.s1, __gen_compute_array_index(coord.s2, cl_image), color
-
-#define FIXUP_FLOAT_COORD(tmpCoord)                             \
-  {                                                             \
-    if (tmpCoord.s0 < 0 && tmpCoord.s0 > -0x1p-20)              \
-      tmpCoord.s0 += -0x1p-9;                                   \
-    if (tmpCoord.s1 < 0 && tmpCoord.s1 > -0x1p-20)              \
-      tmpCoord.s1 += -0x1p-9;                                   \
-  }
-#define GET_IMAGE_ARRAY_SIZE(image, coord, coord_type, ai) \
-  coord_type ai = __gen_compute_array_index(coord.s2, image);
-
-// 2D Array
-DECL_IMAGE(GEN_FIX_1, image2d_array_t, int4, i, 4)
-DECL_IMAGE(GEN_FIX_1, image2d_array_t, uint4, ui, 4)
-DECL_IMAGE(0, image2d_array_t, float4, f, 4)
-
-DECL_IMAGE(GEN_FIX_1, image2d_array_t, int4, i, 3)
-DECL_IMAGE(GEN_FIX_1, image2d_array_t, uint4, ui, 3)
-DECL_IMAGE(0, image2d_array_t, float4, f, 3)
-
-// 3D Info
-DECL_IMAGE_INFO_COMMON(image3d_t)
-INLINE_OVERLOADABLE int get_image_height(image3d_t image)
-{
-  GET_IMAGE(image, surface_id);
-  return __gen_ocl_get_image_height(surface_id);
-}
-INLINE_OVERLOADABLE int get_image_depth(image3d_t image)
-{
-  GET_IMAGE(image, surface_id);
-  return __gen_ocl_get_image_depth(surface_id);
-}
-INLINE_OVERLOADABLE int4 get_image_dim(image3d_t image)
-{
-  return (int4){get_image_width(image), get_image_height(image), get_image_depth(image), 0};
-}
-
-// 2D Array Info
-DECL_IMAGE_INFO_COMMON(image2d_array_t)
-INLINE_OVERLOADABLE int get_image_height(image2d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  return __gen_ocl_get_image_height(surface_id);
-}
-INLINE_OVERLOADABLE int2 get_image_dim(image2d_array_t image)
-{
-  return (int2){get_image_width(image), get_image_height(image)};
-}
-INLINE_OVERLOADABLE size_t get_image_array_size(image2d_array_t image)
-{
-  GET_IMAGE(image, surface_id);
-  return __gen_ocl_get_image_depth(surface_id);
-}
-
-#undef EXPEND_READ_COORD
-#undef EXPEND_READ_COORDF
-#undef EXPEND_READ_COORDI
-#undef DENORMALIZE_COORD
-#undef EXPEND_WRITE_COORD
-#undef FIXUP_FLOAT_COORD
-#undef GET_IMAGE_ARRAY_SIZE
-// End of 3D and 2D Array
-
-#undef DECL_IMAGE
-#undef DECL_READ_IMAGE
-#undef DECL_READ_IMAGE_NOSAMPLER
-#undef DECL_WRITE_IMAGE
-#undef GEN_FIX_1
-// End of Image
-
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_acosh (float x)
-{
-    return native_log(x + native_sqrt(x + 1) * native_sqrt(x - 1));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_asinh (float x)
-{
-    return native_log(x + native_sqrt(x * x + 1));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_atanh (float x)
-{
-    return 0.5f * native_log((1 + x) / (1 - x));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_cbrt (float x)
-{
-    return __gen_ocl_pow(x, 0.3333333333f);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_cos (float x)
-{
-    return native_cos(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_cosh (float x)
-{
-    return (1 + native_exp(-2 * x)) / (2 * native_exp(-x));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_cospi (float x)
-{
-    return __gen_ocl_cos(x * M_PI_F);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_exp (float x)
-{
-    return native_exp(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_exp10 (float x)
-{
-    return native_exp10(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_expm1 (float x)
-{
-    return __gen_ocl_pow(M_E_F, x) - 1;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_fmod (float x, float y)
-{
-    return x-y*__gen_ocl_rndz(x/y);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_hypot (float x, float y)
-{
-    return __gen_ocl_sqrt(x*x + y*y);
-}
-
-INLINE_OVERLOADABLE int __gen_ocl_internal_fastpath_ilogb (float x)
-{
-    return __gen_ocl_rndd(native_log2(x));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_ldexp (float x, int n)
-{
-    return __gen_ocl_pow(2, n) * x;
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_log (float x)
-{
-    return native_log(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_log2 (float x)
-{
-    return native_log2(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_log10 (float x)
-{
-    return native_log10(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_log1p (float x)
-{
-    return native_log(x + 1);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_logb (float x)
-{
-    return __gen_ocl_rndd(native_log2(x));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_remainder (float x, float y)
-{
-    return x-y*__gen_ocl_rnde(x/y);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_rootn(float x, int n)
-{
-    return __gen_ocl_pow(x, 1.f / n);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_sin (float x)
-{
-    return native_sin(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_sincos (float x, __global float *cosval)
-{
-    *cosval = native_cos(x);
-    return native_sin(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_sincos (float x, __local float *cosval)
-{
-    *cosval = native_cos(x);
-    return native_sin(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_sincos (float x, __private float *cosval)
-{
-    *cosval = native_cos(x);
-    return native_sin(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_sinh (float x)
-{
-    return (1 - native_exp(-2 * x)) / (2 * native_exp(-x));
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_sinpi (float x)
-{
-    return __gen_ocl_sin(x * M_PI_F);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_tan (float x)
-{
-    return native_tan(x);
-}
-
-INLINE_OVERLOADABLE float __gen_ocl_internal_fastpath_tanh (float x)
-{
-    float y = native_exp(-2 * x);
-    return (1 - y) / (1 + y);
-}
-
-#pragma OPENCL EXTENSION cl_khr_fp64 : disable
-
-#undef DECL_IMAGE
-#undef DECL_READ_IMAGE
-#undef DECL_READ_IMAGE_NOSAMPLER
-#undef DECL_WRITE_IMAGE
-
-#undef GET_IMAGE
-// ##BEGIN_VECTOR##
-// ##END_VECTOR##
-
-#undef INLINE_OVERLOADABLE
-#undef PURE
-#undef CONST
-#undef OVERLOADABLE
-#undef INLINE
-
-#endif /* __GEN_OCL_STDLIB_H__ */
diff --git a/backend/src/update.sh b/backend/src/update.sh
deleted file mode 100755
index 0e5f8c0..0000000
--- a/backend/src/update.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh -e
-./update_as.sh
-./update_convert.sh
diff --git a/backend/src/update_as.sh b/backend/src/update_as.sh
deleted file mode 100755
index c68e789..0000000
--- a/backend/src/update_as.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#! /bin/sh -e
-
-AS_HEADER=ocl_as.h
-
-exec >$AS_HEADER.tmp
-echo "// This file is autogenerated by gen_as.sh."
-echo "// Don't modify it manually."
-./gen_as.sh
-exec >&2
-
-mv $AS_HEADER.tmp $AS_HEADER
diff --git a/backend/src/update_blob_ocl_header.py b/backend/src/update_blob_ocl_header.py
deleted file mode 100755
index 50f2501..0000000
--- a/backend/src/update_blob_ocl_header.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (C) 2012 Intel Corporation
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library. If not, see <http://www.gnu.org/licenses/>.
-#
-# Author: Zhigang Gong <zhigang.gong at linux.intel.com>
-#/
-import sys
-import os
-
-if len(sys.argv) != 3:
-    print "Invalid argument {0}".format(sys.argv)
-    print "use {0} tmpl_file_name output_file_name".format(sys.argv[0])
-    raise
-
-def safeUnlink(filename):
-    try:
-        os.remove(filename)
-    except OSError:
-        pass
-
-header_segments = [ "vector", "as", "convert", "common_defines"]
-blobFileName = sys.argv[2]
-blobTempName = sys.argv[2] + '.tmp'
-safeUnlink(blobFileName)
-tmplFile = open(sys.argv[1], 'r')
-blob = open(blobTempName, 'w')
-path = os.path.dirname(sys.argv[1])
-if path == '':
-    path = '.'
-
-matched_header = ""
-for tline in tmplFile:
-    if matched_header == "":
-        blob.write(tline)
-        for header in header_segments:
-            if tline.strip() == '// ##BEGIN_{0}##'.format(header.upper()) :
-                hFile = open(path + '/ocl_' + header + '.h', 'r')
-                lineNr = 0
-                for hline in hFile:
-                    if lineNr >= 2:  #ignore the 2 lines of comment at the top of file.
-                        blob.write(hline)
-                    lineNr += 1
-                hFile.close()
-                matched_header = header
-    else:
-        if tline.strip() == '// ##END_{0}##'.format(matched_header.upper()) :
-            blob.write(tline)
-            matched_header = "";
-
-tmplFile.close()
-blob.close()
-os.rename(blobTempName, blobFileName)
diff --git a/backend/src/update_convert.sh b/backend/src/update_convert.sh
deleted file mode 100755
index 3c47917..0000000
--- a/backend/src/update_convert.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/sh -e
-
-CONVERT_HEADER=ocl_convert.h
-
-
-exec >$CONVERT_HEADER.tmp
-echo "// This file is autogenerated by gen_convert.sh."
-echo "// Don't modify it manually."
-./gen_convert.sh
-exec >&2
-
-mv $CONVERT_HEADER.tmp $CONVERT_HEADER
-- 
1.7.9.5





More information about the Beignet mailing list