Add scalar version of "convert_*(*)"
authorHomer Hsing <homer.xing@intel.com>
Mon, 2 Sep 2013 05:21:47 +0000 (13:21 +0800)
committerZhigang Gong <zhigang.gong@linux.intel.com>
Tue, 3 Sep 2013 08:16:45 +0000 (16:16 +0800)
Scalar version of "convert_*(*)" was missing.
This patch adds scalar version.

Signed-off-by: Homer Hsing <homer.xing@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
backend/src/gen_convert.sh
backend/src/ocl_convert.h

index 056b529..ab65e88 100755 (executable)
@@ -5,9 +5,21 @@
 # For all vector lengths and types, generate conversion functions
 for vector_length in $VECTOR_LENGTHS; do
         if test $vector_length -eq 1; then
-                continue;
-        fi
-        for ftype in $TYPES; do
+          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
+                continue
+              fi
+              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`
@@ -48,5 +60,6 @@ for vector_length in $VECTOR_LENGTHS; do
                         echo "}"
                         echo
                 done
-        done
+          done
+        fi
 done
index 4063788..8b00577 100644 (file)
@@ -1,5 +1,365 @@
 // This file is autogenerated by gen_convert.sh.
 // Don't modify it manually.
+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 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 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 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 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 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 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 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 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 ulong2 convert_ulong2(long2 v) {
   return (ulong2)((ulong)(v.s0), (ulong)(v.s1));
 }