[MOVED FROM BAD 68/68] Update orc-generated disted C backup code to orc 0.4.14
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Sat, 30 Apr 2011 18:46:40 +0000 (19:46 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Wed, 15 Jun 2011 14:12:56 +0000 (16:12 +0200)
gst/colorspace/gstcolorspaceorc-dist.c

index 775eeeb..06d75b2 100644 (file)
@@ -492,7 +492,11 @@ cogorc_downsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1,
     /* 0: loadw */
     var32 = ptr4[i];
     /* 1: select0wb */
-    var33 = (orc_uint16) var32.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var32.i;
+      var33 = _src.x2[0];
+    }
     /* 2: storeb */
     ptr0[i] = var33;
   }
@@ -518,7 +522,11 @@ _backup_cogorc_downsample_horiz_cosite_1tap (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadw */
     var32 = ptr4[i];
     /* 1: select0wb */
-    var33 = (orc_uint16) var32.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var32.i;
+      var33 = _src.x2[0];
+    }
     /* 2: storeb */
     ptr0[i] = var33;
   }
@@ -608,13 +616,25 @@ cogorc_downsample_horiz_cosite_3tap (guint8 * ORC_RESTRICT d1,
     /* 1: copyw */
     var43.i = var38.i;
     /* 2: select0wb */
-    var44 = (orc_uint16) var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var44 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var45 = ((orc_uint16) var43.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var45 = _src.x2[1];
+    }
     /* 4: loadw */
     var39 = ptr5[i];
     /* 5: select0wb */
-    var46 = (orc_uint16) var39.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var39.i;
+      var46 = _src.x2[0];
+    }
     /* 6: convubw */
     var47.i = (orc_uint8) var44;
     /* 7: convubw */
@@ -681,13 +701,25 @@ _backup_cogorc_downsample_horiz_cosite_3tap (OrcExecutor * ORC_RESTRICT ex)
     /* 1: copyw */
     var43.i = var38.i;
     /* 2: select0wb */
-    var44 = (orc_uint16) var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var44 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var45 = ((orc_uint16) var43.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var45 = _src.x2[1];
+    }
     /* 4: loadw */
     var39 = ptr5[i];
     /* 5: select0wb */
-    var46 = (orc_uint16) var39.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var39.i;
+      var46 = _src.x2[0];
+    }
     /* 6: convubw */
     var47.i = (orc_uint8) var44;
     /* 7: convubw */
@@ -818,9 +850,17 @@ cogorc_downsample_420_jpeg (guint8 * ORC_RESTRICT d1,
     /* 1: copyw */
     var40.i = var37.i;
     /* 2: select0wb */
-    var41 = (orc_uint16) var40.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.i;
+      var41 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var42 = ((orc_uint16) var40.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.i;
+      var42 = _src.x2[1];
+    }
     /* 4: avgub */
     var43 = ((orc_uint8) var41 + (orc_uint8) var42 + 1) >> 1;
     /* 5: loadw */
@@ -828,9 +868,17 @@ cogorc_downsample_420_jpeg (guint8 * ORC_RESTRICT d1,
     /* 6: copyw */
     var44.i = var38.i;
     /* 7: select0wb */
-    var45 = (orc_uint16) var44.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var45 = _src.x2[0];
+    }
     /* 8: select1wb */
-    var46 = ((orc_uint16) var44.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var46 = _src.x2[1];
+    }
     /* 9: avgub */
     var47 = ((orc_uint8) var45 + (orc_uint8) var46 + 1) >> 1;
     /* 10: avgub */
@@ -873,9 +921,17 @@ _backup_cogorc_downsample_420_jpeg (OrcExecutor * ORC_RESTRICT ex)
     /* 1: copyw */
     var40.i = var37.i;
     /* 2: select0wb */
-    var41 = (orc_uint16) var40.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.i;
+      var41 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var42 = ((orc_uint16) var40.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.i;
+      var42 = _src.x2[1];
+    }
     /* 4: avgub */
     var43 = ((orc_uint8) var41 + (orc_uint8) var42 + 1) >> 1;
     /* 5: loadw */
@@ -883,9 +939,17 @@ _backup_cogorc_downsample_420_jpeg (OrcExecutor * ORC_RESTRICT ex)
     /* 6: copyw */
     var44.i = var38.i;
     /* 7: select0wb */
-    var45 = (orc_uint16) var44.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var45 = _src.x2[0];
+    }
     /* 8: select1wb */
-    var46 = ((orc_uint16) var44.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var46 = _src.x2[1];
+    }
     /* 9: avgub */
     var47 = ((orc_uint8) var45 + (orc_uint8) var46 + 1) >> 1;
     /* 10: avgub */
@@ -1529,7 +1593,12 @@ cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1,
     /* 1: copyb */
     var35 = var33;
     /* 2: mergebw */
-    var34.i = ((orc_uint8) var35 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35;
+      _dest.x2[1] = var35;
+      var34.i = _dest.i;
+    }
     /* 3: storew */
     ptr0[i] = var34;
   }
@@ -1558,7 +1627,12 @@ _backup_cogorc_upsample_horiz_cosite_1tap (OrcExecutor * ORC_RESTRICT ex)
     /* 1: copyb */
     var35 = var33;
     /* 2: mergebw */
-    var34.i = ((orc_uint8) var35 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35;
+      _dest.x2[1] = var35;
+      var34.i = _dest.i;
+    }
     /* 3: storew */
     ptr0[i] = var34;
   }
@@ -1639,7 +1713,12 @@ cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1,
     /* 3: avgub */
     var38 = ((orc_uint8) var37 + (orc_uint8) var35 + 1) >> 1;
     /* 4: mergebw */
-    var36.i = ((orc_uint8) var37 & 0x00ff) | ((orc_uint8) var38 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37;
+      _dest.x2[1] = var38;
+      var36.i = _dest.i;
+    }
     /* 5: storew */
     ptr0[i] = var36;
   }
@@ -1676,7 +1755,12 @@ _backup_cogorc_upsample_horiz_cosite (OrcExecutor * ORC_RESTRICT ex)
     /* 3: avgub */
     var38 = ((orc_uint8) var37 + (orc_uint8) var35 + 1) >> 1;
     /* 4: mergebw */
-    var36.i = ((orc_uint8) var37 & 0x00ff) | ((orc_uint8) var38 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37;
+      _dest.x2[1] = var38;
+      var36.i = _dest.i;
+    }
     /* 5: storew */
     ptr0[i] = var36;
   }
@@ -1854,7 +1938,11 @@ orc_unpack_yuyv_y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadw */
     var32 = ptr4[i];
     /* 1: select0wb */
-    var33 = (orc_uint16) var32.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var32.i;
+      var33 = _src.x2[0];
+    }
     /* 2: storeb */
     ptr0[i] = var33;
   }
@@ -1880,7 +1968,11 @@ _backup_orc_unpack_yuyv_y (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadw */
     var32 = ptr4[i];
     /* 1: select0wb */
-    var33 = (orc_uint16) var32.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var32.i;
+      var33 = _src.x2[0];
+    }
     /* 2: storeb */
     ptr0[i] = var33;
   }
@@ -1947,9 +2039,17 @@ orc_unpack_yuyv_u (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select0lw */
-    var35.i = (orc_uint32) var33.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
     /* 2: select1wb */
-    var34 = ((orc_uint16) var35.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -1976,9 +2076,17 @@ _backup_orc_unpack_yuyv_u (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select0lw */
-    var35.i = (orc_uint32) var33.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
     /* 2: select1wb */
-    var34 = ((orc_uint16) var35.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2048,9 +2156,17 @@ orc_unpack_yuyv_v (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select1lw */
-    var35.i = ((orc_uint32) var33.i >> 16) & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[1];
+    }
     /* 2: select1wb */
-    var34 = ((orc_uint16) var35.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2077,9 +2193,17 @@ _backup_orc_unpack_yuyv_v (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select1lw */
-    var35.i = ((orc_uint32) var33.i >> 16) & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[1];
+    }
     /* 2: select1wb */
-    var34 = ((orc_uint16) var35.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2161,20 +2285,42 @@ orc_pack_yuyv (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: copyw */
     var41.i = var37.i;
     /* 2: select0wb */
-    var42 = (orc_uint16) var41.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var42 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var43 = ((orc_uint16) var41.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var43 = _src.x2[1];
+    }
     /* 4: loadb */
     var38 = ptr5[i];
     /* 5: mergebw */
-    var44.i = ((orc_uint8) var42 & 0x00ff) | ((orc_uint8) var38 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var42;
+      _dest.x2[1] = var38;
+      var44.i = _dest.i;
+    }
     /* 6: loadb */
     var39 = ptr6[i];
     /* 7: mergebw */
-    var45.i = ((orc_uint8) var43 & 0x00ff) | ((orc_uint8) var39 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43;
+      _dest.x2[1] = var39;
+      var45.i = _dest.i;
+    }
     /* 8: mergewl */
-    var40.i =
-        ((orc_uint16) var44.i & 0x0000ffff) | ((orc_uint16) var45.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var45.i;
+      var40.i = _dest.i;
+    }
     /* 9: storel */
     ptr0[i] = var40;
   }
@@ -2213,20 +2359,42 @@ _backup_orc_pack_yuyv (OrcExecutor * ORC_RESTRICT ex)
     /* 1: copyw */
     var41.i = var37.i;
     /* 2: select0wb */
-    var42 = (orc_uint16) var41.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var42 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var43 = ((orc_uint16) var41.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var43 = _src.x2[1];
+    }
     /* 4: loadb */
     var38 = ptr5[i];
     /* 5: mergebw */
-    var44.i = ((orc_uint8) var42 & 0x00ff) | ((orc_uint8) var38 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var42;
+      _dest.x2[1] = var38;
+      var44.i = _dest.i;
+    }
     /* 6: loadb */
     var39 = ptr6[i];
     /* 7: mergebw */
-    var45.i = ((orc_uint8) var43 & 0x00ff) | ((orc_uint8) var39 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43;
+      _dest.x2[1] = var39;
+      var45.i = _dest.i;
+    }
     /* 8: mergewl */
-    var40.i =
-        ((orc_uint16) var44.i & 0x0000ffff) | ((orc_uint16) var45.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var45.i;
+      var40.i = _dest.i;
+    }
     /* 9: storel */
     ptr0[i] = var40;
   }
@@ -2311,7 +2479,11 @@ orc_unpack_uyvy_y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadw */
     var32 = ptr4[i];
     /* 1: select1wb */
-    var33 = ((orc_uint16) var32.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var32.i;
+      var33 = _src.x2[1];
+    }
     /* 2: storeb */
     ptr0[i] = var33;
   }
@@ -2337,7 +2509,11 @@ _backup_orc_unpack_uyvy_y (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadw */
     var32 = ptr4[i];
     /* 1: select1wb */
-    var33 = ((orc_uint16) var32.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var32.i;
+      var33 = _src.x2[1];
+    }
     /* 2: storeb */
     ptr0[i] = var33;
   }
@@ -2404,9 +2580,17 @@ orc_unpack_uyvy_u (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select0lw */
-    var35.i = (orc_uint32) var33.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
     /* 2: select0wb */
-    var34 = (orc_uint16) var35.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[0];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2433,9 +2617,17 @@ _backup_orc_unpack_uyvy_u (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select0lw */
-    var35.i = (orc_uint32) var33.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
     /* 2: select0wb */
-    var34 = (orc_uint16) var35.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[0];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2505,9 +2697,17 @@ orc_unpack_uyvy_v (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select1lw */
-    var35.i = ((orc_uint32) var33.i >> 16) & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[1];
+    }
     /* 2: select0wb */
-    var34 = (orc_uint16) var35.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[0];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2534,9 +2734,17 @@ _backup_orc_unpack_uyvy_v (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select1lw */
-    var35.i = ((orc_uint32) var33.i >> 16) & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[1];
+    }
     /* 2: select0wb */
-    var34 = (orc_uint16) var35.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[0];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -2618,20 +2826,42 @@ orc_pack_uyvy (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: copyw */
     var41.i = var37.i;
     /* 2: select0wb */
-    var42 = (orc_uint16) var41.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var42 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var43 = ((orc_uint16) var41.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var43 = _src.x2[1];
+    }
     /* 4: loadb */
     var38 = ptr5[i];
     /* 5: mergebw */
-    var44.i = ((orc_uint8) var38 & 0x00ff) | ((orc_uint8) var42 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38;
+      _dest.x2[1] = var42;
+      var44.i = _dest.i;
+    }
     /* 6: loadb */
     var39 = ptr6[i];
     /* 7: mergebw */
-    var45.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var43 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var43;
+      var45.i = _dest.i;
+    }
     /* 8: mergewl */
-    var40.i =
-        ((orc_uint16) var44.i & 0x0000ffff) | ((orc_uint16) var45.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var45.i;
+      var40.i = _dest.i;
+    }
     /* 9: storel */
     ptr0[i] = var40;
   }
@@ -2670,20 +2900,42 @@ _backup_orc_pack_uyvy (OrcExecutor * ORC_RESTRICT ex)
     /* 1: copyw */
     var41.i = var37.i;
     /* 2: select0wb */
-    var42 = (orc_uint16) var41.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var42 = _src.x2[0];
+    }
     /* 3: select1wb */
-    var43 = ((orc_uint16) var41.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.i;
+      var43 = _src.x2[1];
+    }
     /* 4: loadb */
     var38 = ptr5[i];
     /* 5: mergebw */
-    var44.i = ((orc_uint8) var38 & 0x00ff) | ((orc_uint8) var42 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38;
+      _dest.x2[1] = var42;
+      var44.i = _dest.i;
+    }
     /* 6: loadb */
     var39 = ptr6[i];
     /* 7: mergebw */
-    var45.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var43 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var43;
+      var45.i = _dest.i;
+    }
     /* 8: mergewl */
-    var40.i =
-        ((orc_uint16) var44.i & 0x0000ffff) | ((orc_uint16) var45.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.i;
+      _dest.x2[1] = var45.i;
+      var40.i = _dest.i;
+    }
     /* 9: storel */
     ptr0[i] = var40;
   }
@@ -4439,14 +4691,28 @@ orc_pack_123x (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadb */
     var35 = ptr5[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
     /* 3: loadb */
     var36 = ptr6[i];
     /* 5: mergebw */
-    var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var40.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -4485,14 +4751,28 @@ _backup_orc_pack_123x (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var35 = ptr5[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
     /* 3: loadb */
     var36 = ptr6[i];
     /* 5: mergebw */
-    var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var40.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -4583,16 +4863,30 @@ orc_pack_x123 (guint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadb */
     var35 = ptr4[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
     /* 3: loadb */
     var36 = ptr5[i];
     /* 4: loadb */
     var37 = ptr6[i];
     /* 5: mergebw */
-    var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var40.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -4629,16 +4923,30 @@ _backup_orc_pack_x123 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var35 = ptr4[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
     /* 3: loadb */
     var36 = ptr5[i];
     /* 4: loadb */
     var37 = ptr6[i];
     /* 5: mergebw */
-    var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var40.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -4904,23 +5212,44 @@ cogorc_convert_I420_UYVY (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 1: loadb */
     var34 = ptr7[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
     /* 3: loadw */
     var35 = ptr4[i];
     /* 4: mergebw */
-    var36.x2[0] =
-        ((orc_uint8) var39.x2[0] & 0x00ff) | ((orc_uint8) var35.x2[0] << 8);
-    var36.x2[1] =
-        ((orc_uint8) var39.x2[1] & 0x00ff) | ((orc_uint8) var35.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var35.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var35.x2[1];
+      var36.x2[1] = _dest.i;
+    }
     /* 5: storel */
     ptr0[i] = var36;
     /* 6: loadw */
     var37 = ptr5[i];
     /* 7: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var39.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var39.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 8: storel */
     ptr1[i] = var38;
   }
@@ -4961,23 +5290,44 @@ _backup_cogorc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var34 = ptr7[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
     /* 3: loadw */
     var35 = ptr4[i];
     /* 4: mergebw */
-    var36.x2[0] =
-        ((orc_uint8) var39.x2[0] & 0x00ff) | ((orc_uint8) var35.x2[0] << 8);
-    var36.x2[1] =
-        ((orc_uint8) var39.x2[1] & 0x00ff) | ((orc_uint8) var35.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var35.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var35.x2[1];
+      var36.x2[1] = _dest.i;
+    }
     /* 5: storel */
     ptr0[i] = var36;
     /* 6: loadw */
     var37 = ptr5[i];
     /* 7: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var39.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var39.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 8: storel */
     ptr1[i] = var38;
   }
@@ -5073,23 +5423,44 @@ cogorc_convert_I420_YUY2 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 1: loadb */
     var34 = ptr7[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
     /* 3: loadw */
     var35 = ptr4[i];
     /* 4: mergebw */
-    var36.x2[0] =
-        ((orc_uint8) var35.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var36.x2[1] =
-        ((orc_uint8) var35.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var36.x2[1] = _dest.i;
+    }
     /* 5: storel */
     ptr0[i] = var36;
     /* 6: loadw */
     var37 = ptr5[i];
     /* 7: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 8: storel */
     ptr1[i] = var38;
   }
@@ -5130,23 +5501,44 @@ _backup_cogorc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var34 = ptr7[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var39.i = _dest.i;
+    }
     /* 3: loadw */
     var35 = ptr4[i];
     /* 4: mergebw */
-    var36.x2[0] =
-        ((orc_uint8) var35.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var36.x2[1] =
-        ((orc_uint8) var35.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var36.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var36.x2[1] = _dest.i;
+    }
     /* 5: storel */
     ptr0[i] = var36;
     /* 6: loadw */
     var37 = ptr5[i];
     /* 7: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 8: storel */
     ptr1[i] = var38;
   }
@@ -5250,23 +5642,46 @@ cogorc_convert_I420_AYUV (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 1: loadupdb */
     var43 = ptr7[i >> 1];
     /* 2: mergebw */
-    var44.i = ((orc_uint8) var42 & 0x00ff) | ((orc_uint8) var43 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var42;
+      _dest.x2[1] = var43;
+      var44.i = _dest.i;
+    }
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var45.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var45.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var45.i & 0x0000ffff) | ((orc_uint16) var44.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var44.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
     /* 9: loadb */
     var40 = ptr5[i];
     /* 10: mergebw */
-    var46.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var40 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var46.i = _dest.i;
+    }
     /* 11: mergewl */
-    var41.i =
-        ((orc_uint16) var46.i & 0x0000ffff) | ((orc_uint16) var44.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var44.i;
+      var41.i = _dest.i;
+    }
     /* 12: storel */
     ptr1[i] = var41;
   }
@@ -5315,23 +5730,46 @@ _backup_cogorc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadupdb */
     var43 = ptr7[i >> 1];
     /* 2: mergebw */
-    var44.i = ((orc_uint8) var42 & 0x00ff) | ((orc_uint8) var43 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var42;
+      _dest.x2[1] = var43;
+      var44.i = _dest.i;
+    }
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var45.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var45.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var45.i & 0x0000ffff) | ((orc_uint16) var44.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var45.i;
+      _dest.x2[1] = var44.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
     /* 9: loadb */
     var40 = ptr5[i];
     /* 10: mergebw */
-    var46.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var40 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var46.i = _dest.i;
+    }
     /* 11: mergewl */
-    var41.i =
-        ((orc_uint16) var46.i & 0x0000ffff) | ((orc_uint16) var44.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var46.i;
+      _dest.x2[1] = var44.i;
+      var41.i = _dest.i;
+    }
     /* 12: storel */
     ptr1[i] = var41;
   }
@@ -5439,27 +5877,47 @@ cogorc_convert_YUY2_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadl */
     var35 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var35.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var35.x2[0] & 0xff;
-    var39.x2[1] = (var35.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var35.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 2: storew */
     ptr0[i] = var40;
     /* 3: loadl */
     var36 = ptr5[i];
     /* 4: splitwb */
-    var41.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var42.x2[0] = var36.x2[0] & 0xff;
-    var41.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var42.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
     /* 5: storew */
     ptr1[i] = var42;
     /* 6: avgub */
     var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
     var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
     /* 7: splitwb */
-    var37 = (var43.i >> 8) & 0xff;
-    var38 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
     /* 8: storeb */
     ptr3[i] = var37;
     /* 9: storeb */
@@ -5502,27 +5960,47 @@ _backup_cogorc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var35 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var35.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var35.x2[0] & 0xff;
-    var39.x2[1] = (var35.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var35.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 2: storew */
     ptr0[i] = var40;
     /* 3: loadl */
     var36 = ptr5[i];
     /* 4: splitwb */
-    var41.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var42.x2[0] = var36.x2[0] & 0xff;
-    var41.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var42.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
     /* 5: storew */
     ptr1[i] = var42;
     /* 6: avgub */
     var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1;
     var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1;
     /* 7: splitwb */
-    var37 = (var43.i >> 8) & 0xff;
-    var38 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
     /* 8: storeb */
     ptr3[i] = var37;
     /* 9: storeb */
@@ -6078,8 +6556,12 @@ cogorc_planar_chroma_444_422 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadw */
       var34 = ptr4[i];
       /* 1: splitwb */
-      var36 = (var34.i >> 8) & 0xff;
-      var37 = var34.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var34.i;
+        var36 = _src.x2[1];
+        var37 = _src.x2[0];
+      }
       /* 2: avgub */
       var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
       /* 3: storeb */
@@ -6113,8 +6595,12 @@ _backup_cogorc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadw */
       var34 = ptr4[i];
       /* 1: splitwb */
-      var36 = (var34.i >> 8) & 0xff;
-      var37 = var34.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var34.i;
+        var36 = _src.x2[1];
+        var37 = _src.x2[0];
+      }
       /* 2: avgub */
       var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1;
       /* 3: storeb */
@@ -6207,8 +6693,12 @@ cogorc_planar_chroma_444_420 (guint8 * ORC_RESTRICT d1, int d1_stride,
       var38.x2[1] =
           ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
       /* 3: splitwb */
-      var39 = (var38.i >> 8) & 0xff;
-      var40 = var38.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var39 = _src.x2[1];
+        var40 = _src.x2[0];
+      }
       /* 4: avgub */
       var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
       /* 5: storeb */
@@ -6253,8 +6743,12 @@ _backup_cogorc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex)
       var38.x2[1] =
           ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1;
       /* 3: splitwb */
-      var39 = (var38.i >> 8) & 0xff;
-      var40 = var38.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var39 = _src.x2[1];
+        var40 = _src.x2[0];
+      }
       /* 4: avgub */
       var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1;
       /* 5: storeb */
@@ -6466,25 +6960,51 @@ cogorc_convert_YUY2_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var36 = ptr4[i];
       /* 1: splitwb */
-      var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-      var40.x2[0] = var36.x2[0] & 0xff;
-      var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-      var40.x2[1] = var36.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
       /* 3: mergebw */
-      var41.x2[0] =
-          ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var40.x2[0] << 8);
-      var41.x2[1] =
-          ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var40.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var40.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var40.x2[1];
+        var41.x2[1] = _dest.i;
+      }
       /* 4: mergewl */
-      var42.i =
-          ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var39.i;
+        _dest.x2[1] = var39.i;
+        var42.i = _dest.i;
+      }
       /* 5: mergewl */
-      var38.x2[0] =
-          ((orc_uint16) var41.
-          x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-      var38.x2[1] =
-          ((orc_uint16) var41.
-          x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storeq */
       ptr0[i] = var38;
     }
@@ -6522,25 +7042,51 @@ _backup_cogorc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var36 = ptr4[i];
       /* 1: splitwb */
-      var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-      var40.x2[0] = var36.x2[0] & 0xff;
-      var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-      var40.x2[1] = var36.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
       /* 3: mergebw */
-      var41.x2[0] =
-          ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var40.x2[0] << 8);
-      var41.x2[1] =
-          ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var40.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var40.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var40.x2[1];
+        var41.x2[1] = _dest.i;
+      }
       /* 4: mergewl */
-      var42.i =
-          ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var39.i;
+        _dest.x2[1] = var39.i;
+        var42.i = _dest.i;
+      }
       /* 5: mergewl */
-      var38.x2[0] =
-          ((orc_uint16) var41.
-          x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-      var38.x2[1] =
-          ((orc_uint16) var41.
-          x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storeq */
       ptr0[i] = var38;
     }
@@ -6632,25 +7178,51 @@ cogorc_convert_UYVY_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var36 = ptr4[i];
       /* 1: splitwb */
-      var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-      var40.x2[0] = var36.x2[0] & 0xff;
-      var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-      var40.x2[1] = var36.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
       /* 3: mergebw */
-      var41.x2[0] =
-          ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-      var41.x2[1] =
-          ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var41.x2[1] = _dest.i;
+      }
       /* 4: mergewl */
-      var42.i =
-          ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var40.i;
+        var42.i = _dest.i;
+      }
       /* 5: mergewl */
-      var38.x2[0] =
-          ((orc_uint16) var41.
-          x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-      var38.x2[1] =
-          ((orc_uint16) var41.
-          x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storeq */
       ptr0[i] = var38;
     }
@@ -6688,25 +7260,51 @@ _backup_cogorc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var36 = ptr4[i];
       /* 1: splitwb */
-      var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-      var40.x2[0] = var36.x2[0] & 0xff;
-      var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-      var40.x2[1] = var36.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var36.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var40.x2[1] = _src.x2[0];
+      }
       /* 3: mergebw */
-      var41.x2[0] =
-          ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-      var41.x2[1] =
-          ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var41.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var41.x2[1] = _dest.i;
+      }
       /* 4: mergewl */
-      var42.i =
-          ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var40.i;
+        var42.i = _dest.i;
+      }
       /* 5: mergewl */
-      var38.x2[0] =
-          ((orc_uint16) var41.
-          x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-      var38.x2[1] =
-          ((orc_uint16) var41.
-          x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[0];
+        _dest.x2[1] = var42.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.x2[1];
+        _dest.x2[1] = var42.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storeq */
       ptr0[i] = var38;
     }
@@ -6798,15 +7396,27 @@ cogorc_convert_YUY2_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var33 = ptr4[i];
       /* 1: splitwb */
-      var37.x2[0] = (var33.x2[0] >> 8) & 0xff;
-      var34.x2[0] = var33.x2[0] & 0xff;
-      var37.x2[1] = (var33.x2[1] >> 8) & 0xff;
-      var34.x2[1] = var33.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var37.x2[0] = _src.x2[1];
+        var34.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var37.x2[1] = _src.x2[1];
+        var34.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var34;
       /* 3: splitwb */
-      var35 = (var37.i >> 8) & 0xff;
-      var36 = var37.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
       /* 4: storeb */
       ptr2[i] = var35;
       /* 5: storeb */
@@ -6845,15 +7455,27 @@ _backup_cogorc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var33 = ptr4[i];
       /* 1: splitwb */
-      var37.x2[0] = (var33.x2[0] >> 8) & 0xff;
-      var34.x2[0] = var33.x2[0] & 0xff;
-      var37.x2[1] = (var33.x2[1] >> 8) & 0xff;
-      var34.x2[1] = var33.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var37.x2[0] = _src.x2[1];
+        var34.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var37.x2[1] = _src.x2[1];
+        var34.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var34;
       /* 3: splitwb */
-      var35 = (var37.i >> 8) & 0xff;
-      var36 = var37.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
       /* 4: storeb */
       ptr2[i] = var35;
       /* 5: storeb */
@@ -6946,15 +7568,27 @@ cogorc_convert_UYVY_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var33 = ptr4[i];
       /* 1: splitwb */
-      var34.x2[0] = (var33.x2[0] >> 8) & 0xff;
-      var37.x2[0] = var33.x2[0] & 0xff;
-      var34.x2[1] = (var33.x2[1] >> 8) & 0xff;
-      var37.x2[1] = var33.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var34.x2[0] = _src.x2[1];
+        var37.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var34.x2[1] = _src.x2[1];
+        var37.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var34;
       /* 3: splitwb */
-      var35 = (var37.i >> 8) & 0xff;
-      var36 = var37.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
       /* 4: storeb */
       ptr2[i] = var35;
       /* 5: storeb */
@@ -6993,15 +7627,27 @@ _backup_cogorc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var33 = ptr4[i];
       /* 1: splitwb */
-      var34.x2[0] = (var33.x2[0] >> 8) & 0xff;
-      var37.x2[0] = var33.x2[0] & 0xff;
-      var34.x2[1] = (var33.x2[1] >> 8) & 0xff;
-      var37.x2[1] = var33.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[0];
+        var34.x2[0] = _src.x2[1];
+        var37.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var33.x2[1];
+        var34.x2[1] = _src.x2[1];
+        var37.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var34;
       /* 3: splitwb */
-      var35 = (var37.i >> 8) & 0xff;
-      var36 = var37.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var37.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
       /* 4: storeb */
       ptr2[i] = var35;
       /* 5: storeb */
@@ -7096,15 +7742,27 @@ cogorc_convert_YUY2_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var35 = ptr4[i];
       /* 1: splitwb */
-      var39.x2[0] = (var35.x2[0] >> 8) & 0xff;
-      var36.x2[0] = var35.x2[0] & 0xff;
-      var39.x2[1] = (var35.x2[1] >> 8) & 0xff;
-      var36.x2[1] = var35.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var36.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var36.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var36;
       /* 3: splitwb */
-      var40 = (var39.i >> 8) & 0xff;
-      var41 = var39.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
       /* 4: splatbw */
       var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
       /* 5: storew */
@@ -7149,15 +7807,27 @@ _backup_cogorc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var35 = ptr4[i];
       /* 1: splitwb */
-      var39.x2[0] = (var35.x2[0] >> 8) & 0xff;
-      var36.x2[0] = var35.x2[0] & 0xff;
-      var39.x2[1] = (var35.x2[1] >> 8) & 0xff;
-      var36.x2[1] = var35.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var36.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var39.x2[1] = _src.x2[1];
+        var36.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var36;
       /* 3: splitwb */
-      var40 = (var39.i >> 8) & 0xff;
-      var41 = var39.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
       /* 4: splatbw */
       var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
       /* 5: storew */
@@ -7262,15 +7932,27 @@ cogorc_convert_UYVY_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var35 = ptr4[i];
       /* 1: splitwb */
-      var36.x2[0] = (var35.x2[0] >> 8) & 0xff;
-      var39.x2[0] = var35.x2[0] & 0xff;
-      var36.x2[1] = (var35.x2[1] >> 8) & 0xff;
-      var39.x2[1] = var35.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var36.x2[0] = _src.x2[1];
+        var39.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var36.x2[1] = _src.x2[1];
+        var39.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var36;
       /* 3: splitwb */
-      var40 = (var39.i >> 8) & 0xff;
-      var41 = var39.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
       /* 4: splatbw */
       var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
       /* 5: storew */
@@ -7315,15 +7997,27 @@ _backup_cogorc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var35 = ptr4[i];
       /* 1: splitwb */
-      var36.x2[0] = (var35.x2[0] >> 8) & 0xff;
-      var39.x2[0] = var35.x2[0] & 0xff;
-      var36.x2[1] = (var35.x2[1] >> 8) & 0xff;
-      var39.x2[1] = var35.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[0];
+        var36.x2[0] = _src.x2[1];
+        var39.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var35.x2[1];
+        var36.x2[1] = _src.x2[1];
+        var39.x2[1] = _src.x2[0];
+      }
       /* 2: storew */
       ptr0[i] = var36;
       /* 3: splitwb */
-      var40 = (var39.i >> 8) & 0xff;
-      var41 = var39.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var40 = _src.x2[1];
+        var41 = _src.x2[0];
+      }
       /* 4: splatbw */
       var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff);
       /* 5: storew */
@@ -7432,27 +8126,47 @@ cogorc_convert_UYVY_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadl */
     var35 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var35.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var35.x2[0] & 0xff;
-    var39.x2[1] = (var35.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var35.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 2: storew */
     ptr0[i] = var39;
     /* 3: loadl */
     var36 = ptr5[i];
     /* 4: splitwb */
-    var41.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var42.x2[0] = var36.x2[0] & 0xff;
-    var41.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var42.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
     /* 5: storew */
     ptr1[i] = var41;
     /* 6: avgub */
     var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
     var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
     /* 7: splitwb */
-    var37 = (var43.i >> 8) & 0xff;
-    var38 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
     /* 8: storeb */
     ptr3[i] = var37;
     /* 9: storeb */
@@ -7495,27 +8209,47 @@ _backup_cogorc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var35 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var35.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var35.x2[0] & 0xff;
-    var39.x2[1] = (var35.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var35.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var35.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 2: storew */
     ptr0[i] = var39;
     /* 3: loadl */
     var36 = ptr5[i];
     /* 4: splitwb */
-    var41.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var42.x2[0] = var36.x2[0] & 0xff;
-    var41.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var42.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var41.x2[0] = _src.x2[1];
+      var42.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var41.x2[1] = _src.x2[1];
+      var42.x2[1] = _src.x2[0];
+    }
     /* 5: storew */
     ptr1[i] = var41;
     /* 6: avgub */
     var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
     var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
     /* 7: splitwb */
-    var37 = (var43.i >> 8) & 0xff;
-    var38 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
     /* 8: storeb */
     ptr3[i] = var37;
     /* 9: storeb */
@@ -7633,25 +8367,57 @@ cogorc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadq */
       var40 = ptr4[i];
       /* 1: splitlw */
-      var46.x2[0] = (var40.x2[0] >> 16) & 0xffff;
-      var47.x2[0] = var40.x2[0] & 0xffff;
-      var46.x2[1] = (var40.x2[1] >> 16) & 0xffff;
-      var47.x2[1] = var40.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[0];
+        var46.x2[0] = _src.x2[1];
+        var47.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[1];
+        var46.x2[1] = _src.x2[1];
+        var47.x2[1] = _src.x2[0];
+      }
       /* 2: select1wb */
-      var41.x2[0] = ((orc_uint16) var47.x2[0] >> 8) & 0xff;
-      var41.x2[1] = ((orc_uint16) var47.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[0];
+        var41.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[1];
+        var41.x2[1] = _src.x2[1];
+      }
       /* 3: storew */
       ptr0[i] = var41;
       /* 4: loadq */
       var42 = ptr5[i];
       /* 5: splitlw */
-      var48.x2[0] = (var42.x2[0] >> 16) & 0xffff;
-      var49.x2[0] = var42.x2[0] & 0xffff;
-      var48.x2[1] = (var42.x2[1] >> 16) & 0xffff;
-      var49.x2[1] = var42.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[0];
+        var48.x2[0] = _src.x2[1];
+        var49.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[1];
+        var48.x2[1] = _src.x2[1];
+        var49.x2[1] = _src.x2[0];
+      }
       /* 6: select1wb */
-      var43.x2[0] = ((orc_uint16) var49.x2[0] >> 8) & 0xff;
-      var43.x2[1] = ((orc_uint16) var49.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[0];
+        var43.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[1];
+        var43.x2[1] = _src.x2[1];
+      }
       /* 7: storew */
       ptr1[i] = var43;
       /* 8: avgub */
@@ -7664,20 +8430,36 @@ cogorc_convert_AYUV_I420 (guint8 * ORC_RESTRICT d1, int d1_stride,
       var50.x4[3] =
           ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
       /* 9: splitwb */
-      var51.x2[0] = (var50.x2[0] >> 8) & 0xff;
-      var52.x2[0] = var50.x2[0] & 0xff;
-      var51.x2[1] = (var50.x2[1] >> 8) & 0xff;
-      var52.x2[1] = var50.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[0];
+        var51.x2[0] = _src.x2[1];
+        var52.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[1];
+        var51.x2[1] = _src.x2[1];
+        var52.x2[1] = _src.x2[0];
+      }
       /* 10: splitwb */
-      var53 = (var52.i >> 8) & 0xff;
-      var54 = var52.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var52.i;
+        var53 = _src.x2[1];
+        var54 = _src.x2[0];
+      }
       /* 11: avgub */
       var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
       /* 12: storeb */
       ptr2[i] = var44;
       /* 13: splitwb */
-      var55 = (var51.i >> 8) & 0xff;
-      var56 = var51.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var51.i;
+        var55 = _src.x2[1];
+        var56 = _src.x2[0];
+      }
       /* 14: avgub */
       var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
       /* 15: storeb */
@@ -7732,25 +8514,57 @@ _backup_cogorc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadq */
       var40 = ptr4[i];
       /* 1: splitlw */
-      var46.x2[0] = (var40.x2[0] >> 16) & 0xffff;
-      var47.x2[0] = var40.x2[0] & 0xffff;
-      var46.x2[1] = (var40.x2[1] >> 16) & 0xffff;
-      var47.x2[1] = var40.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[0];
+        var46.x2[0] = _src.x2[1];
+        var47.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var40.x2[1];
+        var46.x2[1] = _src.x2[1];
+        var47.x2[1] = _src.x2[0];
+      }
       /* 2: select1wb */
-      var41.x2[0] = ((orc_uint16) var47.x2[0] >> 8) & 0xff;
-      var41.x2[1] = ((orc_uint16) var47.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[0];
+        var41.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var47.x2[1];
+        var41.x2[1] = _src.x2[1];
+      }
       /* 3: storew */
       ptr0[i] = var41;
       /* 4: loadq */
       var42 = ptr5[i];
       /* 5: splitlw */
-      var48.x2[0] = (var42.x2[0] >> 16) & 0xffff;
-      var49.x2[0] = var42.x2[0] & 0xffff;
-      var48.x2[1] = (var42.x2[1] >> 16) & 0xffff;
-      var49.x2[1] = var42.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[0];
+        var48.x2[0] = _src.x2[1];
+        var49.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union32 _src;
+        _src.i = var42.x2[1];
+        var48.x2[1] = _src.x2[1];
+        var49.x2[1] = _src.x2[0];
+      }
       /* 6: select1wb */
-      var43.x2[0] = ((orc_uint16) var49.x2[0] >> 8) & 0xff;
-      var43.x2[1] = ((orc_uint16) var49.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[0];
+        var43.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var49.x2[1];
+        var43.x2[1] = _src.x2[1];
+      }
       /* 7: storew */
       ptr1[i] = var43;
       /* 8: avgub */
@@ -7763,20 +8577,36 @@ _backup_cogorc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex)
       var50.x4[3] =
           ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1;
       /* 9: splitwb */
-      var51.x2[0] = (var50.x2[0] >> 8) & 0xff;
-      var52.x2[0] = var50.x2[0] & 0xff;
-      var51.x2[1] = (var50.x2[1] >> 8) & 0xff;
-      var52.x2[1] = var50.x2[1] & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[0];
+        var51.x2[0] = _src.x2[1];
+        var52.x2[0] = _src.x2[0];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var50.x2[1];
+        var51.x2[1] = _src.x2[1];
+        var52.x2[1] = _src.x2[0];
+      }
       /* 10: splitwb */
-      var53 = (var52.i >> 8) & 0xff;
-      var54 = var52.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var52.i;
+        var53 = _src.x2[1];
+        var54 = _src.x2[0];
+      }
       /* 11: avgub */
       var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1;
       /* 12: storeb */
       ptr2[i] = var44;
       /* 13: splitwb */
-      var55 = (var51.i >> 8) & 0xff;
-      var56 = var51.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var51.i;
+        var55 = _src.x2[1];
+        var56 = _src.x2[0];
+      }
       /* 14: avgub */
       var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1;
       /* 15: storeb */
@@ -7898,26 +8728,54 @@ cogorc_convert_AYUV_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadq */
       var37 = ptr4[i];
       /* 1: splitlw */
-      var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-      var40.x2[0] = var37.x2[0] & 0xffff;
-      var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-      var40.x2[1] = var37.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.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];
+      }
       /* 2: splitlw */
-      var41.i = (var39.i >> 16) & 0xffff;
-      var42.i = var39.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.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 */
-      var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-      var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
       /* 5: mergebw */
-      var38.x2[0] =
-          ((orc_uint8) var44.x2[0] & 0x00ff) | ((orc_uint8) var43.x2[0] << 8);
-      var38.x2[1] =
-          ((orc_uint8) var44.x2[1] & 0x00ff) | ((orc_uint8) var43.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storel */
       ptr0[i] = var38;
     }
@@ -7953,26 +8811,54 @@ _backup_cogorc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadq */
       var37 = ptr4[i];
       /* 1: splitlw */
-      var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-      var40.x2[0] = var37.x2[0] & 0xffff;
-      var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-      var40.x2[1] = var37.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.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];
+      }
       /* 2: splitlw */
-      var41.i = (var39.i >> 16) & 0xffff;
-      var42.i = var39.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.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 */
-      var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-      var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
       /* 5: mergebw */
-      var38.x2[0] =
-          ((orc_uint8) var44.x2[0] & 0x00ff) | ((orc_uint8) var43.x2[0] << 8);
-      var38.x2[1] =
-          ((orc_uint8) var44.x2[1] & 0x00ff) | ((orc_uint8) var43.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var44.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storel */
       ptr0[i] = var38;
     }
@@ -8064,26 +8950,54 @@ cogorc_convert_AYUV_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadq */
       var37 = ptr4[i];
       /* 1: splitlw */
-      var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-      var40.x2[0] = var37.x2[0] & 0xffff;
-      var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-      var40.x2[1] = var37.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.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];
+      }
       /* 2: splitlw */
-      var41.i = (var39.i >> 16) & 0xffff;
-      var42.i = var39.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.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 */
-      var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-      var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
       /* 5: mergebw */
-      var38.x2[0] =
-          ((orc_uint8) var43.x2[0] & 0x00ff) | ((orc_uint8) var44.x2[0] << 8);
-      var38.x2[1] =
-          ((orc_uint8) var43.x2[1] & 0x00ff) | ((orc_uint8) var44.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var44.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var44.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storel */
       ptr0[i] = var38;
     }
@@ -8119,26 +9033,54 @@ _backup_cogorc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadq */
       var37 = ptr4[i];
       /* 1: splitlw */
-      var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-      var40.x2[0] = var37.x2[0] & 0xffff;
-      var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-      var40.x2[1] = var37.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var37.x2[0];
+        var39.x2[0] = _src.x2[1];
+        var40.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];
+      }
       /* 2: splitlw */
-      var41.i = (var39.i >> 16) & 0xffff;
-      var42.i = var39.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var39.i;
+        var41.i = _src.x2[1];
+        var42.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 */
-      var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-      var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[0];
+        var44.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var40.x2[1];
+        var44.x2[1] = _src.x2[1];
+      }
       /* 5: mergebw */
-      var38.x2[0] =
-          ((orc_uint8) var43.x2[0] & 0x00ff) | ((orc_uint8) var44.x2[0] << 8);
-      var38.x2[1] =
-          ((orc_uint8) var43.x2[1] & 0x00ff) | ((orc_uint8) var44.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var44.x2[0];
+        var38.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var44.x2[1];
+        var38.x2[1] = _dest.i;
+      }
       /* 6: storel */
       ptr0[i] = var38;
     }
@@ -8236,28 +9178,52 @@ cogorc_convert_AYUV_Y42B (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadq */
       var36 = ptr4[i];
       /* 1: splitlw */
-      var40.x2[0] = (var36.x2[0] >> 16) & 0xffff;
-      var41.x2[0] = var36.x2[0] & 0xffff;
-      var40.x2[1] = (var36.x2[1] >> 16) & 0xffff;
-      var41.x2[1] = var36.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var36.x2[0];
+        var40.x2[0] = _src.x2[1];
+        var41.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];
+      }
       /* 2: splitlw */
-      var42.i = (var40.i >> 16) & 0xffff;
-      var43.i = var40.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var42.i = _src.x2[1];
+        var43.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 */
-      var37 = (var44.i >> 8) & 0xff;
-      var38 = var44.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var44.i;
+        var37 = _src.x2[1];
+        var38 = _src.x2[0];
+      }
       /* 5: storeb */
       ptr2[i] = var37;
       /* 6: storeb */
       ptr1[i] = var38;
       /* 7: select1wb */
-      var39.x2[0] = ((orc_uint16) var41.x2[0] >> 8) & 0xff;
-      var39.x2[1] = ((orc_uint16) var41.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[0];
+        var39.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[1];
+        var39.x2[1] = _src.x2[1];
+      }
       /* 8: storew */
       ptr0[i] = var39;
     }
@@ -8298,28 +9264,52 @@ _backup_cogorc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadq */
       var36 = ptr4[i];
       /* 1: splitlw */
-      var40.x2[0] = (var36.x2[0] >> 16) & 0xffff;
-      var41.x2[0] = var36.x2[0] & 0xffff;
-      var40.x2[1] = (var36.x2[1] >> 16) & 0xffff;
-      var41.x2[1] = var36.x2[1] & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var36.x2[0];
+        var40.x2[0] = _src.x2[1];
+        var41.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];
+      }
       /* 2: splitlw */
-      var42.i = (var40.i >> 16) & 0xffff;
-      var43.i = var40.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var42.i = _src.x2[1];
+        var43.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 */
-      var37 = (var44.i >> 8) & 0xff;
-      var38 = var44.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var44.i;
+        var37 = _src.x2[1];
+        var38 = _src.x2[0];
+      }
       /* 5: storeb */
       ptr2[i] = var37;
       /* 6: storeb */
       ptr1[i] = var38;
       /* 7: select1wb */
-      var39.x2[0] = ((orc_uint16) var41.x2[0] >> 8) & 0xff;
-      var39.x2[1] = ((orc_uint16) var41.x2[1] >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[0];
+        var39.x2[0] = _src.x2[1];
+      }
+      {
+        orc_union16 _src;
+        _src.i = var41.x2[1];
+        var39.x2[1] = _src.x2[1];
+      }
       /* 8: storew */
       ptr0[i] = var39;
     }
@@ -8420,17 +9410,29 @@ cogorc_convert_AYUV_Y444 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 0: loadl */
       var34 = ptr4[i];
       /* 1: splitlw */
-      var38.i = (var34.i >> 16) & 0xffff;
-      var39.i = var34.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var34.i;
+        var38.i = _src.x2[1];
+        var39.i = _src.x2[0];
+      }
       /* 2: splitwb */
-      var35 = (var38.i >> 8) & 0xff;
-      var36 = var38.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
       /* 3: storeb */
       ptr2[i] = var35;
       /* 4: storeb */
       ptr1[i] = var36;
       /* 5: select1wb */
-      var37 = ((orc_uint16) var39.i >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var37 = _src.x2[1];
+      }
       /* 6: storeb */
       ptr0[i] = var37;
     }
@@ -8468,17 +9470,29 @@ _backup_cogorc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex)
       /* 0: loadl */
       var34 = ptr4[i];
       /* 1: splitlw */
-      var38.i = (var34.i >> 16) & 0xffff;
-      var39.i = var34.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var34.i;
+        var38.i = _src.x2[1];
+        var39.i = _src.x2[0];
+      }
       /* 2: splitwb */
-      var35 = (var38.i >> 8) & 0xff;
-      var36 = var38.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var38.i;
+        var35 = _src.x2[1];
+        var36 = _src.x2[0];
+      }
       /* 3: storeb */
       ptr2[i] = var35;
       /* 4: storeb */
       ptr1[i] = var36;
       /* 5: select1wb */
-      var37 = ((orc_uint16) var39.i >> 8) & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var39.i;
+        var37 = _src.x2[1];
+      }
       /* 6: storeb */
       ptr0[i] = var37;
     }
@@ -8575,14 +9589,27 @@ cogorc_convert_Y42B_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 1: loadb */
       var34 = ptr6[i];
       /* 2: mergebw */
-      var37.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
       /* 3: loadw */
       var35 = ptr4[i];
       /* 4: mergebw */
-      var36.x2[0] =
-          ((orc_uint8) var35.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-      var36.x2[1] =
-          ((orc_uint8) var35.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var36.x2[1] = _dest.i;
+      }
       /* 5: storel */
       ptr0[i] = var36;
     }
@@ -8621,14 +9648,27 @@ _backup_cogorc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex)
       /* 1: loadb */
       var34 = ptr6[i];
       /* 2: mergebw */
-      var37.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
       /* 3: loadw */
       var35 = ptr4[i];
       /* 4: mergebw */
-      var36.x2[0] =
-          ((orc_uint8) var35.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-      var36.x2[1] =
-          ((orc_uint8) var35.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var35.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var36.x2[1] = _dest.i;
+      }
       /* 5: storel */
       ptr0[i] = var36;
     }
@@ -8723,14 +9763,27 @@ cogorc_convert_Y42B_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 1: loadb */
       var34 = ptr6[i];
       /* 2: mergebw */
-      var37.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
       /* 3: loadw */
       var35 = ptr4[i];
       /* 4: mergebw */
-      var36.x2[0] =
-          ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var35.x2[0] << 8);
-      var36.x2[1] =
-          ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var35.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var35.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var35.x2[1];
+        var36.x2[1] = _dest.i;
+      }
       /* 5: storel */
       ptr0[i] = var36;
     }
@@ -8769,14 +9822,27 @@ _backup_cogorc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex)
       /* 1: loadb */
       var34 = ptr6[i];
       /* 2: mergebw */
-      var37.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var33;
+        _dest.x2[1] = var34;
+        var37.i = _dest.i;
+      }
       /* 3: loadw */
       var35 = ptr4[i];
       /* 4: mergebw */
-      var36.x2[0] =
-          ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var35.x2[0] << 8);
-      var36.x2[1] =
-          ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var35.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[0];
+        _dest.x2[1] = var35.x2[0];
+        var36.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var37.x2[1];
+        _dest.x2[1] = var35.x2[1];
+        var36.x2[1] = _dest.i;
+      }
       /* 5: storel */
       ptr0[i] = var36;
     }
@@ -8877,24 +9943,47 @@ cogorc_convert_Y42B_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 1: loadb */
       var37 = ptr6[i];
       /* 2: mergebw */
-      var41.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var41.i = _dest.i;
+      }
       /* 4: loadw */
       var39 = ptr4[i];
       /* 5: mergebw */
-      var42.x2[0] =
-          ((orc_uint8) var38.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-      var42.x2[1] =
-          ((orc_uint8) var38.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var42.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var42.x2[1] = _dest.i;
+      }
       /* 6: mergewl */
-      var43.i =
-          ((orc_uint16) var41.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.i;
+        _dest.x2[1] = var41.i;
+        var43.i = _dest.i;
+      }
       /* 7: mergewl */
-      var40.x2[0] =
-          ((orc_uint16) var42.
-          x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-      var40.x2[1] =
-          ((orc_uint16) var42.
-          x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var40.x2[1] = _dest.i;
+      }
       /* 8: storeq */
       ptr0[i] = var40;
     }
@@ -8939,24 +10028,47 @@ _backup_cogorc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex)
       /* 1: loadb */
       var37 = ptr6[i];
       /* 2: mergebw */
-      var41.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var41.i = _dest.i;
+      }
       /* 4: loadw */
       var39 = ptr4[i];
       /* 5: mergebw */
-      var42.x2[0] =
-          ((orc_uint8) var38.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-      var42.x2[1] =
-          ((orc_uint8) var38.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var39.x2[0];
+        var42.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var39.x2[1];
+        var42.x2[1] = _dest.i;
+      }
       /* 6: mergewl */
-      var43.i =
-          ((orc_uint16) var41.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var41.i;
+        _dest.x2[1] = var41.i;
+        var43.i = _dest.i;
+      }
       /* 7: mergewl */
-      var40.x2[0] =
-          ((orc_uint16) var42.
-          x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-      var40.x2[1] =
-          ((orc_uint16) var42.
-          x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var42.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var40.x2[1] = _dest.i;
+      }
       /* 8: storeq */
       ptr0[i] = var40;
     }
@@ -9062,13 +10174,25 @@ cogorc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 1: loadw */
       var37 = ptr6[i];
       /* 2: mergebw */
-      var40.x2[0] =
-          ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-      var40.x2[1] =
-          ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
       /* 3: splitlw */
-      var41.i = (var40.i >> 16) & 0xffff;
-      var42.i = var40.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
       /* 4: avgub */
       var43.x2[0] =
           ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
@@ -9077,10 +10201,18 @@ cogorc_convert_Y444_YUY2 (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 5: loadw */
       var38 = ptr4[i];
       /* 6: mergebw */
-      var39.x2[0] =
-          ((orc_uint8) var38.x2[0] & 0x00ff) | ((orc_uint8) var43.x2[0] << 8);
-      var39.x2[1] =
-          ((orc_uint8) var38.x2[1] & 0x00ff) | ((orc_uint8) var43.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var39.x2[1] = _dest.i;
+      }
       /* 7: storel */
       ptr0[i] = var39;
     }
@@ -9122,13 +10254,25 @@ _backup_cogorc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
       /* 1: loadw */
       var37 = ptr6[i];
       /* 2: mergebw */
-      var40.x2[0] =
-          ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-      var40.x2[1] =
-          ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
       /* 3: splitlw */
-      var41.i = (var40.i >> 16) & 0xffff;
-      var42.i = var40.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
       /* 4: avgub */
       var43.x2[0] =
           ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
@@ -9137,10 +10281,18 @@ _backup_cogorc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex)
       /* 5: loadw */
       var38 = ptr4[i];
       /* 6: mergebw */
-      var39.x2[0] =
-          ((orc_uint8) var38.x2[0] & 0x00ff) | ((orc_uint8) var43.x2[0] << 8);
-      var39.x2[1] =
-          ((orc_uint8) var38.x2[1] & 0x00ff) | ((orc_uint8) var43.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[0];
+        _dest.x2[1] = var43.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var38.x2[1];
+        _dest.x2[1] = var43.x2[1];
+        var39.x2[1] = _dest.i;
+      }
       /* 7: storel */
       ptr0[i] = var39;
     }
@@ -9245,13 +10397,25 @@ cogorc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 1: loadw */
       var37 = ptr6[i];
       /* 2: mergebw */
-      var40.x2[0] =
-          ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-      var40.x2[1] =
-          ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
       /* 3: splitlw */
-      var41.i = (var40.i >> 16) & 0xffff;
-      var42.i = var40.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
       /* 4: avgub */
       var43.x2[0] =
           ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
@@ -9260,10 +10424,18 @@ cogorc_convert_Y444_UYVY (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 5: loadw */
       var38 = ptr4[i];
       /* 6: mergebw */
-      var39.x2[0] =
-          ((orc_uint8) var43.x2[0] & 0x00ff) | ((orc_uint8) var38.x2[0] << 8);
-      var39.x2[1] =
-          ((orc_uint8) var43.x2[1] & 0x00ff) | ((orc_uint8) var38.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var38.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var38.x2[1];
+        var39.x2[1] = _dest.i;
+      }
       /* 7: storel */
       ptr0[i] = var39;
     }
@@ -9305,13 +10477,25 @@ _backup_cogorc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
       /* 1: loadw */
       var37 = ptr6[i];
       /* 2: mergebw */
-      var40.x2[0] =
-          ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-      var40.x2[1] =
-          ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[0];
+        _dest.x2[1] = var37.x2[0];
+        var40.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36.x2[1];
+        _dest.x2[1] = var37.x2[1];
+        var40.x2[1] = _dest.i;
+      }
       /* 3: splitlw */
-      var41.i = (var40.i >> 16) & 0xffff;
-      var42.i = var40.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var40.i;
+        var41.i = _src.x2[1];
+        var42.i = _src.x2[0];
+      }
       /* 4: avgub */
       var43.x2[0] =
           ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
@@ -9320,10 +10504,18 @@ _backup_cogorc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex)
       /* 5: loadw */
       var38 = ptr4[i];
       /* 6: mergebw */
-      var39.x2[0] =
-          ((orc_uint8) var43.x2[0] & 0x00ff) | ((orc_uint8) var38.x2[0] << 8);
-      var39.x2[1] =
-          ((orc_uint8) var43.x2[1] & 0x00ff) | ((orc_uint8) var38.x2[1] << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[0];
+        _dest.x2[1] = var38.x2[0];
+        var39.x2[0] = _dest.i;
+      }
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var43.x2[1];
+        _dest.x2[1] = var38.x2[1];
+        var39.x2[1] = _dest.i;
+      }
       /* 7: storel */
       ptr0[i] = var39;
     }
@@ -9429,14 +10621,28 @@ cogorc_convert_Y444_AYUV (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 1: loadb */
       var35 = ptr6[i];
       /* 2: mergebw */
-      var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var34;
+        _dest.x2[1] = var35;
+        var39.i = _dest.i;
+      }
       /* 4: loadb */
       var37 = ptr4[i];
       /* 5: mergebw */
-      var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var40.i = _dest.i;
+      }
       /* 6: mergewl */
-      var38.i =
-          ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var39.i;
+        var38.i = _dest.i;
+      }
       /* 7: storel */
       ptr0[i] = var38;
     }
@@ -9479,14 +10685,28 @@ _backup_cogorc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex)
       /* 1: loadb */
       var35 = ptr6[i];
       /* 2: mergebw */
-      var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var34;
+        _dest.x2[1] = var35;
+        var39.i = _dest.i;
+      }
       /* 4: loadb */
       var37 = ptr4[i];
       /* 5: mergebw */
-      var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var36;
+        _dest.x2[1] = var37;
+        var40.i = _dest.i;
+      }
       /* 6: mergewl */
-      var38.i =
-          ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var40.i;
+        _dest.x2[1] = var39.i;
+        var38.i = _dest.i;
+      }
       /* 7: storel */
       ptr0[i] = var38;
     }
@@ -9642,14 +10862,26 @@ cogorc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -9703,12 +10935,26 @@ cogorc_convert_AYUV_ARGB (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var61 & 0x00ff) | ((orc_uint8) var87 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var61;
+        _dest.x2[1] = var87;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var88 & 0x00ff) | ((orc_uint8) var89 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var88;
+        _dest.x2[1] = var89;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -9811,14 +11057,26 @@ _backup_cogorc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -9872,12 +11130,26 @@ _backup_cogorc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex)
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var61 & 0x00ff) | ((orc_uint8) var87 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var61;
+        _dest.x2[1] = var87;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var88 & 0x00ff) | ((orc_uint8) var89 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var88;
+        _dest.x2[1] = var89;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -10112,14 +11384,26 @@ cogorc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -10173,12 +11457,26 @@ cogorc_convert_AYUV_BGRA (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var89 & 0x00ff) | ((orc_uint8) var88 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var89;
+        _dest.x2[1] = var88;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var87 & 0x00ff) | ((orc_uint8) var61 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var87;
+        _dest.x2[1] = var61;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -10281,14 +11579,26 @@ _backup_cogorc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -10342,12 +11652,26 @@ _backup_cogorc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex)
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var89 & 0x00ff) | ((orc_uint8) var88 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var89;
+        _dest.x2[1] = var88;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var87 & 0x00ff) | ((orc_uint8) var61 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var87;
+        _dest.x2[1] = var61;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -10582,14 +11906,26 @@ cogorc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -10643,12 +11979,26 @@ cogorc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var61 & 0x00ff) | ((orc_uint8) var89 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var61;
+        _dest.x2[1] = var89;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var88 & 0x00ff) | ((orc_uint8) var87 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var88;
+        _dest.x2[1] = var87;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -10751,14 +12101,26 @@ _backup_cogorc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -10812,12 +12174,26 @@ _backup_cogorc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex)
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var61 & 0x00ff) | ((orc_uint8) var89 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var61;
+        _dest.x2[1] = var89;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var88 & 0x00ff) | ((orc_uint8) var87 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var88;
+        _dest.x2[1] = var87;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -11052,14 +12428,26 @@ cogorc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -11113,12 +12501,26 @@ cogorc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride,
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var87 & 0x00ff) | ((orc_uint8) var88 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var87;
+        _dest.x2[1] = var88;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var89 & 0x00ff) | ((orc_uint8) var61 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var89;
+        _dest.x2[1] = var61;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -11221,14 +12623,26 @@ _backup_cogorc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
       var57.x4[2] = var48.x4[2] - var49.x4[2];
       var57.x4[3] = var48.x4[3] - var49.x4[3];
       /* 3: splitlw */
-      var58.i = (var57.i >> 16) & 0xffff;
-      var59.i = var57.i & 0xffff;
+      {
+        orc_union32 _src;
+        _src.i = var57.i;
+        var58.i = _src.x2[1];
+        var59.i = _src.x2[0];
+      }
       /* 4: splitwb */
-      var60 = (var59.i >> 8) & 0xff;
-      var61 = var59.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var59.i;
+        var60 = _src.x2[1];
+        var61 = _src.x2[0];
+      }
       /* 5: splitwb */
-      var62 = (var58.i >> 8) & 0xff;
-      var63 = var58.i & 0xff;
+      {
+        orc_union16 _src;
+        _src.i = var58.i;
+        var62 = _src.x2[1];
+        var63 = _src.x2[0];
+      }
       /* 6: convsbw */
       var64.i = var60;
       /* 7: convsbw */
@@ -11282,12 +12696,26 @@ _backup_cogorc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex)
       /* 36: convssswb */
       var89 = ORC_CLAMP_SB (var79.i);
       /* 37: mergebw */
-      var90.i = ((orc_uint8) var87 & 0x00ff) | ((orc_uint8) var88 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var87;
+        _dest.x2[1] = var88;
+        var90.i = _dest.i;
+      }
       /* 38: mergebw */
-      var91.i = ((orc_uint8) var89 & 0x00ff) | ((orc_uint8) var61 << 8);
+      {
+        orc_union16 _dest;
+        _dest.x2[0] = var89;
+        _dest.x2[1] = var61;
+        var91.i = _dest.i;
+      }
       /* 39: mergewl */
-      var92.i =
-          ((orc_uint16) var90.i & 0x0000ffff) | ((orc_uint16) var91.i << 16);
+      {
+        orc_union32 _dest;
+        _dest.x2[0] = var90.i;
+        _dest.x2[1] = var91.i;
+        var92.i = _dest.i;
+      }
       /* 41: addb */
       var56.x4[0] = var92.x4[0] + var55.x4[0];
       var56.x4[1] = var92.x4[1] + var55.x4[1];
@@ -11590,12 +13018,26 @@ cogorc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1,
     /* 39: convssswb */
     var87 = ORC_CLAMP_SB (var77.i);
     /* 40: mergebw */
-    var88.i = ((orc_uint8) var87 & 0x00ff) | ((orc_uint8) var86 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var87;
+      _dest.x2[1] = var86;
+      var88.i = _dest.i;
+    }
     /* 42: mergebw */
-    var89.i = ((orc_uint8) var85 & 0x00ff) | ((orc_uint8) var54 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var85;
+      _dest.x2[1] = var54;
+      var89.i = _dest.i;
+    }
     /* 43: mergewl */
-    var90.i =
-        ((orc_uint16) var88.i & 0x0000ffff) | ((orc_uint16) var89.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var88.i;
+      _dest.x2[1] = var89.i;
+      var90.i = _dest.i;
+    }
     /* 45: addb */
     var56.x4[0] = var90.x4[0] + var55.x4[0];
     var56.x4[1] = var90.x4[1] + var55.x4[1];
@@ -11763,12 +13205,26 @@ _backup_cogorc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex)
     /* 39: convssswb */
     var87 = ORC_CLAMP_SB (var77.i);
     /* 40: mergebw */
-    var88.i = ((orc_uint8) var87 & 0x00ff) | ((orc_uint8) var86 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var87;
+      _dest.x2[1] = var86;
+      var88.i = _dest.i;
+    }
     /* 42: mergebw */
-    var89.i = ((orc_uint8) var85 & 0x00ff) | ((orc_uint8) var54 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var85;
+      _dest.x2[1] = var54;
+      var89.i = _dest.i;
+    }
     /* 43: mergewl */
-    var90.i =
-        ((orc_uint16) var88.i & 0x0000ffff) | ((orc_uint16) var89.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var88.i;
+      _dest.x2[1] = var89.i;
+      var90.i = _dest.i;
+    }
     /* 45: addb */
     var56.x4[0] = var90.x4[0] + var55.x4[0];
     var56.x4[1] = var90.x4[1] + var55.x4[1];
@@ -12092,12 +13548,26 @@ cogorc_convert_I420_BGRA_avg (guint8 * ORC_RESTRICT d1,
     /* 43: convssswb */
     var92 = ORC_CLAMP_SB (var82.i);
     /* 44: mergebw */
-    var93.i = ((orc_uint8) var92 & 0x00ff) | ((orc_uint8) var91 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var92;
+      _dest.x2[1] = var91;
+      var93.i = _dest.i;
+    }
     /* 46: mergebw */
-    var94.i = ((orc_uint8) var90 & 0x00ff) | ((orc_uint8) var55 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var90;
+      _dest.x2[1] = var55;
+      var94.i = _dest.i;
+    }
     /* 47: mergewl */
-    var95.i =
-        ((orc_uint16) var93.i & 0x0000ffff) | ((orc_uint16) var94.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var93.i;
+      _dest.x2[1] = var94.i;
+      var95.i = _dest.i;
+    }
     /* 49: addb */
     var57.x4[0] = var95.x4[0] + var56.x4[0];
     var57.x4[1] = var95.x4[1] + var56.x4[1];
@@ -12285,12 +13755,26 @@ _backup_cogorc_convert_I420_BGRA_avg (OrcExecutor * ORC_RESTRICT ex)
     /* 43: convssswb */
     var92 = ORC_CLAMP_SB (var82.i);
     /* 44: mergebw */
-    var93.i = ((orc_uint8) var92 & 0x00ff) | ((orc_uint8) var91 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var92;
+      _dest.x2[1] = var91;
+      var93.i = _dest.i;
+    }
     /* 46: mergebw */
-    var94.i = ((orc_uint8) var90 & 0x00ff) | ((orc_uint8) var55 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var90;
+      _dest.x2[1] = var55;
+      var94.i = _dest.i;
+    }
     /* 47: mergewl */
-    var95.i =
-        ((orc_uint16) var93.i & 0x0000ffff) | ((orc_uint16) var94.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var93.i;
+      _dest.x2[1] = var94.i;
+      var95.i = _dest.i;
+    }
     /* 49: addb */
     var57.x4[0] = var95.x4[0] + var56.x4[0];
     var57.x4[1] = var95.x4[1] + var56.x4[1];
@@ -12482,14 +13966,28 @@ cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadupdb */
     var40 = ptr6[i >> 1];
     /* 2: mergebw */
-    var41.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var40 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var42.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var42.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -12528,14 +14026,28 @@ _backup_cogorc_getline_I420 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadupdb */
     var40 = ptr6[i >> 1];
     /* 2: mergebw */
-    var41.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var40 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var42.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var42.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -12633,24 +14145,47 @@ cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadupdb */
     var41 = ptr6[i >> 1];
     /* 2: mergebw */
-    var42.i = ((orc_uint8) var40 & 0x00ff) | ((orc_uint8) var41 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var40;
+      _dest.x2[1] = var41;
+      var42.i = _dest.i;
+    }
     /* 3: mergewl */
-    var43.i =
-        ((orc_uint16) var42.i & 0x0000ffff) | ((orc_uint16) var42.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var42.i;
+      var43.i = _dest.i;
+    }
     /* 5: loadw */
     var38 = ptr4[i];
     /* 6: mergebw */
-    var44.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var38.x2[0] << 8);
-    var44.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var38.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var38.x2[0];
+      var44.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var38.x2[1];
+      var44.x2[1] = _dest.i;
+    }
     /* 7: mergewl */
-    var39.x2[0] =
-        ((orc_uint16) var44.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-    var39.x2[1] =
-        ((orc_uint16) var44.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var39.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var39.x2[1] = _dest.i;
+    }
     /* 8: storeq */
     ptr0[i] = var39;
   }
@@ -12691,24 +14226,47 @@ _backup_cogorc_getline_YUV9 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadupdb */
     var41 = ptr6[i >> 1];
     /* 2: mergebw */
-    var42.i = ((orc_uint8) var40 & 0x00ff) | ((orc_uint8) var41 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var40;
+      _dest.x2[1] = var41;
+      var42.i = _dest.i;
+    }
     /* 3: mergewl */
-    var43.i =
-        ((orc_uint16) var42.i & 0x0000ffff) | ((orc_uint16) var42.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var42.i;
+      var43.i = _dest.i;
+    }
     /* 5: loadw */
     var38 = ptr4[i];
     /* 6: mergebw */
-    var44.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var38.x2[0] << 8);
-    var44.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var38.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var38.x2[0];
+      var44.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var38.x2[1];
+      var44.x2[1] = _dest.i;
+    }
     /* 7: mergewl */
-    var39.x2[0] =
-        ((orc_uint16) var44.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-    var39.x2[1] =
-        ((orc_uint16) var44.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var39.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var39.x2[1] = _dest.i;
+    }
     /* 8: storeq */
     ptr0[i] = var39;
   }
@@ -12802,25 +14360,51 @@ cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var36 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var36.x2[0] & 0xff;
-    var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 3: mergebw */
-    var41.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var40.x2[0] << 8);
-    var41.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var40.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var41.x2[1] = _dest.i;
+    }
     /* 4: mergewl */
-    var42.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var42.i = _dest.i;
+    }
     /* 5: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var41.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var41.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storeq */
     ptr0[i] = var38;
   }
@@ -12854,25 +14438,51 @@ _backup_cogorc_getline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var36 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var36.x2[0] & 0xff;
-    var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 3: mergebw */
-    var41.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var40.x2[0] << 8);
-    var41.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var40.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var41.x2[1] = _dest.i;
+    }
     /* 4: mergewl */
-    var42.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var42.i = _dest.i;
+    }
     /* 5: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var41.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var41.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storeq */
     ptr0[i] = var38;
   }
@@ -12957,25 +14567,51 @@ cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var36 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var36.x2[0] & 0xff;
-    var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 3: mergebw */
-    var41.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var41.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var41.x2[1] = _dest.i;
+    }
     /* 4: mergewl */
-    var42.i =
-        ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var40.i;
+      var42.i = _dest.i;
+    }
     /* 5: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var41.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var41.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storeq */
     ptr0[i] = var38;
   }
@@ -13009,25 +14645,51 @@ _backup_cogorc_getline_UYVY (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var36 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var36.x2[0] & 0xff;
-    var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 3: mergebw */
-    var41.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var41.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var41.x2[1] = _dest.i;
+    }
     /* 4: mergewl */
-    var42.i =
-        ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var40.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var40.i;
+      var42.i = _dest.i;
+    }
     /* 5: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var41.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var42.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var41.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var42.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var42.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var42.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storeq */
     ptr0[i] = var38;
   }
@@ -13113,27 +14775,53 @@ cogorc_getline_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var36 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var36.x2[0] & 0xff;
-    var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 2: swapw */
     var41.i = ORC_SWAP_W (var39.i);
     /* 4: mergebw */
-    var42.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var40.x2[0] << 8);
-    var42.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var40.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var42.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var42.x2[1] = _dest.i;
+    }
     /* 5: mergewl */
-    var43.i =
-        ((orc_uint16) var41.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var42.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var42.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storeq */
     ptr0[i] = var38;
   }
@@ -13168,27 +14856,53 @@ _backup_cogorc_getline_YVYU (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var36 = ptr4[i];
     /* 1: splitwb */
-    var39.x2[0] = (var36.x2[0] >> 8) & 0xff;
-    var40.x2[0] = var36.x2[0] & 0xff;
-    var39.x2[1] = (var36.x2[1] >> 8) & 0xff;
-    var40.x2[1] = var36.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var36.x2[1];
+      var39.x2[1] = _src.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 2: swapw */
     var41.i = ORC_SWAP_W (var39.i);
     /* 4: mergebw */
-    var42.x2[0] =
-        ((orc_uint8) var37.x2[0] & 0x00ff) | ((orc_uint8) var40.x2[0] << 8);
-    var42.x2[1] =
-        ((orc_uint8) var37.x2[1] & 0x00ff) | ((orc_uint8) var40.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var42.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var37.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var42.x2[1] = _dest.i;
+    }
     /* 5: mergewl */
-    var43.i =
-        ((orc_uint16) var41.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var42.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var42.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storeq */
     ptr0[i] = var38;
   }
@@ -13282,24 +14996,47 @@ cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadb */
     var37 = ptr6[i];
     /* 2: mergebw */
-    var41.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var41.i = _dest.i;
+    }
     /* 4: loadw */
     var39 = ptr4[i];
     /* 5: mergebw */
-    var42.x2[0] =
-        ((orc_uint8) var38.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var42.x2[1] =
-        ((orc_uint8) var38.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var42.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var42.x2[1] = _dest.i;
+    }
     /* 6: mergewl */
-    var43.i =
-        ((orc_uint16) var41.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
     /* 7: mergewl */
-    var40.x2[0] =
-        ((orc_uint16) var42.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-    var40.x2[1] =
-        ((orc_uint16) var42.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var40.x2[1] = _dest.i;
+    }
     /* 8: storeq */
     ptr0[i] = var40;
   }
@@ -13340,24 +15077,47 @@ _backup_cogorc_getline_Y42B (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var37 = ptr6[i];
     /* 2: mergebw */
-    var41.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var41.i = _dest.i;
+    }
     /* 4: loadw */
     var39 = ptr4[i];
     /* 5: mergebw */
-    var42.x2[0] =
-        ((orc_uint8) var38.x2[0] & 0x00ff) | ((orc_uint8) var39.x2[0] << 8);
-    var42.x2[1] =
-        ((orc_uint8) var38.x2[1] & 0x00ff) | ((orc_uint8) var39.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var42.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var38.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var42.x2[1] = _dest.i;
+    }
     /* 6: mergewl */
-    var43.i =
-        ((orc_uint16) var41.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.i;
+      _dest.x2[1] = var41.i;
+      var43.i = _dest.i;
+    }
     /* 7: mergewl */
-    var40.x2[0] =
-        ((orc_uint16) var42.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var43.x2[0] << 16);
-    var40.x2[1] =
-        ((orc_uint16) var42.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var43.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var40.x2[1] = _dest.i;
+    }
     /* 8: storeq */
     ptr0[i] = var40;
   }
@@ -13451,14 +15211,28 @@ cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadb */
     var35 = ptr6[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -13497,14 +15271,28 @@ _backup_cogorc_getline_Y444 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var35 = ptr6[i];
     /* 2: mergebw */
-    var39.i = ((orc_uint8) var34 & 0x00ff) | ((orc_uint8) var35 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var34;
+      _dest.x2[1] = var35;
+      var39.i = _dest.i;
+    }
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var40.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var40.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var40.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.i;
+      _dest.x2[1] = var39.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -13588,10 +15376,19 @@ cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadb */
     var34 = ptr4[i];
     /* 2: mergebw */
-    var37.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var37.i = _dest.i;
+    }
     /* 4: mergewl */
-    var36.i =
-        ((orc_uint16) var37.i & 0x0000ffff) | ((orc_uint16) var35.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var35.i;
+      var36.i = _dest.i;
+    }
     /* 5: storel */
     ptr0[i] = var36;
   }
@@ -13624,10 +15421,19 @@ _backup_cogorc_getline_Y800 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadb */
     var34 = ptr4[i];
     /* 2: mergebw */
-    var37.i = ((orc_uint8) var33 & 0x00ff) | ((orc_uint8) var34 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var33;
+      _dest.x2[1] = var34;
+      var37.i = _dest.i;
+    }
     /* 4: mergewl */
-    var36.i =
-        ((orc_uint16) var37.i & 0x0000ffff) | ((orc_uint16) var35.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var37.i;
+      _dest.x2[1] = var35.i;
+      var36.i = _dest.i;
+    }
     /* 5: storel */
     ptr0[i] = var36;
   }
@@ -13708,10 +15514,19 @@ cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: convhwb */
     var38 = ((orc_uint16) var34.i) >> 8;
     /* 3: mergebw */
-    var39.i = ((orc_uint8) var35 & 0x00ff) | ((orc_uint8) var38 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35;
+      _dest.x2[1] = var38;
+      var39.i = _dest.i;
+    }
     /* 5: mergewl */
-    var37.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var36.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var36.i;
+      var37.i = _dest.i;
+    }
     /* 6: storel */
     ptr0[i] = var37;
   }
@@ -13747,10 +15562,19 @@ _backup_cogorc_getline_Y16 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: convhwb */
     var38 = ((orc_uint16) var34.i) >> 8;
     /* 3: mergebw */
-    var39.i = ((orc_uint8) var35 & 0x00ff) | ((orc_uint8) var38 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var35;
+      _dest.x2[1] = var38;
+      var39.i = _dest.i;
+    }
     /* 5: mergewl */
-    var37.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var36.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var36.i;
+      var37.i = _dest.i;
+    }
     /* 6: storel */
     ptr0[i] = var37;
   }
@@ -13924,21 +15748,47 @@ cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var42.i >> 8) & 0xff;
-    var45 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var43.i >> 8) & 0xff;
-    var47 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var47 & 0x00ff) | ((orc_uint8) var44 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var45 & 0x00ff) | ((orc_uint8) var46 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var48.i & 0x0000ffff) | ((orc_uint16) var49.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -13972,21 +15822,47 @@ _backup_cogorc_getline_ABGR (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var42.i >> 8) & 0xff;
-    var45 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var43.i >> 8) & 0xff;
-    var47 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var47 & 0x00ff) | ((orc_uint8) var44 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var45 & 0x00ff) | ((orc_uint8) var46 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var48.i & 0x0000ffff) | ((orc_uint16) var49.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -14078,21 +15954,47 @@ cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var43.i >> 8) & 0xff;
-    var45 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var42.i >> 8) & 0xff;
-    var47 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var46 & 0x00ff) | ((orc_uint8) var45 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var44 & 0x00ff) | ((orc_uint8) var47 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var48.i & 0x0000ffff) | ((orc_uint16) var49.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -14126,21 +16028,47 @@ _backup_cogorc_getline_RGBA (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var43.i >> 8) & 0xff;
-    var45 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var42.i >> 8) & 0xff;
-    var47 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var46 & 0x00ff) | ((orc_uint8) var45 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var44 & 0x00ff) | ((orc_uint8) var47 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var48.i & 0x0000ffff) | ((orc_uint16) var49.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -14236,22 +16164,40 @@ cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadw */
     var35 = ptr5[i];
     /* 2: mergewl */
-    var39.i =
-        ((orc_uint16) var34.i & 0x0000ffff) | ((orc_uint16) var35.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var34.i;
+      _dest.x2[1] = var35.i;
+      var39.i = _dest.i;
+    }
     /* 4: loadw */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var40.x2[0] =
-        ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-    var40.x2[1] =
-        ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var40.x2[1] = _dest.i;
+    }
     /* 6: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var40.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var39.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var40.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var39.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storeq */
     ptr0[i] = var38;
   }
@@ -14289,22 +16235,40 @@ _backup_cogorc_getline_NV12 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadw */
     var35 = ptr5[i];
     /* 2: mergewl */
-    var39.i =
-        ((orc_uint16) var34.i & 0x0000ffff) | ((orc_uint16) var35.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var34.i;
+      _dest.x2[1] = var35.i;
+      var39.i = _dest.i;
+    }
     /* 4: loadw */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var40.x2[0] =
-        ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-    var40.x2[1] =
-        ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var40.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var40.x2[1] = _dest.i;
+    }
     /* 6: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var40.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var39.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var40.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var39.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[0];
+      _dest.x2[1] = var39.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var40.x2[1];
+      _dest.x2[1] = var39.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storeq */
     ptr0[i] = var38;
   }
@@ -14391,22 +16355,40 @@ cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: swapw */
     var39.i = ORC_SWAP_W (var35.i);
     /* 2: mergewl */
-    var40.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var40.i = _dest.i;
+    }
     /* 4: loadw */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var41.x2[0] =
-        ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-    var41.x2[1] =
-        ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var41.x2[1] = _dest.i;
+    }
     /* 6: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var41.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var40.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var41.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var40.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storeq */
     ptr0[i] = var38;
   }
@@ -14444,22 +16426,40 @@ _backup_cogorc_getline_NV21 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: swapw */
     var39.i = ORC_SWAP_W (var35.i);
     /* 2: mergewl */
-    var40.i =
-        ((orc_uint16) var39.i & 0x0000ffff) | ((orc_uint16) var39.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var39.i;
+      _dest.x2[1] = var39.i;
+      var40.i = _dest.i;
+    }
     /* 4: loadw */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var41.x2[0] =
-        ((orc_uint8) var36.x2[0] & 0x00ff) | ((orc_uint8) var37.x2[0] << 8);
-    var41.x2[1] =
-        ((orc_uint8) var36.x2[1] & 0x00ff) | ((orc_uint8) var37.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[0];
+      _dest.x2[1] = var37.x2[0];
+      var41.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36.x2[1];
+      _dest.x2[1] = var37.x2[1];
+      var41.x2[1] = _dest.i;
+    }
     /* 6: mergewl */
-    var38.x2[0] =
-        ((orc_uint16) var41.
-        x2[0] & 0x0000ffff) | ((orc_uint16) var40.x2[0] << 16);
-    var38.x2[1] =
-        ((orc_uint16) var41.
-        x2[1] & 0x0000ffff) | ((orc_uint16) var40.x2[1] << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[0];
+      _dest.x2[1] = var40.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var41.x2[1];
+      _dest.x2[1] = var40.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storeq */
     ptr0[i] = var38;
   }
@@ -14551,16 +16551,30 @@ cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 1: loadupdb */
     var40 = ptr6[i >> 1];
     /* 2: mergebw */
-    var41.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var40 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
     /* 3: loadb */
     var36 = ptr7[i];
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var42.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var42.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -14599,16 +16613,30 @@ _backup_cogorc_getline_A420 (OrcExecutor * ORC_RESTRICT ex)
     /* 1: loadupdb */
     var40 = ptr6[i >> 1];
     /* 2: mergebw */
-    var41.i = ((orc_uint8) var39 & 0x00ff) | ((orc_uint8) var40 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var39;
+      _dest.x2[1] = var40;
+      var41.i = _dest.i;
+    }
     /* 3: loadb */
     var36 = ptr7[i];
     /* 4: loadb */
     var37 = ptr4[i];
     /* 5: mergebw */
-    var42.i = ((orc_uint8) var36 & 0x00ff) | ((orc_uint8) var37 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var36;
+      _dest.x2[1] = var37;
+      var42.i = _dest.i;
+    }
     /* 6: mergewl */
-    var38.i =
-        ((orc_uint16) var42.i & 0x0000ffff) | ((orc_uint16) var41.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var42.i;
+      _dest.x2[1] = var41.i;
+      var38.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -14707,30 +16735,62 @@ cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadq */
     var38 = ptr4[i];
     /* 1: splitlw */
-    var42.x2[0] = (var38.x2[0] >> 16) & 0xffff;
-    var43.x2[0] = var38.x2[0] & 0xffff;
-    var42.x2[1] = (var38.x2[1] >> 16) & 0xffff;
-    var43.x2[1] = var38.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var42.x2[0] = _src.x2[1];
+      var43.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[1];
+      var42.x2[1] = _src.x2[1];
+      var43.x2[1] = _src.x2[0];
+    }
     /* 2: select1wb */
-    var39.x2[0] = ((orc_uint16) var43.x2[0] >> 8) & 0xff;
-    var39.x2[1] = ((orc_uint16) var43.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var39;
     /* 4: splitwb */
-    var44.x2[0] = (var42.x2[0] >> 8) & 0xff;
-    var45.x2[0] = var42.x2[0] & 0xff;
-    var44.x2[1] = (var42.x2[1] >> 8) & 0xff;
-    var45.x2[1] = var42.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[0];
+      var44.x2[0] = _src.x2[1];
+      var45.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[1];
+      var44.x2[1] = _src.x2[1];
+      var45.x2[1] = _src.x2[0];
+    }
     /* 5: splitwb */
-    var46 = (var45.i >> 8) & 0xff;
-    var47 = var45.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 6: avgub */
     var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
     /* 7: storeb */
     ptr1[i] = var40;
     /* 8: splitwb */
-    var48 = (var44.i >> 8) & 0xff;
-    var49 = var44.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var48 = _src.x2[1];
+      var49 = _src.x2[0];
+    }
     /* 9: avgub */
     var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
     /* 10: storeb */
@@ -14772,30 +16832,62 @@ _backup_cogorc_putline_I420 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var38 = ptr4[i];
     /* 1: splitlw */
-    var42.x2[0] = (var38.x2[0] >> 16) & 0xffff;
-    var43.x2[0] = var38.x2[0] & 0xffff;
-    var42.x2[1] = (var38.x2[1] >> 16) & 0xffff;
-    var43.x2[1] = var38.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var42.x2[0] = _src.x2[1];
+      var43.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[1];
+      var42.x2[1] = _src.x2[1];
+      var43.x2[1] = _src.x2[0];
+    }
     /* 2: select1wb */
-    var39.x2[0] = ((orc_uint16) var43.x2[0] >> 8) & 0xff;
-    var39.x2[1] = ((orc_uint16) var43.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var39;
     /* 4: splitwb */
-    var44.x2[0] = (var42.x2[0] >> 8) & 0xff;
-    var45.x2[0] = var42.x2[0] & 0xff;
-    var44.x2[1] = (var42.x2[1] >> 8) & 0xff;
-    var45.x2[1] = var42.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[0];
+      var44.x2[0] = _src.x2[1];
+      var45.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var42.x2[1];
+      var44.x2[1] = _src.x2[1];
+      var45.x2[1] = _src.x2[0];
+    }
     /* 5: splitwb */
-    var46 = (var45.i >> 8) & 0xff;
-    var47 = var45.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 6: avgub */
     var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
     /* 7: storeb */
     ptr1[i] = var40;
     /* 8: splitwb */
-    var48 = (var44.i >> 8) & 0xff;
-    var49 = var44.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var48 = _src.x2[1];
+      var49 = _src.x2[0];
+    }
     /* 9: avgub */
     var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
     /* 10: storeb */
@@ -14891,24 +16983,52 @@ cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var37.x2[0] & 0xffff;
-    var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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 */
-    var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
     /* 5: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var44.x2[0] & 0x00ff) | ((orc_uint8) var43.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var44.x2[1] & 0x00ff) | ((orc_uint8) var43.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storel */
     ptr0[i] = var38;
   }
@@ -14940,24 +17060,52 @@ _backup_cogorc_putline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var37.x2[0] & 0xffff;
-    var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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 */
-    var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
     /* 5: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var44.x2[0] & 0x00ff) | ((orc_uint8) var43.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var44.x2[1] & 0x00ff) | ((orc_uint8) var43.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var43.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var43.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storel */
     ptr0[i] = var38;
   }
@@ -15043,26 +17191,54 @@ cogorc_putline_YVYU (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var37.x2[0] & 0xffff;
-    var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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 */
-    var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
     /* 5: swapw */
     var45.i = ORC_SWAP_W (var43.i);
     /* 6: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var44.x2[0] & 0x00ff) | ((orc_uint8) var45.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var44.x2[1] & 0x00ff) | ((orc_uint8) var45.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var45.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var45.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -15095,26 +17271,54 @@ _backup_cogorc_putline_YVYU (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var37.x2[0] & 0xffff;
-    var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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 */
-    var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
     /* 5: swapw */
     var45.i = ORC_SWAP_W (var43.i);
     /* 6: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var44.x2[0] & 0x00ff) | ((orc_uint8) var45.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var44.x2[1] & 0x00ff) | ((orc_uint8) var45.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[0];
+      _dest.x2[1] = var45.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44.x2[1];
+      _dest.x2[1] = var45.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var38;
   }
@@ -15201,24 +17405,52 @@ cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var37.x2[0] & 0xffff;
-    var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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 */
-    var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
     /* 5: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var43.x2[0] & 0x00ff) | ((orc_uint8) var44.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var43.x2[1] & 0x00ff) | ((orc_uint8) var44.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[0];
+      _dest.x2[1] = var44.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[1];
+      _dest.x2[1] = var44.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storel */
     ptr0[i] = var38;
   }
@@ -15250,24 +17482,52 @@ _backup_cogorc_putline_UYVY (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var37.x2[0] & 0xffff;
-    var39.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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 */
-    var44.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var44.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var44.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var44.x2[1] = _src.x2[1];
+    }
     /* 5: mergebw */
-    var38.x2[0] =
-        ((orc_uint8) var43.x2[0] & 0x00ff) | ((orc_uint8) var44.x2[0] << 8);
-    var38.x2[1] =
-        ((orc_uint8) var43.x2[1] & 0x00ff) | ((orc_uint8) var44.x2[1] << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[0];
+      _dest.x2[1] = var44.x2[0];
+      var38.x2[0] = _dest.i;
+    }
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var43.x2[1];
+      _dest.x2[1] = var44.x2[1];
+      var38.x2[1] = _dest.i;
+    }
     /* 6: storel */
     ptr0[i] = var38;
   }
@@ -15357,26 +17617,50 @@ cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadq */
     var36 = ptr4[i];
     /* 1: splitlw */
-    var40.x2[0] = (var36.x2[0] >> 16) & 0xffff;
-    var41.x2[0] = var36.x2[0] & 0xffff;
-    var40.x2[1] = (var36.x2[1] >> 16) & 0xffff;
-    var41.x2[1] = var36.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.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];
+    }
     /* 2: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.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 */
-    var37 = (var44.i >> 8) & 0xff;
-    var38 = var44.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
     /* 5: storeb */
     ptr2[i] = var37;
     /* 6: storeb */
     ptr1[i] = var38;
     /* 7: select1wb */
-    var39.x2[0] = ((orc_uint16) var41.x2[0] >> 8) & 0xff;
-    var39.x2[1] = ((orc_uint16) var41.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
     /* 8: storew */
     ptr0[i] = var39;
   }
@@ -15413,26 +17697,50 @@ _backup_cogorc_putline_Y42B (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var36 = ptr4[i];
     /* 1: splitlw */
-    var40.x2[0] = (var36.x2[0] >> 16) & 0xffff;
-    var41.x2[0] = var36.x2[0] & 0xffff;
-    var40.x2[1] = (var36.x2[1] >> 16) & 0xffff;
-    var41.x2[1] = var36.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.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];
+    }
     /* 2: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.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 */
-    var37 = (var44.i >> 8) & 0xff;
-    var38 = var44.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.i;
+      var37 = _src.x2[1];
+      var38 = _src.x2[0];
+    }
     /* 5: storeb */
     ptr2[i] = var37;
     /* 6: storeb */
     ptr1[i] = var38;
     /* 7: select1wb */
-    var39.x2[0] = ((orc_uint16) var41.x2[0] >> 8) & 0xff;
-    var39.x2[1] = ((orc_uint16) var41.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
     /* 8: storew */
     ptr0[i] = var39;
   }
@@ -15522,17 +17830,29 @@ cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadl */
     var34 = ptr4[i];
     /* 1: splitlw */
-    var38.i = (var34.i >> 16) & 0xffff;
-    var39.i = var34.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var35 = (var38.i >> 8) & 0xff;
-    var36 = var38.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var38.i;
+      var35 = _src.x2[1];
+      var36 = _src.x2[0];
+    }
     /* 3: storeb */
     ptr2[i] = var35;
     /* 4: storeb */
     ptr1[i] = var36;
     /* 5: select1wb */
-    var37 = ((orc_uint16) var39.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var39.i;
+      var37 = _src.x2[1];
+    }
     /* 6: storeb */
     ptr0[i] = var37;
   }
@@ -15566,17 +17886,29 @@ _backup_cogorc_putline_Y444 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var34 = ptr4[i];
     /* 1: splitlw */
-    var38.i = (var34.i >> 16) & 0xffff;
-    var39.i = var34.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var38.i = _src.x2[1];
+      var39.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var35 = (var38.i >> 8) & 0xff;
-    var36 = var38.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var38.i;
+      var35 = _src.x2[1];
+      var36 = _src.x2[0];
+    }
     /* 3: storeb */
     ptr2[i] = var35;
     /* 4: storeb */
     ptr1[i] = var36;
     /* 5: select1wb */
-    var37 = ((orc_uint16) var39.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var39.i;
+      var37 = _src.x2[1];
+    }
     /* 6: storeb */
     ptr0[i] = var37;
   }
@@ -15653,9 +17985,17 @@ cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select0lw */
-    var35.i = (orc_uint32) var33.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
     /* 2: select1wb */
-    var34 = ((orc_uint16) var35.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -15682,9 +18022,17 @@ _backup_cogorc_putline_Y800 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var33 = ptr4[i];
     /* 1: select0lw */
-    var35.i = (orc_uint32) var33.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var33.i;
+      var35.i = _src.x2[0];
+    }
     /* 2: select1wb */
-    var34 = ((orc_uint16) var35.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var35.i;
+      var34 = _src.x2[1];
+    }
     /* 3: storeb */
     ptr0[i] = var34;
   }
@@ -15756,9 +18104,17 @@ cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var34 = ptr4[i];
     /* 1: select0lw */
-    var36.i = (orc_uint32) var34.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var36.i = _src.x2[0];
+    }
     /* 2: select1wb */
-    var37 = ((orc_uint16) var36.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var37 = _src.x2[1];
+    }
     /* 3: convubw */
     var38.i = (orc_uint8) var37;
     /* 4: shlw */
@@ -15791,9 +18147,17 @@ _backup_cogorc_putline_Y16 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var34 = ptr4[i];
     /* 1: select0lw */
-    var36.i = (orc_uint32) var34.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var34.i;
+      var36.i = _src.x2[0];
+    }
     /* 2: select1wb */
-    var37 = ((orc_uint16) var36.i >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var36.i;
+      var37 = _src.x2[1];
+    }
     /* 3: convubw */
     var38.i = (orc_uint8) var37;
     /* 4: shlw */
@@ -15972,21 +18336,47 @@ cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var42.i >> 8) & 0xff;
-    var45 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var43.i >> 8) & 0xff;
-    var47 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var47 & 0x00ff) | ((orc_uint8) var44 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var45 & 0x00ff) | ((orc_uint8) var46 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var48.i & 0x0000ffff) | ((orc_uint16) var49.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -16020,21 +18410,47 @@ _backup_cogorc_putline_ABGR (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var42.i >> 8) & 0xff;
-    var45 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var43.i >> 8) & 0xff;
-    var47 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var47 & 0x00ff) | ((orc_uint8) var44 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var47;
+      _dest.x2[1] = var44;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var45 & 0x00ff) | ((orc_uint8) var46 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var45;
+      _dest.x2[1] = var46;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var48.i & 0x0000ffff) | ((orc_uint16) var49.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var48.i;
+      _dest.x2[1] = var49.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -16126,21 +18542,47 @@ cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var42.i >> 8) & 0xff;
-    var45 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var43.i >> 8) & 0xff;
-    var47 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var44 & 0x00ff) | ((orc_uint8) var47 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var46 & 0x00ff) | ((orc_uint8) var45 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var49.i & 0x0000ffff) | ((orc_uint16) var48.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var48.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -16174,21 +18616,47 @@ _backup_cogorc_putline_RGBA (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadl */
     var40 = ptr4[i];
     /* 1: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.i = _src.x2[0];
+    }
     /* 2: splitwb */
-    var44 = (var42.i >> 8) & 0xff;
-    var45 = var42.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var42.i;
+      var44 = _src.x2[1];
+      var45 = _src.x2[0];
+    }
     /* 3: splitwb */
-    var46 = (var43.i >> 8) & 0xff;
-    var47 = var43.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.i;
+      var46 = _src.x2[1];
+      var47 = _src.x2[0];
+    }
     /* 4: mergebw */
-    var48.i = ((orc_uint8) var44 & 0x00ff) | ((orc_uint8) var47 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var44;
+      _dest.x2[1] = var47;
+      var48.i = _dest.i;
+    }
     /* 5: mergebw */
-    var49.i = ((orc_uint8) var46 & 0x00ff) | ((orc_uint8) var45 << 8);
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var45;
+      var49.i = _dest.i;
+    }
     /* 6: mergewl */
-    var41.i =
-        ((orc_uint16) var49.i & 0x0000ffff) | ((orc_uint16) var48.i << 16);
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var49.i;
+      _dest.x2[1] = var48.i;
+      var41.i = _dest.i;
+    }
     /* 7: storel */
     ptr0[i] = var41;
   }
@@ -16279,18 +18747,38 @@ cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadq */
     var36 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var36.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var36.x2[0] & 0xffff;
-    var39.x2[1] = (var36.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var36.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: select1wb */
-    var37.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var37.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var37.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var37.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var37;
     /* 4: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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;
@@ -16326,18 +18814,38 @@ _backup_cogorc_putline_NV12 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var36 = ptr4[i];
     /* 1: splitlw */
-    var39.x2[0] = (var36.x2[0] >> 16) & 0xffff;
-    var40.x2[0] = var36.x2[0] & 0xffff;
-    var39.x2[1] = (var36.x2[1] >> 16) & 0xffff;
-    var40.x2[1] = var36.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var36.x2[0];
+      var39.x2[0] = _src.x2[1];
+      var40.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];
+    }
     /* 2: select1wb */
-    var37.x2[0] = ((orc_uint16) var40.x2[0] >> 8) & 0xff;
-    var37.x2[1] = ((orc_uint16) var40.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[0];
+      var37.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var40.x2[1];
+      var37.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var37;
     /* 4: splitlw */
-    var41.i = (var39.i >> 16) & 0xffff;
-    var42.i = var39.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var39.i;
+      var41.i = _src.x2[1];
+      var42.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;
@@ -16426,18 +18934,38 @@ cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var40.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var41.x2[0] = var37.x2[0] & 0xffff;
-    var40.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var41.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.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];
+    }
     /* 2: select1wb */
-    var38.x2[0] = ((orc_uint16) var41.x2[0] >> 8) & 0xff;
-    var38.x2[1] = ((orc_uint16) var41.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var38.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var38.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var38;
     /* 4: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.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;
@@ -16476,18 +19004,38 @@ _backup_cogorc_putline_NV21 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var37 = ptr4[i];
     /* 1: splitlw */
-    var40.x2[0] = (var37.x2[0] >> 16) & 0xffff;
-    var41.x2[0] = var37.x2[0] & 0xffff;
-    var40.x2[1] = (var37.x2[1] >> 16) & 0xffff;
-    var41.x2[1] = var37.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var37.x2[0];
+      var40.x2[0] = _src.x2[1];
+      var41.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];
+    }
     /* 2: select1wb */
-    var38.x2[0] = ((orc_uint16) var41.x2[0] >> 8) & 0xff;
-    var38.x2[1] = ((orc_uint16) var41.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[0];
+      var38.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var41.x2[1];
+      var38.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var38;
     /* 4: splitlw */
-    var42.i = (var40.i >> 16) & 0xffff;
-    var43.i = var40.i & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var40.i;
+      var42.i = _src.x2[1];
+      var43.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;
@@ -16591,35 +19139,75 @@ cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
     /* 0: loadq */
     var38 = ptr4[i];
     /* 1: splitlw */
-    var43.x2[0] = (var38.x2[0] >> 16) & 0xffff;
-    var44.x2[0] = var38.x2[0] & 0xffff;
-    var43.x2[1] = (var38.x2[1] >> 16) & 0xffff;
-    var44.x2[1] = var38.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.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];
+    }
     /* 2: select1wb */
-    var39.x2[0] = ((orc_uint16) var44.x2[0] >> 8) & 0xff;
-    var39.x2[1] = ((orc_uint16) var44.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var39;
     /* 4: select0wb */
-    var40.x2[0] = (orc_uint16) var44.x2[0] & 0xff;
-    var40.x2[1] = (orc_uint16) var44.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 5: storew */
     ptr3[i] = var40;
     /* 6: splitwb */
-    var45.x2[0] = (var43.x2[0] >> 8) & 0xff;
-    var46.x2[0] = var43.x2[0] & 0xff;
-    var45.x2[1] = (var43.x2[1] >> 8) & 0xff;
-    var46.x2[1] = var43.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var45.x2[0] = _src.x2[1];
+      var46.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];
+    }
     /* 7: splitwb */
-    var47 = (var46.i >> 8) & 0xff;
-    var48 = var46.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var46.i;
+      var47 = _src.x2[1];
+      var48 = _src.x2[0];
+    }
     /* 8: avgub */
     var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
     /* 9: storeb */
     ptr1[i] = var41;
     /* 10: splitwb */
-    var49 = (var45.i >> 8) & 0xff;
-    var50 = var45.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var49 = _src.x2[1];
+      var50 = _src.x2[0];
+    }
     /* 11: avgub */
     var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
     /* 12: storeb */
@@ -16664,35 +19252,75 @@ _backup_cogorc_putline_A420 (OrcExecutor * ORC_RESTRICT ex)
     /* 0: loadq */
     var38 = ptr4[i];
     /* 1: splitlw */
-    var43.x2[0] = (var38.x2[0] >> 16) & 0xffff;
-    var44.x2[0] = var38.x2[0] & 0xffff;
-    var43.x2[1] = (var38.x2[1] >> 16) & 0xffff;
-    var44.x2[1] = var38.x2[1] & 0xffff;
+    {
+      orc_union32 _src;
+      _src.i = var38.x2[0];
+      var43.x2[0] = _src.x2[1];
+      var44.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];
+    }
     /* 2: select1wb */
-    var39.x2[0] = ((orc_uint16) var44.x2[0] >> 8) & 0xff;
-    var39.x2[1] = ((orc_uint16) var44.x2[1] >> 8) & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var39.x2[0] = _src.x2[1];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var39.x2[1] = _src.x2[1];
+    }
     /* 3: storew */
     ptr0[i] = var39;
     /* 4: select0wb */
-    var40.x2[0] = (orc_uint16) var44.x2[0] & 0xff;
-    var40.x2[1] = (orc_uint16) var44.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[0];
+      var40.x2[0] = _src.x2[0];
+    }
+    {
+      orc_union16 _src;
+      _src.i = var44.x2[1];
+      var40.x2[1] = _src.x2[0];
+    }
     /* 5: storew */
     ptr3[i] = var40;
     /* 6: splitwb */
-    var45.x2[0] = (var43.x2[0] >> 8) & 0xff;
-    var46.x2[0] = var43.x2[0] & 0xff;
-    var45.x2[1] = (var43.x2[1] >> 8) & 0xff;
-    var46.x2[1] = var43.x2[1] & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var43.x2[0];
+      var45.x2[0] = _src.x2[1];
+      var46.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];
+    }
     /* 7: splitwb */
-    var47 = (var46.i >> 8) & 0xff;
-    var48 = var46.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var46.i;
+      var47 = _src.x2[1];
+      var48 = _src.x2[0];
+    }
     /* 8: avgub */
     var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
     /* 9: storeb */
     ptr1[i] = var41;
     /* 10: splitwb */
-    var49 = (var45.i >> 8) & 0xff;
-    var50 = var45.i & 0xff;
+    {
+      orc_union16 _src;
+      _src.i = var45.i;
+      var49 = _src.x2[1];
+      var50 = _src.x2[0];
+    }
     /* 11: avgub */
     var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
     /* 12: storeb */