
/* autogenerated by generate-emulation */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <math.h>
#include <orc/orc.h>


/* begin Orc C target preamble */
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
#define ORC_SB_MAX 127
#define ORC_SB_MIN (-1-ORC_SB_MAX)
#define ORC_UB_MAX (orc_uint8) 255
#define ORC_UB_MIN 0
#define ORC_SW_MAX 32767
#define ORC_SW_MIN (-1-ORC_SW_MAX)
#define ORC_UW_MAX (orc_uint16)65535
#define ORC_UW_MIN 0
#define ORC_SL_MAX 2147483647
#define ORC_SL_MIN (-1-ORC_SL_MAX)
#define ORC_UL_MAX 4294967295U
#define ORC_UL_MIN 0
#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
#define ORC_SWAP_W(x) ((((x)&0xffU)<<8) | (((x)&0xff00U)>>8))
#define ORC_SWAP_L(x) ((((x)&0xffU)<<24) | (((x)&0xff00U)<<8) | (((x)&0xff0000U)>>8) | (((x)&0xff000000U)>>24))
#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
#ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__
#else
#define ORC_RESTRICT
#endif
#endif
/* end Orc C target preamble */


void
emulate_absb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: absb */
    var33 = ORC_ABS(var32);
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_addb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: addb */
    var34 = var32 + var33;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_addssb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: addssb */
    var34 = ORC_CLAMP_SB(var32 + var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_addusb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: addusb */
    var34 = ORC_CLAMP_UB((orc_uint8)var32 + (orc_uint8)var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_andb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: andb */
    var34 = var32 & var33;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_andnb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: andnb */
    var34 = (~var32) & var33;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_avgsb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: avgsb */
    var34 = (var32 + var33 + 1)>>1;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_avgub (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: avgub */
    var34 = ((orc_uint8)var32 + (orc_uint8)var33 + 1)>>1;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_cmpeqb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: cmpeqb */
    var34 = (var32 == var33) ? (~0) : 0;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_cmpgtsb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: cmpgtsb */
    var34 = (var32 > var33) ? (~0) : 0;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_copyb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: copyb */
    var33 = var32;
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_loadb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[offset + i];
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_loadoffb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadoffb */
    var32 = ptr4[offset + i + ((orc_union64 *)(ex->src_ptrs[1]))->i];
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_loadupdb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadupdb */
    var32 = ptr4[(offset + i)>>1];
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_loadupib (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadupib */
    var32 = ((offset + i)&1) ? ((orc_uint8)ptr4[(offset + i)>>1] + (orc_uint8)ptr4[((offset + i)>>1)+1] + 1)>>1 : ptr4[(offset + i)>>1];
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_loadpb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];

    /* 0: loadpb */
    var32 = ((orc_union64 *)(ex->src_ptrs[0]))->i;

  for (i = 0; i < n; i++) {
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_ldresnearb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: ldresnearb */
    var32 = ptr4[(((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i)*((orc_union64 *)(ex->src_ptrs[2]))->i)>>16];
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_ldresnearl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: ldresnearl */
    var32 = ptr4[(((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i)*((orc_union64 *)(ex->src_ptrs[2]))->i)>>16];
    /* 1: storel */
    ptr0[i] = var32;
  }

}

void
emulate_ldreslinb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: ldreslinb */
    {
    int tmp = ((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i) * ((orc_union64 *)(ex->src_ptrs[2]))->i;
    var32 = ((orc_uint8)ptr4[tmp>>16] * (256-((tmp>>8)&0xff)) + (orc_uint8)ptr4[(tmp>>16)+1] * ((tmp>>8)&0xff))>>8;
    }
    /* 1: storeb */
    ptr0[i] = var32;
  }

}

void
emulate_ldreslinl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: ldreslinl */
    {
    int tmp = ((orc_union64 *)(ex->src_ptrs[1]))->i + (offset + i) * ((orc_union64 *)(ex->src_ptrs[2]))->i;
    orc_union32 a = ptr4[tmp>>16];
    orc_union32 b = ptr4[(tmp>>16)+1];
    var32.x4[0] = ((orc_uint8)a.x4[0] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[0] * ((tmp>>8)&0xff))>>8;
    var32.x4[1] = ((orc_uint8)a.x4[1] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[1] * ((tmp>>8)&0xff))>>8;
    var32.x4[2] = ((orc_uint8)a.x4[2] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[2] * ((tmp>>8)&0xff))>>8;
    var32.x4[3] = ((orc_uint8)a.x4[3] * (256-((tmp>>8)&0xff)) + (orc_uint8)b.x4[3] * ((tmp>>8)&0xff))>>8;
    }
    /* 1: storel */
    ptr0[i] = var32;
  }

}

void
emulate_maxsb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: maxsb */
    var34 = ORC_MAX(var32, var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_maxub (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: maxub */
    var34 = ORC_MAX((orc_uint8)var32, (orc_uint8)var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_minsb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: minsb */
    var34 = ORC_MIN(var32, var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_minub (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: minub */
    var34 = ORC_MIN((orc_uint8)var32, (orc_uint8)var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_mullb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: mullb */
    var34 = (var32 * var33) & 0xff;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_mulhsb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: mulhsb */
    var34 = (var32 * var33) >> 8;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_mulhub (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: mulhub */
    var34 = ((orc_uint32)(orc_uint8)var32 * (orc_uint32)(orc_uint8)var33) >> 8;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_orb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: orb */
    var34 = var32 | var33;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_shlb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: shlb */
    var33 = ((orc_uint8)var32) << ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_shrsb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: shrsb */
    var33 = var32 >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_shrub (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: shrub */
    var33 = ((orc_uint8)var32) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_signb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: signb */
    var33 = ORC_CLAMP(var32,-1,1);
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_storeb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: storeb */
    ptr0[offset + i] = var32;
  }

}

void
emulate_subb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: subb */
    var34 = var32 - var33;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_subssb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: subssb */
    var34 = ORC_CLAMP_SB(var32 - var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_subusb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: subusb */
    var34 = ORC_CLAMP_UB((orc_uint8)var32 - (orc_uint8)var33);
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_xorb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: xorb */
    var34 = var32 ^ var33;
    /* 3: storeb */
    ptr0[i] = var34;
  }

}

void
emulate_absw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: absw */
    var33.i = ORC_ABS(var32.i);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_addw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: addw */
    var34.i = var32.i + var33.i;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_addssw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: addssw */
    var34.i = ORC_CLAMP_SW(var32.i + var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_addusw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: addusw */
    var34.i = ORC_CLAMP_UW((orc_uint16)var32.i + (orc_uint16)var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_andw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: andw */
    var34.i = var32.i & var33.i;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_andnw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: andnw */
    var34.i = (~var32.i) & var33.i;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_avgsw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: avgsw */
    var34.i = (var32.i + var33.i + 1)>>1;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_avguw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: avguw */
    var34.i = ((orc_uint16)var32.i + (orc_uint16)var33.i + 1)>>1;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_cmpeqw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: cmpeqw */
    var34.i = (var32.i == var33.i) ? (~0) : 0;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_cmpgtsw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: cmpgtsw */
    var34.i = (var32.i > var33.i) ? (~0) : 0;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_copyw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: copyw */
    var33.i = var32.i;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_div255w (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: div255w */
    var33.i = ((orc_uint16)(((orc_uint16)(var32.i+128)) + (((orc_uint16)(var32.i+128))>>8)))>>8;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_divluw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: divluw */
    var34.i = ((var33.i&0xff) == 0) ? 255 : ORC_CLAMP_UB(((orc_uint16)var32.i)/((orc_uint16)var33.i&0xff));
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_loadw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[offset + i];
    /* 1: storew */
    ptr0[i] = var32;
  }

}

void
emulate_loadoffw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadoffw */
    var32 = ptr4[offset + i + ((orc_union64 *)(ex->src_ptrs[1]))->i];
    /* 1: storew */
    ptr0[i] = var32;
  }

}

void
emulate_loadpw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  orc_union16 var32;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];

    /* 0: loadpw */
    var32.i = ((orc_union64 *)(ex->src_ptrs[0]))->i;

  for (i = 0; i < n; i++) {
    /* 1: storew */
    ptr0[i] = var32;
  }

}

void
emulate_maxsw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: maxsw */
    var34.i = ORC_MAX(var32.i, var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_maxuw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: maxuw */
    var34.i = ORC_MAX((orc_uint16)var32.i, (orc_uint16)var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_minsw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: minsw */
    var34.i = ORC_MIN(var32.i, var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_minuw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: minuw */
    var34.i = ORC_MIN((orc_uint16)var32.i, (orc_uint16)var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_mullw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: mullw */
    var34.i = (var32.i * var33.i) & 0xffff;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_mulhsw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: mulhsw */
    var34.i = (var32.i * var33.i) >> 16;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_mulhuw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: mulhuw */
    var34.i = ((orc_uint32)((orc_uint16)var32.i) * (orc_uint32)((orc_uint16)var33.i)) >> 16;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_orw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: orw */
    var34.i = var32.i | var33.i;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_shlw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: shlw */
    var33.i = ((orc_uint16)var32.i) << ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_shrsw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: shrsw */
    var33.i = var32.i >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_shruw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: shruw */
    var33.i = ((orc_uint16)var32.i) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_signw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: signw */
    var33.i = ORC_CLAMP(var32.i,-1,1);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_storew (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: storew */
    ptr0[offset + i] = var32;
  }

}

void
emulate_subw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: subw */
    var34.i = var32.i - var33.i;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_subssw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: subssw */
    var34.i = ORC_CLAMP_SW(var32.i - var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_subusw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: subusw */
    var34.i = ORC_CLAMP_UW((orc_uint16)var32.i - (orc_uint16)var33.i);
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_xorw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: xorw */
    var34.i = var32.i ^ var33.i;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_absl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: absl */
    var33.i = ORC_ABS(var32.i);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_addl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: addl */
    var34.i = ((orc_uint32)var32.i) + ((orc_uint32)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_addssl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: addssl */
    var34.i = ORC_CLAMP_SL((orc_int64)var32.i + (orc_int64)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_addusl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: addusl */
    var34.i = ORC_CLAMP_UL((orc_int64)(orc_uint32)var32.i + (orc_int64)(orc_uint32)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_andl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: andl */
    var34.i = var32.i & var33.i;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_andnl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: andnl */
    var34.i = (~var32.i) & var33.i;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_avgsl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: avgsl */
    var34.i = ((orc_int64)var32.i + (orc_int64)var33.i + 1)>>1;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_avgul (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: avgul */
    var34.i = ((orc_uint64)(orc_uint32)var32.i + (orc_uint64)(orc_uint32)var33.i + 1)>>1;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_cmpeql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: cmpeql */
    var34.i = (var32.i == var33.i) ? (~0) : 0;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_cmpgtsl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: cmpgtsl */
    var34.i = (var32.i > var33.i) ? (~0) : 0;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_copyl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: copyl */
    var33.i = var32.i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_loadl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[offset + i];
    /* 1: storel */
    ptr0[i] = var32;
  }

}

void
emulate_loadoffl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadoffl */
    var32 = ptr4[offset + i + ((orc_union64 *)(ex->src_ptrs[1]))->i];
    /* 1: storel */
    ptr0[i] = var32;
  }

}

void
emulate_loadpl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  orc_union32 var32;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];

    /* 0: loadpl */
    var32.i = ((orc_union64 *)(ex->src_ptrs[0]))->i;

  for (i = 0; i < n; i++) {
    /* 1: storel */
    ptr0[i] = var32;
  }

}

void
emulate_maxsl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: maxsl */
    var34.i = ORC_MAX(var32.i, var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_maxul (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: maxul */
    var34.i = ORC_MAX((orc_uint32)var32.i, (orc_uint32)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_minsl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: minsl */
    var34.i = ORC_MIN(var32.i, var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_minul (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: minul */
    var34.i = ORC_MIN((orc_uint32)var32.i, (orc_uint32)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_mulll (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mulll */
    var34.i = (((orc_uint32)var32.i) * ((orc_uint32)var33.i)) & 0xffffffff;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_mulhsl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mulhsl */
    var34.i = ((orc_int64)var32.i * (orc_int64)var33.i) >> 32;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_mulhul (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mulhul */
    var34.i = ((orc_uint64)(orc_uint32)var32.i * (orc_uint64)(orc_uint32)var33.i) >> 32;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_orl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: orl */
    var34.i = var32.i | var33.i;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_shll (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: shll */
    var33.i = ((orc_uint32)var32.i) << ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_shrsl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: shrsl */
    var33.i = var32.i >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_shrul (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: shrul */
    var33.i = ((orc_uint32)var32.i) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_signl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: signl */
    var33.i = ORC_CLAMP(var32.i,-1,1);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_storel (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: storel */
    ptr0[offset + i] = var32;
  }

}

void
emulate_subl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: subl */
    var34.i = ((orc_uint32)var32.i) - ((orc_uint32)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_subssl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: subssl */
    var34.i = ORC_CLAMP_SL((orc_int64)var32.i - (orc_int64)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_subusl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: subusl */
    var34.i = ORC_CLAMP_UL((orc_int64)(orc_uint32)var32.i - (orc_int64)(orc_uint32)var33.i);
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_xorl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: xorl */
    var34.i = var32.i ^ var33.i;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_loadq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[offset + i];
    /* 1: storeq */
    ptr0[i] = var32;
  }

}

void
emulate_loadpq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  orc_union64 var32;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];

    /* 0: loadpq */
    var32.i = ((orc_union64 *)(ex->src_ptrs[0]))->i;

  for (i = 0; i < n; i++) {
    /* 1: storeq */
    ptr0[i] = var32;
  }

}

void
emulate_storeq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: storeq */
    ptr0[offset + i] = var32;
  }

}

void
emulate_splatw3q (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: splatw3q */
    var33.i = ((((orc_uint64)var32.i)>>48) << 48) | ((((orc_uint64)var32.i)>>48)<<32) | ((((orc_uint64)var32.i)>>48) << 16) | ((((orc_uint64)var32.i)>>48));
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_copyq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: copyq */
    var33.i = var32.i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_cmpeqq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: cmpeqq */
    var34.i = (var32.i == var33.i) ? (~0) : 0;
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_cmpgtsq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: cmpgtsq */
    var34.i = (var32.i > var33.i) ? (~0) : 0;
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_andq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: andq */
    var34.i = var32.i & var33.i;
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_andnq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: andnq */
    var34.i = (~var32.i) & var33.i;
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_orq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: orq */
    var34.i = var32.i | var33.i;
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_xorq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: xorq */
    var34.i = var32.i ^ var33.i;
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_addq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: addq */
    var34.i = ((orc_uint64)var32.i) + ((orc_uint64)var33.i);
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_subq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: subq */
    var34.i = ((orc_uint64)var32.i) - ((orc_uint64)var33.i);
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_shlq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: shlq */
    var33.i = ((orc_uint64)var32.i) << ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_shrsq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: shrsq */
    var33.i = var32.i >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_shruq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: shruq */
    var33.i = ((orc_uint64)var32.i) >> ((orc_union64 *)(ex->src_ptrs[1]))->i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_convsbw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: convsbw */
    var33.i = var32;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convubw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: convubw */
    var33.i = (orc_uint8)var32;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_splatbw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: splatbw */
    var33.i = ((var32&0xff) << 8) | (var32&0xff);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_splatbl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  orc_int8 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: splatbl */
    var33.i = ((((orc_uint32)var32)&0xff) << 24) | ((((orc_uint32)var32)&0xff)<<16) | ((((orc_uint32)var32)&0xff) << 8) | (((orc_uint32)var32)&0xff);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convswl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convswl */
    var33.i = var32.i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convuwl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convuwl */
    var33.i = (orc_uint16)var32.i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convslq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convslq */
    var33.i = var32.i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_convulq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convulq */
    var33.i = (orc_uint32)var32.i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_convwb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convwb */
    var33 = var32.i;
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_convhwb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convhwb */
    var33 = ((orc_uint16)var32.i)>>8;
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_convssswb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convssswb */
    var33 = ORC_CLAMP_SB(var32.i);
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_convsuswb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convsuswb */
    var33 = ORC_CLAMP_UB(var32.i);
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_convusswb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convusswb */
    var33 = ORC_MIN((orc_uint16)var32.i,ORC_SB_MAX);
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_convuuswb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: convuuswb */
    var33 = ORC_MIN((orc_uint16)var32.i,ORC_UB_MAX);
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_convlw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convlw */
    var33.i = var32.i;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convhlw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convhlw */
    var33.i = ((orc_uint32)var32.i)>>16;
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convssslw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convssslw */
    var33.i = ORC_CLAMP_SW(var32.i);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convsuslw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convsuslw */
    var33.i = ORC_CLAMP_UW(var32.i);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convusslw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convusslw */
    var33.i = ORC_CLAMP((orc_uint32)var32.i,0,ORC_SW_MAX);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convuuslw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convuuslw */
    var33.i = ORC_CLAMP_UW((orc_uint32)var32.i);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_convql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convql */
    var33.i = var32.i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convsssql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convsssql */
    var33.i = ORC_CLAMP_SL(var32.i);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convsusql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convsusql */
    var33.i = ORC_CLAMP_UL(var32.i);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convussql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convussql */
    var33.i = ORC_CLAMP_SL((orc_uint64)var32.i);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convuusql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convuusql */
    var33.i = ORC_CLAMP_UL((orc_uint64)var32.i);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_mulsbw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: mulsbw */
    var34.i = var32 * var33;
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_mulubw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: mulubw */
    var34.i = ((orc_uint16)((orc_uint8)var32)) * ((orc_uint16)((orc_uint8)var33));
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_mulswl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: mulswl */
    var34.i = var32.i * var33.i;
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_muluwl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: muluwl */
    var34.i = ((orc_uint32)((orc_uint16)var32.i)) * ((orc_uint32)((orc_uint16)var33.i));
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_mulslq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mulslq */
    var34.i = ((orc_int64)var32.i) * ((orc_int64)var33.i);
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_mululq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mululq */
    var34.i = ((orc_uint64)((orc_uint32)var32.i)) * ((orc_uint64)((orc_uint32)var33.i));
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_accw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var12 =  { 0 };
  orc_union16 var32;

  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: accw */
    var12.i = var12.i + var32.i;
  }
  ((orc_union32 *)ex->dest_ptrs[0])->i = (var12.i + ((orc_union32 *)ex->dest_ptrs[0])->i) & 0xffff;

}

void
emulate_accl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var12 =  { 0 };
  orc_union32 var32;

  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: accl */
    var12.i = ((orc_uint32)var12.i) + ((orc_uint32)var32.i);
  }
  ((orc_union32 *)ex->dest_ptrs[0])->i += (orc_uint32)var12.i;

}

void
emulate_accsadubl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_union32 var12 =  { 0 };
  orc_int8 var32;
  orc_int8 var33;

  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: accsadubl */
    var12.i = var12.i + ORC_ABS((orc_int32)(orc_uint8)var32 - (orc_int32)(orc_uint8)var33);
  }
  ((orc_union32 *)ex->dest_ptrs[0])->i += (orc_uint32)var12.i;

}

void
emulate_swapw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: swapw */
    var33.i = ORC_SWAP_W(var32.i);
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_swapl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: swapl */
    var33.i = ORC_SWAP_L(var32.i);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_swapwl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: swapwl */
    var33.i = ((var32.i&0x0000ffffU) << 16) | ((var32.i&0xffff0000U) >> 16);
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_swapq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: swapq */
    var33.i = ORC_SWAP_Q(var32.i);
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_swaplq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: swaplq */
    var33.i = ((var32.i&ORC_UINT64_C(0x00000000ffffffff)) << 32) | ((var32.i & ORC_UINT64_C(0xffffffff00000000)) >> 32);
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_select0wb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: select0wb */
    {
       orc_union16 _src;
       _src.i = var32.i;
       var33 = _src.x2[0];
    }
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_select1wb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: select1wb */
    {
       orc_union16 _src;
       _src.i = var32.i;
       var33 = _src.x2[1];
    }
    /* 2: storeb */
    ptr0[i] = var33;
  }

}

void
emulate_select0lw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: select0lw */
    {
       orc_union32 _src;
       _src.i = var32.i;
       var33.i = _src.x2[0];
    }
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_select1lw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: select1lw */
    {
       orc_union32 _src;
       _src.i = var32.i;
       var33.i = _src.x2[1];
    }
    /* 2: storew */
    ptr0[i] = var33;
  }

}

void
emulate_select0ql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: select0ql */
    {
       orc_union64 _src;
       _src.i = var32.i;
       var33.i = _src.x2[0];
    }
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_select1ql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: select1ql */
    {
       orc_union64 _src;
       _src.i = var32.i;
       var33.i = _src.x2[1];
    }
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_mergelq (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mergelq */
    {
       orc_union64 _dest;
       _dest.x2[0] = var32.i;
       _dest.x2[1] = var33.i;
       var34.i = _dest.i;
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_mergewl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union16 * ORC_RESTRICT ptr4;
  const orc_union16 * ORC_RESTRICT ptr5;
  orc_union16 var32;
  orc_union16 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];
  ptr5 = (orc_union16 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: loadw */
    var33 = ptr5[i];
    /* 2: mergewl */
    {
       orc_union32 _dest;
       _dest.x2[0] = var32.i;
       _dest.x2[1] = var33.i;
       var34.i = _dest.i;
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_mergebw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  const orc_int8 * ORC_RESTRICT ptr4;
  const orc_int8 * ORC_RESTRICT ptr5;
  orc_int8 var32;
  orc_int8 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr4 = (orc_int8 *)ex->src_ptrs[0];
  ptr5 = (orc_int8 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadb */
    var32 = ptr4[i];
    /* 1: loadb */
    var33 = ptr5[i];
    /* 2: mergebw */
    {
       orc_union16 _dest;
       _dest.x2[0] = var32;
       _dest.x2[1] = var33;
       var34.i = _dest.i;
    }
    /* 3: storew */
    ptr0[i] = var34;
  }

}

void
emulate_splitql (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  orc_union32 * ORC_RESTRICT ptr1;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr1 = (orc_union32 *)ex->dest_ptrs[1];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: splitql */
    {
       orc_union64 _src;
       _src.i = var32.i;
       var33.i = _src.x2[1];
       var34.i = _src.x2[0];
    }
    /* 2: storel */
    ptr0[i] = var33;
    /* 3: storel */
    ptr1[i] = var34;
  }

}

void
emulate_splitlw (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union16 * ORC_RESTRICT ptr0;
  orc_union16 * ORC_RESTRICT ptr1;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union16 var33;
  orc_union16 var34;

  ptr0 = (orc_union16 *)ex->dest_ptrs[0];
  ptr1 = (orc_union16 *)ex->dest_ptrs[1];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: splitlw */
    {
       orc_union32 _src;
       _src.i = var32.i;
       var33.i = _src.x2[1];
       var34.i = _src.x2[0];
    }
    /* 2: storew */
    ptr0[i] = var33;
    /* 3: storew */
    ptr1[i] = var34;
  }

}

void
emulate_splitwb (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_int8 * ORC_RESTRICT ptr0;
  orc_int8 * ORC_RESTRICT ptr1;
  const orc_union16 * ORC_RESTRICT ptr4;
  orc_union16 var32;
  orc_int8 var33;
  orc_int8 var34;

  ptr0 = (orc_int8 *)ex->dest_ptrs[0];
  ptr1 = (orc_int8 *)ex->dest_ptrs[1];
  ptr4 = (orc_union16 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadw */
    var32 = ptr4[i];
    /* 1: splitwb */
    {
       orc_union16 _src;
       _src.i = var32.i;
       var33 = _src.x2[1];
       var34 = _src.x2[0];
    }
    /* 2: storeb */
    ptr0[i] = var33;
    /* 3: storeb */
    ptr1[i] = var34;
  }

}

void
emulate_addf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: addf */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       orc_union32 _dest1;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       _dest1.f = _src1.f + _src2.f;
       var34.i = ORC_DENORMAL(_dest1.i);
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_subf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: subf */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       orc_union32 _dest1;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       _dest1.f = _src1.f - _src2.f;
       var34.i = ORC_DENORMAL(_dest1.i);
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_mulf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: mulf */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       orc_union32 _dest1;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       _dest1.f = _src1.f * _src2.f;
       var34.i = ORC_DENORMAL(_dest1.i);
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_divf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: divf */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       orc_union32 _dest1;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       _dest1.f = _src1.f / _src2.f;
       var34.i = ORC_DENORMAL(_dest1.i);
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_sqrtf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: sqrtf */
    {
       orc_union32 _src1;
       orc_union32 _dest1;
       _src1.i = ORC_DENORMAL(var32.i);
       _dest1.f = sqrt(_src1.f);
       var33.i = ORC_DENORMAL(_dest1.i);
    }
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_maxf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: maxf */
    {
      orc_union32 _src1;
      orc_union32 _src2;
      _src1.i = ORC_DENORMAL(var32.i);
      _src2.i = ORC_DENORMAL(var33.i);
      if (ORC_ISNAN(_src1.i)) var34.i = _src1.i;
      else if (ORC_ISNAN(_src2.i)) var34.i = _src2.i;
      else var34.i = (_src1.f > _src2.f) ? _src1.i : _src2.i;
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_minf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: minf */
    {
      orc_union32 _src1;
      orc_union32 _src2;
      _src1.i = ORC_DENORMAL(var32.i);
      _src2.i = ORC_DENORMAL(var33.i);
      if (ORC_ISNAN(_src1.i)) var34.i = _src1.i;
      else if (ORC_ISNAN(_src2.i)) var34.i = _src2.i;
      else var34.i = (_src1.f < _src2.f) ? _src1.i : _src2.i;
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_cmpeqf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: cmpeqf */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       var34.i = (_src1.f == _src2.f) ? (~0) : 0;
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_cmpltf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: cmpltf */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       var34.i = (_src1.f < _src2.f) ? (~0) : 0;
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_cmplef (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  const orc_union32 * ORC_RESTRICT ptr5;
  orc_union32 var32;
  orc_union32 var33;
  orc_union32 var34;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];
  ptr5 = (orc_union32 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: loadl */
    var33 = ptr5[i];
    /* 2: cmplef */
    {
       orc_union32 _src1;
       orc_union32 _src2;
       _src1.i = ORC_DENORMAL(var32.i);
       _src2.i = ORC_DENORMAL(var33.i);
       var34.i = (_src1.f <= _src2.f) ? (~0) : 0;
    }
    /* 3: storel */
    ptr0[i] = var34;
  }

}

void
emulate_convfl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convfl */
    {
       int tmp;
       tmp = (int)var32.f;
       if (tmp == 0x80000000 && !(var32.i&0x80000000)) tmp = 0x7fffffff;
       var33.i = tmp;
    }
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convlf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convlf */
    var33.f = var32.i;
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_addd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: addd */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       orc_union64 _dest1;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       _dest1.f = _src1.f + _src2.f;
       var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_subd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: subd */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       orc_union64 _dest1;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       _dest1.f = _src1.f - _src2.f;
       var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_muld (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: muld */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       orc_union64 _dest1;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       _dest1.f = _src1.f * _src2.f;
       var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_divd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: divd */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       orc_union64 _dest1;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       _dest1.f = _src1.f / _src2.f;
       var34.i = ORC_DENORMAL_DOUBLE(_dest1.i);
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_sqrtd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: sqrtd */
    {
       orc_union64 _src1;
       orc_union64 _dest1;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _dest1.f = sqrt(_src1.f);
       var33.i = ORC_DENORMAL_DOUBLE(_dest1.i);
    }
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_maxd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: maxd */
    {
      orc_union64 _src1;
      orc_union64 _src2;
      _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
      _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
      if (ORC_ISNAN_DOUBLE(_src1.i)) var34.i = _src1.i;
      else if (ORC_ISNAN_DOUBLE(_src2.i)) var34.i = _src2.i;
      else var34.i = (_src1.f > _src2.f) ? _src1.i : _src2.i;
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_mind (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: mind */
    {
      orc_union64 _src1;
      orc_union64 _src2;
      _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
      _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
      if (ORC_ISNAN_DOUBLE(_src1.i)) var34.i = _src1.i;
      else if (ORC_ISNAN_DOUBLE(_src2.i)) var34.i = _src2.i;
      else var34.i = (_src1.f < _src2.f) ? _src1.i : _src2.i;
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_cmpeqd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: cmpeqd */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       var34.i = (_src1.f == _src2.f) ? ORC_UINT64_C(~0) : 0;
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_cmpltd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: cmpltd */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       var34.i = (_src1.f < _src2.f) ? ORC_UINT64_C(~0) : 0;
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_cmpled (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  const orc_union64 * ORC_RESTRICT ptr5;
  orc_union64 var32;
  orc_union64 var33;
  orc_union64 var34;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];
  ptr5 = (orc_union64 *)ex->src_ptrs[1];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: loadq */
    var33 = ptr5[i];
    /* 2: cmpled */
    {
       orc_union64 _src1;
       orc_union64 _src2;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _src2.i = ORC_DENORMAL_DOUBLE(var33.i);
       var34.i = (_src1.f <= _src2.f) ? ORC_UINT64_C(~0) : 0;
    }
    /* 3: storeq */
    ptr0[i] = var34;
  }

}

void
emulate_convdl (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convdl */
    {
       int tmp;
       tmp = var32.f;
       if (tmp == 0x80000000 && !(var32.i & ORC_UINT64_C(0x8000000000000000))) tmp = 0x7fffffff;
       var33.i = tmp;
    }
    /* 2: storel */
    ptr0[i] = var33;
  }

}

void
emulate_convld (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convld */
    var33.f = var32.i;
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_convfd (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union64 * ORC_RESTRICT ptr0;
  const orc_union32 * ORC_RESTRICT ptr4;
  orc_union32 var32;
  orc_union64 var33;

  ptr0 = (orc_union64 *)ex->dest_ptrs[0];
  ptr4 = (orc_union32 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadl */
    var32 = ptr4[i];
    /* 1: convfd */
    {
       orc_union32 _src1;
       _src1.i = ORC_DENORMAL(var32.i);
       var33.f = _src1.f;
    }
    /* 2: storeq */
    ptr0[i] = var33;
  }

}

void
emulate_convdf (OrcOpcodeExecutor *ex, int offset, int n)
{
  int i;
  orc_union32 * ORC_RESTRICT ptr0;
  const orc_union64 * ORC_RESTRICT ptr4;
  orc_union64 var32;
  orc_union32 var33;

  ptr0 = (orc_union32 *)ex->dest_ptrs[0];
  ptr4 = (orc_union64 *)ex->src_ptrs[0];


  for (i = 0; i < n; i++) {
    /* 0: loadq */
    var32 = ptr4[i];
    /* 1: convdf */
    {
       orc_union64 _src1;
       orc_union32 _dest;
       _src1.i = ORC_DENORMAL_DOUBLE(var32.i);
       _dest.f = _src1.f;
       var33.i = ORC_DENORMAL(_dest.i);
    }
    /* 2: storel */
    ptr0[i] = var33;
  }

}

