Release 1.1.1
[platform/upstream/gstreamer.git] / gst-libs / gst / video / video-orc-dist.c
index d5cc21d..51bcbf0 100644 (file)
@@ -153,10 +153,6 @@ void video_orc_unpack_NV21 (guint8 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
 void video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     const guint8 * ORC_RESTRICT s1, int n);
-void video_orc_unpack_NV16 (guint8 * ORC_RESTRICT d1,
-    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
-void video_orc_pack_NV16 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
-    const guint8 * ORC_RESTRICT s1, int n);
 void video_orc_unpack_A420 (guint8 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
     const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
@@ -223,7 +219,11 @@ video_orc_blend_little (guint8 * ORC_RESTRICT d1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
   orc_union32 var39;
+#endif
   orc_union32 var40;
   orc_union16 var41;
   orc_int8 var42;
@@ -328,7 +328,11 @@ _backup_video_orc_blend_little (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var39;
+#else
   orc_union32 var39;
+#endif
   orc_union32 var40;
   orc_union16 var41;
   orc_int8 var42;
@@ -532,7 +536,11 @@ video_orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
   orc_union32 var40;
+#endif
   orc_union32 var41;
   orc_union32 var42;
   orc_union16 var43;
@@ -640,7 +648,11 @@ _backup_video_orc_blend_big (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var40;
+#else
   orc_union32 var40;
+#endif
   orc_union32 var41;
   orc_union32 var42;
   orc_union16 var43;
@@ -853,7 +865,11 @@ video_orc_unpack_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   const orc_int8 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_int8 var39;
@@ -913,7 +929,11 @@ _backup_video_orc_unpack_I420 (OrcExecutor * ORC_RESTRICT ex)
   const orc_int8 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_int8 var39;
@@ -1054,10 +1074,6 @@ video_orc_pack_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
   orc_union32 var43;
   orc_union16 var44;
   orc_union16 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_int8 *) d2;
@@ -1107,27 +1123,21 @@ video_orc_pack_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       var44.x2[1] = _src.x2[1];
       var45.x2[1] = _src.x2[0];
     }
-    /* 5: splitwb */
+    /* 5: select0wb */
     {
       orc_union16 _src;
       _src.i = var45.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
+      var40 = _src.x2[0];
     }
-    /* 6: avgub */
-    var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
-    /* 7: storeb */
+    /* 6: storeb */
     ptr1[i] = var40;
-    /* 8: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
       _src.i = var44.i;
-      var48 = _src.x2[1];
-      var49 = _src.x2[0];
+      var41 = _src.x2[0];
     }
-    /* 9: avgub */
-    var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
-    /* 10: storeb */
+    /* 8: storeb */
     ptr2[i] = var41;
   }
 
@@ -1151,10 +1161,6 @@ _backup_video_orc_pack_I420 (OrcExecutor * ORC_RESTRICT ex)
   orc_union32 var43;
   orc_union16 var44;
   orc_union16 var45;
-  orc_int8 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_int8 *) ex->arrays[1];
@@ -1204,27 +1210,21 @@ _backup_video_orc_pack_I420 (OrcExecutor * ORC_RESTRICT ex)
       var44.x2[1] = _src.x2[1];
       var45.x2[1] = _src.x2[0];
     }
-    /* 5: splitwb */
+    /* 5: select0wb */
     {
       orc_union16 _src;
       _src.i = var45.i;
-      var46 = _src.x2[1];
-      var47 = _src.x2[0];
+      var40 = _src.x2[0];
     }
-    /* 6: avgub */
-    var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
-    /* 7: storeb */
+    /* 6: storeb */
     ptr1[i] = var40;
-    /* 8: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
       _src.i = var44.i;
-      var48 = _src.x2[1];
-      var49 = _src.x2[0];
+      var41 = _src.x2[0];
     }
-    /* 9: avgub */
-    var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
-    /* 10: storeb */
+    /* 8: storeb */
     ptr2[i] = var41;
   }
 
@@ -1249,9 +1249,8 @@ video_orc_pack_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 73, 52, 50, 48, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12,
         8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 20, 1, 20, 1, 21, 1,
-        198, 33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 199, 35, 34, 33, 199,
-        36, 37, 34, 39, 1, 36, 37, 199, 36, 37, 35, 39, 2, 36, 37, 2,
-        0,
+        198, 33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 199, 35, 34, 33, 188,
+        1, 34, 188, 2, 35, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_I420);
@@ -1276,14 +1275,10 @@ video_orc_pack_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D2, ORC_VAR_T3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D3, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
 #endif
 
       orc_program_compile (p);
@@ -1318,7 +1313,11 @@ video_orc_unpack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -1396,7 +1395,11 @@ _backup_video_orc_unpack_YUY2 (OrcExecutor * ORC_RESTRICT ex)
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -1540,14 +1543,12 @@ video_orc_pack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union64 *) s1;
@@ -1555,56 +1556,52 @@ video_orc_pack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var43.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var43.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1617,14 +1614,12 @@ _backup_video_orc_pack_YUY2 (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union64 *) ex->arrays[4];
@@ -1632,56 +1627,52 @@ _backup_video_orc_pack_YUY2 (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var43.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var43.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1704,9 +1695,8 @@ video_orc_pack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 89, 85, 89, 50, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2,
-        20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36,
-        21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0, 32,
-        33, 2, 0,
+        20, 4, 20, 4, 21, 1, 198, 35, 34, 4, 190, 33, 35, 21, 1, 189,
+        32, 34, 21, 1, 196, 0, 32, 33, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_YUY2);
@@ -1718,17 +1708,14 @@ video_orc_pack_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t3");
       orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
 
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
           ORC_VAR_D1);
@@ -1763,14 +1750,12 @@ video_orc_pack_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union64 *) s1;
@@ -1778,56 +1763,52 @@ video_orc_pack_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[0];
-      _dest.x2[1] = var44.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var41.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[1];
-      _dest.x2[1] = var44.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var41.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1840,14 +1821,12 @@ _backup_video_orc_pack_UYVY (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union64 *) ex->arrays[4];
@@ -1855,56 +1834,52 @@ _backup_video_orc_pack_UYVY (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: mergebw */
+    /* 4: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[0];
-      _dest.x2[1] = var44.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var41.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var43.x2[1];
-      _dest.x2[1] = var44.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var41.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 6: storel */
-    ptr0[i] = var38;
+    /* 5: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -1927,9 +1902,8 @@ video_orc_pack_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 85, 89, 86, 89, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2,
-        20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36,
-        21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 21, 1, 196, 0, 33,
-        32, 2, 0,
+        20, 4, 20, 4, 21, 1, 198, 35, 34, 4, 190, 33, 35, 21, 1, 189,
+        32, 34, 21, 1, 196, 0, 33, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_UYVY);
@@ -1941,17 +1915,14 @@ video_orc_pack_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t3");
       orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
 
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
           ORC_VAR_D1);
@@ -1987,7 +1958,11 @@ video_orc_unpack_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2065,7 +2040,11 @@ _backup_video_orc_unpack_UYVY (OrcExecutor * ORC_RESTRICT ex)
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2210,7 +2189,11 @@ video_orc_unpack_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2291,7 +2274,11 @@ _backup_video_orc_unpack_YVYU (OrcExecutor * ORC_RESTRICT ex)
   orc_union64 *ORC_RESTRICT ptr0;
   const orc_union32 *ORC_RESTRICT ptr4;
   orc_union32 var36;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union64 var38;
   orc_union16 var39;
   orc_union16 var40;
@@ -2440,15 +2427,13 @@ video_orc_pack_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
   orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
 
   ptr0 = (orc_union32 *) d1;
   ptr4 = (orc_union64 *) s1;
@@ -2456,58 +2441,54 @@ video_orc_pack_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: swapw */
-    var45.i = ORC_SWAP_W (var43.i);
-    /* 6: mergebw */
+    /* 4: swapw */
+    var42.i = ORC_SWAP_W (var40.i);
+    /* 5: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var45.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var45.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 7: storel */
-    ptr0[i] = var38;
+    /* 6: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -2520,15 +2501,13 @@ _backup_video_orc_pack_YVYU (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
+  orc_union64 var36;
+  orc_union32 var37;
   orc_union32 var38;
   orc_union32 var39;
-  orc_union32 var40;
+  orc_union16 var40;
   orc_union16 var41;
   orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
-  orc_union16 var45;
 
   ptr0 = (orc_union32 *) ex->arrays[0];
   ptr4 = (orc_union64 *) ex->arrays[4];
@@ -2536,58 +2515,54 @@ _backup_video_orc_pack_YVYU (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 4: select1wb */
+    /* 3: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var44.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var41.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var44.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var41.x2[1] = _src.x2[1];
     }
-    /* 5: swapw */
-    var45.i = ORC_SWAP_W (var43.i);
-    /* 6: mergebw */
+    /* 4: swapw */
+    var42.i = ORC_SWAP_W (var40.i);
+    /* 5: mergebw */
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[0];
-      _dest.x2[1] = var45.x2[0];
-      var38.x2[0] = _dest.i;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var37.x2[0] = _dest.i;
     }
     {
       orc_union16 _dest;
-      _dest.x2[0] = var44.x2[1];
-      _dest.x2[1] = var45.x2[1];
-      var38.x2[1] = _dest.i;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var37.x2[1] = _dest.i;
     }
-    /* 7: storel */
-    ptr0[i] = var38;
+    /* 6: storel */
+    ptr0[i] = var37;
   }
 
 }
@@ -2610,9 +2585,8 @@ video_orc_pack_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 89, 86, 89, 85, 11, 4, 4, 12, 8, 8, 20, 2, 20, 2,
-        20, 2, 20, 4, 20, 4, 21, 1, 198, 36, 35, 4, 198, 33, 34, 36,
-        21, 1, 39, 33, 33, 34, 21, 1, 189, 32, 35, 183, 33, 33, 21, 1,
-        196, 0, 32, 33, 2, 0,
+        20, 4, 20, 4, 21, 1, 198, 35, 34, 4, 190, 33, 35, 21, 1, 189,
+        32, 34, 183, 33, 33, 21, 1, 196, 0, 32, 33, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_YVYU);
@@ -2624,17 +2598,14 @@ video_orc_pack_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 2, "t1");
       orc_program_add_temporary (p, 2, "t2");
-      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 4, "t3");
       orc_program_add_temporary (p, 4, "t4");
-      orc_program_add_temporary (p, 4, "t5");
 
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T2, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T3,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "swapw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_D1,
           ORC_VAR_D1);
@@ -2673,7 +2644,11 @@ video_orc_unpack_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union16 var38;
   orc_union64 var39;
   orc_int8 var40;
@@ -2754,7 +2729,11 @@ _backup_video_orc_unpack_YUV9 (OrcExecutor * ORC_RESTRICT ex)
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_int8 *ORC_RESTRICT ptr5;
   const orc_int8 *ORC_RESTRICT ptr6;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var37;
+#else
   orc_union16 var37;
+#endif
   orc_union16 var38;
   orc_union64 var39;
   orc_int8 var40;
@@ -2914,7 +2893,11 @@ video_orc_unpack_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -2995,7 +2978,11 @@ _backup_video_orc_unpack_Y42B (OrcExecutor * ORC_RESTRICT ex)
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var36;
   orc_int8 var37;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var38;
+#else
   orc_union16 var38;
+#endif
   orc_union16 var39;
   orc_union64 var40;
   orc_union16 var41;
@@ -3145,15 +3132,13 @@ video_orc_pack_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
   orc_int8 *ORC_RESTRICT ptr1;
   orc_int8 *ORC_RESTRICT ptr2;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
+  orc_union64 var35;
+  orc_int8 var36;
   orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
+  orc_union16 var38;
+  orc_union32 var39;
   orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union16 var41;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_int8 *) d2;
@@ -3163,54 +3148,50 @@ video_orc_pack_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var36.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
+      _src.i = var39.i;
+      var41.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 4: splitwb */
+    /* 3: splitwb */
     {
       orc_union16 _src;
-      _src.i = var44.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
+      _src.i = var41.i;
+      var36 = _src.x2[1];
+      var37 = _src.x2[0];
     }
+    /* 4: storeb */
+    ptr2[i] = var36;
     /* 5: storeb */
-    ptr2[i] = var37;
-    /* 6: storeb */
-    ptr1[i] = var38;
-    /* 7: select1wb */
+    ptr1[i] = var37;
+    /* 6: select1wb */
     {
       orc_union16 _src;
-      _src.i = var41.x2[0];
-      var39.x2[0] = _src.x2[1];
+      _src.i = var40.x2[0];
+      var38.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var40.x2[1];
+      var38.x2[1] = _src.x2[1];
     }
-    /* 8: storew */
-    ptr0[i] = var39;
+    /* 7: storew */
+    ptr0[i] = var38;
   }
 
 }
@@ -3225,15 +3206,13 @@ _backup_video_orc_pack_Y42B (OrcExecutor * ORC_RESTRICT ex)
   orc_int8 *ORC_RESTRICT ptr1;
   orc_int8 *ORC_RESTRICT ptr2;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
+  orc_union64 var35;
+  orc_int8 var36;
   orc_int8 var37;
-  orc_int8 var38;
-  orc_union16 var39;
+  orc_union16 var38;
+  orc_union32 var39;
   orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union16 var41;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_int8 *) ex->arrays[1];
@@ -3243,54 +3222,50 @@ _backup_video_orc_pack_Y42B (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var36.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
     }
-    /* 2: splitlw */
+    /* 2: select0lw */
     {
       orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
+      _src.i = var39.i;
+      var41.i = _src.x2[0];
     }
-    /* 3: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 4: splitwb */
+    /* 3: splitwb */
     {
       orc_union16 _src;
-      _src.i = var44.i;
-      var37 = _src.x2[1];
-      var38 = _src.x2[0];
+      _src.i = var41.i;
+      var36 = _src.x2[1];
+      var37 = _src.x2[0];
     }
+    /* 4: storeb */
+    ptr2[i] = var36;
     /* 5: storeb */
-    ptr2[i] = var37;
-    /* 6: storeb */
-    ptr1[i] = var38;
-    /* 7: select1wb */
+    ptr1[i] = var37;
+    /* 6: select1wb */
     {
       orc_union16 _src;
-      _src.i = var41.x2[0];
-      var39.x2[0] = _src.x2[1];
+      _src.i = var40.x2[0];
+      var38.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var40.x2[1];
+      var38.x2[1] = _src.x2[1];
     }
-    /* 8: storew */
-    ptr0[i] = var39;
+    /* 7: storew */
+    ptr0[i] = var38;
   }
 
 }
@@ -3313,9 +3288,8 @@ video_orc_pack_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 89, 52, 50, 66, 11, 2, 2, 11, 1, 1, 11, 1, 1, 12,
-        8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32, 4,
-        198, 34, 35, 33, 21, 1, 39, 34, 34, 35, 199, 2, 1, 34, 21, 1,
-        189, 0, 32, 2, 0,
+        8, 8, 20, 4, 20, 4, 20, 2, 21, 1, 198, 33, 32, 4, 190, 34,
+        33, 199, 2, 1, 34, 21, 1, 189, 0, 32, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_Y42B);
@@ -3330,14 +3304,11 @@ video_orc_pack_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T3, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
@@ -3379,7 +3350,11 @@ video_orc_unpack_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -3439,7 +3414,11 @@ _backup_video_orc_unpack_Y444 (OrcExecutor * ORC_RESTRICT ex)
   const orc_int8 *ORC_RESTRICT ptr6;
   orc_int8 var34;
   orc_int8 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var36;
+#else
   orc_int8 var36;
+#endif
   orc_int8 var37;
   orc_union32 var38;
   orc_union16 var39;
@@ -3738,9 +3717,17 @@ video_orc_unpack_GRAY8 (guint8 * ORC_RESTRICT d1,
   int i;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
   orc_int8 var33;
+#endif
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
   orc_union16 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
 
@@ -3783,9 +3770,17 @@ _backup_video_orc_unpack_GRAY8 (OrcExecutor * ORC_RESTRICT ex)
   int n = ex->n;
   orc_union32 *ORC_RESTRICT ptr0;
   const orc_int8 *ORC_RESTRICT ptr4;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var33;
+#else
   orc_int8 var33;
+#endif
   orc_int8 var34;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var35;
+#else
   orc_union16 var35;
+#endif
   orc_union32 var36;
   orc_union16 var37;
 
@@ -5122,7 +5117,11 @@ video_orc_unpack_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var34;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union32 var39;
@@ -5193,7 +5192,11 @@ _backup_video_orc_unpack_NV12 (OrcExecutor * ORC_RESTRICT ex)
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var34;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union32 var39;
@@ -5326,13 +5329,11 @@ video_orc_pack_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
+  orc_union64 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_union16 *) d2;
@@ -5341,45 +5342,41 @@ video_orc_pack_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var34 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var34.x2[0];
+      var37.x2[0] = _src.x2[1];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var36.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var34.x2[1];
+      var37.x2[1] = _src.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var37.x2[0] = _src.x2[1];
+      _src.i = var38.x2[0];
+      var35.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var37.x2[1] = _src.x2[1];
+      _src.i = var38.x2[1];
+      var35.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var37;
-    /* 4: splitlw */
+    ptr0[i] = var35;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var37.i;
+      var36.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 6: storew */
-    ptr1[i] = var38;
+    /* 5: storew */
+    ptr1[i] = var36;
   }
 
 }
@@ -5393,13 +5390,11 @@ _backup_video_orc_pack_NV12 (OrcExecutor * ORC_RESTRICT ex)
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-  orc_union32 var39;
-  orc_union32 var40;
-  orc_union16 var41;
-  orc_union16 var42;
+  orc_union64 var34;
+  orc_union16 var35;
+  orc_union16 var36;
+  orc_union32 var37;
+  orc_union32 var38;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_union16 *) ex->arrays[1];
@@ -5408,45 +5403,41 @@ _backup_video_orc_pack_NV12 (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var36 = ptr4[i];
+    var34 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var36.x2[0];
-      var39.x2[0] = _src.x2[1];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var34.x2[0];
+      var37.x2[0] = _src.x2[1];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var36.x2[1];
-      var39.x2[1] = _src.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var34.x2[1];
+      var37.x2[1] = _src.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var40.x2[0];
-      var37.x2[0] = _src.x2[1];
+      _src.i = var38.x2[0];
+      var35.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var40.x2[1];
-      var37.x2[1] = _src.x2[1];
+      _src.i = var38.x2[1];
+      var35.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var37;
-    /* 4: splitlw */
+    ptr0[i] = var35;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var39.i;
-      var41.i = _src.x2[1];
-      var42.i = _src.x2[0];
+      _src.i = var37.i;
+      var36.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
-    var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
-    /* 6: storew */
-    ptr1[i] = var38;
+    /* 5: storew */
+    ptr1[i] = var36;
   }
 
 }
@@ -5469,8 +5460,8 @@ video_orc_pack_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 78, 86, 49, 50, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20,
-        4, 20, 4, 20, 2, 20, 2, 21, 1, 198, 33, 32, 4, 21, 1, 189,
-        0, 32, 198, 34, 35, 33, 21, 1, 39, 1, 34, 35, 2, 0,
+        4, 20, 4, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 190, 1,
+        33, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_NV12);
@@ -5483,17 +5474,13 @@ video_orc_pack_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       orc_program_add_source (p, 8, "s1");
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
-      orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D2, ORC_VAR_T2,
+          ORC_VAR_D1, ORC_VAR_D1);
 #endif
 
       orc_program_compile (p);
@@ -5528,7 +5515,11 @@ video_orc_unpack_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union16 var39;
@@ -5599,7 +5590,11 @@ _backup_video_orc_unpack_NV21 (OrcExecutor * ORC_RESTRICT ex)
   const orc_union16 *ORC_RESTRICT ptr4;
   const orc_union16 *ORC_RESTRICT ptr5;
   orc_union16 var35;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var36;
+#else
   orc_union16 var36;
+#endif
   orc_union16 var37;
   orc_union64 var38;
   orc_union16 var39;
@@ -5737,14 +5732,12 @@ video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union64 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union16 var40;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_union16 *) d2;
@@ -5753,47 +5746,43 @@ video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
+      _src.i = var35.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
+      _src.i = var35.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var41.x2[0];
-      var38.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var36.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var38.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var36.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var38;
-    /* 4: splitlw */
+    ptr0[i] = var36;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 6: swapw */
-    var39.i = ORC_SWAP_W (var44.i);
-    /* 7: storew */
-    ptr1[i] = var39;
+    /* 5: swapw */
+    var37.i = ORC_SWAP_W (var40.i);
+    /* 6: storew */
+    ptr1[i] = var37;
   }
 
 }
@@ -5807,14 +5796,12 @@ _backup_video_orc_pack_NV21 (OrcExecutor * ORC_RESTRICT ex)
   orc_union16 *ORC_RESTRICT ptr0;
   orc_union16 *ORC_RESTRICT ptr1;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var37;
-  orc_union16 var38;
-  orc_union16 var39;
-  orc_union32 var40;
-  orc_union32 var41;
-  orc_union16 var42;
-  orc_union16 var43;
-  orc_union16 var44;
+  orc_union64 var35;
+  orc_union16 var36;
+  orc_union16 var37;
+  orc_union32 var38;
+  orc_union32 var39;
+  orc_union16 var40;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_union16 *) ex->arrays[1];
@@ -5823,47 +5810,43 @@ _backup_video_orc_pack_NV21 (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var37 = ptr4[i];
+    var35 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var37.x2[0];
-      var40.x2[0] = _src.x2[1];
-      var41.x2[0] = _src.x2[0];
+      _src.i = var35.x2[0];
+      var38.x2[0] = _src.x2[1];
+      var39.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var37.x2[1];
-      var40.x2[1] = _src.x2[1];
-      var41.x2[1] = _src.x2[0];
+      _src.i = var35.x2[1];
+      var38.x2[1] = _src.x2[1];
+      var39.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var41.x2[0];
-      var38.x2[0] = _src.x2[1];
+      _src.i = var39.x2[0];
+      var36.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var41.x2[1];
-      var38.x2[1] = _src.x2[1];
+      _src.i = var39.x2[1];
+      var36.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var38;
-    /* 4: splitlw */
+    ptr0[i] = var36;
+    /* 4: select0lw */
     {
       orc_union32 _src;
-      _src.i = var40.i;
-      var42.i = _src.x2[1];
-      var43.i = _src.x2[0];
+      _src.i = var38.i;
+      var40.i = _src.x2[0];
     }
-    /* 5: avgub */
-    var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
-    var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
-    /* 6: swapw */
-    var39.i = ORC_SWAP_W (var44.i);
-    /* 7: storew */
-    ptr1[i] = var39;
+    /* 5: swapw */
+    var37.i = ORC_SWAP_W (var40.i);
+    /* 6: storew */
+    ptr1[i] = var37;
   }
 
 }
@@ -5886,9 +5869,8 @@ video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 78, 86, 50, 49, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20,
-        4, 20, 4, 20, 2, 20, 2, 20, 2, 21, 1, 198, 33, 32, 4, 21,
-        1, 189, 0, 32, 198, 34, 35, 33, 21, 1, 39, 36, 34, 35, 183, 1,
-        36, 2, 0,
+        4, 20, 4, 20, 2, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32,
+        190, 34, 33, 183, 1, 34, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_NV21);
@@ -5902,178 +5884,14 @@ video_orc_pack_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       orc_program_add_temporary (p, 4, "t1");
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
-      orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 2, "t5");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
       orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
           ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
-          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_D2] = d2;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_orc_unpack_NV16 */
-#ifdef DISABLE_ORC
-void
-video_orc_unpack_NV16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, int n)
-{
-  int i;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_int8 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-
-  ptr0 = (orc_union32 *) d1;
-  ptr4 = (orc_int8 *) s1;
-  ptr5 = (orc_union16 *) s2;
-
-  /* 1: loadpb */
-  var34 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadupdb */
-    var37 = ptr5[i >> 1];
-    var37 = ptr5[i >> 1];
-    /* 2: loadb */
-    var35 = ptr4[i];
-    /* 3: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var34;
-      _dest.x2[1] = var35;
-      var38.i = _dest.i;
-    }
-    /* 4: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var38.i;
-      _dest.x2[1] = var37.i;
-      var36.i = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_video_orc_unpack_NV16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union32 *ORC_RESTRICT ptr0;
-  const orc_int8 *ORC_RESTRICT ptr4;
-  const orc_union16 *ORC_RESTRICT ptr5;
-  orc_int8 var34;
-  orc_int8 var35;
-  orc_union32 var36;
-  orc_union16 var37;
-  orc_union16 var38;
-
-  ptr0 = (orc_union32 *) ex->arrays[0];
-  ptr4 = (orc_int8 *) ex->arrays[4];
-  ptr5 = (orc_union16 *) ex->arrays[5];
-
-  /* 1: loadpb */
-  var34 = (int) 0x000000ff;     /* 255 or 1.25987e-321f */
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadupdb */
-    var37 = ptr5[i >> 1];
-    var37 = ptr5[i >> 1];
-    /* 2: loadb */
-    var35 = ptr4[i];
-    /* 3: mergebw */
-    {
-      orc_union16 _dest;
-      _dest.x2[0] = var34;
-      _dest.x2[1] = var35;
-      var38.i = _dest.i;
-    }
-    /* 4: mergewl */
-    {
-      orc_union32 _dest;
-      _dest.x2[0] = var38.i;
-      _dest.x2[1] = var37.i;
-      var36.i = _dest.i;
-    }
-    /* 5: storel */
-    ptr0[i] = var36;
-  }
-
-}
-
-void
-video_orc_unpack_NV16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
-    const guint8 * ORC_RESTRICT s2, 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, 21, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 117, 110, 112,
-        97, 99, 107, 95, 78, 86, 49, 54, 11, 4, 4, 12, 1, 1, 12, 2,
-        2, 14, 1, 255, 0, 0, 0, 20, 2, 20, 2, 21, 1, 45, 33, 5,
-        196, 32, 16, 4, 195, 0, 32, 33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_orc_unpack_NV16);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_orc_unpack_NV16");
-      orc_program_set_backup_function (p, _backup_video_orc_unpack_NV16);
-      orc_program_add_destination (p, 4, "d1");
-      orc_program_add_source (p, 1, "s1");
-      orc_program_add_source (p, 2, "s2");
-      orc_program_add_constant (p, 1, 0x000000ff, "c1");
-      orc_program_add_temporary (p, 2, "t1");
-      orc_program_add_temporary (p, 2, "t2");
-
-      orc_program_append_2 (p, "loadupdb", 1, ORC_VAR_T2, ORC_VAR_S2,
+      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T3, ORC_VAR_T2,
           ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+      orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1,
           ORC_VAR_D1);
 #endif
 
@@ -6089,191 +5907,6 @@ video_orc_unpack_NV16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
 
   ex->n = n;
   ex->arrays[ORC_VAR_D1] = d1;
-  ex->arrays[ORC_VAR_S1] = (void *) s1;
-  ex->arrays[ORC_VAR_S2] = (void *) s2;
-
-  func = c->exec;
-  func (ex);
-}
-#endif
-
-
-/* video_orc_pack_NV16 */
-#ifdef DISABLE_ORC
-void
-video_orc_pack_NV16 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
-    const guint8 * ORC_RESTRICT s1, int n)
-{
-  int i;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-  orc_union32 var38;
-
-  ptr0 = (orc_union16 *) d1;
-  ptr1 = (orc_union16 *) d2;
-  ptr4 = (orc_union64 *) s1;
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var34.x2[0];
-      var37.x2[0] = _src.x2[1];
-      var38.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union32 _src;
-      _src.i = var34.x2[1];
-      var37.x2[1] = _src.x2[1];
-      var38.x2[1] = _src.x2[0];
-    }
-    /* 2: select1wb */
-    {
-      orc_union16 _src;
-      _src.i = var38.x2[0];
-      var35.x2[0] = _src.x2[1];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x2[1];
-      var35.x2[1] = _src.x2[1];
-    }
-    /* 3: storew */
-    ptr0[i] = var35;
-    /* 4: select0lw */
-    {
-      orc_union32 _src;
-      _src.i = var37.i;
-      var36.i = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var36;
-  }
-
-}
-
-#else
-static void
-_backup_video_orc_pack_NV16 (OrcExecutor * ORC_RESTRICT ex)
-{
-  int i;
-  int n = ex->n;
-  orc_union16 *ORC_RESTRICT ptr0;
-  orc_union16 *ORC_RESTRICT ptr1;
-  const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var34;
-  orc_union16 var35;
-  orc_union16 var36;
-  orc_union32 var37;
-  orc_union32 var38;
-
-  ptr0 = (orc_union16 *) ex->arrays[0];
-  ptr1 = (orc_union16 *) ex->arrays[1];
-  ptr4 = (orc_union64 *) ex->arrays[4];
-
-
-  for (i = 0; i < n; i++) {
-    /* 0: loadq */
-    var34 = ptr4[i];
-    /* 1: splitlw */
-    {
-      orc_union32 _src;
-      _src.i = var34.x2[0];
-      var37.x2[0] = _src.x2[1];
-      var38.x2[0] = _src.x2[0];
-    }
-    {
-      orc_union32 _src;
-      _src.i = var34.x2[1];
-      var37.x2[1] = _src.x2[1];
-      var38.x2[1] = _src.x2[0];
-    }
-    /* 2: select1wb */
-    {
-      orc_union16 _src;
-      _src.i = var38.x2[0];
-      var35.x2[0] = _src.x2[1];
-    }
-    {
-      orc_union16 _src;
-      _src.i = var38.x2[1];
-      var35.x2[1] = _src.x2[1];
-    }
-    /* 3: storew */
-    ptr0[i] = var35;
-    /* 4: select0lw */
-    {
-      orc_union32 _src;
-      _src.i = var37.i;
-      var36.i = _src.x2[0];
-    }
-    /* 5: storew */
-    ptr1[i] = var36;
-  }
-
-}
-
-void
-video_orc_pack_NV16 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
-    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, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
-        107, 95, 78, 86, 49, 54, 11, 2, 2, 11, 2, 2, 12, 8, 8, 20,
-        4, 20, 4, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 190, 1,
-        33, 2, 0,
-      };
-      p = orc_program_new_from_static_bytecode (bc);
-      orc_program_set_backup_function (p, _backup_video_orc_pack_NV16);
-#else
-      p = orc_program_new ();
-      orc_program_set_name (p, "video_orc_pack_NV16");
-      orc_program_set_backup_function (p, _backup_video_orc_pack_NV16);
-      orc_program_add_destination (p, 2, "d1");
-      orc_program_add_destination (p, 2, "d2");
-      orc_program_add_source (p, 8, "s1");
-      orc_program_add_temporary (p, 4, "t1");
-      orc_program_add_temporary (p, 4, "t2");
-
-      orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
-          ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_D2, ORC_VAR_T2,
-          ORC_VAR_D1, 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_D2] = d2;
   ex->arrays[ORC_VAR_S1] = (void *) s1;
 
@@ -6496,19 +6129,15 @@ video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
   orc_int8 *ORC_RESTRICT ptr2;
   orc_union16 *ORC_RESTRICT ptr3;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_int8 var41;
-  orc_int8 var42;
-  orc_union32 var43;
-  orc_union32 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
-  orc_int8 var50;
+  orc_union64 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
 
   ptr0 = (orc_union16 *) d1;
   ptr1 = (orc_int8 *) d2;
@@ -6519,81 +6148,75 @@ video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var38 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var38.x2[0];
-      var43.x2[0] = _src.x2[1];
-      var44.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var38.x2[1];
-      var43.x2[1] = _src.x2[1];
-      var44.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var39.x2[0] = _src.x2[1];
+      _src.i = var42.x2[0];
+      var37.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var42.x2[1];
+      var37.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var39;
+    ptr0[i] = var37;
     /* 4: select0wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var42.x2[0];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var42.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 5: storew */
-    ptr3[i] = var40;
+    ptr3[i] = var38;
     /* 6: splitwb */
     {
       orc_union16 _src;
-      _src.i = var43.x2[0];
-      var45.x2[0] = _src.x2[1];
-      var46.x2[0] = _src.x2[0];
+      _src.i = var41.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var43.x2[1];
-      var45.x2[1] = _src.x2[1];
-      var46.x2[1] = _src.x2[0];
+      _src.i = var41.x2[1];
+      var43.x2[1] = _src.x2[1];
+      var44.x2[1] = _src.x2[0];
     }
-    /* 7: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
-      _src.i = var46.i;
-      var47 = _src.x2[1];
-      var48 = _src.x2[0];
+      _src.i = var44.i;
+      var39 = _src.x2[0];
     }
-    /* 8: avgub */
-    var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
-    /* 9: storeb */
-    ptr1[i] = var41;
-    /* 10: splitwb */
+    /* 8: storeb */
+    ptr1[i] = var39;
+    /* 9: select0wb */
     {
       orc_union16 _src;
-      _src.i = var45.i;
-      var49 = _src.x2[1];
-      var50 = _src.x2[0];
+      _src.i = var43.i;
+      var40 = _src.x2[0];
     }
-    /* 11: avgub */
-    var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
-    /* 12: storeb */
-    ptr2[i] = var42;
+    /* 10: storeb */
+    ptr2[i] = var40;
   }
 
 }
@@ -6609,19 +6232,15 @@ _backup_video_orc_pack_A420 (OrcExecutor * ORC_RESTRICT ex)
   orc_int8 *ORC_RESTRICT ptr2;
   orc_union16 *ORC_RESTRICT ptr3;
   const orc_union64 *ORC_RESTRICT ptr4;
-  orc_union64 var38;
-  orc_union16 var39;
-  orc_union16 var40;
-  orc_int8 var41;
-  orc_int8 var42;
-  orc_union32 var43;
-  orc_union32 var44;
-  orc_union16 var45;
-  orc_union16 var46;
-  orc_int8 var47;
-  orc_int8 var48;
-  orc_int8 var49;
-  orc_int8 var50;
+  orc_union64 var36;
+  orc_union16 var37;
+  orc_union16 var38;
+  orc_int8 var39;
+  orc_int8 var40;
+  orc_union32 var41;
+  orc_union32 var42;
+  orc_union16 var43;
+  orc_union16 var44;
 
   ptr0 = (orc_union16 *) ex->arrays[0];
   ptr1 = (orc_int8 *) ex->arrays[1];
@@ -6632,81 +6251,75 @@ _backup_video_orc_pack_A420 (OrcExecutor * ORC_RESTRICT ex)
 
   for (i = 0; i < n; i++) {
     /* 0: loadq */
-    var38 = ptr4[i];
+    var36 = ptr4[i];
     /* 1: splitlw */
     {
       orc_union32 _src;
-      _src.i = var38.x2[0];
-      var43.x2[0] = _src.x2[1];
-      var44.x2[0] = _src.x2[0];
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
     }
     {
       orc_union32 _src;
-      _src.i = var38.x2[1];
-      var43.x2[1] = _src.x2[1];
-      var44.x2[1] = _src.x2[0];
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
     }
     /* 2: select1wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var39.x2[0] = _src.x2[1];
+      _src.i = var42.x2[0];
+      var37.x2[0] = _src.x2[1];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var39.x2[1] = _src.x2[1];
+      _src.i = var42.x2[1];
+      var37.x2[1] = _src.x2[1];
     }
     /* 3: storew */
-    ptr0[i] = var39;
+    ptr0[i] = var37;
     /* 4: select0wb */
     {
       orc_union16 _src;
-      _src.i = var44.x2[0];
-      var40.x2[0] = _src.x2[0];
+      _src.i = var42.x2[0];
+      var38.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var44.x2[1];
-      var40.x2[1] = _src.x2[0];
+      _src.i = var42.x2[1];
+      var38.x2[1] = _src.x2[0];
     }
     /* 5: storew */
-    ptr3[i] = var40;
+    ptr3[i] = var38;
     /* 6: splitwb */
     {
       orc_union16 _src;
-      _src.i = var43.x2[0];
-      var45.x2[0] = _src.x2[1];
-      var46.x2[0] = _src.x2[0];
+      _src.i = var41.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.x2[0] = _src.x2[0];
     }
     {
       orc_union16 _src;
-      _src.i = var43.x2[1];
-      var45.x2[1] = _src.x2[1];
-      var46.x2[1] = _src.x2[0];
+      _src.i = var41.x2[1];
+      var43.x2[1] = _src.x2[1];
+      var44.x2[1] = _src.x2[0];
     }
-    /* 7: splitwb */
+    /* 7: select0wb */
     {
       orc_union16 _src;
-      _src.i = var46.i;
-      var47 = _src.x2[1];
-      var48 = _src.x2[0];
+      _src.i = var44.i;
+      var39 = _src.x2[0];
     }
-    /* 8: avgub */
-    var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
-    /* 9: storeb */
-    ptr1[i] = var41;
-    /* 10: splitwb */
+    /* 8: storeb */
+    ptr1[i] = var39;
+    /* 9: select0wb */
     {
       orc_union16 _src;
-      _src.i = var45.i;
-      var49 = _src.x2[1];
-      var50 = _src.x2[0];
+      _src.i = var43.i;
+      var40 = _src.x2[0];
     }
-    /* 11: avgub */
-    var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
-    /* 12: storeb */
-    ptr2[i] = var42;
+    /* 10: storeb */
+    ptr2[i] = var40;
   }
 
 }
@@ -6730,10 +6343,9 @@ video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       static const orc_uint8 bc[] = {
         1, 9, 19, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99,
         107, 95, 65, 52, 50, 48, 11, 2, 2, 11, 1, 1, 11, 1, 1, 11,
-        2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 20, 1, 20,
-        1, 21, 1, 198, 33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 188, 3,
-        32, 21, 1, 199, 35, 34, 33, 199, 36, 37, 34, 39, 1, 36, 37, 199,
-        36, 37, 35, 39, 2, 36, 37, 2, 0,
+        2, 2, 12, 8, 8, 20, 4, 20, 4, 20, 2, 20, 2, 21, 1, 198,
+        33, 32, 4, 21, 1, 189, 0, 32, 21, 1, 188, 3, 32, 21, 1, 199,
+        35, 34, 33, 188, 1, 34, 188, 2, 35, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_pack_A420);
@@ -6750,8 +6362,6 @@ video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
       orc_program_add_temporary (p, 4, "t2");
       orc_program_add_temporary (p, 2, "t3");
       orc_program_add_temporary (p, 2, "t4");
-      orc_program_add_temporary (p, 1, "t5");
-      orc_program_add_temporary (p, 1, "t6");
 
       orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
           ORC_VAR_D1);
@@ -6761,14 +6371,10 @@ video_orc_pack_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
           ORC_VAR_D1, ORC_VAR_D1);
       orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
           ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
-          ORC_VAR_D1);
-      orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
-          ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D2, ORC_VAR_T3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D3, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
 #endif
 
       orc_program_compile (p);
@@ -6948,7 +6554,11 @@ video_orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
   orc_int8 var36;
   orc_int8 var37;
   orc_union16 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
   orc_union16 var39;
+#endif
   orc_int8 var40;
   orc_int8 var41;
   orc_union16 var42;
@@ -7006,7 +6616,11 @@ _backup_video_orc_merge_linear_u8 (OrcExecutor * ORC_RESTRICT ex)
   orc_int8 var36;
   orc_int8 var37;
   orc_union16 var38;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union16 var39;
+#else
   orc_union16 var39;
+#endif
   orc_int8 var40;
   orc_int8 var41;
   orc_union16 var42;