audio: update disted orc backup files
authorTim-Philipp Müller <tim@centricular.com>
Tue, 3 Nov 2015 16:38:09 +0000 (16:38 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 3 Nov 2015 16:38:09 +0000 (16:38 +0000)
gst-libs/gst/audio/gstaudiopack-dist.c
gst-libs/gst/audio/gstaudiopack-dist.h

index 4f8c124..00807e0 100644 (file)
@@ -97,16 +97,28 @@ typedef union
 #endif
 void audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u24_32 (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s24_32 (gint32 * ORC_RESTRICT d1,
@@ -225,36 +237,33 @@ audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
+  orc_int8 var33;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var35;
+  volatile orc_union32 var34;
 #else
-  orc_union32 var35;
+  orc_union32 var34;
 #endif
+  orc_union32 var35;
   orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union32 var39;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_int8 *) s1;
 
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 2: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << 24;
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 3: xorl */
+    var35.i = var36.i ^ var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -267,36 +276,33 @@ _backup_audio_orc_unpack_u8 (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
+  orc_int8 var33;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var35;
+  volatile orc_union32 var34;
 #else
-  orc_union32 var35;
+  orc_union32 var34;
 #endif
+  orc_union32 var35;
   orc_union32 var36;
-  orc_union16 var37;
-  orc_union32 var38;
-  orc_union32 var39;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_int8 *) ex->arrays[4];
 
-  /* 4: loadpl */
-  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 2: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var37.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var38.i = (orc_uint16) var37.i;
-    /* 3: shll */
-    var39.i = ((orc_uint32) var38.i) << 24;
-    /* 5: xorl */
-    var36.i = var39.i ^ var35.i;
-    /* 6: storel */
-    ptr0[i] = var36;
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 3: xorl */
+    var35.i = var36.i ^ var34.i;
+    /* 4: storel */
+    ptr0[i] = var35;
   }
 
 }
@@ -319,8 +325,7 @@ audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       static const orc_uint8 bc[] = {
         1, 9, 19, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
         97, 99, 107, 95, 117, 56, 11, 4, 4, 12, 1, 1, 14, 4, 0, 0,
-        0, 128, 14, 4, 24, 0, 0, 0, 20, 2, 20, 4, 150, 32, 4, 154,
-        33, 32, 124, 33, 33, 17, 132, 0, 33, 16, 2, 0,
+        0, 128, 20, 4, 152, 32, 4, 132, 0, 32, 16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8);
@@ -331,17 +336,11 @@ audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 1, "s1");
       orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_constant (p, 4, 0x00000018, "c2");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
 #endif
 
@@ -365,34 +364,44 @@ audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 #endif
 
 
-/* audio_orc_unpack_s8 */
+/* audio_orc_unpack_u8_trunc */
 #ifdef DISABLE_ORC
 void
-audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    int n)
+audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
 {
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
+  orc_int8 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
+  orc_union32 var34;
+#endif
   orc_union32 var35;
-  orc_union16 var36;
+  orc_union32 var36;
   orc_union32 var37;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_int8 *) s1;
 
+  /* 3: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << 24;
-    /* 4: storel */
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 24;
+    /* 4: xorl */
+    var35.i = var37.i ^ var34.i;
+    /* 5: storel */
     ptr0[i] = var35;
   }
 
@@ -400,39 +409,49 @@ audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
 #else
 static void
-_backup_audio_orc_unpack_s8 (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_u8_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
-  orc_int8 var34;
+  orc_int8 var33;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var34;
+#else
+  orc_union32 var34;
+#endif
   orc_union32 var35;
-  orc_union16 var36;
+  orc_union32 var36;
   orc_union32 var37;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_int8 *) ex->arrays[4];
 
+  /* 3: loadpl */
+  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
 
   for (i = 0; i < n; i++) {
     /* 0: loadb */
-    var34 = ptr4[i];
-    /* 1: convubw */
-    var36.i = (orc_uint8) var34;
-    /* 2: convuwl */
-    var37.i = (orc_uint16) var36.i;
-    /* 3: shll */
-    var35.i = ((orc_uint32) var37.i) << 24;
-    /* 4: storel */
+    var33 = ptr4[i];
+    /* 1: splatbl */
+    var36.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
+    /* 2: shll */
+    var37.i = ((orc_uint32) var36.i) << 24;
+    /* 4: xorl */
+    var35.i = var37.i ^ var34.i;
+    /* 5: storel */
     ptr0[i] = var35;
   }
 
 }
 
 void
-audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    int n)
+audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -446,28 +465,28 @@ audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
 #if 1
       static const orc_uint8 bc[] = {
-        1, 9, 19, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 115, 56, 11, 4, 4, 12, 1, 1, 14, 4, 24, 0,
-        0, 0, 20, 2, 20, 4, 150, 32, 4, 154, 33, 32, 124, 0, 33, 16,
-        2, 0,
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 56, 95, 116, 114, 117, 110, 99, 11, 4, 4, 12,
+        1, 1, 14, 4, 0, 0, 0, 128, 14, 4, 24, 0, 0, 0, 20, 4,
+        152, 32, 4, 124, 32, 32, 17, 132, 0, 32, 16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8_trunc);
 #else
       p = orc_program_new ();
-      orc_program_set_name (p, "audio_orc_unpack_s8");
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
+      orc_program_set_name (p, "audio_orc_unpack_u8_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u8_trunc);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 1, "s1");
-      orc_program_add_constant (p, 4, 0x00000018, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 4, "t2");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_constant (p, 4, 0x00000018, "c2");
+      orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
           ORC_VAR_D1);
 #endif
 
@@ -491,87 +510,87 @@ audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 #endif
 
 
-/* audio_orc_unpack_u16 */
+/* audio_orc_unpack_s8 */
 #ifdef DISABLE_ORC
 void
-audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     int n)
 {
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var34;
+  volatile orc_union32 var35;
 #else
-  orc_union32 var34;
-#endif
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union32 var37;
 
   ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union16 *) s1;
+  ptr4 = (orc_int8 *) s1;
 
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 2: loadpl */
+  var35.i = (int) 0x00808080;   /* 8421504 or 4.16078e-317f */
 
   for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << 16;
-    /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
-    /* 5: storel */
-    ptr0[i] = var35;
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: splatbl */
+    var37.i =
+        ((((orc_uint32) var34) & 0xff) << 24) | ((((orc_uint32) var34) & 0xff)
+        << 16) | ((((orc_uint32) var34) & 0xff) << 8) | (((orc_uint32) var34) &
+        0xff);
+    /* 3: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 4: storel */
+    ptr0[i] = var36;
   }
 
 }
 
 #else
 static void
-_backup_audio_orc_unpack_u16 (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_s8 (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var34;
 #if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
-  volatile orc_union32 var34;
+  volatile orc_union32 var35;
 #else
-  orc_union32 var34;
-#endif
   orc_union32 var35;
+#endif
   orc_union32 var36;
   orc_union32 var37;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr4 = (orc_int8 *) ex->arrays[4];
 
-  /* 3: loadpl */
-  var34.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+  /* 2: loadpl */
+  var35.i = (int) 0x00808080;   /* 8421504 or 4.16078e-317f */
 
   for (i = 0; i < n; i++) {
-    /* 0: loadw */
-    var33 = ptr4[i];
-    /* 1: convuwl */
-    var36.i = (orc_uint16) var33.i;
-    /* 2: shll */
-    var37.i = ((orc_uint32) var36.i) << 16;
-    /* 4: xorl */
-    var35.i = var37.i ^ var34.i;
-    /* 5: storel */
-    ptr0[i] = var35;
+    /* 0: loadb */
+    var34 = ptr4[i];
+    /* 1: splatbl */
+    var37.i =
+        ((((orc_uint32) var34) & 0xff) << 24) | ((((orc_uint32) var34) & 0xff)
+        << 16) | ((((orc_uint32) var34) & 0xff) << 8) | (((orc_uint32) var34) &
+        0xff);
+    /* 3: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 4: storel */
+    ptr0[i] = var36;
   }
 
 }
 
 void
-audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -586,28 +605,25 @@ audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
 #if 1
       static const orc_uint8 bc[] = {
-        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 117, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 16,
-        0, 0, 0, 14, 4, 0, 0, 0, 128, 20, 4, 154, 32, 4, 124, 32,
-        32, 16, 132, 0, 32, 17, 2, 0,
+        1, 9, 19, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 56, 11, 4, 4, 12, 1, 1, 14, 4, 128, 128,
+        128, 0, 20, 2, 20, 4, 152, 33, 4, 132, 0, 33, 16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
 #else
       p = orc_program_new ();
-      orc_program_set_name (p, "audio_orc_unpack_u16");
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
+      orc_program_set_name (p, "audio_orc_unpack_s8");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8);
       orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_constant (p, 4, 0x80000000, "c2");
-      orc_program_add_temporary (p, 4, "t1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 4, 0x00808080, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
 
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
 #endif
 
@@ -631,30 +647,33 @@ audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 #endif
 
 
-/* audio_orc_unpack_s16 */
+/* audio_orc_unpack_s8_trunc */
 #ifdef DISABLE_ORC
 void
-audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    int n)
+audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
 {
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
   orc_union32 var34;
   orc_union32 var35;
 
   ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_union16 *) s1;
+  ptr4 = (orc_int8 *) s1;
 
 
   for (i = 0; i < n; i++) {
-    /* 0: loadw */
+    /* 0: loadb */
     var33 = ptr4[i];
-    /* 1: convuwl */
-    var35.i = (orc_uint16) var33.i;
+    /* 1: splatbl */
+    var35.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
     /* 2: shll */
-    var34.i = ((orc_uint32) var35.i) << 16;
+    var34.i = ((orc_uint32) var35.i) << 24;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -663,27 +682,30 @@ audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
 #else
 static void
-_backup_audio_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_s8_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
-  const orc_union16 *ORC_RESTRICT ptr4;
-  orc_union16 var33;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  orc_int8 var33;
   orc_union32 var34;
   orc_union32 var35;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_union16 *) ex->arrays[4];
+  ptr4 = (orc_int8 *) ex->arrays[4];
 
 
   for (i = 0; i < n; i++) {
-    /* 0: loadw */
+    /* 0: loadb */
     var33 = ptr4[i];
-    /* 1: convuwl */
-    var35.i = (orc_uint16) var33.i;
+    /* 1: splatbl */
+    var35.i =
+        ((((orc_uint32) var33) & 0xff) << 24) | ((((orc_uint32) var33) & 0xff)
+        << 16) | ((((orc_uint32) var33) & 0xff) << 8) | (((orc_uint32) var33) &
+        0xff);
     /* 2: shll */
-    var34.i = ((orc_uint32) var35.i) << 16;
+    var34.i = ((orc_uint32) var35.i) << 24;
     /* 3: storel */
     ptr0[i] = var34;
   }
@@ -691,8 +713,8 @@ _backup_audio_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
 }
 
 void
-audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    int n)
+audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
   static volatile int p_inited = 0;
@@ -706,24 +728,740 @@ audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
 #if 1
       static const orc_uint8 bc[] = {
-        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 115, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 16,
-        0, 0, 0, 20, 4, 154, 32, 4, 124, 0, 32, 16, 2, 0,
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 56, 95, 116, 114, 117, 110, 99, 11, 4, 4, 12,
+        1, 1, 14, 4, 24, 0, 0, 0, 20, 4, 152, 32, 4, 124, 0, 32,
+        16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8_trunc);
 #else
       p = orc_program_new ();
-      orc_program_set_name (p, "audio_orc_unpack_s16");
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16);
+      orc_program_set_name (p, "audio_orc_unpack_s8_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s8_trunc);
       orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 2, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_constant (p, 4, 0x00000018, "c1");
       orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+      orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_u16 */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_u16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 0,
+        0, 0, 128, 20, 4, 195, 32, 4, 4, 132, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_u16");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_u16_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 4: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 3: shll */
+    var38.i = ((orc_uint32) var37.i) << 16;
+    /* 5: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 6: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_u16_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union32 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 4: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 3: shll */
+    var38.i = ((orc_uint32) var37.i) << 16;
+    /* 5: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 6: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 95, 116, 114, 117, 110, 99, 11, 4, 4,
+        12, 2, 2, 14, 4, 16, 0, 0, 0, 14, 4, 0, 0, 0, 128, 20,
+        4, 195, 32, 4, 4, 124, 32, 32, 16, 132, 0, 32, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_u16_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x00000010, "c1");
+      orc_program_add_constant (p, 4, 0x80000000, "c2");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_s16 */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_s16 (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union32 var37;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var35.i = (int) 0x00008000;   /* 32768 or 1.61895e-319f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: loadw */
+    var34 = ptr4[i];
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var33.i;
+      _dest.x2[1] = var34.i;
+      var37.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var37.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 20, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 11, 4, 4, 12, 2, 2, 14, 4, 0,
+        128, 0, 0, 20, 4, 195, 32, 4, 4, 132, 0, 32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_s16");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x00008000, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_s16_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: convuwl */
+    var35.i = (orc_uint16) var33.i;
+    /* 2: shll */
+    var34.i = ((orc_uint32) var35.i) << 16;
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_s16_trunc (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union32 var35;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: convuwl */
+    var35.i = (orc_uint16) var33.i;
+    /* 2: shll */
+    var34.i = ((orc_uint32) var35.i) << 16;
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 26, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 95, 116, 114, 117, 110, 99, 11, 4, 4,
+        12, 2, 2, 14, 4, 16, 0, 0, 0, 20, 4, 154, 32, 4, 124, 0,
+        32, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_trunc);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_s16_trunc");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_trunc);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x00000010, "c1");
+      orc_program_add_temporary (p, 4, "t1");
+
+      orc_program_append_2 (p, "convuwl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_u16_swap */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+  /* 3: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: swapw */
+    var37.i = ORC_SWAP_W (var34.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var37.i;
+      var38.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var35;
+#else
+  orc_union32 var35;
+#endif
+  orc_union32 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+  /* 3: loadpl */
+  var35.i = (int) 0x80000000;   /* -2147483648 or 1.061e-314f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var34 = ptr4[i];
+    /* 1: swapw */
+    var37.i = ORC_SWAP_W (var34.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var37.i;
+      var38.i = _dest.i;
+    }
+    /* 4: xorl */
+    var36.i = var38.i ^ var35.i;
+    /* 5: storel */
+    ptr0[i] = var36;
+  }
+
+}
+
+void
+audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 95, 115, 119, 97, 112, 11, 4, 4, 12,
+        2, 2, 14, 4, 0, 0, 0, 128, 20, 2, 20, 4, 183, 32, 4, 195,
+        33, 32, 32, 132, 0, 33, 16, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_swap);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_u16_swap");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_swap);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 4, "t2");
+
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shll", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
           ORC_VAR_D1);
 #endif
 
@@ -747,10 +1485,10 @@ audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 #endif
 
 
-/* audio_orc_unpack_u16_swap */
+/* audio_orc_unpack_u16_swap_trunc */
 #ifdef DISABLE_ORC
 void
-audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
+audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n)
 {
   int i;
@@ -792,7 +1530,7 @@ audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
 
 #else
 static void
-_backup_audio_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_u16_swap_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -833,7 +1571,7 @@ _backup_audio_orc_unpack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
 }
 
 void
-audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
+audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -848,18 +1586,20 @@ audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1,
 
 #if 1
       static const orc_uint8 bc[] = {
-        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 117, 49, 54, 95, 115, 119, 97, 112, 11, 4, 4, 12,
-        2, 2, 14, 4, 16, 0, 0, 0, 14, 4, 0, 0, 0, 128, 20, 2,
-        20, 4, 183, 32, 4, 154, 33, 32, 124, 33, 33, 16, 132, 0, 33, 17,
-        2, 0,
+        1, 9, 31, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 117, 49, 54, 95, 115, 119, 97, 112, 95, 116, 114, 117,
+        110, 99, 11, 4, 4, 12, 2, 2, 14, 4, 16, 0, 0, 0, 14, 4,
+        0, 0, 0, 128, 20, 2, 20, 4, 183, 32, 4, 154, 33, 32, 124, 33,
+        33, 16, 132, 0, 33, 17, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_swap);
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_u16_swap_trunc);
 #else
       p = orc_program_new ();
-      orc_program_set_name (p, "audio_orc_unpack_u16_swap");
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_u16_swap);
+      orc_program_set_name (p, "audio_orc_unpack_u16_swap_trunc");
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_u16_swap_trunc);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 2, "s1");
       orc_program_add_constant (p, 4, 0x00000010, "c1");
@@ -906,6 +1646,131 @@ audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_union16 *) s1;
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: swapw */
+    var35.i = ORC_SWAP_W (var33.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var35.i;
+      _dest.x2[1] = var35.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+#else
+static void
+_backup_audio_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
+  orc_union16 var33;
+  orc_union32 var34;
+  orc_union16 var35;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_union16 *) ex->arrays[4];
+
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadw */
+    var33 = ptr4[i];
+    /* 1: swapw */
+    var35.i = ORC_SWAP_W (var33.i);
+    /* 2: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var35.i;
+      _dest.x2[1] = var35.i;
+      var34.i = _dest.i;
+    }
+    /* 3: storel */
+    ptr0[i] = var34;
+  }
+
+}
+
+void
+audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 95, 115, 119, 97, 112, 11, 4, 4, 12,
+        2, 2, 20, 2, 183, 32, 4, 195, 0, 32, 32, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_swap);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "audio_orc_unpack_s16_swap");
+      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_swap);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 2, "s1");
+      orc_program_add_temporary (p, 2, "t1");
+
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T1,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* audio_orc_unpack_s16_swap_trunc */
+#ifdef DISABLE_ORC
+void
+audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_union16 *ORC_RESTRICT ptr4;
   orc_union16 var34;
   orc_union32 var35;
   orc_union16 var36;
@@ -932,7 +1797,7 @@ audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
 
 #else
 static void
-_backup_audio_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
+_backup_audio_orc_unpack_s16_swap_trunc (OrcExecutor * ORC_RESTRICT ex)
 {
   int i;
   int n = ex->n;
@@ -963,7 +1828,7 @@ _backup_audio_orc_unpack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
 }
 
 void
-audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
+audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, int n)
 {
   OrcExecutor _ex, *ex = &_ex;
@@ -978,17 +1843,19 @@ audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1,
 
 #if 1
       static const orc_uint8 bc[] = {
-        1, 9, 25, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 115, 49, 54, 95, 115, 119, 97, 112, 11, 4, 4, 12,
-        2, 2, 14, 4, 16, 0, 0, 0, 20, 2, 20, 4, 183, 32, 4, 154,
-        33, 32, 124, 0, 33, 16, 2, 0,
+        1, 9, 31, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 117, 110, 112,
+        97, 99, 107, 95, 115, 49, 54, 95, 115, 119, 97, 112, 95, 116, 114, 117,
+        110, 99, 11, 4, 4, 12, 2, 2, 14, 4, 16, 0, 0, 0, 20, 2,
+        20, 4, 183, 32, 4, 154, 33, 32, 124, 0, 33, 16, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_swap);
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_s16_swap_trunc);
 #else
       p = orc_program_new ();
-      orc_program_set_name (p, "audio_orc_unpack_s16_swap");
-      orc_program_set_backup_function (p, _backup_audio_orc_unpack_s16_swap);
+      orc_program_set_name (p, "audio_orc_unpack_s16_swap_trunc");
+      orc_program_set_backup_function (p,
+          _backup_audio_orc_unpack_s16_swap_trunc);
       orc_program_add_destination (p, 4, "d1");
       orc_program_add_source (p, 2, "s1");
       orc_program_add_constant (p, 4, 0x00000010, "c1");
@@ -2450,8 +3317,7 @@ audio_orc_pack_u8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 #endif
   orc_int8 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_int8 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2464,13 +3330,11 @@ audio_orc_pack_u8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> 24;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: convwb */
-    var36 = var39.i;
-    /* 6: storeb */
+    /* 3: convhlw */
+    var38.i = ((orc_uint32) var37.i) >> 16;
+    /* 4: convhwb */
+    var36 = ((orc_uint16) var38.i) >> 8;
+    /* 5: storeb */
     ptr0[i] = var36;
   }
 
@@ -2492,8 +3356,7 @@ _backup_audio_orc_pack_u8 (OrcExecutor * ORC_RESTRICT ex)
 #endif
   orc_int8 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_int8 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2506,13 +3369,11 @@ _backup_audio_orc_pack_u8 (OrcExecutor * ORC_RESTRICT ex)
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
-    var38.i = ((orc_uint32) var37.i) >> 24;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: convwb */
-    var36 = var39.i;
-    /* 6: storeb */
+    /* 3: convhlw */
+    var38.i = ((orc_uint32) var37.i) >> 16;
+    /* 4: convhwb */
+    var36 = ((orc_uint16) var38.i) >> 8;
+    /* 5: storeb */
     ptr0[i] = var36;
   }
 
@@ -2535,9 +3396,9 @@ audio_orc_pack_u8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 17, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 117, 56, 11, 1, 1, 12, 4, 4, 14, 4, 24, 0, 0, 0,
-        14, 4, 0, 0, 0, 128, 20, 4, 20, 2, 132, 32, 4, 17, 126, 32,
-        32, 16, 163, 33, 32, 157, 0, 33, 2, 0,
+        107, 95, 117, 56, 11, 1, 1, 12, 4, 4, 14, 4, 0, 0, 0, 128,
+        20, 4, 20, 2, 132, 32, 4, 16, 164, 33, 32, 158, 0, 33, 2, 0,
+
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u8);
@@ -2547,18 +3408,15 @@ audio_orc_pack_u8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000018, "c1");
-      orc_program_add_constant (p, 4, 0x80000000, "c2");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 2, "t2");
 
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2591,10 +3449,9 @@ audio_orc_pack_s8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
   int i;
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
 
   ptr0 = (orc_int8 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2602,15 +3459,13 @@ audio_orc_pack_s8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 24;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: convwb */
-    var35 = var37.i;
-    /* 4: storeb */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: convhwb */
+    var34 = ((orc_uint16) var35.i) >> 8;
+    /* 3: storeb */
+    ptr0[i] = var34;
   }
 
 }
@@ -2623,10 +3478,9 @@ _backup_audio_orc_pack_s8 (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_int8 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
+  orc_union32 var33;
+  orc_int8 var34;
+  orc_union16 var35;
 
   ptr0 = (orc_int8 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2634,15 +3488,13 @@ _backup_audio_orc_pack_s8 (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 24;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: convwb */
-    var35 = var37.i;
-    /* 4: storeb */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: convhwb */
+    var34 = ((orc_uint16) var35.i) >> 8;
+    /* 3: storeb */
+    ptr0[i] = var34;
   }
 
 }
@@ -2664,9 +3516,8 @@ audio_orc_pack_s8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 17, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 115, 56, 11, 1, 1, 12, 4, 4, 14, 4, 24, 0, 0, 0,
-        20, 4, 20, 2, 125, 32, 4, 16, 163, 33, 32, 157, 0, 33, 2, 0,
-
+        107, 95, 115, 56, 11, 1, 1, 12, 4, 4, 20, 2, 164, 32, 4, 158,
+        0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s8);
@@ -2676,15 +3527,11 @@ audio_orc_pack_s8 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s8);
       orc_program_add_destination (p, 1, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000018, "c1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t1");
 
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2725,7 +3572,6 @@ audio_orc_pack_u16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 #endif
   orc_union16 var35;
   orc_union32 var36;
-  orc_union32 var37;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2738,11 +3584,9 @@ audio_orc_pack_u16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
     var33 = ptr4[i];
     /* 2: xorl */
     var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> 16;
-    /* 4: convlw */
-    var35.i = var37.i;
-    /* 5: storew */
+    /* 3: convhlw */
+    var35.i = ((orc_uint32) var36.i) >> 16;
+    /* 4: storew */
     ptr0[i] = var35;
   }
 
@@ -2764,7 +3608,6 @@ _backup_audio_orc_pack_u16 (OrcExecutor * ORC_RESTRICT ex)
 #endif
   orc_union16 var35;
   orc_union32 var36;
-  orc_union32 var37;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2777,11 +3620,9 @@ _backup_audio_orc_pack_u16 (OrcExecutor * ORC_RESTRICT ex)
     var33 = ptr4[i];
     /* 2: xorl */
     var36.i = var33.i ^ var34.i;
-    /* 3: shrul */
-    var37.i = ((orc_uint32) var36.i) >> 16;
-    /* 4: convlw */
-    var35.i = var37.i;
-    /* 5: storew */
+    /* 3: convhlw */
+    var35.i = ((orc_uint32) var36.i) >> 16;
+    /* 4: storew */
     ptr0[i] = var35;
   }
 
@@ -2804,9 +3645,8 @@ audio_orc_pack_u16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 117, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 16, 0, 0,
-        0, 14, 4, 0, 0, 0, 128, 20, 4, 132, 32, 4, 17, 126, 32, 32,
-        16, 163, 0, 32, 2, 0,
+        107, 95, 117, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 0, 0, 0,
+        128, 20, 4, 132, 32, 4, 16, 164, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16);
@@ -2816,15 +3656,12 @@ audio_orc_pack_u16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_constant (p, 4, 0x80000000, "c2");
+      orc_program_add_constant (p, 4, 0x80000000, "c1");
       orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+      orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2857,9 +3694,8 @@ audio_orc_pack_s16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
   int i;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_union32 var35;
+  orc_union32 var32;
+  orc_union16 var33;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2867,13 +3703,11 @@ audio_orc_pack_s16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> 16;
-    /* 2: convlw */
-    var34.i = var35.i;
-    /* 3: storew */
-    ptr0[i] = var34;
+    var32 = ptr4[i];
+    /* 1: convhlw */
+    var33.i = ((orc_uint32) var32.i) >> 16;
+    /* 2: storew */
+    ptr0[i] = var33;
   }
 
 }
@@ -2886,9 +3720,8 @@ _backup_audio_orc_pack_s16 (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var33;
-  orc_union16 var34;
-  orc_union32 var35;
+  orc_union32 var32;
+  orc_union16 var33;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -2896,13 +3729,11 @@ _backup_audio_orc_pack_s16 (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var33 = ptr4[i];
-    /* 1: shrsl */
-    var35.i = var33.i >> 16;
-    /* 2: convlw */
-    var34.i = var35.i;
-    /* 3: storew */
-    ptr0[i] = var34;
+    var32 = ptr4[i];
+    /* 1: convhlw */
+    var33.i = ((orc_uint32) var32.i) >> 16;
+    /* 2: storew */
+    ptr0[i] = var33;
   }
 
 }
@@ -2924,8 +3755,8 @@ audio_orc_pack_s16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
 #if 1
       static const orc_uint8 bc[] = {
         1, 9, 18, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 115, 49, 54, 11, 2, 2, 12, 4, 4, 14, 4, 16, 0, 0,
-        0, 20, 4, 125, 32, 4, 16, 163, 0, 32, 2, 0,
+        107, 95, 115, 49, 54, 11, 2, 2, 12, 4, 4, 164, 0, 4, 2, 0,
+
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16);
@@ -2935,12 +3766,8 @@ audio_orc_pack_s16 (guint8 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_temporary (p, 4, "t1");
 
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -2981,8 +3808,7 @@ audio_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
 #endif
   orc_union16 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -2995,13 +3821,11 @@ audio_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
+    /* 3: convhlw */
     var38.i = ((orc_uint32) var37.i) >> 16;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: swapw */
-    var36.i = ORC_SWAP_W (var39.i);
-    /* 6: storew */
+    /* 4: swapw */
+    var36.i = ORC_SWAP_W (var38.i);
+    /* 5: storew */
     ptr0[i] = var36;
   }
 
@@ -3023,8 +3847,7 @@ _backup_audio_orc_pack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
 #endif
   orc_union16 var36;
   orc_union32 var37;
-  orc_union32 var38;
-  orc_union16 var39;
+  orc_union16 var38;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -3037,13 +3860,11 @@ _backup_audio_orc_pack_u16_swap (OrcExecutor * ORC_RESTRICT ex)
     var34 = ptr4[i];
     /* 2: xorl */
     var37.i = var34.i ^ var35.i;
-    /* 3: shrul */
+    /* 3: convhlw */
     var38.i = ((orc_uint32) var37.i) >> 16;
-    /* 4: convlw */
-    var39.i = var38.i;
-    /* 5: swapw */
-    var36.i = ORC_SWAP_W (var39.i);
-    /* 6: storew */
+    /* 4: swapw */
+    var36.i = ORC_SWAP_W (var38.i);
+    /* 5: storew */
     ptr0[i] = var36;
   }
 
@@ -3067,9 +3888,8 @@ audio_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 117, 49, 54, 95, 115, 119, 97, 112, 11, 2, 2, 12, 4, 4,
-        14, 4, 0, 0, 0, 128, 14, 4, 16, 0, 0, 0, 20, 4, 20, 2,
-        132, 32, 4, 16, 126, 32, 32, 17, 163, 33, 32, 183, 0, 33, 2, 0,
-
+        14, 4, 0, 0, 0, 128, 20, 4, 20, 2, 132, 32, 4, 16, 164, 33,
+        32, 183, 0, 33, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_u16_swap);
@@ -3080,15 +3900,12 @@ audio_orc_pack_u16_swap (guint8 * ORC_RESTRICT d1,
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
       orc_program_add_constant (p, 4, 0x80000000, "c1");
-      orc_program_add_constant (p, 4, 0x00000010, "c2");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 2, "t2");
 
       orc_program_append_2 (p, "xorl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "shrul", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
@@ -3123,10 +3940,9 @@ audio_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
   int i;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
+  orc_union32 var33;
+  orc_union16 var34;
   orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
 
   ptr0 = (orc_union16 *) d1;
   ptr4 = (orc_union32 *) s1;
@@ -3134,15 +3950,13 @@ audio_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 16;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: swapw */
-    var35.i = ORC_SWAP_W (var37.i);
-    /* 4: storew */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: swapw */
+    var34.i = ORC_SWAP_W (var35.i);
+    /* 3: storew */
+    ptr0[i] = var34;
   }
 
 }
@@ -3155,10 +3969,9 @@ _backup_audio_orc_pack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union16 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
-  orc_union32 var34;
+  orc_union32 var33;
+  orc_union16 var34;
   orc_union16 var35;
-  orc_union32 var36;
-  orc_union16 var37;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr4 = (orc_union32 *) ex->arrays[4];
@@ -3166,15 +3979,13 @@ _backup_audio_orc_pack_s16_swap (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadl */
-    var34 = ptr4[i];
-    /* 1: shrsl */
-    var36.i = var34.i >> 16;
-    /* 2: convlw */
-    var37.i = var36.i;
-    /* 3: swapw */
-    var35.i = ORC_SWAP_W (var37.i);
-    /* 4: storew */
-    ptr0[i] = var35;
+    var33 = ptr4[i];
+    /* 1: convhlw */
+    var35.i = ((orc_uint32) var33.i) >> 16;
+    /* 2: swapw */
+    var34.i = ORC_SWAP_W (var35.i);
+    /* 3: storew */
+    ptr0[i] = var34;
   }
 
 }
@@ -3197,8 +4008,7 @@ audio_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 23, 97, 117, 100, 105, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 115, 49, 54, 95, 115, 119, 97, 112, 11, 2, 2, 12, 4, 4,
-        14, 4, 16, 0, 0, 0, 20, 4, 20, 2, 125, 32, 4, 16, 163, 33,
-        32, 183, 0, 33, 2, 0,
+        20, 2, 164, 32, 4, 183, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16_swap);
@@ -3208,15 +4018,11 @@ audio_orc_pack_s16_swap (guint8 * ORC_RESTRICT d1,
       orc_program_set_backup_function (p, _backup_audio_orc_pack_s16_swap);
       orc_program_add_destination (p, 2, "d1");
       orc_program_add_source (p, 4, "s1");
-      orc_program_add_constant (p, 4, 0x00000010, "c1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t1");
 
-      orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
+      orc_program_append_2 (p, "convhlw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
index 0866f31..bb9c5f2 100644 (file)
@@ -81,11 +81,17 @@ typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16
 #endif
 
 void audio_orc_unpack_u8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u8_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s8 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s8_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u16_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_u16_swap_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s16_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void audio_orc_unpack_s16_swap_trunc (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u24_32 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_s24_32 (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
 void audio_orc_unpack_u24_32_swap (gint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);