//===- TableGen'erated file -------------------------------------*- C++ -*-===//
//
// Assembly Matcher Source Fragment
//
// Automatically generated file, do not edit!
//
//===----------------------------------------------------------------------===//

static unsigned MatchRegisterName(StringRef Name) {
  switch (Name.size()) {
  default: break;
  case 2:	 // 25 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 strings to match.
        return 1;	 // "ah"
      case 'l':	 // 1 strings to match.
        return 2;	 // "al"
      case 'x':	 // 1 strings to match.
        return 3;	 // "ax"
      }
      break;
    case 'b':	 // 4 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 strings to match.
        return 4;	 // "bh"
      case 'l':	 // 1 strings to match.
        return 5;	 // "bl"
      case 'p':	 // 1 strings to match.
        return 6;	 // "bp"
      case 'x':	 // 1 strings to match.
        return 8;	 // "bx"
      }
      break;
    case 'c':	 // 4 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 strings to match.
        return 9;	 // "ch"
      case 'l':	 // 1 strings to match.
        return 10;	 // "cl"
      case 's':	 // 1 strings to match.
        return 11;	 // "cs"
      case 'x':	 // 1 strings to match.
        return 12;	 // "cx"
      }
      break;
    case 'd':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 strings to match.
        return 13;	 // "dh"
      case 'i':	 // 1 strings to match.
        return 14;	 // "di"
      case 'l':	 // 1 strings to match.
        return 16;	 // "dl"
      case 's':	 // 1 strings to match.
        return 25;	 // "ds"
      case 'x':	 // 1 strings to match.
        return 26;	 // "dx"
      }
      break;
    case 'e':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return 43;	 // "es"
    case 'f':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return 53;	 // "fs"
    case 'g':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return 54;	 // "gs"
    case 'i':	 // 1 strings to match.
      if (Name[1] != 'p')
        break;
      return 55;	 // "ip"
    case 'r':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case '8':	 // 1 strings to match.
        return 88;	 // "r8"
      case '9':	 // 1 strings to match.
        return 92;	 // "r9"
      }
      break;
    case 's':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'i':	 // 1 strings to match.
        return 114;	 // "si"
      case 'p':	 // 1 strings to match.
        return 116;	 // "sp"
      case 's':	 // 1 strings to match.
        return 118;	 // "ss"
      }
      break;
    }
    break;
  case 3:	 // 57 strings to match.
    switch (Name[0]) {
    default: break;
    case 'b':	 // 1 strings to match.
      if (Name.substr(1,2) != "pl")
        break;
      return 7;	 // "bpl"
    case 'd':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'i':	 // 1 strings to match.
        if (Name[2] != 'l')
          break;
        return 15;	 // "dil"
      case 'r':	 // 8 strings to match.
        switch (Name[2]) {
        default: break;
        case '0':	 // 1 strings to match.
          return 17;	 // "dr0"
        case '1':	 // 1 strings to match.
          return 18;	 // "dr1"
        case '2':	 // 1 strings to match.
          return 19;	 // "dr2"
        case '3':	 // 1 strings to match.
          return 20;	 // "dr3"
        case '4':	 // 1 strings to match.
          return 21;	 // "dr4"
        case '5':	 // 1 strings to match.
          return 22;	 // "dr5"
        case '6':	 // 1 strings to match.
          return 23;	 // "dr6"
        case '7':	 // 1 strings to match.
          return 24;	 // "dr7"
        }
        break;
      }
      break;
    case 'e':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 27;	 // "eax"
      case 'b':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 1 strings to match.
          return 28;	 // "ebp"
        case 'x':	 // 1 strings to match.
          return 29;	 // "ebx"
        }
        break;
      case 'c':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 38;	 // "ecx"
      case 'd':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 39;	 // "edi"
        case 'x':	 // 1 strings to match.
          return 40;	 // "edx"
        }
        break;
      case 'i':	 // 1 strings to match.
        if (Name[2] != 'p')
          break;
        return 42;	 // "eip"
      case 's':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 44;	 // "esi"
        case 'p':	 // 1 strings to match.
          return 45;	 // "esp"
        }
        break;
      }
      break;
    case 'f':	 // 7 strings to match.
      if (Name[1] != 'p')
        break;
      switch (Name[2]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 46;	 // "fp0"
      case '1':	 // 1 strings to match.
        return 47;	 // "fp1"
      case '2':	 // 1 strings to match.
        return 48;	 // "fp2"
      case '3':	 // 1 strings to match.
        return 49;	 // "fp3"
      case '4':	 // 1 strings to match.
        return 50;	 // "fp4"
      case '5':	 // 1 strings to match.
        return 51;	 // "fp5"
      case '6':	 // 1 strings to match.
        return 52;	 // "fp6"
      }
      break;
    case 'm':	 // 8 strings to match.
      if (Name[1] != 'm')
        break;
      switch (Name[2]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 56;	 // "mm0"
      case '1':	 // 1 strings to match.
        return 57;	 // "mm1"
      case '2':	 // 1 strings to match.
        return 58;	 // "mm2"
      case '3':	 // 1 strings to match.
        return 59;	 // "mm3"
      case '4':	 // 1 strings to match.
        return 60;	 // "mm4"
      case '5':	 // 1 strings to match.
        return 61;	 // "mm5"
      case '6':	 // 1 strings to match.
        return 62;	 // "mm6"
      case '7':	 // 1 strings to match.
        return 63;	 // "mm7"
      }
      break;
    case 'r':	 // 21 strings to match.
      switch (Name[1]) {
      default: break;
      case '1':	 // 6 strings to match.
        switch (Name[2]) {
        default: break;
        case '0':	 // 1 strings to match.
          return 64;	 // "r10"
        case '1':	 // 1 strings to match.
          return 68;	 // "r11"
        case '2':	 // 1 strings to match.
          return 72;	 // "r12"
        case '3':	 // 1 strings to match.
          return 76;	 // "r13"
        case '4':	 // 1 strings to match.
          return 80;	 // "r14"
        case '5':	 // 1 strings to match.
          return 84;	 // "r15"
        }
        break;
      case '8':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 89;	 // "r8b"
        case 'd':	 // 1 strings to match.
          return 90;	 // "r8d"
        case 'w':	 // 1 strings to match.
          return 91;	 // "r8w"
        }
        break;
      case '9':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 93;	 // "r9b"
        case 'd':	 // 1 strings to match.
          return 94;	 // "r9d"
        case 'w':	 // 1 strings to match.
          return 95;	 // "r9w"
        }
        break;
      case 'a':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 96;	 // "rax"
      case 'b':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 1 strings to match.
          return 97;	 // "rbp"
        case 'x':	 // 1 strings to match.
          return 98;	 // "rbx"
        }
        break;
      case 'c':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 108;	 // "rcx"
      case 'd':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 109;	 // "rdi"
        case 'x':	 // 1 strings to match.
          return 110;	 // "rdx"
        }
        break;
      case 'i':	 // 1 strings to match.
        if (Name[2] != 'p')
          break;
        return 111;	 // "rip"
      case 's':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 112;	 // "rsi"
        case 'p':	 // 1 strings to match.
          return 113;	 // "rsp"
        }
        break;
      }
      break;
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'i':	 // 1 strings to match.
        if (Name[2] != 'l')
          break;
        return 115;	 // "sil"
      case 'p':	 // 1 strings to match.
        if (Name[2] != 'l')
          break;
        return 117;	 // "spl"
      }
      break;
    }
    break;
  case 4:	 // 55 strings to match.
    switch (Name[0]) {
    default: break;
    case 'e':	 // 8 strings to match.
      if (Name.substr(1,2) != "cr")
        break;
      switch (Name[3]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 30;	 // "ecr0"
      case '1':	 // 1 strings to match.
        return 31;	 // "ecr1"
      case '2':	 // 1 strings to match.
        return 32;	 // "ecr2"
      case '3':	 // 1 strings to match.
        return 33;	 // "ecr3"
      case '4':	 // 1 strings to match.
        return 34;	 // "ecr4"
      case '5':	 // 1 strings to match.
        return 35;	 // "ecr5"
      case '6':	 // 1 strings to match.
        return 36;	 // "ecr6"
      case '7':	 // 1 strings to match.
        return 37;	 // "ecr7"
      }
      break;
    case 'r':	 // 27 strings to match.
      switch (Name[1]) {
      default: break;
      case '1':	 // 18 strings to match.
        switch (Name[2]) {
        default: break;
        case '0':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return 65;	 // "r10b"
          case 'd':	 // 1 strings to match.
            return 66;	 // "r10d"
          case 'w':	 // 1 strings to match.
            return 67;	 // "r10w"
          }
          break;
        case '1':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return 69;	 // "r11b"
          case 'd':	 // 1 strings to match.
            return 70;	 // "r11d"
          case 'w':	 // 1 strings to match.
            return 71;	 // "r11w"
          }
          break;
        case '2':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return 73;	 // "r12b"
          case 'd':	 // 1 strings to match.
            return 74;	 // "r12d"
          case 'w':	 // 1 strings to match.
            return 75;	 // "r12w"
          }
          break;
        case '3':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return 77;	 // "r13b"
          case 'd':	 // 1 strings to match.
            return 78;	 // "r13d"
          case 'w':	 // 1 strings to match.
            return 79;	 // "r13w"
          }
          break;
        case '4':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return 81;	 // "r14b"
          case 'd':	 // 1 strings to match.
            return 82;	 // "r14d"
          case 'w':	 // 1 strings to match.
            return 83;	 // "r14w"
          }
          break;
        case '5':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return 85;	 // "r15b"
          case 'd':	 // 1 strings to match.
            return 86;	 // "r15d"
          case 'w':	 // 1 strings to match.
            return 87;	 // "r15w"
          }
          break;
        }
        break;
      case 'c':	 // 9 strings to match.
        if (Name[2] != 'r')
          break;
        switch (Name[3]) {
        default: break;
        case '0':	 // 1 strings to match.
          return 99;	 // "rcr0"
        case '1':	 // 1 strings to match.
          return 100;	 // "rcr1"
        case '2':	 // 1 strings to match.
          return 101;	 // "rcr2"
        case '3':	 // 1 strings to match.
          return 102;	 // "rcr3"
        case '4':	 // 1 strings to match.
          return 103;	 // "rcr4"
        case '5':	 // 1 strings to match.
          return 104;	 // "rcr5"
        case '6':	 // 1 strings to match.
          return 105;	 // "rcr6"
        case '7':	 // 1 strings to match.
          return 106;	 // "rcr7"
        case '8':	 // 1 strings to match.
          return 107;	 // "rcr8"
        }
        break;
      }
      break;
    case 'x':	 // 10 strings to match.
      if (Name.substr(1,2) != "mm")
        break;
      switch (Name[3]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 127;	 // "xmm0"
      case '1':	 // 1 strings to match.
        return 128;	 // "xmm1"
      case '2':	 // 1 strings to match.
        return 135;	 // "xmm2"
      case '3':	 // 1 strings to match.
        return 136;	 // "xmm3"
      case '4':	 // 1 strings to match.
        return 137;	 // "xmm4"
      case '5':	 // 1 strings to match.
        return 138;	 // "xmm5"
      case '6':	 // 1 strings to match.
        return 139;	 // "xmm6"
      case '7':	 // 1 strings to match.
        return 140;	 // "xmm7"
      case '8':	 // 1 strings to match.
        return 141;	 // "xmm8"
      case '9':	 // 1 strings to match.
        return 142;	 // "xmm9"
      }
      break;
    case 'y':	 // 10 strings to match.
      if (Name.substr(1,2) != "mm")
        break;
      switch (Name[3]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 143;	 // "ymm0"
      case '1':	 // 1 strings to match.
        return 144;	 // "ymm1"
      case '2':	 // 1 strings to match.
        return 151;	 // "ymm2"
      case '3':	 // 1 strings to match.
        return 152;	 // "ymm3"
      case '4':	 // 1 strings to match.
        return 153;	 // "ymm4"
      case '5':	 // 1 strings to match.
        return 154;	 // "ymm5"
      case '6':	 // 1 strings to match.
        return 155;	 // "ymm6"
      case '7':	 // 1 strings to match.
        return 156;	 // "ymm7"
      case '8':	 // 1 strings to match.
        return 157;	 // "ymm8"
      case '9':	 // 1 strings to match.
        return 158;	 // "ymm9"
      }
      break;
    }
    break;
  case 5:	 // 21 strings to match.
    switch (Name[0]) {
    default: break;
    case 'f':	 // 1 strings to match.
      if (Name.substr(1,4) != "lags")
        break;
      return 41;	 // "flags"
    case 's':	 // 8 strings to match.
      if (Name.substr(1,2) != "t(")
        break;
      switch (Name[3]) {
      default: break;
      case '0':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 119;	 // "st(0)"
      case '1':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 120;	 // "st(1)"
      case '2':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 121;	 // "st(2)"
      case '3':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 122;	 // "st(3)"
      case '4':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 123;	 // "st(4)"
      case '5':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 124;	 // "st(5)"
      case '6':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 125;	 // "st(6)"
      case '7':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 126;	 // "st(7)"
      }
      break;
    case 'x':	 // 6 strings to match.
      if (Name.substr(1,3) != "mm1")
        break;
      switch (Name[4]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 129;	 // "xmm10"
      case '1':	 // 1 strings to match.
        return 130;	 // "xmm11"
      case '2':	 // 1 strings to match.
        return 131;	 // "xmm12"
      case '3':	 // 1 strings to match.
        return 132;	 // "xmm13"
      case '4':	 // 1 strings to match.
        return 133;	 // "xmm14"
      case '5':	 // 1 strings to match.
        return 134;	 // "xmm15"
      }
      break;
    case 'y':	 // 6 strings to match.
      if (Name.substr(1,3) != "mm1")
        break;
      switch (Name[4]) {
      default: break;
      case '0':	 // 1 strings to match.
        return 145;	 // "ymm10"
      case '1':	 // 1 strings to match.
        return 146;	 // "ymm11"
      case '2':	 // 1 strings to match.
        return 147;	 // "ymm12"
      case '3':	 // 1 strings to match.
        return 148;	 // "ymm13"
      case '4':	 // 1 strings to match.
        return 149;	 // "ymm14"
      case '5':	 // 1 strings to match.
        return 150;	 // "ymm15"
      }
      break;
    }
    break;
  }
  return 0;
}

#ifndef REGISTERS_ONLY

// Unified function for converting operants to MCInst instances.

enum ConversionKind {
  Convert,
  Convert__Reg1_1__Tie0,
  Convert__Imm1_1,
  Convert__AbsMem1_1,
  Convert__Mem5_1,
  Convert__Reg1_1,
  Convert__Reg1_2__Tie0__Reg1_1,
  Convert__Mem5_2__Reg1_1,
  Convert__Reg1_2__Tie0__Imm1_1,
  Convert__Mem5_2__Imm1_1,
  Convert__Reg1_2__Tie0__Mem5_1,
  Convert__Reg1_2__Tie0__ImmSExt81_1,
  Convert__Mem5_2__ImmSExt81_1,
  Convert__Reg1_2__Reg1_1,
  Convert__Reg1_2__Mem5_1,
  Convert__Reg1_2__ImmSExt81_1,
  Convert__Reg1_2,
  Convert__Mem5_2,
  Convert__Reg1_2__Imm1_1,
  Convert__Imm1_1__Imm1_2,
  Convert__ImmSExt81_1,
  Convert__Reg1_2__NoSegMem4_1,
  Convert__Reg1_2__Mem4_1,
  Convert__AbsMem1_2,
  Convert__ImmSExt81_2,
  Convert__Reg1_2__Tie0,
  Convert__Reg1_1__Tie0__Reg1_2,
  Convert__Reg1_1__Tie0__Mem5_2,
  Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1,
  Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1,
  Convert__Reg1_3__Tie0__Reg1_2,
  Convert__Reg1_3__Tie0__Mem5_2,
  Convert__Reg1_3__Reg1_2__ImmSExt81_1,
  Convert__Mem5_3__Reg1_2__ImmSExt81_1,
  Convert__Reg1_3__Mem5_2__ImmSExt81_1,
  Convert__Reg1_3__Reg1_2__Imm1_1,
  Convert__Reg1_3__Mem5_2__Imm1_1,
  Convert__Reg1_3__Tie0__Reg1_2__Imm1_1,
  Convert__Reg1_3__Tie0__Mem5_2__Imm1_1,
  Convert__Mem5_3__Reg1_2,
  Convert__Mem5_3__Reg1_2__Imm1_1,
  Convert__Reg1_4__Tie0__Reg1_3__Imm1_1,
  Convert__Reg1_4__Tie0__Mem5_3__Imm1_1,
  NumConversionVariants
};

static bool ConvertToMCInst(ConversionKind Kind, MCInst &Inst, unsigned Opcode,
                      const SmallVectorImpl<MCParsedAsmOperand*> &Operands) {
  Inst.setOpcode(Opcode);
  switch (Kind) {
  default:
  case Convert:
    break;
  case Convert__Reg1_1__Tie0:
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    break;
  case Convert__Imm1_1:
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__AbsMem1_1:
    ((X86Operand*)Operands[1])->addAbsMemOperands(Inst, 1);
    break;
  case Convert__Mem5_1:
    ((X86Operand*)Operands[1])->addMemOperands(Inst, 5);
    break;
  case Convert__Reg1_1:
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    break;
  case Convert__Reg1_2__Tie0__Reg1_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    break;
  case Convert__Mem5_2__Reg1_1:
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    break;
  case Convert__Reg1_2__Tie0__Imm1_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Mem5_2__Imm1_1:
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Reg1_2__Tie0__Mem5_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[1])->addMemOperands(Inst, 5);
    break;
  case Convert__Reg1_2__Tie0__ImmSExt81_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Mem5_2__ImmSExt81_1:
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_2__Reg1_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    break;
  case Convert__Reg1_2__Mem5_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addMemOperands(Inst, 5);
    break;
  case Convert__Reg1_2__ImmSExt81_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_2:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    break;
  case Convert__Mem5_2:
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    break;
  case Convert__Reg1_2__Imm1_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Imm1_1__Imm1_2:
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    ((X86Operand*)Operands[2])->addImmOperands(Inst, 1);
    break;
  case Convert__ImmSExt81_1:
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_2__NoSegMem4_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addNoSegMemOperands(Inst, 4);
    break;
  case Convert__Reg1_2__Mem4_1:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addMemOperands(Inst, 4);
    break;
  case Convert__AbsMem1_2:
    ((X86Operand*)Operands[2])->addAbsMemOperands(Inst, 1);
    break;
  case Convert__ImmSExt81_2:
    ((X86Operand*)Operands[2])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_2__Tie0:
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    break;
  case Convert__Reg1_1__Tie0__Reg1_2:
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    break;
  case Convert__Reg1_1__Tie0__Mem5_2:
    ((X86Operand*)Operands[1])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    break;
  case Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_3__Tie0__Reg1_2:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    break;
  case Convert__Reg1_3__Tie0__Mem5_2:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    break;
  case Convert__Reg1_3__Reg1_2__ImmSExt81_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Mem5_3__Reg1_2__ImmSExt81_1:
    ((X86Operand*)Operands[3])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_3__Mem5_2__ImmSExt81_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmSExt8Operands(Inst, 1);
    break;
  case Convert__Reg1_3__Reg1_2__Imm1_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Reg1_3__Mem5_2__Imm1_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Reg1_3__Tie0__Reg1_2__Imm1_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Reg1_3__Tie0__Mem5_2__Imm1_1:
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[2])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Mem5_3__Reg1_2:
    ((X86Operand*)Operands[3])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    break;
  case Convert__Mem5_3__Reg1_2__Imm1_1:
    ((X86Operand*)Operands[3])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[2])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Reg1_4__Tie0__Reg1_3__Imm1_1:
    ((X86Operand*)Operands[4])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[3])->addRegOperands(Inst, 1);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  case Convert__Reg1_4__Tie0__Mem5_3__Imm1_1:
    ((X86Operand*)Operands[4])->addRegOperands(Inst, 1);
    Inst.addOperand(Inst.getOperand(0));
    ((X86Operand*)Operands[3])->addMemOperands(Inst, 5);
    ((X86Operand*)Operands[1])->addImmOperands(Inst, 1);
    break;
  }
  return false;
}

namespace {

/// MatchClassKind - The kinds of classes which participate in
/// instruction matching.
enum MatchClassKind {
  InvalidMatchClass = 0,
  MCK__STAR_, // '*'
  MCK_1, // '1'
  MCK_3, // '3'
  MCK_adcb, // 'adcb'
  MCK_adcl, // 'adcl'
  MCK_adcq, // 'adcq'
  MCK_adcw, // 'adcw'
  MCK_addb, // 'addb'
  MCK_addl, // 'addl'
  MCK_addpd, // 'addpd'
  MCK_addps, // 'addps'
  MCK_addq, // 'addq'
  MCK_addsd, // 'addsd'
  MCK_addss, // 'addss'
  MCK_addsubpd, // 'addsubpd'
  MCK_addsubps, // 'addsubps'
  MCK_addw, // 'addw'
  MCK_andb, // 'andb'
  MCK_andl, // 'andl'
  MCK_andnpd, // 'andnpd'
  MCK_andnps, // 'andnps'
  MCK_andpd, // 'andpd'
  MCK_andps, // 'andps'
  MCK_andq, // 'andq'
  MCK_andw, // 'andw'
  MCK_blendpd, // 'blendpd'
  MCK_blendps, // 'blendps'
  MCK_blendvpd, // 'blendvpd'
  MCK_blendvps, // 'blendvps'
  MCK_bsfl, // 'bsfl'
  MCK_bsfq, // 'bsfq'
  MCK_bsfw, // 'bsfw'
  MCK_bsrl, // 'bsrl'
  MCK_bsrq, // 'bsrq'
  MCK_bsrw, // 'bsrw'
  MCK_bswapl, // 'bswapl'
  MCK_bswapq, // 'bswapq'
  MCK_btcl, // 'btcl'
  MCK_btcq, // 'btcq'
  MCK_btcw, // 'btcw'
  MCK_btl, // 'btl'
  MCK_btq, // 'btq'
  MCK_btrl, // 'btrl'
  MCK_btrq, // 'btrq'
  MCK_btrw, // 'btrw'
  MCK_btsl, // 'btsl'
  MCK_btsq, // 'btsq'
  MCK_btsw, // 'btsw'
  MCK_btw, // 'btw'
  MCK_call, // 'call'
  MCK_callq, // 'callq'
  MCK_cbtw, // 'cbtw'
  MCK_clc, // 'clc'
  MCK_cld, // 'cld'
  MCK_clflush, // 'clflush'
  MCK_cli, // 'cli'
  MCK_cltd, // 'cltd'
  MCK_cltq, // 'cltq'
  MCK_clts, // 'clts'
  MCK_cmc, // 'cmc'
  MCK_cmovael, // 'cmovael'
  MCK_cmovaeq, // 'cmovaeq'
  MCK_cmovaew, // 'cmovaew'
  MCK_cmoval, // 'cmoval'
  MCK_cmovaq, // 'cmovaq'
  MCK_cmovaw, // 'cmovaw'
  MCK_cmovbel, // 'cmovbel'
  MCK_cmovbeq, // 'cmovbeq'
  MCK_cmovbew, // 'cmovbew'
  MCK_cmovbl, // 'cmovbl'
  MCK_cmovbq, // 'cmovbq'
  MCK_cmovbw, // 'cmovbw'
  MCK_cmovel, // 'cmovel'
  MCK_cmoveq, // 'cmoveq'
  MCK_cmovew, // 'cmovew'
  MCK_cmovgel, // 'cmovgel'
  MCK_cmovgeq, // 'cmovgeq'
  MCK_cmovgew, // 'cmovgew'
  MCK_cmovgl, // 'cmovgl'
  MCK_cmovgq, // 'cmovgq'
  MCK_cmovgw, // 'cmovgw'
  MCK_cmovlel, // 'cmovlel'
  MCK_cmovleq, // 'cmovleq'
  MCK_cmovlew, // 'cmovlew'
  MCK_cmovll, // 'cmovll'
  MCK_cmovlq, // 'cmovlq'
  MCK_cmovlw, // 'cmovlw'
  MCK_cmovnel, // 'cmovnel'
  MCK_cmovneq, // 'cmovneq'
  MCK_cmovnew, // 'cmovnew'
  MCK_cmovnol, // 'cmovnol'
  MCK_cmovnoq, // 'cmovnoq'
  MCK_cmovnow, // 'cmovnow'
  MCK_cmovnpl, // 'cmovnpl'
  MCK_cmovnpq, // 'cmovnpq'
  MCK_cmovnpw, // 'cmovnpw'
  MCK_cmovnsl, // 'cmovnsl'
  MCK_cmovnsq, // 'cmovnsq'
  MCK_cmovnsw, // 'cmovnsw'
  MCK_cmovol, // 'cmovol'
  MCK_cmovoq, // 'cmovoq'
  MCK_cmovow, // 'cmovow'
  MCK_cmovpl, // 'cmovpl'
  MCK_cmovpq, // 'cmovpq'
  MCK_cmovpw, // 'cmovpw'
  MCK_cmovsl, // 'cmovsl'
  MCK_cmovsq, // 'cmovsq'
  MCK_cmovsw, // 'cmovsw'
  MCK_cmp, // 'cmp'
  MCK_cmpb, // 'cmpb'
  MCK_cmpl, // 'cmpl'
  MCK_cmpq, // 'cmpq'
  MCK_cmpsb, // 'cmpsb'
  MCK_cmpsl, // 'cmpsl'
  MCK_cmpsq, // 'cmpsq'
  MCK_cmpsw, // 'cmpsw'
  MCK_cmpw, // 'cmpw'
  MCK_cmpxchg16b, // 'cmpxchg16b'
  MCK_cmpxchg8b, // 'cmpxchg8b'
  MCK_cmpxchgb, // 'cmpxchgb'
  MCK_cmpxchgl, // 'cmpxchgl'
  MCK_cmpxchgq, // 'cmpxchgq'
  MCK_cmpxchgw, // 'cmpxchgw'
  MCK_comisd, // 'comisd'
  MCK_comiss, // 'comiss'
  MCK_cpuid, // 'cpuid'
  MCK_cqto, // 'cqto'
  MCK_crc32, // 'crc32'
  MCK_cs, // 'cs'
  MCK_cvtdq2pd, // 'cvtdq2pd'
  MCK_cvtdq2ps, // 'cvtdq2ps'
  MCK_cvtpd2dq, // 'cvtpd2dq'
  MCK_cvtpd2pi, // 'cvtpd2pi'
  MCK_cvtpd2ps, // 'cvtpd2ps'
  MCK_cvtpi2pd, // 'cvtpi2pd'
  MCK_cvtpi2ps, // 'cvtpi2ps'
  MCK_cvtps2dq, // 'cvtps2dq'
  MCK_cvtps2pd, // 'cvtps2pd'
  MCK_cvtps2pi, // 'cvtps2pi'
  MCK_cvtsd2siq, // 'cvtsd2siq'
  MCK_cvtsd2ss, // 'cvtsd2ss'
  MCK_cvtsi2sd, // 'cvtsi2sd'
  MCK_cvtsi2sdq, // 'cvtsi2sdq'
  MCK_cvtsi2ss, // 'cvtsi2ss'
  MCK_cvtsi2ssq, // 'cvtsi2ssq'
  MCK_cvtss2sd, // 'cvtss2sd'
  MCK_cvtss2sil, // 'cvtss2sil'
  MCK_cvtss2siq, // 'cvtss2siq'
  MCK_cvttpd2pi, // 'cvttpd2pi'
  MCK_cvttps2dq, // 'cvttps2dq'
  MCK_cvttps2pi, // 'cvttps2pi'
  MCK_cvttsd2si, // 'cvttsd2si'
  MCK_cvttsd2siq, // 'cvttsd2siq'
  MCK_cvttss2si, // 'cvttss2si'
  MCK_cvttss2siq, // 'cvttss2siq'
  MCK_cwtd, // 'cwtd'
  MCK_cwtl, // 'cwtl'
  MCK_decb, // 'decb'
  MCK_decl, // 'decl'
  MCK_decq, // 'decq'
  MCK_decw, // 'decw'
  MCK_divb, // 'divb'
  MCK_divl, // 'divl'
  MCK_divpd, // 'divpd'
  MCK_divps, // 'divps'
  MCK_divq, // 'divq'
  MCK_divsd, // 'divsd'
  MCK_divss, // 'divss'
  MCK_divw, // 'divw'
  MCK_dppd, // 'dppd'
  MCK_dpps, // 'dpps'
  MCK_ds, // 'ds'
  MCK_emms, // 'emms'
  MCK_enter, // 'enter'
  MCK_es, // 'es'
  MCK_extractps, // 'extractps'
  MCK_f2xm1, // 'f2xm1'
  MCK_fabs, // 'fabs'
  MCK_fadd, // 'fadd'
  MCK_faddl, // 'faddl'
  MCK_faddp, // 'faddp'
  MCK_fadds, // 'fadds'
  MCK_fbld, // 'fbld'
  MCK_fbstp, // 'fbstp'
  MCK_fchs, // 'fchs'
  MCK_fcmovb, // 'fcmovb'
  MCK_fcmovbe, // 'fcmovbe'
  MCK_fcmove, // 'fcmove'
  MCK_fcmovnb, // 'fcmovnb'
  MCK_fcmovnbe, // 'fcmovnbe'
  MCK_fcmovne, // 'fcmovne'
  MCK_fcmovnu, // 'fcmovnu'
  MCK_fcmovu, // 'fcmovu'
  MCK_fcom, // 'fcom'
  MCK_fcomi, // 'fcomi'
  MCK_fcomip, // 'fcomip'
  MCK_fcoml, // 'fcoml'
  MCK_fcomll, // 'fcomll'
  MCK_fcomp, // 'fcomp'
  MCK_fcompl, // 'fcompl'
  MCK_fcompll, // 'fcompll'
  MCK_fcompp, // 'fcompp'
  MCK_fcos, // 'fcos'
  MCK_fdecstp, // 'fdecstp'
  MCK_fdiv, // 'fdiv'
  MCK_fdivl, // 'fdivl'
  MCK_fdivp, // 'fdivp'
  MCK_fdivr, // 'fdivr'
  MCK_fdivrl, // 'fdivrl'
  MCK_fdivrp, // 'fdivrp'
  MCK_fdivrs, // 'fdivrs'
  MCK_fdivs, // 'fdivs'
  MCK_femms, // 'femms'
  MCK_ffree, // 'ffree'
  MCK_fiaddl, // 'fiaddl'
  MCK_fiadds, // 'fiadds'
  MCK_ficoml, // 'ficoml'
  MCK_ficompl, // 'ficompl'
  MCK_ficompw, // 'ficompw'
  MCK_ficomw, // 'ficomw'
  MCK_fidivl, // 'fidivl'
  MCK_fidivrl, // 'fidivrl'
  MCK_fidivrs, // 'fidivrs'
  MCK_fidivs, // 'fidivs'
  MCK_fildl, // 'fildl'
  MCK_fildll, // 'fildll'
  MCK_filds, // 'filds'
  MCK_fimull, // 'fimull'
  MCK_fimuls, // 'fimuls'
  MCK_fincstp, // 'fincstp'
  MCK_fistl, // 'fistl'
  MCK_fistpl, // 'fistpl'
  MCK_fistpll, // 'fistpll'
  MCK_fistps, // 'fistps'
  MCK_fists, // 'fists'
  MCK_fisttpl, // 'fisttpl'
  MCK_fisttpll, // 'fisttpll'
  MCK_fisttps, // 'fisttps'
  MCK_fisubl, // 'fisubl'
  MCK_fisubrl, // 'fisubrl'
  MCK_fisubrs, // 'fisubrs'
  MCK_fisubs, // 'fisubs'
  MCK_fld, // 'fld'
  MCK_fld1, // 'fld1'
  MCK_fldcw, // 'fldcw'
  MCK_fldenv, // 'fldenv'
  MCK_fldl, // 'fldl'
  MCK_fldl2e, // 'fldl2e'
  MCK_fldl2t, // 'fldl2t'
  MCK_fldlg2, // 'fldlg2'
  MCK_fldln2, // 'fldln2'
  MCK_fldpi, // 'fldpi'
  MCK_flds, // 'flds'
  MCK_fldt, // 'fldt'
  MCK_fldz, // 'fldz'
  MCK_fmul, // 'fmul'
  MCK_fmull, // 'fmull'
  MCK_fmulp, // 'fmulp'
  MCK_fmuls, // 'fmuls'
  MCK_fnclex, // 'fnclex'
  MCK_fninit, // 'fninit'
  MCK_fnop, // 'fnop'
  MCK_fnsave, // 'fnsave'
  MCK_fnstcw, // 'fnstcw'
  MCK_fnstenv, // 'fnstenv'
  MCK_fnstsw, // 'fnstsw'
  MCK_fpatan, // 'fpatan'
  MCK_fprem, // 'fprem'
  MCK_fprem1, // 'fprem1'
  MCK_fptan, // 'fptan'
  MCK_frndint, // 'frndint'
  MCK_frstor, // 'frstor'
  MCK_fs, // 'fs'
  MCK_fscale, // 'fscale'
  MCK_fsin, // 'fsin'
  MCK_fsincos, // 'fsincos'
  MCK_fsqrt, // 'fsqrt'
  MCK_fst, // 'fst'
  MCK_fstl, // 'fstl'
  MCK_fstp, // 'fstp'
  MCK_fstpl, // 'fstpl'
  MCK_fstps, // 'fstps'
  MCK_fstpt, // 'fstpt'
  MCK_fsts, // 'fsts'
  MCK_fsub, // 'fsub'
  MCK_fsubl, // 'fsubl'
  MCK_fsubp, // 'fsubp'
  MCK_fsubr, // 'fsubr'
  MCK_fsubrl, // 'fsubrl'
  MCK_fsubrp, // 'fsubrp'
  MCK_fsubrs, // 'fsubrs'
  MCK_fsubs, // 'fsubs'
  MCK_ftst, // 'ftst'
  MCK_fucom, // 'fucom'
  MCK_fucomi, // 'fucomi'
  MCK_fucomip, // 'fucomip'
  MCK_fucomp, // 'fucomp'
  MCK_fucompp, // 'fucompp'
  MCK_fxam, // 'fxam'
  MCK_fxch, // 'fxch'
  MCK_fxrstor, // 'fxrstor'
  MCK_fxsave, // 'fxsave'
  MCK_fxtract, // 'fxtract'
  MCK_fyl2x, // 'fyl2x'
  MCK_fyl2xp1, // 'fyl2xp1'
  MCK_gs, // 'gs'
  MCK_haddpd, // 'haddpd'
  MCK_haddps, // 'haddps'
  MCK_hlt, // 'hlt'
  MCK_hsubpd, // 'hsubpd'
  MCK_hsubps, // 'hsubps'
  MCK_idivb, // 'idivb'
  MCK_idivl, // 'idivl'
  MCK_idivq, // 'idivq'
  MCK_idivw, // 'idivw'
  MCK_imulb, // 'imulb'
  MCK_imull, // 'imull'
  MCK_imulq, // 'imulq'
  MCK_imulw, // 'imulw'
  MCK_inb, // 'inb'
  MCK_incb, // 'incb'
  MCK_incl, // 'incl'
  MCK_incq, // 'incq'
  MCK_incw, // 'incw'
  MCK_inl, // 'inl'
  MCK_insb, // 'insb'
  MCK_insertps, // 'insertps'
  MCK_insl, // 'insl'
  MCK_insw, // 'insw'
  MCK_int, // 'int'
  MCK_invd, // 'invd'
  MCK_invept, // 'invept'
  MCK_invlpg, // 'invlpg'
  MCK_invvpid, // 'invvpid'
  MCK_inw, // 'inw'
  MCK_iretl, // 'iretl'
  MCK_iretq, // 'iretq'
  MCK_iretw, // 'iretw'
  MCK_ja, // 'ja'
  MCK_jae, // 'jae'
  MCK_jb, // 'jb'
  MCK_jbe, // 'jbe'
  MCK_jcxz, // 'jcxz'
  MCK_je, // 'je'
  MCK_jg, // 'jg'
  MCK_jge, // 'jge'
  MCK_jl, // 'jl'
  MCK_jle, // 'jle'
  MCK_jmp, // 'jmp'
  MCK_jmpl, // 'jmpl'
  MCK_jmpq, // 'jmpq'
  MCK_jne, // 'jne'
  MCK_jno, // 'jno'
  MCK_jnp, // 'jnp'
  MCK_jns, // 'jns'
  MCK_jo, // 'jo'
  MCK_jp, // 'jp'
  MCK_js, // 'js'
  MCK_lahf, // 'lahf'
  MCK_larl, // 'larl'
  MCK_larq, // 'larq'
  MCK_larw, // 'larw'
  MCK_lcalll, // 'lcalll'
  MCK_lcallq, // 'lcallq'
  MCK_lcallw, // 'lcallw'
  MCK_lddqu, // 'lddqu'
  MCK_ldmxcsr, // 'ldmxcsr'
  MCK_ldsl, // 'ldsl'
  MCK_ldsw, // 'ldsw'
  MCK_leal, // 'leal'
  MCK_leaq, // 'leaq'
  MCK_leave, // 'leave'
  MCK_leaw, // 'leaw'
  MCK_lesl, // 'lesl'
  MCK_lesw, // 'lesw'
  MCK_lfence, // 'lfence'
  MCK_lfsl, // 'lfsl'
  MCK_lfsq, // 'lfsq'
  MCK_lfsw, // 'lfsw'
  MCK_lgdt, // 'lgdt'
  MCK_lgsl, // 'lgsl'
  MCK_lgsq, // 'lgsq'
  MCK_lgsw, // 'lgsw'
  MCK_lidt, // 'lidt'
  MCK_ljmpl, // 'ljmpl'
  MCK_ljmpq, // 'ljmpq'
  MCK_ljmpw, // 'ljmpw'
  MCK_lldtw, // 'lldtw'
  MCK_lmsww, // 'lmsww'
  MCK_lock, // 'lock'
  MCK_lodsb, // 'lodsb'
  MCK_lodsl, // 'lodsl'
  MCK_lodsq, // 'lodsq'
  MCK_lodsw, // 'lodsw'
  MCK_loop, // 'loop'
  MCK_loope, // 'loope'
  MCK_loopne, // 'loopne'
  MCK_lret, // 'lret'
  MCK_lsll, // 'lsll'
  MCK_lslq, // 'lslq'
  MCK_lslw, // 'lslw'
  MCK_lssl, // 'lssl'
  MCK_lssq, // 'lssq'
  MCK_lssw, // 'lssw'
  MCK_ltrw, // 'ltrw'
  MCK_maskmovdqu, // 'maskmovdqu'
  MCK_maskmovq, // 'maskmovq'
  MCK_maxpd, // 'maxpd'
  MCK_maxps, // 'maxps'
  MCK_maxsd, // 'maxsd'
  MCK_maxss, // 'maxss'
  MCK_mfence, // 'mfence'
  MCK_minpd, // 'minpd'
  MCK_minps, // 'minps'
  MCK_minsd, // 'minsd'
  MCK_minss, // 'minss'
  MCK_monitor, // 'monitor'
  MCK_movabsq, // 'movabsq'
  MCK_movapd, // 'movapd'
  MCK_movaps, // 'movaps'
  MCK_movb, // 'movb'
  MCK_movd, // 'movd'
  MCK_movddup, // 'movddup'
  MCK_movdq2q, // 'movdq2q'
  MCK_movdqa, // 'movdqa'
  MCK_movdqu, // 'movdqu'
  MCK_movhlps, // 'movhlps'
  MCK_movhpd, // 'movhpd'
  MCK_movhps, // 'movhps'
  MCK_movl, // 'movl'
  MCK_movlhps, // 'movlhps'
  MCK_movlpd, // 'movlpd'
  MCK_movlps, // 'movlps'
  MCK_movmskpd, // 'movmskpd'
  MCK_movmskps, // 'movmskps'
  MCK_movntdq, // 'movntdq'
  MCK_movntdqa, // 'movntdqa'
  MCK_movnti, // 'movnti'
  MCK_movntpd, // 'movntpd'
  MCK_movntps, // 'movntps'
  MCK_movntq, // 'movntq'
  MCK_movq, // 'movq'
  MCK_movq2dq, // 'movq2dq'
  MCK_movsb, // 'movsb'
  MCK_movsbl, // 'movsbl'
  MCK_movsbq, // 'movsbq'
  MCK_movsbw, // 'movsbw'
  MCK_movsd, // 'movsd'
  MCK_movshdup, // 'movshdup'
  MCK_movsl, // 'movsl'
  MCK_movsldup, // 'movsldup'
  MCK_movslq, // 'movslq'
  MCK_movss, // 'movss'
  MCK_movsw, // 'movsw'
  MCK_movswl, // 'movswl'
  MCK_movswq, // 'movswq'
  MCK_movupd, // 'movupd'
  MCK_movups, // 'movups'
  MCK_movw, // 'movw'
  MCK_movzbl, // 'movzbl'
  MCK_movzbq, // 'movzbq'
  MCK_movzbw, // 'movzbw'
  MCK_movzwl, // 'movzwl'
  MCK_movzwq, // 'movzwq'
  MCK_mpsadbw, // 'mpsadbw'
  MCK_mulb, // 'mulb'
  MCK_mull, // 'mull'
  MCK_mulpd, // 'mulpd'
  MCK_mulps, // 'mulps'
  MCK_mulq, // 'mulq'
  MCK_mulsd, // 'mulsd'
  MCK_mulss, // 'mulss'
  MCK_mulw, // 'mulw'
  MCK_mwait, // 'mwait'
  MCK_negb, // 'negb'
  MCK_negl, // 'negl'
  MCK_negq, // 'negq'
  MCK_negw, // 'negw'
  MCK_nop, // 'nop'
  MCK_nopl, // 'nopl'
  MCK_nopw, // 'nopw'
  MCK_notb, // 'notb'
  MCK_notl, // 'notl'
  MCK_notq, // 'notq'
  MCK_notw, // 'notw'
  MCK_orb, // 'orb'
  MCK_orl, // 'orl'
  MCK_orpd, // 'orpd'
  MCK_orps, // 'orps'
  MCK_orq, // 'orq'
  MCK_orw, // 'orw'
  MCK_outb, // 'outb'
  MCK_outl, // 'outl'
  MCK_outsb, // 'outsb'
  MCK_outsl, // 'outsl'
  MCK_outsw, // 'outsw'
  MCK_outw, // 'outw'
  MCK_pabsb, // 'pabsb'
  MCK_pabsd, // 'pabsd'
  MCK_pabsw, // 'pabsw'
  MCK_packssdw, // 'packssdw'
  MCK_packsswb, // 'packsswb'
  MCK_packusdw, // 'packusdw'
  MCK_packuswb, // 'packuswb'
  MCK_paddb, // 'paddb'
  MCK_paddd, // 'paddd'
  MCK_paddq, // 'paddq'
  MCK_paddsb, // 'paddsb'
  MCK_paddsw, // 'paddsw'
  MCK_paddusb, // 'paddusb'
  MCK_paddusw, // 'paddusw'
  MCK_paddw, // 'paddw'
  MCK_palignr, // 'palignr'
  MCK_pand, // 'pand'
  MCK_pandn, // 'pandn'
  MCK_pavgb, // 'pavgb'
  MCK_pavgw, // 'pavgw'
  MCK_pblendvb, // 'pblendvb'
  MCK_pblendw, // 'pblendw'
  MCK_pcmpeqb, // 'pcmpeqb'
  MCK_pcmpeqd, // 'pcmpeqd'
  MCK_pcmpeqq, // 'pcmpeqq'
  MCK_pcmpeqw, // 'pcmpeqw'
  MCK_pcmpestri, // 'pcmpestri'
  MCK_pcmpestrm, // 'pcmpestrm'
  MCK_pcmpgtb, // 'pcmpgtb'
  MCK_pcmpgtd, // 'pcmpgtd'
  MCK_pcmpgtq, // 'pcmpgtq'
  MCK_pcmpgtw, // 'pcmpgtw'
  MCK_pcmpistri, // 'pcmpistri'
  MCK_pcmpistrm, // 'pcmpistrm'
  MCK_pd, // 'pd'
  MCK_pextrb, // 'pextrb'
  MCK_pextrd, // 'pextrd'
  MCK_pextrq, // 'pextrq'
  MCK_pextrw, // 'pextrw'
  MCK_phaddd, // 'phaddd'
  MCK_phaddsw, // 'phaddsw'
  MCK_phaddw, // 'phaddw'
  MCK_phminposuw, // 'phminposuw'
  MCK_phsubd, // 'phsubd'
  MCK_phsubsw, // 'phsubsw'
  MCK_phsubw, // 'phsubw'
  MCK_pinsrb, // 'pinsrb'
  MCK_pinsrd, // 'pinsrd'
  MCK_pinsrq, // 'pinsrq'
  MCK_pinsrw, // 'pinsrw'
  MCK_pmaddubsw, // 'pmaddubsw'
  MCK_pmaddwd, // 'pmaddwd'
  MCK_pmaxsb, // 'pmaxsb'
  MCK_pmaxsd, // 'pmaxsd'
  MCK_pmaxsw, // 'pmaxsw'
  MCK_pmaxub, // 'pmaxub'
  MCK_pmaxud, // 'pmaxud'
  MCK_pmaxuw, // 'pmaxuw'
  MCK_pminsb, // 'pminsb'
  MCK_pminsd, // 'pminsd'
  MCK_pminsw, // 'pminsw'
  MCK_pminub, // 'pminub'
  MCK_pminud, // 'pminud'
  MCK_pminuw, // 'pminuw'
  MCK_pmovmskb, // 'pmovmskb'
  MCK_pmovsxbd, // 'pmovsxbd'
  MCK_pmovsxbq, // 'pmovsxbq'
  MCK_pmovsxbw, // 'pmovsxbw'
  MCK_pmovsxdq, // 'pmovsxdq'
  MCK_pmovsxwd, // 'pmovsxwd'
  MCK_pmovsxwq, // 'pmovsxwq'
  MCK_pmovzxbd, // 'pmovzxbd'
  MCK_pmovzxbq, // 'pmovzxbq'
  MCK_pmovzxbw, // 'pmovzxbw'
  MCK_pmovzxdq, // 'pmovzxdq'
  MCK_pmovzxwd, // 'pmovzxwd'
  MCK_pmovzxwq, // 'pmovzxwq'
  MCK_pmuldq, // 'pmuldq'
  MCK_pmulhrsw, // 'pmulhrsw'
  MCK_pmulhuw, // 'pmulhuw'
  MCK_pmulhw, // 'pmulhw'
  MCK_pmulld, // 'pmulld'
  MCK_pmullw, // 'pmullw'
  MCK_pmuludq, // 'pmuludq'
  MCK_popcntl, // 'popcntl'
  MCK_popcntq, // 'popcntq'
  MCK_popcntw, // 'popcntw'
  MCK_popfl, // 'popfl'
  MCK_popfq, // 'popfq'
  MCK_popfw, // 'popfw'
  MCK_popl, // 'popl'
  MCK_popq, // 'popq'
  MCK_popw, // 'popw'
  MCK_por, // 'por'
  MCK_prefetchnta, // 'prefetchnta'
  MCK_prefetcht0, // 'prefetcht0'
  MCK_prefetcht1, // 'prefetcht1'
  MCK_prefetcht2, // 'prefetcht2'
  MCK_ps, // 'ps'
  MCK_psadbw, // 'psadbw'
  MCK_pshufb, // 'pshufb'
  MCK_pshufd, // 'pshufd'
  MCK_pshufhw, // 'pshufhw'
  MCK_pshuflw, // 'pshuflw'
  MCK_pshufw, // 'pshufw'
  MCK_psignb, // 'psignb'
  MCK_psignd, // 'psignd'
  MCK_psignw, // 'psignw'
  MCK_pslld, // 'pslld'
  MCK_pslldq, // 'pslldq'
  MCK_psllq, // 'psllq'
  MCK_psllw, // 'psllw'
  MCK_psrad, // 'psrad'
  MCK_psraw, // 'psraw'
  MCK_psrld, // 'psrld'
  MCK_psrldq, // 'psrldq'
  MCK_psrlq, // 'psrlq'
  MCK_psrlw, // 'psrlw'
  MCK_psubb, // 'psubb'
  MCK_psubd, // 'psubd'
  MCK_psubq, // 'psubq'
  MCK_psubsb, // 'psubsb'
  MCK_psubsw, // 'psubsw'
  MCK_psubusb, // 'psubusb'
  MCK_psubusw, // 'psubusw'
  MCK_psubw, // 'psubw'
  MCK_ptest, // 'ptest'
  MCK_punpckhbw, // 'punpckhbw'
  MCK_punpckhdq, // 'punpckhdq'
  MCK_punpckhqdq, // 'punpckhqdq'
  MCK_punpckhwd, // 'punpckhwd'
  MCK_punpcklbw, // 'punpcklbw'
  MCK_punpckldq, // 'punpckldq'
  MCK_punpcklqdq, // 'punpcklqdq'
  MCK_punpcklwd, // 'punpcklwd'
  MCK_pushfl, // 'pushfl'
  MCK_pushfq, // 'pushfq'
  MCK_pushfw, // 'pushfw'
  MCK_pushl, // 'pushl'
  MCK_pushq, // 'pushq'
  MCK_pushw, // 'pushw'
  MCK_pxor, // 'pxor'
  MCK_rclb, // 'rclb'
  MCK_rcll, // 'rcll'
  MCK_rclq, // 'rclq'
  MCK_rclw, // 'rclw'
  MCK_rcpps, // 'rcpps'
  MCK_rcpss, // 'rcpss'
  MCK_rcrb, // 'rcrb'
  MCK_rcrl, // 'rcrl'
  MCK_rcrq, // 'rcrq'
  MCK_rcrw, // 'rcrw'
  MCK_rdmsr, // 'rdmsr'
  MCK_rdpmc, // 'rdpmc'
  MCK_rdtsc, // 'rdtsc'
  MCK_rdtscp, // 'rdtscp'
  MCK_rep, // 'rep'
  MCK_rep_59_movsq, // 'rep;movsq'
  MCK_rep_59_stosq, // 'rep;stosq'
  MCK_repne, // 'repne'
  MCK_ret, // 'ret'
  MCK_rolb, // 'rolb'
  MCK_roll, // 'roll'
  MCK_rolq, // 'rolq'
  MCK_rolw, // 'rolw'
  MCK_rorb, // 'rorb'
  MCK_rorl, // 'rorl'
  MCK_rorq, // 'rorq'
  MCK_rorw, // 'rorw'
  MCK_rsm, // 'rsm'
  MCK_rsqrtps, // 'rsqrtps'
  MCK_rsqrtss, // 'rsqrtss'
  MCK_sahf, // 'sahf'
  MCK_sarb, // 'sarb'
  MCK_sarl, // 'sarl'
  MCK_sarq, // 'sarq'
  MCK_sarw, // 'sarw'
  MCK_sbbb, // 'sbbb'
  MCK_sbbl, // 'sbbl'
  MCK_sbbq, // 'sbbq'
  MCK_sbbw, // 'sbbw'
  MCK_scasb, // 'scasb'
  MCK_scasl, // 'scasl'
  MCK_scasq, // 'scasq'
  MCK_scasw, // 'scasw'
  MCK_sd, // 'sd'
  MCK_seta, // 'seta'
  MCK_setae, // 'setae'
  MCK_setb, // 'setb'
  MCK_setbe, // 'setbe'
  MCK_sete, // 'sete'
  MCK_setg, // 'setg'
  MCK_setge, // 'setge'
  MCK_setl, // 'setl'
  MCK_setle, // 'setle'
  MCK_setne, // 'setne'
  MCK_setno, // 'setno'
  MCK_setnp, // 'setnp'
  MCK_setns, // 'setns'
  MCK_seto, // 'seto'
  MCK_setp, // 'setp'
  MCK_sets, // 'sets'
  MCK_sfence, // 'sfence'
  MCK_sgdt, // 'sgdt'
  MCK_shlb, // 'shlb'
  MCK_shldl, // 'shldl'
  MCK_shldq, // 'shldq'
  MCK_shldw, // 'shldw'
  MCK_shll, // 'shll'
  MCK_shlq, // 'shlq'
  MCK_shlw, // 'shlw'
  MCK_shrb, // 'shrb'
  MCK_shrdl, // 'shrdl'
  MCK_shrdq, // 'shrdq'
  MCK_shrdw, // 'shrdw'
  MCK_shrl, // 'shrl'
  MCK_shrq, // 'shrq'
  MCK_shrw, // 'shrw'
  MCK_shufpd, // 'shufpd'
  MCK_shufps, // 'shufps'
  MCK_sidt, // 'sidt'
  MCK_sldtq, // 'sldtq'
  MCK_sldtw, // 'sldtw'
  MCK_smswl, // 'smswl'
  MCK_smswq, // 'smswq'
  MCK_smsww, // 'smsww'
  MCK_sqrtpd, // 'sqrtpd'
  MCK_sqrtps, // 'sqrtps'
  MCK_sqrtsd, // 'sqrtsd'
  MCK_sqrtss, // 'sqrtss'
  MCK_ss, // 'ss'
  MCK_stc, // 'stc'
  MCK_std, // 'std'
  MCK_sti, // 'sti'
  MCK_stmxcsr, // 'stmxcsr'
  MCK_stosb, // 'stosb'
  MCK_stosl, // 'stosl'
  MCK_stosw, // 'stosw'
  MCK_strw, // 'strw'
  MCK_subb, // 'subb'
  MCK_subl, // 'subl'
  MCK_subpd, // 'subpd'
  MCK_subps, // 'subps'
  MCK_subq, // 'subq'
  MCK_subsd, // 'subsd'
  MCK_subss, // 'subss'
  MCK_subw, // 'subw'
  MCK_swapgs, // 'swapgs'
  MCK_syscall, // 'syscall'
  MCK_sysenter, // 'sysenter'
  MCK_sysexit, // 'sysexit'
  MCK_sysret, // 'sysret'
  MCK_testb, // 'testb'
  MCK_testl, // 'testl'
  MCK_testq, // 'testq'
  MCK_testw, // 'testw'
  MCK_ucomisd, // 'ucomisd'
  MCK_ucomiss, // 'ucomiss'
  MCK_ud2, // 'ud2'
  MCK_unpckhpd, // 'unpckhpd'
  MCK_unpckhps, // 'unpckhps'
  MCK_unpcklpd, // 'unpcklpd'
  MCK_unpcklps, // 'unpcklps'
  MCK_verr, // 'verr'
  MCK_verw, // 'verw'
  MCK_vmcall, // 'vmcall'
  MCK_vmclear, // 'vmclear'
  MCK_vmlaunch, // 'vmlaunch'
  MCK_vmptrld, // 'vmptrld'
  MCK_vmptrst, // 'vmptrst'
  MCK_vmreadl, // 'vmreadl'
  MCK_vmreadq, // 'vmreadq'
  MCK_vmresume, // 'vmresume'
  MCK_vmwritel, // 'vmwritel'
  MCK_vmwriteq, // 'vmwriteq'
  MCK_vmxoff, // 'vmxoff'
  MCK_vmxon, // 'vmxon'
  MCK_wait, // 'wait'
  MCK_wbinvd, // 'wbinvd'
  MCK_wrmsr, // 'wrmsr'
  MCK_xaddb, // 'xaddb'
  MCK_xaddl, // 'xaddl'
  MCK_xaddq, // 'xaddq'
  MCK_xaddw, // 'xaddw'
  MCK_xchgb, // 'xchgb'
  MCK_xchgl, // 'xchgl'
  MCK_xchgq, // 'xchgq'
  MCK_xchgw, // 'xchgw'
  MCK_xlatb, // 'xlatb'
  MCK_xorb, // 'xorb'
  MCK_xorl, // 'xorl'
  MCK_xorpd, // 'xorpd'
  MCK_xorps, // 'xorps'
  MCK_xorq, // 'xorq'
  MCK_xorw, // 'xorw'
  MCK_AL, // register class 'AL'
  MCK_CL, // register class 'CL'
  MCK_GR8_ABCD_L, // register class 'GR8_ABCD_L'
  MCK_GR8_ABCD_H, // register class 'GR8_ABCD_H'
  MCK_GR8_NOREX, // register class 'GR8_NOREX'
  MCK_GR8, // register class 'GR8'
  MCK_AX, // register class 'AX'
  MCK_DX, // register class 'DX'
  MCK_GR16_ABCD, // register class 'GR16_ABCD'
  MCK_GR16_NOREX, // register class 'GR16_NOREX'
  MCK_GR16, // register class 'GR16'
  MCK_EAX, // register class 'EAX'
  MCK_GR32_AD, // register class 'GR32_AD'
  MCK_GR32_ABCD, // register class 'GR32_ABCD'
  MCK_Reg14, // derived register class
  MCK_GR32_NOREX, // register class 'GR32_NOREX'
  MCK_GR32_NOSP, // register class 'GR32_NOSP'
  MCK_GR32, // register class 'GR32'
  MCK_RAX, // register class 'RAX'
  MCK_GR64_ABCD, // register class 'GR64_ABCD'
  MCK_GR64_NOREX_NOSP, // register class 'GR64_NOREX_NOSP'
  MCK_GR64_NOREX, // register class 'GR64_NOREX'
  MCK_GR64_NOSP, // register class 'GR64_NOSP'
  MCK_GR64, // register class 'GR64'
  MCK_VR64, // register class 'VR64'
  MCK_RFP32, // register class 'RFP32,RFP64,RFP80'
  MCK_XMM0, // register class 'XMM0'
  MCK_FR32, // register class 'FR32,FR64,VR128'
  MCK_VR256, // register class 'VR256'
  MCK_ST0, // register class 'ST0'
  MCK_RST, // register class 'RST'
  MCK_CCR, // register class 'CCR'
  MCK_FS, // register class 'FS'
  MCK_GS, // register class 'GS'
  MCK_SEGMENT_REG, // register class 'SEGMENT_REG'
  MCK_DEBUG_REG, // register class 'DEBUG_REG'
  MCK_CONTROL_REG_32, // register class 'CONTROL_REG_32'
  MCK_CONTROL_REG_64, // register class 'CONTROL_REG_64'
  MCK_ImmSExt8, // user defined class 'ImmSExt8AsmOperand'
  MCK_Imm, // user defined class 'ImmAsmOperand'
  MCK_AbsMem, // user defined class 'X86AbsMemAsmOperand'
  MCK_NoSegMem, // user defined class 'X86NoSegMemAsmOperand'
  MCK_Mem, // user defined class 'X86MemAsmOperand'
  NumMatchClassKinds
};

}

static MatchClassKind MatchTokenString(StringRef Name) {
  switch (Name.size()) {
  default: break;
  case 1:	 // 3 strings to match.
    switch (Name[0]) {
    default: break;
    case '*':	 // 1 strings to match.
      return MCK__STAR_;	 // "*"
    case '1':	 // 1 strings to match.
      return MCK_1;	 // "1"
    case '3':	 // 1 strings to match.
      return MCK_3;	 // "3"
    }
    break;
  case 2:	 // 17 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return MCK_cs;	 // "cs"
    case 'd':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return MCK_ds;	 // "ds"
    case 'e':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return MCK_es;	 // "es"
    case 'f':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return MCK_fs;	 // "fs"
    case 'g':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return MCK_gs;	 // "gs"
    case 'j':	 // 8 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        return MCK_ja;	 // "ja"
      case 'b':	 // 1 strings to match.
        return MCK_jb;	 // "jb"
      case 'e':	 // 1 strings to match.
        return MCK_je;	 // "je"
      case 'g':	 // 1 strings to match.
        return MCK_jg;	 // "jg"
      case 'l':	 // 1 strings to match.
        return MCK_jl;	 // "jl"
      case 'o':	 // 1 strings to match.
        return MCK_jo;	 // "jo"
      case 'p':	 // 1 strings to match.
        return MCK_jp;	 // "jp"
      case 's':	 // 1 strings to match.
        return MCK_js;	 // "js"
      }
      break;
    case 'p':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_pd;	 // "pd"
      case 's':	 // 1 strings to match.
        return MCK_ps;	 // "ps"
      }
      break;
    case 's':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_sd;	 // "sd"
      case 's':	 // 1 strings to match.
        return MCK_ss;	 // "ss"
      }
      break;
    }
    break;
  case 3:	 // 37 strings to match.
    switch (Name[0]) {
    default: break;
    case 'b':	 // 3 strings to match.
      if (Name[1] != 't')
        break;
      switch (Name[2]) {
      default: break;
      case 'l':	 // 1 strings to match.
        return MCK_btl;	 // "btl"
      case 'q':	 // 1 strings to match.
        return MCK_btq;	 // "btq"
      case 'w':	 // 1 strings to match.
        return MCK_btw;	 // "btw"
      }
      break;
    case 'c':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'l':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 1 strings to match.
          return MCK_clc;	 // "clc"
        case 'd':	 // 1 strings to match.
          return MCK_cld;	 // "cld"
        case 'i':	 // 1 strings to match.
          return MCK_cli;	 // "cli"
        }
        break;
      case 'm':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 1 strings to match.
          return MCK_cmc;	 // "cmc"
        case 'p':	 // 1 strings to match.
          return MCK_cmp;	 // "cmp"
        }
        break;
      }
      break;
    case 'f':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'l':	 // 1 strings to match.
        if (Name[2] != 'd')
          break;
        return MCK_fld;	 // "fld"
      case 's':	 // 1 strings to match.
        if (Name[2] != 't')
          break;
        return MCK_fst;	 // "fst"
      }
      break;
    case 'h':	 // 1 strings to match.
      if (Name.substr(1,2) != "lt")
        break;
      return MCK_hlt;	 // "hlt"
    case 'i':	 // 4 strings to match.
      if (Name[1] != 'n')
        break;
      switch (Name[2]) {
      default: break;
      case 'b':	 // 1 strings to match.
        return MCK_inb;	 // "inb"
      case 'l':	 // 1 strings to match.
        return MCK_inl;	 // "inl"
      case 't':	 // 1 strings to match.
        return MCK_int;	 // "int"
      case 'w':	 // 1 strings to match.
        return MCK_inw;	 // "inw"
      }
      break;
    case 'j':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name[2] != 'e')
          break;
        return MCK_jae;	 // "jae"
      case 'b':	 // 1 strings to match.
        if (Name[2] != 'e')
          break;
        return MCK_jbe;	 // "jbe"
      case 'g':	 // 1 strings to match.
        if (Name[2] != 'e')
          break;
        return MCK_jge;	 // "jge"
      case 'l':	 // 1 strings to match.
        if (Name[2] != 'e')
          break;
        return MCK_jle;	 // "jle"
      case 'm':	 // 1 strings to match.
        if (Name[2] != 'p')
          break;
        return MCK_jmp;	 // "jmp"
      case 'n':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'e':	 // 1 strings to match.
          return MCK_jne;	 // "jne"
        case 'o':	 // 1 strings to match.
          return MCK_jno;	 // "jno"
        case 'p':	 // 1 strings to match.
          return MCK_jnp;	 // "jnp"
        case 's':	 // 1 strings to match.
          return MCK_jns;	 // "jns"
        }
        break;
      }
      break;
    case 'n':	 // 1 strings to match.
      if (Name.substr(1,2) != "op")
        break;
      return MCK_nop;	 // "nop"
    case 'o':	 // 4 strings to match.
      if (Name[1] != 'r')
        break;
      switch (Name[2]) {
      default: break;
      case 'b':	 // 1 strings to match.
        return MCK_orb;	 // "orb"
      case 'l':	 // 1 strings to match.
        return MCK_orl;	 // "orl"
      case 'q':	 // 1 strings to match.
        return MCK_orq;	 // "orq"
      case 'w':	 // 1 strings to match.
        return MCK_orw;	 // "orw"
      }
      break;
    case 'p':	 // 1 strings to match.
      if (Name.substr(1,2) != "or")
        break;
      return MCK_por;	 // "por"
    case 'r':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 1 strings to match.
          return MCK_rep;	 // "rep"
        case 't':	 // 1 strings to match.
          return MCK_ret;	 // "ret"
        }
        break;
      case 's':	 // 1 strings to match.
        if (Name[2] != 'm')
          break;
        return MCK_rsm;	 // "rsm"
      }
      break;
    case 's':	 // 3 strings to match.
      if (Name[1] != 't')
        break;
      switch (Name[2]) {
      default: break;
      case 'c':	 // 1 strings to match.
        return MCK_stc;	 // "stc"
      case 'd':	 // 1 strings to match.
        return MCK_std;	 // "std"
      case 'i':	 // 1 strings to match.
        return MCK_sti;	 // "sti"
      }
      break;
    case 'u':	 // 1 strings to match.
      if (Name.substr(1,2) != "d2")
        break;
      return MCK_ud2;	 // "ud2"
    }
    break;
  case 4:	 // 196 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 12 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 8 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_adcb;	 // "adcb"
          case 'l':	 // 1 strings to match.
            return MCK_adcl;	 // "adcl"
          case 'q':	 // 1 strings to match.
            return MCK_adcq;	 // "adcq"
          case 'w':	 // 1 strings to match.
            return MCK_adcw;	 // "adcw"
          }
          break;
        case 'd':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_addb;	 // "addb"
          case 'l':	 // 1 strings to match.
            return MCK_addl;	 // "addl"
          case 'q':	 // 1 strings to match.
            return MCK_addq;	 // "addq"
          case 'w':	 // 1 strings to match.
            return MCK_addw;	 // "addw"
          }
          break;
        }
        break;
      case 'n':	 // 4 strings to match.
        if (Name[2] != 'd')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_andb;	 // "andb"
        case 'l':	 // 1 strings to match.
          return MCK_andl;	 // "andl"
        case 'q':	 // 1 strings to match.
          return MCK_andq;	 // "andq"
        case 'w':	 // 1 strings to match.
          return MCK_andw;	 // "andw"
        }
        break;
      }
      break;
    case 'b':	 // 15 strings to match.
      switch (Name[1]) {
      default: break;
      case 's':	 // 6 strings to match.
        switch (Name[2]) {
        default: break;
        case 'f':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_bsfl;	 // "bsfl"
          case 'q':	 // 1 strings to match.
            return MCK_bsfq;	 // "bsfq"
          case 'w':	 // 1 strings to match.
            return MCK_bsfw;	 // "bsfw"
          }
          break;
        case 'r':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_bsrl;	 // "bsrl"
          case 'q':	 // 1 strings to match.
            return MCK_bsrq;	 // "bsrq"
          case 'w':	 // 1 strings to match.
            return MCK_bsrw;	 // "bsrw"
          }
          break;
        }
        break;
      case 't':	 // 9 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_btcl;	 // "btcl"
          case 'q':	 // 1 strings to match.
            return MCK_btcq;	 // "btcq"
          case 'w':	 // 1 strings to match.
            return MCK_btcw;	 // "btcw"
          }
          break;
        case 'r':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_btrl;	 // "btrl"
          case 'q':	 // 1 strings to match.
            return MCK_btrq;	 // "btrq"
          case 'w':	 // 1 strings to match.
            return MCK_btrw;	 // "btrw"
          }
          break;
        case 's':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_btsl;	 // "btsl"
          case 'q':	 // 1 strings to match.
            return MCK_btsq;	 // "btsq"
          case 'w':	 // 1 strings to match.
            return MCK_btsw;	 // "btsw"
          }
          break;
        }
        break;
      }
      break;
    case 'c':	 // 12 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name.substr(2,2) != "ll")
          break;
        return MCK_call;	 // "call"
      case 'b':	 // 1 strings to match.
        if (Name.substr(2,2) != "tw")
          break;
        return MCK_cbtw;	 // "cbtw"
      case 'l':	 // 3 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_cltd;	 // "cltd"
        case 'q':	 // 1 strings to match.
          return MCK_cltq;	 // "cltq"
        case 's':	 // 1 strings to match.
          return MCK_clts;	 // "clts"
        }
        break;
      case 'm':	 // 4 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_cmpb;	 // "cmpb"
        case 'l':	 // 1 strings to match.
          return MCK_cmpl;	 // "cmpl"
        case 'q':	 // 1 strings to match.
          return MCK_cmpq;	 // "cmpq"
        case 'w':	 // 1 strings to match.
          return MCK_cmpw;	 // "cmpw"
        }
        break;
      case 'q':	 // 1 strings to match.
        if (Name.substr(2,2) != "to")
          break;
        return MCK_cqto;	 // "cqto"
      case 'w':	 // 2 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_cwtd;	 // "cwtd"
        case 'l':	 // 1 strings to match.
          return MCK_cwtl;	 // "cwtl"
        }
        break;
      }
      break;
    case 'd':	 // 10 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 4 strings to match.
        if (Name[2] != 'c')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_decb;	 // "decb"
        case 'l':	 // 1 strings to match.
          return MCK_decl;	 // "decl"
        case 'q':	 // 1 strings to match.
          return MCK_decq;	 // "decq"
        case 'w':	 // 1 strings to match.
          return MCK_decw;	 // "decw"
        }
        break;
      case 'i':	 // 4 strings to match.
        if (Name[2] != 'v')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_divb;	 // "divb"
        case 'l':	 // 1 strings to match.
          return MCK_divl;	 // "divl"
        case 'q':	 // 1 strings to match.
          return MCK_divq;	 // "divq"
        case 'w':	 // 1 strings to match.
          return MCK_divw;	 // "divw"
        }
        break;
      case 'p':	 // 2 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_dppd;	 // "dppd"
        case 's':	 // 1 strings to match.
          return MCK_dpps;	 // "dpps"
        }
        break;
      }
      break;
    case 'e':	 // 1 strings to match.
      if (Name.substr(1,3) != "mms")
        break;
      return MCK_emms;	 // "emms"
    case 'f':	 // 22 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'b':	 // 1 strings to match.
          if (Name[3] != 's')
            break;
          return MCK_fabs;	 // "fabs"
        case 'd':	 // 1 strings to match.
          if (Name[3] != 'd')
            break;
          return MCK_fadd;	 // "fadd"
        }
        break;
      case 'b':	 // 1 strings to match.
        if (Name.substr(2,2) != "ld")
          break;
        return MCK_fbld;	 // "fbld"
      case 'c':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'h':	 // 1 strings to match.
          if (Name[3] != 's')
            break;
          return MCK_fchs;	 // "fchs"
        case 'o':	 // 2 strings to match.
          switch (Name[3]) {
          default: break;
          case 'm':	 // 1 strings to match.
            return MCK_fcom;	 // "fcom"
          case 's':	 // 1 strings to match.
            return MCK_fcos;	 // "fcos"
          }
          break;
        }
        break;
      case 'd':	 // 1 strings to match.
        if (Name.substr(2,2) != "iv")
          break;
        return MCK_fdiv;	 // "fdiv"
      case 'l':	 // 5 strings to match.
        if (Name[2] != 'd')
          break;
        switch (Name[3]) {
        default: break;
        case '1':	 // 1 strings to match.
          return MCK_fld1;	 // "fld1"
        case 'l':	 // 1 strings to match.
          return MCK_fldl;	 // "fldl"
        case 's':	 // 1 strings to match.
          return MCK_flds;	 // "flds"
        case 't':	 // 1 strings to match.
          return MCK_fldt;	 // "fldt"
        case 'z':	 // 1 strings to match.
          return MCK_fldz;	 // "fldz"
        }
        break;
      case 'm':	 // 1 strings to match.
        if (Name.substr(2,2) != "ul")
          break;
        return MCK_fmul;	 // "fmul"
      case 'n':	 // 1 strings to match.
        if (Name.substr(2,2) != "op")
          break;
        return MCK_fnop;	 // "fnop"
      case 's':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          if (Name[3] != 'n')
            break;
          return MCK_fsin;	 // "fsin"
        case 't':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fstl;	 // "fstl"
          case 'p':	 // 1 strings to match.
            return MCK_fstp;	 // "fstp"
          case 's':	 // 1 strings to match.
            return MCK_fsts;	 // "fsts"
          }
          break;
        case 'u':	 // 1 strings to match.
          if (Name[3] != 'b')
            break;
          return MCK_fsub;	 // "fsub"
        }
        break;
      case 't':	 // 1 strings to match.
        if (Name.substr(2,2) != "st")
          break;
        return MCK_ftst;	 // "ftst"
      case 'x':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name[3] != 'm')
            break;
          return MCK_fxam;	 // "fxam"
        case 'c':	 // 1 strings to match.
          if (Name[3] != 'h')
            break;
          return MCK_fxch;	 // "fxch"
        }
        break;
      }
      break;
    case 'i':	 // 8 strings to match.
      if (Name[1] != 'n')
        break;
      switch (Name[2]) {
      default: break;
      case 'c':	 // 4 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_incb;	 // "incb"
        case 'l':	 // 1 strings to match.
          return MCK_incl;	 // "incl"
        case 'q':	 // 1 strings to match.
          return MCK_incq;	 // "incq"
        case 'w':	 // 1 strings to match.
          return MCK_incw;	 // "incw"
        }
        break;
      case 's':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_insb;	 // "insb"
        case 'l':	 // 1 strings to match.
          return MCK_insl;	 // "insl"
        case 'w':	 // 1 strings to match.
          return MCK_insw;	 // "insw"
        }
        break;
      case 'v':	 // 1 strings to match.
        if (Name[3] != 'd')
          break;
        return MCK_invd;	 // "invd"
      }
      break;
    case 'j':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 strings to match.
        if (Name.substr(2,2) != "xz")
          break;
        return MCK_jcxz;	 // "jcxz"
      case 'm':	 // 2 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_jmpl;	 // "jmpl"
        case 'q':	 // 1 strings to match.
          return MCK_jmpq;	 // "jmpq"
        }
        break;
      }
      break;
    case 'l':	 // 29 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'h':	 // 1 strings to match.
          if (Name[3] != 'f')
            break;
          return MCK_lahf;	 // "lahf"
        case 'r':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_larl;	 // "larl"
          case 'q':	 // 1 strings to match.
            return MCK_larq;	 // "larq"
          case 'w':	 // 1 strings to match.
            return MCK_larw;	 // "larw"
          }
          break;
        }
        break;
      case 'd':	 // 2 strings to match.
        if (Name[2] != 's')
          break;
        switch (Name[3]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_ldsl;	 // "ldsl"
        case 'w':	 // 1 strings to match.
          return MCK_ldsw;	 // "ldsw"
        }
        break;
      case 'e':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_leal;	 // "leal"
          case 'q':	 // 1 strings to match.
            return MCK_leaq;	 // "leaq"
          case 'w':	 // 1 strings to match.
            return MCK_leaw;	 // "leaw"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_lesl;	 // "lesl"
          case 'w':	 // 1 strings to match.
            return MCK_lesw;	 // "lesw"
          }
          break;
        }
        break;
      case 'f':	 // 3 strings to match.
        if (Name[2] != 's')
          break;
        switch (Name[3]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_lfsl;	 // "lfsl"
        case 'q':	 // 1 strings to match.
          return MCK_lfsq;	 // "lfsq"
        case 'w':	 // 1 strings to match.
          return MCK_lfsw;	 // "lfsw"
        }
        break;
      case 'g':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'd':	 // 1 strings to match.
          if (Name[3] != 't')
            break;
          return MCK_lgdt;	 // "lgdt"
        case 's':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_lgsl;	 // "lgsl"
          case 'q':	 // 1 strings to match.
            return MCK_lgsq;	 // "lgsq"
          case 'w':	 // 1 strings to match.
            return MCK_lgsw;	 // "lgsw"
          }
          break;
        }
        break;
      case 'i':	 // 1 strings to match.
        if (Name.substr(2,2) != "dt")
          break;
        return MCK_lidt;	 // "lidt"
      case 'o':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 1 strings to match.
          if (Name[3] != 'k')
            break;
          return MCK_lock;	 // "lock"
        case 'o':	 // 1 strings to match.
          if (Name[3] != 'p')
            break;
          return MCK_loop;	 // "loop"
        }
        break;
      case 'r':	 // 1 strings to match.
        if (Name.substr(2,2) != "et")
          break;
        return MCK_lret;	 // "lret"
      case 's':	 // 6 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_lsll;	 // "lsll"
          case 'q':	 // 1 strings to match.
            return MCK_lslq;	 // "lslq"
          case 'w':	 // 1 strings to match.
            return MCK_lslw;	 // "lslw"
          }
          break;
        case 's':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_lssl;	 // "lssl"
          case 'q':	 // 1 strings to match.
            return MCK_lssq;	 // "lssq"
          case 'w':	 // 1 strings to match.
            return MCK_lssw;	 // "lssw"
          }
          break;
        }
        break;
      case 't':	 // 1 strings to match.
        if (Name.substr(2,2) != "rw")
          break;
        return MCK_ltrw;	 // "ltrw"
      }
      break;
    case 'm':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'o':	 // 5 strings to match.
        if (Name[2] != 'v')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_movb;	 // "movb"
        case 'd':	 // 1 strings to match.
          return MCK_movd;	 // "movd"
        case 'l':	 // 1 strings to match.
          return MCK_movl;	 // "movl"
        case 'q':	 // 1 strings to match.
          return MCK_movq;	 // "movq"
        case 'w':	 // 1 strings to match.
          return MCK_movw;	 // "movw"
        }
        break;
      case 'u':	 // 4 strings to match.
        if (Name[2] != 'l')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_mulb;	 // "mulb"
        case 'l':	 // 1 strings to match.
          return MCK_mull;	 // "mull"
        case 'q':	 // 1 strings to match.
          return MCK_mulq;	 // "mulq"
        case 'w':	 // 1 strings to match.
          return MCK_mulw;	 // "mulw"
        }
        break;
      }
      break;
    case 'n':	 // 10 strings to match.
      switch (Name[1]) {
      default: break;
      case 'e':	 // 4 strings to match.
        if (Name[2] != 'g')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_negb;	 // "negb"
        case 'l':	 // 1 strings to match.
          return MCK_negl;	 // "negl"
        case 'q':	 // 1 strings to match.
          return MCK_negq;	 // "negq"
        case 'w':	 // 1 strings to match.
          return MCK_negw;	 // "negw"
        }
        break;
      case 'o':	 // 6 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[3]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_nopl;	 // "nopl"
          case 'w':	 // 1 strings to match.
            return MCK_nopw;	 // "nopw"
          }
          break;
        case 't':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_notb;	 // "notb"
          case 'l':	 // 1 strings to match.
            return MCK_notl;	 // "notl"
          case 'q':	 // 1 strings to match.
            return MCK_notq;	 // "notq"
          case 'w':	 // 1 strings to match.
            return MCK_notw;	 // "notw"
          }
          break;
        }
        break;
      }
      break;
    case 'o':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'r':	 // 2 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_orpd;	 // "orpd"
        case 's':	 // 1 strings to match.
          return MCK_orps;	 // "orps"
        }
        break;
      case 'u':	 // 3 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_outb;	 // "outb"
        case 'l':	 // 1 strings to match.
          return MCK_outl;	 // "outl"
        case 'w':	 // 1 strings to match.
          return MCK_outw;	 // "outw"
        }
        break;
      }
      break;
    case 'p':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name.substr(2,2) != "nd")
          break;
        return MCK_pand;	 // "pand"
      case 'o':	 // 3 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_popl;	 // "popl"
        case 'q':	 // 1 strings to match.
          return MCK_popq;	 // "popq"
        case 'w':	 // 1 strings to match.
          return MCK_popw;	 // "popw"
        }
        break;
      case 'x':	 // 1 strings to match.
        if (Name.substr(2,2) != "or")
          break;
        return MCK_pxor;	 // "pxor"
      }
      break;
    case 'r':	 // 16 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 8 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_rclb;	 // "rclb"
          case 'l':	 // 1 strings to match.
            return MCK_rcll;	 // "rcll"
          case 'q':	 // 1 strings to match.
            return MCK_rclq;	 // "rclq"
          case 'w':	 // 1 strings to match.
            return MCK_rclw;	 // "rclw"
          }
          break;
        case 'r':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_rcrb;	 // "rcrb"
          case 'l':	 // 1 strings to match.
            return MCK_rcrl;	 // "rcrl"
          case 'q':	 // 1 strings to match.
            return MCK_rcrq;	 // "rcrq"
          case 'w':	 // 1 strings to match.
            return MCK_rcrw;	 // "rcrw"
          }
          break;
        }
        break;
      case 'o':	 // 8 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_rolb;	 // "rolb"
          case 'l':	 // 1 strings to match.
            return MCK_roll;	 // "roll"
          case 'q':	 // 1 strings to match.
            return MCK_rolq;	 // "rolq"
          case 'w':	 // 1 strings to match.
            return MCK_rolw;	 // "rolw"
          }
          break;
        case 'r':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_rorb;	 // "rorb"
          case 'l':	 // 1 strings to match.
            return MCK_rorl;	 // "rorl"
          case 'q':	 // 1 strings to match.
            return MCK_rorq;	 // "rorq"
          case 'w':	 // 1 strings to match.
            return MCK_rorw;	 // "rorw"
          }
          break;
        }
        break;
      }
      break;
    case 's':	 // 32 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'h':	 // 1 strings to match.
          if (Name[3] != 'f')
            break;
          return MCK_sahf;	 // "sahf"
        case 'r':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_sarb;	 // "sarb"
          case 'l':	 // 1 strings to match.
            return MCK_sarl;	 // "sarl"
          case 'q':	 // 1 strings to match.
            return MCK_sarq;	 // "sarq"
          case 'w':	 // 1 strings to match.
            return MCK_sarw;	 // "sarw"
          }
          break;
        }
        break;
      case 'b':	 // 4 strings to match.
        if (Name[2] != 'b')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_sbbb;	 // "sbbb"
        case 'l':	 // 1 strings to match.
          return MCK_sbbl;	 // "sbbl"
        case 'q':	 // 1 strings to match.
          return MCK_sbbq;	 // "sbbq"
        case 'w':	 // 1 strings to match.
          return MCK_sbbw;	 // "sbbw"
        }
        break;
      case 'e':	 // 8 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 'a':	 // 1 strings to match.
          return MCK_seta;	 // "seta"
        case 'b':	 // 1 strings to match.
          return MCK_setb;	 // "setb"
        case 'e':	 // 1 strings to match.
          return MCK_sete;	 // "sete"
        case 'g':	 // 1 strings to match.
          return MCK_setg;	 // "setg"
        case 'l':	 // 1 strings to match.
          return MCK_setl;	 // "setl"
        case 'o':	 // 1 strings to match.
          return MCK_seto;	 // "seto"
        case 'p':	 // 1 strings to match.
          return MCK_setp;	 // "setp"
        case 's':	 // 1 strings to match.
          return MCK_sets;	 // "sets"
        }
        break;
      case 'g':	 // 1 strings to match.
        if (Name.substr(2,2) != "dt")
          break;
        return MCK_sgdt;	 // "sgdt"
      case 'h':	 // 8 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_shlb;	 // "shlb"
          case 'l':	 // 1 strings to match.
            return MCK_shll;	 // "shll"
          case 'q':	 // 1 strings to match.
            return MCK_shlq;	 // "shlq"
          case 'w':	 // 1 strings to match.
            return MCK_shlw;	 // "shlw"
          }
          break;
        case 'r':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_shrb;	 // "shrb"
          case 'l':	 // 1 strings to match.
            return MCK_shrl;	 // "shrl"
          case 'q':	 // 1 strings to match.
            return MCK_shrq;	 // "shrq"
          case 'w':	 // 1 strings to match.
            return MCK_shrw;	 // "shrw"
          }
          break;
        }
        break;
      case 'i':	 // 1 strings to match.
        if (Name.substr(2,2) != "dt")
          break;
        return MCK_sidt;	 // "sidt"
      case 't':	 // 1 strings to match.
        if (Name.substr(2,2) != "rw")
          break;
        return MCK_strw;	 // "strw"
      case 'u':	 // 4 strings to match.
        if (Name[2] != 'b')
          break;
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_subb;	 // "subb"
        case 'l':	 // 1 strings to match.
          return MCK_subl;	 // "subl"
        case 'q':	 // 1 strings to match.
          return MCK_subq;	 // "subq"
        case 'w':	 // 1 strings to match.
          return MCK_subw;	 // "subw"
        }
        break;
      }
      break;
    case 'v':	 // 2 strings to match.
      if (Name.substr(1,2) != "er")
        break;
      switch (Name[3]) {
      default: break;
      case 'r':	 // 1 strings to match.
        return MCK_verr;	 // "verr"
      case 'w':	 // 1 strings to match.
        return MCK_verw;	 // "verw"
      }
      break;
    case 'w':	 // 1 strings to match.
      if (Name.substr(1,3) != "ait")
        break;
      return MCK_wait;	 // "wait"
    case 'x':	 // 4 strings to match.
      if (Name.substr(1,2) != "or")
        break;
      switch (Name[3]) {
      default: break;
      case 'b':	 // 1 strings to match.
        return MCK_xorb;	 // "xorb"
      case 'l':	 // 1 strings to match.
        return MCK_xorl;	 // "xorl"
      case 'q':	 // 1 strings to match.
        return MCK_xorq;	 // "xorq"
      case 'w':	 // 1 strings to match.
        return MCK_xorw;	 // "xorw"
      }
      break;
    }
    break;
  case 5:	 // 179 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 6 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 4 strings to match.
        if (Name[2] != 'd')
          break;
        switch (Name[3]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_addpd;	 // "addpd"
          case 's':	 // 1 strings to match.
            return MCK_addps;	 // "addps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_addsd;	 // "addsd"
          case 's':	 // 1 strings to match.
            return MCK_addss;	 // "addss"
          }
          break;
        }
        break;
      case 'n':	 // 2 strings to match.
        if (Name.substr(2,2) != "dp")
          break;
        switch (Name[4]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_andpd;	 // "andpd"
        case 's':	 // 1 strings to match.
          return MCK_andps;	 // "andps"
        }
        break;
      }
      break;
    case 'c':	 // 7 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name.substr(2,3) != "llq")
          break;
        return MCK_callq;	 // "callq"
      case 'm':	 // 4 strings to match.
        if (Name.substr(2,2) != "ps")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_cmpsb;	 // "cmpsb"
        case 'l':	 // 1 strings to match.
          return MCK_cmpsl;	 // "cmpsl"
        case 'q':	 // 1 strings to match.
          return MCK_cmpsq;	 // "cmpsq"
        case 'w':	 // 1 strings to match.
          return MCK_cmpsw;	 // "cmpsw"
        }
        break;
      case 'p':	 // 1 strings to match.
        if (Name.substr(2,3) != "uid")
          break;
        return MCK_cpuid;	 // "cpuid"
      case 'r':	 // 1 strings to match.
        if (Name.substr(2,3) != "c32")
          break;
        return MCK_crc32;	 // "crc32"
      }
      break;
    case 'd':	 // 4 strings to match.
      if (Name.substr(1,2) != "iv")
        break;
      switch (Name[3]) {
      default: break;
      case 'p':	 // 2 strings to match.
        switch (Name[4]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_divpd;	 // "divpd"
        case 's':	 // 1 strings to match.
          return MCK_divps;	 // "divps"
        }
        break;
      case 's':	 // 2 strings to match.
        switch (Name[4]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_divsd;	 // "divsd"
        case 's':	 // 1 strings to match.
          return MCK_divss;	 // "divss"
        }
        break;
      }
      break;
    case 'e':	 // 1 strings to match.
      if (Name.substr(1,4) != "nter")
        break;
      return MCK_enter;	 // "enter"
    case 'f':	 // 35 strings to match.
      switch (Name[1]) {
      default: break;
      case '2':	 // 1 strings to match.
        if (Name.substr(2,3) != "xm1")
          break;
        return MCK_f2xm1;	 // "f2xm1"
      case 'a':	 // 3 strings to match.
        if (Name.substr(2,2) != "dd")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_faddl;	 // "faddl"
        case 'p':	 // 1 strings to match.
          return MCK_faddp;	 // "faddp"
        case 's':	 // 1 strings to match.
          return MCK_fadds;	 // "fadds"
        }
        break;
      case 'b':	 // 1 strings to match.
        if (Name.substr(2,3) != "stp")
          break;
        return MCK_fbstp;	 // "fbstp"
      case 'c':	 // 3 strings to match.
        if (Name.substr(2,2) != "om")
          break;
        switch (Name[4]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return MCK_fcomi;	 // "fcomi"
        case 'l':	 // 1 strings to match.
          return MCK_fcoml;	 // "fcoml"
        case 'p':	 // 1 strings to match.
          return MCK_fcomp;	 // "fcomp"
        }
        break;
      case 'd':	 // 4 strings to match.
        if (Name.substr(2,2) != "iv")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_fdivl;	 // "fdivl"
        case 'p':	 // 1 strings to match.
          return MCK_fdivp;	 // "fdivp"
        case 'r':	 // 1 strings to match.
          return MCK_fdivr;	 // "fdivr"
        case 's':	 // 1 strings to match.
          return MCK_fdivs;	 // "fdivs"
        }
        break;
      case 'e':	 // 1 strings to match.
        if (Name.substr(2,3) != "mms")
          break;
        return MCK_femms;	 // "femms"
      case 'f':	 // 1 strings to match.
        if (Name.substr(2,3) != "ree")
          break;
        return MCK_ffree;	 // "ffree"
      case 'i':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 2 strings to match.
          if (Name[3] != 'd')
            break;
          switch (Name[4]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fildl;	 // "fildl"
          case 's':	 // 1 strings to match.
            return MCK_filds;	 // "filds"
          }
          break;
        case 's':	 // 2 strings to match.
          if (Name[3] != 't')
            break;
          switch (Name[4]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fistl;	 // "fistl"
          case 's':	 // 1 strings to match.
            return MCK_fists;	 // "fists"
          }
          break;
        }
        break;
      case 'l':	 // 2 strings to match.
        if (Name[2] != 'd')
          break;
        switch (Name[3]) {
        default: break;
        case 'c':	 // 1 strings to match.
          if (Name[4] != 'w')
            break;
          return MCK_fldcw;	 // "fldcw"
        case 'p':	 // 1 strings to match.
          if (Name[4] != 'i')
            break;
          return MCK_fldpi;	 // "fldpi"
        }
        break;
      case 'm':	 // 3 strings to match.
        if (Name.substr(2,2) != "ul")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_fmull;	 // "fmull"
        case 'p':	 // 1 strings to match.
          return MCK_fmulp;	 // "fmulp"
        case 's':	 // 1 strings to match.
          return MCK_fmuls;	 // "fmuls"
        }
        break;
      case 'p':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'r':	 // 1 strings to match.
          if (Name.substr(3,2) != "em")
            break;
          return MCK_fprem;	 // "fprem"
        case 't':	 // 1 strings to match.
          if (Name.substr(3,2) != "an")
            break;
          return MCK_fptan;	 // "fptan"
        }
        break;
      case 's':	 // 8 strings to match.
        switch (Name[2]) {
        default: break;
        case 'q':	 // 1 strings to match.
          if (Name.substr(3,2) != "rt")
            break;
          return MCK_fsqrt;	 // "fsqrt"
        case 't':	 // 3 strings to match.
          if (Name[3] != 'p')
            break;
          switch (Name[4]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fstpl;	 // "fstpl"
          case 's':	 // 1 strings to match.
            return MCK_fstps;	 // "fstps"
          case 't':	 // 1 strings to match.
            return MCK_fstpt;	 // "fstpt"
          }
          break;
        case 'u':	 // 4 strings to match.
          if (Name[3] != 'b')
            break;
          switch (Name[4]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fsubl;	 // "fsubl"
          case 'p':	 // 1 strings to match.
            return MCK_fsubp;	 // "fsubp"
          case 'r':	 // 1 strings to match.
            return MCK_fsubr;	 // "fsubr"
          case 's':	 // 1 strings to match.
            return MCK_fsubs;	 // "fsubs"
          }
          break;
        }
        break;
      case 'u':	 // 1 strings to match.
        if (Name.substr(2,3) != "com")
          break;
        return MCK_fucom;	 // "fucom"
      case 'y':	 // 1 strings to match.
        if (Name.substr(2,3) != "l2x")
          break;
        return MCK_fyl2x;	 // "fyl2x"
      }
      break;
    case 'i':	 // 11 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 4 strings to match.
        if (Name.substr(2,2) != "iv")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_idivb;	 // "idivb"
        case 'l':	 // 1 strings to match.
          return MCK_idivl;	 // "idivl"
        case 'q':	 // 1 strings to match.
          return MCK_idivq;	 // "idivq"
        case 'w':	 // 1 strings to match.
          return MCK_idivw;	 // "idivw"
        }
        break;
      case 'm':	 // 4 strings to match.
        if (Name.substr(2,2) != "ul")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_imulb;	 // "imulb"
        case 'l':	 // 1 strings to match.
          return MCK_imull;	 // "imull"
        case 'q':	 // 1 strings to match.
          return MCK_imulq;	 // "imulq"
        case 'w':	 // 1 strings to match.
          return MCK_imulw;	 // "imulw"
        }
        break;
      case 'r':	 // 3 strings to match.
        if (Name.substr(2,2) != "et")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_iretl;	 // "iretl"
        case 'q':	 // 1 strings to match.
          return MCK_iretq;	 // "iretq"
        case 'w':	 // 1 strings to match.
          return MCK_iretw;	 // "iretw"
        }
        break;
      }
      break;
    case 'l':	 // 12 strings to match.
      switch (Name[1]) {
      default: break;
      case 'd':	 // 1 strings to match.
        if (Name.substr(2,3) != "dqu")
          break;
        return MCK_lddqu;	 // "lddqu"
      case 'e':	 // 1 strings to match.
        if (Name.substr(2,3) != "ave")
          break;
        return MCK_leave;	 // "leave"
      case 'j':	 // 3 strings to match.
        if (Name.substr(2,2) != "mp")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_ljmpl;	 // "ljmpl"
        case 'q':	 // 1 strings to match.
          return MCK_ljmpq;	 // "ljmpq"
        case 'w':	 // 1 strings to match.
          return MCK_ljmpw;	 // "ljmpw"
        }
        break;
      case 'l':	 // 1 strings to match.
        if (Name.substr(2,3) != "dtw")
          break;
        return MCK_lldtw;	 // "lldtw"
      case 'm':	 // 1 strings to match.
        if (Name.substr(2,3) != "sww")
          break;
        return MCK_lmsww;	 // "lmsww"
      case 'o':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'd':	 // 4 strings to match.
          if (Name[3] != 's')
            break;
          switch (Name[4]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_lodsb;	 // "lodsb"
          case 'l':	 // 1 strings to match.
            return MCK_lodsl;	 // "lodsl"
          case 'q':	 // 1 strings to match.
            return MCK_lodsq;	 // "lodsq"
          case 'w':	 // 1 strings to match.
            return MCK_lodsw;	 // "lodsw"
          }
          break;
        case 'o':	 // 1 strings to match.
          if (Name.substr(3,2) != "pe")
            break;
          return MCK_loope;	 // "loope"
        }
        break;
      }
      break;
    case 'm':	 // 18 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (Name[2] != 'x')
          break;
        switch (Name[3]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_maxpd;	 // "maxpd"
          case 's':	 // 1 strings to match.
            return MCK_maxps;	 // "maxps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_maxsd;	 // "maxsd"
          case 's':	 // 1 strings to match.
            return MCK_maxss;	 // "maxss"
          }
          break;
        }
        break;
      case 'i':	 // 4 strings to match.
        if (Name[2] != 'n')
          break;
        switch (Name[3]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_minpd;	 // "minpd"
          case 's':	 // 1 strings to match.
            return MCK_minps;	 // "minps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_minsd;	 // "minsd"
          case 's':	 // 1 strings to match.
            return MCK_minss;	 // "minss"
          }
          break;
        }
        break;
      case 'o':	 // 5 strings to match.
        if (Name.substr(2,2) != "vs")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_movsb;	 // "movsb"
        case 'd':	 // 1 strings to match.
          return MCK_movsd;	 // "movsd"
        case 'l':	 // 1 strings to match.
          return MCK_movsl;	 // "movsl"
        case 's':	 // 1 strings to match.
          return MCK_movss;	 // "movss"
        case 'w':	 // 1 strings to match.
          return MCK_movsw;	 // "movsw"
        }
        break;
      case 'u':	 // 4 strings to match.
        if (Name[2] != 'l')
          break;
        switch (Name[3]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_mulpd;	 // "mulpd"
          case 's':	 // 1 strings to match.
            return MCK_mulps;	 // "mulps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_mulsd;	 // "mulsd"
          case 's':	 // 1 strings to match.
            return MCK_mulss;	 // "mulss"
          }
          break;
        }
        break;
      case 'w':	 // 1 strings to match.
        if (Name.substr(2,3) != "ait")
          break;
        return MCK_mwait;	 // "mwait"
      }
      break;
    case 'o':	 // 3 strings to match.
      if (Name.substr(1,3) != "uts")
        break;
      switch (Name[4]) {
      default: break;
      case 'b':	 // 1 strings to match.
        return MCK_outsb;	 // "outsb"
      case 'l':	 // 1 strings to match.
        return MCK_outsl;	 // "outsl"
      case 'w':	 // 1 strings to match.
        return MCK_outsw;	 // "outsw"
      }
      break;
    case 'p':	 // 29 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 10 strings to match.
        switch (Name[2]) {
        default: break;
        case 'b':	 // 3 strings to match.
          if (Name[3] != 's')
            break;
          switch (Name[4]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_pabsb;	 // "pabsb"
          case 'd':	 // 1 strings to match.
            return MCK_pabsd;	 // "pabsd"
          case 'w':	 // 1 strings to match.
            return MCK_pabsw;	 // "pabsw"
          }
          break;
        case 'd':	 // 4 strings to match.
          if (Name[3] != 'd')
            break;
          switch (Name[4]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_paddb;	 // "paddb"
          case 'd':	 // 1 strings to match.
            return MCK_paddd;	 // "paddd"
          case 'q':	 // 1 strings to match.
            return MCK_paddq;	 // "paddq"
          case 'w':	 // 1 strings to match.
            return MCK_paddw;	 // "paddw"
          }
          break;
        case 'n':	 // 1 strings to match.
          if (Name.substr(3,2) != "dn")
            break;
          return MCK_pandn;	 // "pandn"
        case 'v':	 // 2 strings to match.
          if (Name[3] != 'g')
            break;
          switch (Name[4]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_pavgb;	 // "pavgb"
          case 'w':	 // 1 strings to match.
            return MCK_pavgw;	 // "pavgw"
          }
          break;
        }
        break;
      case 'o':	 // 3 strings to match.
        if (Name.substr(2,2) != "pf")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_popfl;	 // "popfl"
        case 'q':	 // 1 strings to match.
          return MCK_popfq;	 // "popfq"
        case 'w':	 // 1 strings to match.
          return MCK_popfw;	 // "popfw"
        }
        break;
      case 's':	 // 12 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 3 strings to match.
          if (Name[3] != 'l')
            break;
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_pslld;	 // "pslld"
          case 'q':	 // 1 strings to match.
            return MCK_psllq;	 // "psllq"
          case 'w':	 // 1 strings to match.
            return MCK_psllw;	 // "psllw"
          }
          break;
        case 'r':	 // 5 strings to match.
          switch (Name[3]) {
          default: break;
          case 'a':	 // 2 strings to match.
            switch (Name[4]) {
            default: break;
            case 'd':	 // 1 strings to match.
              return MCK_psrad;	 // "psrad"
            case 'w':	 // 1 strings to match.
              return MCK_psraw;	 // "psraw"
            }
            break;
          case 'l':	 // 3 strings to match.
            switch (Name[4]) {
            default: break;
            case 'd':	 // 1 strings to match.
              return MCK_psrld;	 // "psrld"
            case 'q':	 // 1 strings to match.
              return MCK_psrlq;	 // "psrlq"
            case 'w':	 // 1 strings to match.
              return MCK_psrlw;	 // "psrlw"
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (Name[3] != 'b')
            break;
          switch (Name[4]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_psubb;	 // "psubb"
          case 'd':	 // 1 strings to match.
            return MCK_psubd;	 // "psubd"
          case 'q':	 // 1 strings to match.
            return MCK_psubq;	 // "psubq"
          case 'w':	 // 1 strings to match.
            return MCK_psubw;	 // "psubw"
          }
          break;
        }
        break;
      case 't':	 // 1 strings to match.
        if (Name.substr(2,3) != "est")
          break;
        return MCK_ptest;	 // "ptest"
      case 'u':	 // 3 strings to match.
        if (Name.substr(2,2) != "sh")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_pushl;	 // "pushl"
        case 'q':	 // 1 strings to match.
          return MCK_pushq;	 // "pushq"
        case 'w':	 // 1 strings to match.
          return MCK_pushw;	 // "pushw"
        }
        break;
      }
      break;
    case 'r':	 // 6 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 2 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'p':	 // 1 strings to match.
          if (Name[4] != 's')
            break;
          return MCK_rcpps;	 // "rcpps"
        case 's':	 // 1 strings to match.
          if (Name[4] != 's')
            break;
          return MCK_rcpss;	 // "rcpss"
        }
        break;
      case 'd':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'm':	 // 1 strings to match.
          if (Name.substr(3,2) != "sr")
            break;
          return MCK_rdmsr;	 // "rdmsr"
        case 'p':	 // 1 strings to match.
          if (Name.substr(3,2) != "mc")
            break;
          return MCK_rdpmc;	 // "rdpmc"
        case 't':	 // 1 strings to match.
          if (Name.substr(3,2) != "sc")
            break;
          return MCK_rdtsc;	 // "rdtsc"
        }
        break;
      case 'e':	 // 1 strings to match.
        if (Name.substr(2,3) != "pne")
          break;
        return MCK_repne;	 // "repne"
      }
      break;
    case 's':	 // 30 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 4 strings to match.
        if (Name.substr(2,2) != "as")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_scasb;	 // "scasb"
        case 'l':	 // 1 strings to match.
          return MCK_scasl;	 // "scasl"
        case 'q':	 // 1 strings to match.
          return MCK_scasq;	 // "scasq"
        case 'w':	 // 1 strings to match.
          return MCK_scasw;	 // "scasw"
        }
        break;
      case 'e':	 // 8 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name[4] != 'e')
            break;
          return MCK_setae;	 // "setae"
        case 'b':	 // 1 strings to match.
          if (Name[4] != 'e')
            break;
          return MCK_setbe;	 // "setbe"
        case 'g':	 // 1 strings to match.
          if (Name[4] != 'e')
            break;
          return MCK_setge;	 // "setge"
        case 'l':	 // 1 strings to match.
          if (Name[4] != 'e')
            break;
          return MCK_setle;	 // "setle"
        case 'n':	 // 4 strings to match.
          switch (Name[4]) {
          default: break;
          case 'e':	 // 1 strings to match.
            return MCK_setne;	 // "setne"
          case 'o':	 // 1 strings to match.
            return MCK_setno;	 // "setno"
          case 'p':	 // 1 strings to match.
            return MCK_setnp;	 // "setnp"
          case 's':	 // 1 strings to match.
            return MCK_setns;	 // "setns"
          }
          break;
        }
        break;
      case 'h':	 // 6 strings to match.
        switch (Name[2]) {
        default: break;
        case 'l':	 // 3 strings to match.
          if (Name[3] != 'd')
            break;
          switch (Name[4]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_shldl;	 // "shldl"
          case 'q':	 // 1 strings to match.
            return MCK_shldq;	 // "shldq"
          case 'w':	 // 1 strings to match.
            return MCK_shldw;	 // "shldw"
          }
          break;
        case 'r':	 // 3 strings to match.
          if (Name[3] != 'd')
            break;
          switch (Name[4]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_shrdl;	 // "shrdl"
          case 'q':	 // 1 strings to match.
            return MCK_shrdq;	 // "shrdq"
          case 'w':	 // 1 strings to match.
            return MCK_shrdw;	 // "shrdw"
          }
          break;
        }
        break;
      case 'l':	 // 2 strings to match.
        if (Name.substr(2,2) != "dt")
          break;
        switch (Name[4]) {
        default: break;
        case 'q':	 // 1 strings to match.
          return MCK_sldtq;	 // "sldtq"
        case 'w':	 // 1 strings to match.
          return MCK_sldtw;	 // "sldtw"
        }
        break;
      case 'm':	 // 3 strings to match.
        if (Name.substr(2,2) != "sw")
          break;
        switch (Name[4]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_smswl;	 // "smswl"
        case 'q':	 // 1 strings to match.
          return MCK_smswq;	 // "smswq"
        case 'w':	 // 1 strings to match.
          return MCK_smsww;	 // "smsww"
        }
        break;
      case 't':	 // 3 strings to match.
        if (Name.substr(2,2) != "os")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_stosb;	 // "stosb"
        case 'l':	 // 1 strings to match.
          return MCK_stosl;	 // "stosl"
        case 'w':	 // 1 strings to match.
          return MCK_stosw;	 // "stosw"
        }
        break;
      case 'u':	 // 4 strings to match.
        if (Name[2] != 'b')
          break;
        switch (Name[3]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_subpd;	 // "subpd"
          case 's':	 // 1 strings to match.
            return MCK_subps;	 // "subps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_subsd;	 // "subsd"
          case 's':	 // 1 strings to match.
            return MCK_subss;	 // "subss"
          }
          break;
        }
        break;
      }
      break;
    case 't':	 // 4 strings to match.
      if (Name.substr(1,3) != "est")
        break;
      switch (Name[4]) {
      default: break;
      case 'b':	 // 1 strings to match.
        return MCK_testb;	 // "testb"
      case 'l':	 // 1 strings to match.
        return MCK_testl;	 // "testl"
      case 'q':	 // 1 strings to match.
        return MCK_testq;	 // "testq"
      case 'w':	 // 1 strings to match.
        return MCK_testw;	 // "testw"
      }
      break;
    case 'v':	 // 1 strings to match.
      if (Name.substr(1,4) != "mxon")
        break;
      return MCK_vmxon;	 // "vmxon"
    case 'w':	 // 1 strings to match.
      if (Name.substr(1,4) != "rmsr")
        break;
      return MCK_wrmsr;	 // "wrmsr"
    case 'x':	 // 11 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (Name.substr(2,2) != "dd")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_xaddb;	 // "xaddb"
        case 'l':	 // 1 strings to match.
          return MCK_xaddl;	 // "xaddl"
        case 'q':	 // 1 strings to match.
          return MCK_xaddq;	 // "xaddq"
        case 'w':	 // 1 strings to match.
          return MCK_xaddw;	 // "xaddw"
        }
        break;
      case 'c':	 // 4 strings to match.
        if (Name.substr(2,2) != "hg")
          break;
        switch (Name[4]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_xchgb;	 // "xchgb"
        case 'l':	 // 1 strings to match.
          return MCK_xchgl;	 // "xchgl"
        case 'q':	 // 1 strings to match.
          return MCK_xchgq;	 // "xchgq"
        case 'w':	 // 1 strings to match.
          return MCK_xchgw;	 // "xchgw"
        }
        break;
      case 'l':	 // 1 strings to match.
        if (Name.substr(2,3) != "atb")
          break;
        return MCK_xlatb;	 // "xlatb"
      case 'o':	 // 2 strings to match.
        if (Name.substr(2,2) != "rp")
          break;
        switch (Name[4]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_xorpd;	 // "xorpd"
        case 's':	 // 1 strings to match.
          return MCK_xorps;	 // "xorps"
        }
        break;
      }
      break;
    }
    break;
  case 6:	 // 165 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (Name.substr(1,4) != "ndnp")
        break;
      switch (Name[5]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_andnpd;	 // "andnpd"
      case 's':	 // 1 strings to match.
        return MCK_andnps;	 // "andnps"
      }
      break;
    case 'b':	 // 2 strings to match.
      if (Name.substr(1,4) != "swap")
        break;
      switch (Name[5]) {
      default: break;
      case 'l':	 // 1 strings to match.
        return MCK_bswapl;	 // "bswapl"
      case 'q':	 // 1 strings to match.
        return MCK_bswapq;	 // "bswapq"
      }
      break;
    case 'c':	 // 26 strings to match.
      switch (Name[1]) {
      default: break;
      case 'm':	 // 24 strings to match.
        if (Name.substr(2,2) != "ov")
          break;
        switch (Name[4]) {
        default: break;
        case 'a':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmoval;	 // "cmoval"
          case 'q':	 // 1 strings to match.
            return MCK_cmovaq;	 // "cmovaq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovaw;	 // "cmovaw"
          }
          break;
        case 'b':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovbl;	 // "cmovbl"
          case 'q':	 // 1 strings to match.
            return MCK_cmovbq;	 // "cmovbq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovbw;	 // "cmovbw"
          }
          break;
        case 'e':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovel;	 // "cmovel"
          case 'q':	 // 1 strings to match.
            return MCK_cmoveq;	 // "cmoveq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovew;	 // "cmovew"
          }
          break;
        case 'g':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovgl;	 // "cmovgl"
          case 'q':	 // 1 strings to match.
            return MCK_cmovgq;	 // "cmovgq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovgw;	 // "cmovgw"
          }
          break;
        case 'l':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovll;	 // "cmovll"
          case 'q':	 // 1 strings to match.
            return MCK_cmovlq;	 // "cmovlq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovlw;	 // "cmovlw"
          }
          break;
        case 'o':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovol;	 // "cmovol"
          case 'q':	 // 1 strings to match.
            return MCK_cmovoq;	 // "cmovoq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovow;	 // "cmovow"
          }
          break;
        case 'p':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovpl;	 // "cmovpl"
          case 'q':	 // 1 strings to match.
            return MCK_cmovpq;	 // "cmovpq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovpw;	 // "cmovpw"
          }
          break;
        case 's':	 // 3 strings to match.
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovsl;	 // "cmovsl"
          case 'q':	 // 1 strings to match.
            return MCK_cmovsq;	 // "cmovsq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovsw;	 // "cmovsw"
          }
          break;
        }
        break;
      case 'o':	 // 2 strings to match.
        if (Name.substr(2,3) != "mis")
          break;
        switch (Name[5]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_comisd;	 // "comisd"
        case 's':	 // 1 strings to match.
          return MCK_comiss;	 // "comiss"
        }
        break;
      }
      break;
    case 'f':	 // 43 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 7 strings to match.
        switch (Name[2]) {
        default: break;
        case 'm':	 // 3 strings to match.
          if (Name.substr(3,2) != "ov")
            break;
          switch (Name[5]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_fcmovb;	 // "fcmovb"
          case 'e':	 // 1 strings to match.
            return MCK_fcmove;	 // "fcmove"
          case 'u':	 // 1 strings to match.
            return MCK_fcmovu;	 // "fcmovu"
          }
          break;
        case 'o':	 // 4 strings to match.
          if (Name[3] != 'm')
            break;
          switch (Name[4]) {
          default: break;
          case 'i':	 // 1 strings to match.
            if (Name[5] != 'p')
              break;
            return MCK_fcomip;	 // "fcomip"
          case 'l':	 // 1 strings to match.
            if (Name[5] != 'l')
              break;
            return MCK_fcomll;	 // "fcomll"
          case 'p':	 // 2 strings to match.
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_fcompl;	 // "fcompl"
            case 'p':	 // 1 strings to match.
              return MCK_fcompp;	 // "fcompp"
            }
            break;
          }
          break;
        }
        break;
      case 'd':	 // 3 strings to match.
        if (Name.substr(2,3) != "ivr")
          break;
        switch (Name[5]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_fdivrl;	 // "fdivrl"
        case 'p':	 // 1 strings to match.
          return MCK_fdivrp;	 // "fdivrp"
        case 's':	 // 1 strings to match.
          return MCK_fdivrs;	 // "fdivrs"
        }
        break;
      case 'i':	 // 13 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (Name.substr(3,2) != "dd")
            break;
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fiaddl;	 // "fiaddl"
          case 's':	 // 1 strings to match.
            return MCK_fiadds;	 // "fiadds"
          }
          break;
        case 'c':	 // 2 strings to match.
          if (Name.substr(3,2) != "om")
            break;
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_ficoml;	 // "ficoml"
          case 'w':	 // 1 strings to match.
            return MCK_ficomw;	 // "ficomw"
          }
          break;
        case 'd':	 // 2 strings to match.
          if (Name.substr(3,2) != "iv")
            break;
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fidivl;	 // "fidivl"
          case 's':	 // 1 strings to match.
            return MCK_fidivs;	 // "fidivs"
          }
          break;
        case 'l':	 // 1 strings to match.
          if (Name.substr(3,3) != "dll")
            break;
          return MCK_fildll;	 // "fildll"
        case 'm':	 // 2 strings to match.
          if (Name.substr(3,2) != "ul")
            break;
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fimull;	 // "fimull"
          case 's':	 // 1 strings to match.
            return MCK_fimuls;	 // "fimuls"
          }
          break;
        case 's':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 't':	 // 2 strings to match.
            if (Name[4] != 'p')
              break;
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_fistpl;	 // "fistpl"
            case 's':	 // 1 strings to match.
              return MCK_fistps;	 // "fistps"
            }
            break;
          case 'u':	 // 2 strings to match.
            if (Name[4] != 'b')
              break;
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_fisubl;	 // "fisubl"
            case 's':	 // 1 strings to match.
              return MCK_fisubs;	 // "fisubs"
            }
            break;
          }
          break;
        }
        break;
      case 'l':	 // 5 strings to match.
        if (Name[2] != 'd')
          break;
        switch (Name[3]) {
        default: break;
        case 'e':	 // 1 strings to match.
          if (Name.substr(4,2) != "nv")
            break;
          return MCK_fldenv;	 // "fldenv"
        case 'l':	 // 4 strings to match.
          switch (Name[4]) {
          default: break;
          case '2':	 // 2 strings to match.
            switch (Name[5]) {
            default: break;
            case 'e':	 // 1 strings to match.
              return MCK_fldl2e;	 // "fldl2e"
            case 't':	 // 1 strings to match.
              return MCK_fldl2t;	 // "fldl2t"
            }
            break;
          case 'g':	 // 1 strings to match.
            if (Name[5] != '2')
              break;
            return MCK_fldlg2;	 // "fldlg2"
          case 'n':	 // 1 strings to match.
            if (Name[5] != '2')
              break;
            return MCK_fldln2;	 // "fldln2"
          }
          break;
        }
        break;
      case 'n':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 1 strings to match.
          if (Name.substr(3,3) != "lex")
            break;
          return MCK_fnclex;	 // "fnclex"
        case 'i':	 // 1 strings to match.
          if (Name.substr(3,3) != "nit")
            break;
          return MCK_fninit;	 // "fninit"
        case 's':	 // 3 strings to match.
          switch (Name[3]) {
          default: break;
          case 'a':	 // 1 strings to match.
            if (Name.substr(4,2) != "ve")
              break;
            return MCK_fnsave;	 // "fnsave"
          case 't':	 // 2 strings to match.
            switch (Name[4]) {
            default: break;
            case 'c':	 // 1 strings to match.
              if (Name[5] != 'w')
                break;
              return MCK_fnstcw;	 // "fnstcw"
            case 's':	 // 1 strings to match.
              if (Name[5] != 'w')
                break;
              return MCK_fnstsw;	 // "fnstsw"
            }
            break;
          }
          break;
        }
        break;
      case 'p':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name.substr(3,3) != "tan")
            break;
          return MCK_fpatan;	 // "fpatan"
        case 'r':	 // 1 strings to match.
          if (Name.substr(3,3) != "em1")
            break;
          return MCK_fprem1;	 // "fprem1"
        }
        break;
      case 'r':	 // 1 strings to match.
        if (Name.substr(2,4) != "stor")
          break;
        return MCK_frstor;	 // "frstor"
      case 's':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 1 strings to match.
          if (Name.substr(3,3) != "ale")
            break;
          return MCK_fscale;	 // "fscale"
        case 'u':	 // 3 strings to match.
          if (Name.substr(3,2) != "br")
            break;
          switch (Name[5]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fsubrl;	 // "fsubrl"
          case 'p':	 // 1 strings to match.
            return MCK_fsubrp;	 // "fsubrp"
          case 's':	 // 1 strings to match.
            return MCK_fsubrs;	 // "fsubrs"
          }
          break;
        }
        break;
      case 'u':	 // 2 strings to match.
        if (Name.substr(2,3) != "com")
          break;
        switch (Name[5]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return MCK_fucomi;	 // "fucomi"
        case 'p':	 // 1 strings to match.
          return MCK_fucomp;	 // "fucomp"
        }
        break;
      case 'x':	 // 1 strings to match.
        if (Name.substr(2,4) != "save")
          break;
        return MCK_fxsave;	 // "fxsave"
      }
      break;
    case 'h':	 // 4 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (Name.substr(2,3) != "ddp")
          break;
        switch (Name[5]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_haddpd;	 // "haddpd"
        case 's':	 // 1 strings to match.
          return MCK_haddps;	 // "haddps"
        }
        break;
      case 's':	 // 2 strings to match.
        if (Name.substr(2,3) != "ubp")
          break;
        switch (Name[5]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_hsubpd;	 // "hsubpd"
        case 's':	 // 1 strings to match.
          return MCK_hsubps;	 // "hsubps"
        }
        break;
      }
      break;
    case 'i':	 // 2 strings to match.
      if (Name.substr(1,2) != "nv")
        break;
      switch (Name[3]) {
      default: break;
      case 'e':	 // 1 strings to match.
        if (Name.substr(4,2) != "pt")
          break;
        return MCK_invept;	 // "invept"
      case 'l':	 // 1 strings to match.
        if (Name.substr(4,2) != "pg")
          break;
        return MCK_invlpg;	 // "invlpg"
      }
      break;
    case 'l':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 3 strings to match.
        if (Name.substr(2,3) != "all")
          break;
        switch (Name[5]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_lcalll;	 // "lcalll"
        case 'q':	 // 1 strings to match.
          return MCK_lcallq;	 // "lcallq"
        case 'w':	 // 1 strings to match.
          return MCK_lcallw;	 // "lcallw"
        }
        break;
      case 'f':	 // 1 strings to match.
        if (Name.substr(2,4) != "ence")
          break;
        return MCK_lfence;	 // "lfence"
      case 'o':	 // 1 strings to match.
        if (Name.substr(2,4) != "opne")
          break;
        return MCK_loopne;	 // "loopne"
      }
      break;
    case 'm':	 // 24 strings to match.
      switch (Name[1]) {
      default: break;
      case 'f':	 // 1 strings to match.
        if (Name.substr(2,4) != "ence")
          break;
        return MCK_mfence;	 // "mfence"
      case 'o':	 // 23 strings to match.
        if (Name[2] != 'v')
          break;
        switch (Name[3]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (Name[4] != 'p')
            break;
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_movapd;	 // "movapd"
          case 's':	 // 1 strings to match.
            return MCK_movaps;	 // "movaps"
          }
          break;
        case 'd':	 // 2 strings to match.
          if (Name[4] != 'q')
            break;
          switch (Name[5]) {
          default: break;
          case 'a':	 // 1 strings to match.
            return MCK_movdqa;	 // "movdqa"
          case 'u':	 // 1 strings to match.
            return MCK_movdqu;	 // "movdqu"
          }
          break;
        case 'h':	 // 2 strings to match.
          if (Name[4] != 'p')
            break;
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_movhpd;	 // "movhpd"
          case 's':	 // 1 strings to match.
            return MCK_movhps;	 // "movhps"
          }
          break;
        case 'l':	 // 2 strings to match.
          if (Name[4] != 'p')
            break;
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_movlpd;	 // "movlpd"
          case 's':	 // 1 strings to match.
            return MCK_movlps;	 // "movlps"
          }
          break;
        case 'n':	 // 2 strings to match.
          if (Name[4] != 't')
            break;
          switch (Name[5]) {
          default: break;
          case 'i':	 // 1 strings to match.
            return MCK_movnti;	 // "movnti"
          case 'q':	 // 1 strings to match.
            return MCK_movntq;	 // "movntq"
          }
          break;
        case 's':	 // 6 strings to match.
          switch (Name[4]) {
          default: break;
          case 'b':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_movsbl;	 // "movsbl"
            case 'q':	 // 1 strings to match.
              return MCK_movsbq;	 // "movsbq"
            case 'w':	 // 1 strings to match.
              return MCK_movsbw;	 // "movsbw"
            }
            break;
          case 'l':	 // 1 strings to match.
            if (Name[5] != 'q')
              break;
            return MCK_movslq;	 // "movslq"
          case 'w':	 // 2 strings to match.
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_movswl;	 // "movswl"
            case 'q':	 // 1 strings to match.
              return MCK_movswq;	 // "movswq"
            }
            break;
          }
          break;
        case 'u':	 // 2 strings to match.
          if (Name[4] != 'p')
            break;
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_movupd;	 // "movupd"
          case 's':	 // 1 strings to match.
            return MCK_movups;	 // "movups"
          }
          break;
        case 'z':	 // 5 strings to match.
          switch (Name[4]) {
          default: break;
          case 'b':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_movzbl;	 // "movzbl"
            case 'q':	 // 1 strings to match.
              return MCK_movzbq;	 // "movzbq"
            case 'w':	 // 1 strings to match.
              return MCK_movzbw;	 // "movzbw"
            }
            break;
          case 'w':	 // 2 strings to match.
            switch (Name[5]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_movzwl;	 // "movzwl"
            case 'q':	 // 1 strings to match.
              return MCK_movzwq;	 // "movzwq"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'p':	 // 44 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 2 strings to match.
        if (Name.substr(2,3) != "dds")
          break;
        switch (Name[5]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_paddsb;	 // "paddsb"
        case 'w':	 // 1 strings to match.
          return MCK_paddsw;	 // "paddsw"
        }
        break;
      case 'e':	 // 4 strings to match.
        if (Name.substr(2,3) != "xtr")
          break;
        switch (Name[5]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_pextrb;	 // "pextrb"
        case 'd':	 // 1 strings to match.
          return MCK_pextrd;	 // "pextrd"
        case 'q':	 // 1 strings to match.
          return MCK_pextrq;	 // "pextrq"
        case 'w':	 // 1 strings to match.
          return MCK_pextrw;	 // "pextrw"
        }
        break;
      case 'h':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 2 strings to match.
          if (Name.substr(3,2) != "dd")
            break;
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_phaddd;	 // "phaddd"
          case 'w':	 // 1 strings to match.
            return MCK_phaddw;	 // "phaddw"
          }
          break;
        case 's':	 // 2 strings to match.
          if (Name.substr(3,2) != "ub")
            break;
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_phsubd;	 // "phsubd"
          case 'w':	 // 1 strings to match.
            return MCK_phsubw;	 // "phsubw"
          }
          break;
        }
        break;
      case 'i':	 // 4 strings to match.
        if (Name.substr(2,3) != "nsr")
          break;
        switch (Name[5]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_pinsrb;	 // "pinsrb"
        case 'd':	 // 1 strings to match.
          return MCK_pinsrd;	 // "pinsrd"
        case 'q':	 // 1 strings to match.
          return MCK_pinsrq;	 // "pinsrq"
        case 'w':	 // 1 strings to match.
          return MCK_pinsrw;	 // "pinsrw"
        }
        break;
      case 'm':	 // 16 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 6 strings to match.
          if (Name[3] != 'x')
            break;
          switch (Name[4]) {
          default: break;
          case 's':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'b':	 // 1 strings to match.
              return MCK_pmaxsb;	 // "pmaxsb"
            case 'd':	 // 1 strings to match.
              return MCK_pmaxsd;	 // "pmaxsd"
            case 'w':	 // 1 strings to match.
              return MCK_pmaxsw;	 // "pmaxsw"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'b':	 // 1 strings to match.
              return MCK_pmaxub;	 // "pmaxub"
            case 'd':	 // 1 strings to match.
              return MCK_pmaxud;	 // "pmaxud"
            case 'w':	 // 1 strings to match.
              return MCK_pmaxuw;	 // "pmaxuw"
            }
            break;
          }
          break;
        case 'i':	 // 6 strings to match.
          if (Name[3] != 'n')
            break;
          switch (Name[4]) {
          default: break;
          case 's':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'b':	 // 1 strings to match.
              return MCK_pminsb;	 // "pminsb"
            case 'd':	 // 1 strings to match.
              return MCK_pminsd;	 // "pminsd"
            case 'w':	 // 1 strings to match.
              return MCK_pminsw;	 // "pminsw"
            }
            break;
          case 'u':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'b':	 // 1 strings to match.
              return MCK_pminub;	 // "pminub"
            case 'd':	 // 1 strings to match.
              return MCK_pminud;	 // "pminud"
            case 'w':	 // 1 strings to match.
              return MCK_pminuw;	 // "pminuw"
            }
            break;
          }
          break;
        case 'u':	 // 4 strings to match.
          if (Name[3] != 'l')
            break;
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            if (Name[5] != 'q')
              break;
            return MCK_pmuldq;	 // "pmuldq"
          case 'h':	 // 1 strings to match.
            if (Name[5] != 'w')
              break;
            return MCK_pmulhw;	 // "pmulhw"
          case 'l':	 // 2 strings to match.
            switch (Name[5]) {
            default: break;
            case 'd':	 // 1 strings to match.
              return MCK_pmulld;	 // "pmulld"
            case 'w':	 // 1 strings to match.
              return MCK_pmullw;	 // "pmullw"
            }
            break;
          }
          break;
        }
        break;
      case 's':	 // 11 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name.substr(3,3) != "dbw")
            break;
          return MCK_psadbw;	 // "psadbw"
        case 'h':	 // 3 strings to match.
          if (Name.substr(3,2) != "uf")
            break;
          switch (Name[5]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_pshufb;	 // "pshufb"
          case 'd':	 // 1 strings to match.
            return MCK_pshufd;	 // "pshufd"
          case 'w':	 // 1 strings to match.
            return MCK_pshufw;	 // "pshufw"
          }
          break;
        case 'i':	 // 3 strings to match.
          if (Name.substr(3,2) != "gn")
            break;
          switch (Name[5]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_psignb;	 // "psignb"
          case 'd':	 // 1 strings to match.
            return MCK_psignd;	 // "psignd"
          case 'w':	 // 1 strings to match.
            return MCK_psignw;	 // "psignw"
          }
          break;
        case 'l':	 // 1 strings to match.
          if (Name.substr(3,3) != "ldq")
            break;
          return MCK_pslldq;	 // "pslldq"
        case 'r':	 // 1 strings to match.
          if (Name.substr(3,3) != "ldq")
            break;
          return MCK_psrldq;	 // "psrldq"
        case 'u':	 // 2 strings to match.
          if (Name.substr(3,2) != "bs")
            break;
          switch (Name[5]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_psubsb;	 // "psubsb"
          case 'w':	 // 1 strings to match.
            return MCK_psubsw;	 // "psubsw"
          }
          break;
        }
        break;
      case 'u':	 // 3 strings to match.
        if (Name.substr(2,3) != "shf")
          break;
        switch (Name[5]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_pushfl;	 // "pushfl"
        case 'q':	 // 1 strings to match.
          return MCK_pushfq;	 // "pushfq"
        case 'w':	 // 1 strings to match.
          return MCK_pushfw;	 // "pushfw"
        }
        break;
      }
      break;
    case 'r':	 // 1 strings to match.
      if (Name.substr(1,5) != "dtscp")
        break;
      return MCK_rdtscp;	 // "rdtscp"
    case 's':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'f':	 // 1 strings to match.
        if (Name.substr(2,4) != "ence")
          break;
        return MCK_sfence;	 // "sfence"
      case 'h':	 // 2 strings to match.
        if (Name.substr(2,3) != "ufp")
          break;
        switch (Name[5]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_shufpd;	 // "shufpd"
        case 's':	 // 1 strings to match.
          return MCK_shufps;	 // "shufps"
        }
        break;
      case 'q':	 // 4 strings to match.
        if (Name.substr(2,2) != "rt")
          break;
        switch (Name[4]) {
        default: break;
        case 'p':	 // 2 strings to match.
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_sqrtpd;	 // "sqrtpd"
          case 's':	 // 1 strings to match.
            return MCK_sqrtps;	 // "sqrtps"
          }
          break;
        case 's':	 // 2 strings to match.
          switch (Name[5]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_sqrtsd;	 // "sqrtsd"
          case 's':	 // 1 strings to match.
            return MCK_sqrtss;	 // "sqrtss"
          }
          break;
        }
        break;
      case 'w':	 // 1 strings to match.
        if (Name.substr(2,4) != "apgs")
          break;
        return MCK_swapgs;	 // "swapgs"
      case 'y':	 // 1 strings to match.
        if (Name.substr(2,4) != "sret")
          break;
        return MCK_sysret;	 // "sysret"
      }
      break;
    case 'v':	 // 2 strings to match.
      if (Name[1] != 'm')
        break;
      switch (Name[2]) {
      default: break;
      case 'c':	 // 1 strings to match.
        if (Name.substr(3,3) != "all")
          break;
        return MCK_vmcall;	 // "vmcall"
      case 'x':	 // 1 strings to match.
        if (Name.substr(3,3) != "off")
          break;
        return MCK_vmxoff;	 // "vmxoff"
      }
      break;
    case 'w':	 // 1 strings to match.
      if (Name.substr(1,5) != "binvd")
        break;
      return MCK_wbinvd;	 // "wbinvd"
    }
    break;
  case 7:	 // 100 strings to match.
    switch (Name[0]) {
    default: break;
    case 'b':	 // 2 strings to match.
      if (Name.substr(1,5) != "lendp")
        break;
      switch (Name[6]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_blendpd;	 // "blendpd"
      case 's':	 // 1 strings to match.
        return MCK_blendps;	 // "blendps"
      }
      break;
    case 'c':	 // 25 strings to match.
      switch (Name[1]) {
      default: break;
      case 'l':	 // 1 strings to match.
        if (Name.substr(2,5) != "flush")
          break;
        return MCK_clflush;	 // "clflush"
      case 'm':	 // 24 strings to match.
        if (Name.substr(2,2) != "ov")
          break;
        switch (Name[4]) {
        default: break;
        case 'a':	 // 3 strings to match.
          if (Name[5] != 'e')
            break;
          switch (Name[6]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovael;	 // "cmovael"
          case 'q':	 // 1 strings to match.
            return MCK_cmovaeq;	 // "cmovaeq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovaew;	 // "cmovaew"
          }
          break;
        case 'b':	 // 3 strings to match.
          if (Name[5] != 'e')
            break;
          switch (Name[6]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovbel;	 // "cmovbel"
          case 'q':	 // 1 strings to match.
            return MCK_cmovbeq;	 // "cmovbeq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovbew;	 // "cmovbew"
          }
          break;
        case 'g':	 // 3 strings to match.
          if (Name[5] != 'e')
            break;
          switch (Name[6]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovgel;	 // "cmovgel"
          case 'q':	 // 1 strings to match.
            return MCK_cmovgeq;	 // "cmovgeq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovgew;	 // "cmovgew"
          }
          break;
        case 'l':	 // 3 strings to match.
          if (Name[5] != 'e')
            break;
          switch (Name[6]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_cmovlel;	 // "cmovlel"
          case 'q':	 // 1 strings to match.
            return MCK_cmovleq;	 // "cmovleq"
          case 'w':	 // 1 strings to match.
            return MCK_cmovlew;	 // "cmovlew"
          }
          break;
        case 'n':	 // 12 strings to match.
          switch (Name[5]) {
          default: break;
          case 'e':	 // 3 strings to match.
            switch (Name[6]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_cmovnel;	 // "cmovnel"
            case 'q':	 // 1 strings to match.
              return MCK_cmovneq;	 // "cmovneq"
            case 'w':	 // 1 strings to match.
              return MCK_cmovnew;	 // "cmovnew"
            }
            break;
          case 'o':	 // 3 strings to match.
            switch (Name[6]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_cmovnol;	 // "cmovnol"
            case 'q':	 // 1 strings to match.
              return MCK_cmovnoq;	 // "cmovnoq"
            case 'w':	 // 1 strings to match.
              return MCK_cmovnow;	 // "cmovnow"
            }
            break;
          case 'p':	 // 3 strings to match.
            switch (Name[6]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_cmovnpl;	 // "cmovnpl"
            case 'q':	 // 1 strings to match.
              return MCK_cmovnpq;	 // "cmovnpq"
            case 'w':	 // 1 strings to match.
              return MCK_cmovnpw;	 // "cmovnpw"
            }
            break;
          case 's':	 // 3 strings to match.
            switch (Name[6]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_cmovnsl;	 // "cmovnsl"
            case 'q':	 // 1 strings to match.
              return MCK_cmovnsq;	 // "cmovnsq"
            case 'w':	 // 1 strings to match.
              return MCK_cmovnsw;	 // "cmovnsw"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'f':	 // 24 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'm':	 // 4 strings to match.
          if (Name.substr(3,2) != "ov")
            break;
          switch (Name[5]) {
          default: break;
          case 'b':	 // 1 strings to match.
            if (Name[6] != 'e')
              break;
            return MCK_fcmovbe;	 // "fcmovbe"
          case 'n':	 // 3 strings to match.
            switch (Name[6]) {
            default: break;
            case 'b':	 // 1 strings to match.
              return MCK_fcmovnb;	 // "fcmovnb"
            case 'e':	 // 1 strings to match.
              return MCK_fcmovne;	 // "fcmovne"
            case 'u':	 // 1 strings to match.
              return MCK_fcmovnu;	 // "fcmovnu"
            }
            break;
          }
          break;
        case 'o':	 // 1 strings to match.
          if (Name.substr(3,4) != "mpll")
            break;
          return MCK_fcompll;	 // "fcompll"
        }
        break;
      case 'd':	 // 1 strings to match.
        if (Name.substr(2,5) != "ecstp")
          break;
        return MCK_fdecstp;	 // "fdecstp"
      case 'i':	 // 10 strings to match.
        switch (Name[2]) {
        default: break;
        case 'c':	 // 2 strings to match.
          if (Name.substr(3,3) != "omp")
            break;
          switch (Name[6]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_ficompl;	 // "ficompl"
          case 'w':	 // 1 strings to match.
            return MCK_ficompw;	 // "ficompw"
          }
          break;
        case 'd':	 // 2 strings to match.
          if (Name.substr(3,3) != "ivr")
            break;
          switch (Name[6]) {
          default: break;
          case 'l':	 // 1 strings to match.
            return MCK_fidivrl;	 // "fidivrl"
          case 's':	 // 1 strings to match.
            return MCK_fidivrs;	 // "fidivrs"
          }
          break;
        case 'n':	 // 1 strings to match.
          if (Name.substr(3,4) != "cstp")
            break;
          return MCK_fincstp;	 // "fincstp"
        case 's':	 // 5 strings to match.
          switch (Name[3]) {
          default: break;
          case 't':	 // 3 strings to match.
            switch (Name[4]) {
            default: break;
            case 'p':	 // 1 strings to match.
              if (Name.substr(5,2) != "ll")
                break;
              return MCK_fistpll;	 // "fistpll"
            case 't':	 // 2 strings to match.
              if (Name[5] != 'p')
                break;
              switch (Name[6]) {
              default: break;
              case 'l':	 // 1 strings to match.
                return MCK_fisttpl;	 // "fisttpl"
              case 's':	 // 1 strings to match.
                return MCK_fisttps;	 // "fisttps"
              }
              break;
            }
            break;
          case 'u':	 // 2 strings to match.
            if (Name.substr(4,2) != "br")
              break;
            switch (Name[6]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_fisubrl;	 // "fisubrl"
            case 's':	 // 1 strings to match.
              return MCK_fisubrs;	 // "fisubrs"
            }
            break;
          }
          break;
        }
        break;
      case 'n':	 // 1 strings to match.
        if (Name.substr(2,5) != "stenv")
          break;
        return MCK_fnstenv;	 // "fnstenv"
      case 'r':	 // 1 strings to match.
        if (Name.substr(2,5) != "ndint")
          break;
        return MCK_frndint;	 // "frndint"
      case 's':	 // 1 strings to match.
        if (Name.substr(2,5) != "incos")
          break;
        return MCK_fsincos;	 // "fsincos"
      case 'u':	 // 2 strings to match.
        if (Name.substr(2,3) != "com")
          break;
        switch (Name[5]) {
        default: break;
        case 'i':	 // 1 strings to match.
          if (Name[6] != 'p')
            break;
          return MCK_fucomip;	 // "fucomip"
        case 'p':	 // 1 strings to match.
          if (Name[6] != 'p')
            break;
          return MCK_fucompp;	 // "fucompp"
        }
        break;
      case 'x':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'r':	 // 1 strings to match.
          if (Name.substr(3,4) != "stor")
            break;
          return MCK_fxrstor;	 // "fxrstor"
        case 't':	 // 1 strings to match.
          if (Name.substr(3,4) != "ract")
            break;
          return MCK_fxtract;	 // "fxtract"
        }
        break;
      case 'y':	 // 1 strings to match.
        if (Name.substr(2,5) != "l2xp1")
          break;
        return MCK_fyl2xp1;	 // "fyl2xp1"
      }
      break;
    case 'i':	 // 1 strings to match.
      if (Name.substr(1,6) != "nvvpid")
        break;
      return MCK_invvpid;	 // "invvpid"
    case 'l':	 // 1 strings to match.
      if (Name.substr(1,6) != "dmxcsr")
        break;
      return MCK_ldmxcsr;	 // "ldmxcsr"
    case 'm':	 // 11 strings to match.
      switch (Name[1]) {
      default: break;
      case 'o':	 // 10 strings to match.
        switch (Name[2]) {
        default: break;
        case 'n':	 // 1 strings to match.
          if (Name.substr(3,4) != "itor")
            break;
          return MCK_monitor;	 // "monitor"
        case 'v':	 // 9 strings to match.
          switch (Name[3]) {
          default: break;
          case 'a':	 // 1 strings to match.
            if (Name.substr(4,3) != "bsq")
              break;
            return MCK_movabsq;	 // "movabsq"
          case 'd':	 // 2 strings to match.
            switch (Name[4]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name.substr(5,2) != "up")
                break;
              return MCK_movddup;	 // "movddup"
            case 'q':	 // 1 strings to match.
              if (Name.substr(5,2) != "2q")
                break;
              return MCK_movdq2q;	 // "movdq2q"
            }
            break;
          case 'h':	 // 1 strings to match.
            if (Name.substr(4,3) != "lps")
              break;
            return MCK_movhlps;	 // "movhlps"
          case 'l':	 // 1 strings to match.
            if (Name.substr(4,3) != "hps")
              break;
            return MCK_movlhps;	 // "movlhps"
          case 'n':	 // 3 strings to match.
            if (Name[4] != 't')
              break;
            switch (Name[5]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name[6] != 'q')
                break;
              return MCK_movntdq;	 // "movntdq"
            case 'p':	 // 2 strings to match.
              switch (Name[6]) {
              default: break;
              case 'd':	 // 1 strings to match.
                return MCK_movntpd;	 // "movntpd"
              case 's':	 // 1 strings to match.
                return MCK_movntps;	 // "movntps"
              }
              break;
            }
            break;
          case 'q':	 // 1 strings to match.
            if (Name.substr(4,3) != "2dq")
              break;
            return MCK_movq2dq;	 // "movq2dq"
          }
          break;
        }
        break;
      case 'p':	 // 1 strings to match.
        if (Name.substr(2,5) != "sadbw")
          break;
        return MCK_mpsadbw;	 // "mpsadbw"
      }
      break;
    case 'p':	 // 24 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (Name.substr(3,3) != "dus")
            break;
          switch (Name[6]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_paddusb;	 // "paddusb"
          case 'w':	 // 1 strings to match.
            return MCK_paddusw;	 // "paddusw"
          }
          break;
        case 'l':	 // 1 strings to match.
          if (Name.substr(3,4) != "ignr")
            break;
          return MCK_palignr;	 // "palignr"
        }
        break;
      case 'b':	 // 1 strings to match.
        if (Name.substr(2,5) != "lendw")
          break;
        return MCK_pblendw;	 // "pblendw"
      case 'c':	 // 8 strings to match.
        if (Name.substr(2,2) != "mp")
          break;
        switch (Name[4]) {
        default: break;
        case 'e':	 // 4 strings to match.
          if (Name[5] != 'q')
            break;
          switch (Name[6]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_pcmpeqb;	 // "pcmpeqb"
          case 'd':	 // 1 strings to match.
            return MCK_pcmpeqd;	 // "pcmpeqd"
          case 'q':	 // 1 strings to match.
            return MCK_pcmpeqq;	 // "pcmpeqq"
          case 'w':	 // 1 strings to match.
            return MCK_pcmpeqw;	 // "pcmpeqw"
          }
          break;
        case 'g':	 // 4 strings to match.
          if (Name[5] != 't')
            break;
          switch (Name[6]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_pcmpgtb;	 // "pcmpgtb"
          case 'd':	 // 1 strings to match.
            return MCK_pcmpgtd;	 // "pcmpgtd"
          case 'q':	 // 1 strings to match.
            return MCK_pcmpgtq;	 // "pcmpgtq"
          case 'w':	 // 1 strings to match.
            return MCK_pcmpgtw;	 // "pcmpgtw"
          }
          break;
        }
        break;
      case 'h':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name.substr(3,4) != "ddsw")
            break;
          return MCK_phaddsw;	 // "phaddsw"
        case 's':	 // 1 strings to match.
          if (Name.substr(3,4) != "ubsw")
            break;
          return MCK_phsubsw;	 // "phsubsw"
        }
        break;
      case 'm':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name.substr(3,4) != "ddwd")
            break;
          return MCK_pmaddwd;	 // "pmaddwd"
        case 'u':	 // 2 strings to match.
          if (Name[3] != 'l')
            break;
          switch (Name[4]) {
          default: break;
          case 'h':	 // 1 strings to match.
            if (Name.substr(5,2) != "uw")
              break;
            return MCK_pmulhuw;	 // "pmulhuw"
          case 'u':	 // 1 strings to match.
            if (Name.substr(5,2) != "dq")
              break;
            return MCK_pmuludq;	 // "pmuludq"
          }
          break;
        }
        break;
      case 'o':	 // 3 strings to match.
        if (Name.substr(2,4) != "pcnt")
          break;
        switch (Name[6]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_popcntl;	 // "popcntl"
        case 'q':	 // 1 strings to match.
          return MCK_popcntq;	 // "popcntq"
        case 'w':	 // 1 strings to match.
          return MCK_popcntw;	 // "popcntw"
        }
        break;
      case 's':	 // 4 strings to match.
        switch (Name[2]) {
        default: break;
        case 'h':	 // 2 strings to match.
          if (Name.substr(3,2) != "uf")
            break;
          switch (Name[5]) {
          default: break;
          case 'h':	 // 1 strings to match.
            if (Name[6] != 'w')
              break;
            return MCK_pshufhw;	 // "pshufhw"
          case 'l':	 // 1 strings to match.
            if (Name[6] != 'w')
              break;
            return MCK_pshuflw;	 // "pshuflw"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (Name.substr(3,3) != "bus")
            break;
          switch (Name[6]) {
          default: break;
          case 'b':	 // 1 strings to match.
            return MCK_psubusb;	 // "psubusb"
          case 'w':	 // 1 strings to match.
            return MCK_psubusw;	 // "psubusw"
          }
          break;
        }
        break;
      }
      break;
    case 'r':	 // 2 strings to match.
      if (Name.substr(1,4) != "sqrt")
        break;
      switch (Name[5]) {
      default: break;
      case 'p':	 // 1 strings to match.
        if (Name[6] != 's')
          break;
        return MCK_rsqrtps;	 // "rsqrtps"
      case 's':	 // 1 strings to match.
        if (Name[6] != 's')
          break;
        return MCK_rsqrtss;	 // "rsqrtss"
      }
      break;
    case 's':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 't':	 // 1 strings to match.
        if (Name.substr(2,5) != "mxcsr")
          break;
        return MCK_stmxcsr;	 // "stmxcsr"
      case 'y':	 // 2 strings to match.
        if (Name[2] != 's')
          break;
        switch (Name[3]) {
        default: break;
        case 'c':	 // 1 strings to match.
          if (Name.substr(4,3) != "all")
            break;
          return MCK_syscall;	 // "syscall"
        case 'e':	 // 1 strings to match.
          if (Name.substr(4,3) != "xit")
            break;
          return MCK_sysexit;	 // "sysexit"
        }
        break;
      }
      break;
    case 'u':	 // 2 strings to match.
      if (Name.substr(1,5) != "comis")
        break;
      switch (Name[6]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_ucomisd;	 // "ucomisd"
      case 's':	 // 1 strings to match.
        return MCK_ucomiss;	 // "ucomiss"
      }
      break;
    case 'v':	 // 5 strings to match.
      if (Name[1] != 'm')
        break;
      switch (Name[2]) {
      default: break;
      case 'c':	 // 1 strings to match.
        if (Name.substr(3,4) != "lear")
          break;
        return MCK_vmclear;	 // "vmclear"
      case 'p':	 // 2 strings to match.
        if (Name.substr(3,2) != "tr")
          break;
        switch (Name[5]) {
        default: break;
        case 'l':	 // 1 strings to match.
          if (Name[6] != 'd')
            break;
          return MCK_vmptrld;	 // "vmptrld"
        case 's':	 // 1 strings to match.
          if (Name[6] != 't')
            break;
          return MCK_vmptrst;	 // "vmptrst"
        }
        break;
      case 'r':	 // 2 strings to match.
        if (Name.substr(3,3) != "ead")
          break;
        switch (Name[6]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_vmreadl;	 // "vmreadl"
        case 'q':	 // 1 strings to match.
          return MCK_vmreadq;	 // "vmreadq"
        }
        break;
      }
      break;
    }
    break;
  case 8:	 // 59 strings to match.
    switch (Name[0]) {
    default: break;
    case 'a':	 // 2 strings to match.
      if (Name.substr(1,6) != "ddsubp")
        break;
      switch (Name[7]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_addsubpd;	 // "addsubpd"
      case 's':	 // 1 strings to match.
        return MCK_addsubps;	 // "addsubps"
      }
      break;
    case 'b':	 // 2 strings to match.
      if (Name.substr(1,6) != "lendvp")
        break;
      switch (Name[7]) {
      default: break;
      case 'd':	 // 1 strings to match.
        return MCK_blendvpd;	 // "blendvpd"
      case 's':	 // 1 strings to match.
        return MCK_blendvps;	 // "blendvps"
      }
      break;
    case 'c':	 // 18 strings to match.
      switch (Name[1]) {
      default: break;
      case 'm':	 // 4 strings to match.
        if (Name.substr(2,5) != "pxchg")
          break;
        switch (Name[7]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_cmpxchgb;	 // "cmpxchgb"
        case 'l':	 // 1 strings to match.
          return MCK_cmpxchgl;	 // "cmpxchgl"
        case 'q':	 // 1 strings to match.
          return MCK_cmpxchgq;	 // "cmpxchgq"
        case 'w':	 // 1 strings to match.
          return MCK_cmpxchgw;	 // "cmpxchgw"
        }
        break;
      case 'v':	 // 14 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 'd':	 // 2 strings to match.
          if (Name.substr(4,3) != "q2p")
            break;
          switch (Name[7]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_cvtdq2pd;	 // "cvtdq2pd"
          case 's':	 // 1 strings to match.
            return MCK_cvtdq2ps;	 // "cvtdq2ps"
          }
          break;
        case 'p':	 // 8 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 3 strings to match.
            if (Name[5] != '2')
              break;
            switch (Name[6]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name[7] != 'q')
                break;
              return MCK_cvtpd2dq;	 // "cvtpd2dq"
            case 'p':	 // 2 strings to match.
              switch (Name[7]) {
              default: break;
              case 'i':	 // 1 strings to match.
                return MCK_cvtpd2pi;	 // "cvtpd2pi"
              case 's':	 // 1 strings to match.
                return MCK_cvtpd2ps;	 // "cvtpd2ps"
              }
              break;
            }
            break;
          case 'i':	 // 2 strings to match.
            if (Name.substr(5,2) != "2p")
              break;
            switch (Name[7]) {
            default: break;
            case 'd':	 // 1 strings to match.
              return MCK_cvtpi2pd;	 // "cvtpi2pd"
            case 's':	 // 1 strings to match.
              return MCK_cvtpi2ps;	 // "cvtpi2ps"
            }
            break;
          case 's':	 // 3 strings to match.
            if (Name[5] != '2')
              break;
            switch (Name[6]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name[7] != 'q')
                break;
              return MCK_cvtps2dq;	 // "cvtps2dq"
            case 'p':	 // 2 strings to match.
              switch (Name[7]) {
              default: break;
              case 'd':	 // 1 strings to match.
                return MCK_cvtps2pd;	 // "cvtps2pd"
              case 'i':	 // 1 strings to match.
                return MCK_cvtps2pi;	 // "cvtps2pi"
              }
              break;
            }
            break;
          }
          break;
        case 's':	 // 4 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            if (Name.substr(5,3) != "2ss")
              break;
            return MCK_cvtsd2ss;	 // "cvtsd2ss"
          case 'i':	 // 2 strings to match.
            if (Name.substr(5,2) != "2s")
              break;
            switch (Name[7]) {
            default: break;
            case 'd':	 // 1 strings to match.
              return MCK_cvtsi2sd;	 // "cvtsi2sd"
            case 's':	 // 1 strings to match.
              return MCK_cvtsi2ss;	 // "cvtsi2ss"
            }
            break;
          case 's':	 // 1 strings to match.
            if (Name.substr(5,3) != "2sd")
              break;
            return MCK_cvtss2sd;	 // "cvtss2sd"
          }
          break;
        }
        break;
      }
      break;
    case 'f':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 strings to match.
        if (Name.substr(2,6) != "movnbe")
          break;
        return MCK_fcmovnbe;	 // "fcmovnbe"
      case 'i':	 // 1 strings to match.
        if (Name.substr(2,6) != "sttpll")
          break;
        return MCK_fisttpll;	 // "fisttpll"
      }
      break;
    case 'i':	 // 1 strings to match.
      if (Name.substr(1,7) != "nsertps")
        break;
      return MCK_insertps;	 // "insertps"
    case 'm':	 // 6 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name.substr(2,6) != "skmovq")
          break;
        return MCK_maskmovq;	 // "maskmovq"
      case 'o':	 // 5 strings to match.
        if (Name[2] != 'v')
          break;
        switch (Name[3]) {
        default: break;
        case 'm':	 // 2 strings to match.
          if (Name.substr(4,3) != "skp")
            break;
          switch (Name[7]) {
          default: break;
          case 'd':	 // 1 strings to match.
            return MCK_movmskpd;	 // "movmskpd"
          case 's':	 // 1 strings to match.
            return MCK_movmskps;	 // "movmskps"
          }
          break;
        case 'n':	 // 1 strings to match.
          if (Name.substr(4,4) != "tdqa")
            break;
          return MCK_movntdqa;	 // "movntdqa"
        case 's':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'h':	 // 1 strings to match.
            if (Name.substr(5,3) != "dup")
              break;
            return MCK_movshdup;	 // "movshdup"
          case 'l':	 // 1 strings to match.
            if (Name.substr(5,3) != "dup")
              break;
            return MCK_movsldup;	 // "movsldup"
          }
          break;
        }
        break;
      }
      break;
    case 'p':	 // 19 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 4 strings to match.
        if (Name.substr(2,2) != "ck")
          break;
        switch (Name[4]) {
        default: break;
        case 's':	 // 2 strings to match.
          if (Name[5] != 's')
            break;
          switch (Name[6]) {
          default: break;
          case 'd':	 // 1 strings to match.
            if (Name[7] != 'w')
              break;
            return MCK_packssdw;	 // "packssdw"
          case 'w':	 // 1 strings to match.
            if (Name[7] != 'b')
              break;
            return MCK_packsswb;	 // "packsswb"
          }
          break;
        case 'u':	 // 2 strings to match.
          if (Name[5] != 's')
            break;
          switch (Name[6]) {
          default: break;
          case 'd':	 // 1 strings to match.
            if (Name[7] != 'w')
              break;
            return MCK_packusdw;	 // "packusdw"
          case 'w':	 // 1 strings to match.
            if (Name[7] != 'b')
              break;
            return MCK_packuswb;	 // "packuswb"
          }
          break;
        }
        break;
      case 'b':	 // 1 strings to match.
        if (Name.substr(2,6) != "lendvb")
          break;
        return MCK_pblendvb;	 // "pblendvb"
      case 'm':	 // 14 strings to match.
        switch (Name[2]) {
        default: break;
        case 'o':	 // 13 strings to match.
          if (Name[3] != 'v')
            break;
          switch (Name[4]) {
          default: break;
          case 'm':	 // 1 strings to match.
            if (Name.substr(5,3) != "skb")
              break;
            return MCK_pmovmskb;	 // "pmovmskb"
          case 's':	 // 6 strings to match.
            if (Name[5] != 'x')
              break;
            switch (Name[6]) {
            default: break;
            case 'b':	 // 3 strings to match.
              switch (Name[7]) {
              default: break;
              case 'd':	 // 1 strings to match.
                return MCK_pmovsxbd;	 // "pmovsxbd"
              case 'q':	 // 1 strings to match.
                return MCK_pmovsxbq;	 // "pmovsxbq"
              case 'w':	 // 1 strings to match.
                return MCK_pmovsxbw;	 // "pmovsxbw"
              }
              break;
            case 'd':	 // 1 strings to match.
              if (Name[7] != 'q')
                break;
              return MCK_pmovsxdq;	 // "pmovsxdq"
            case 'w':	 // 2 strings to match.
              switch (Name[7]) {
              default: break;
              case 'd':	 // 1 strings to match.
                return MCK_pmovsxwd;	 // "pmovsxwd"
              case 'q':	 // 1 strings to match.
                return MCK_pmovsxwq;	 // "pmovsxwq"
              }
              break;
            }
            break;
          case 'z':	 // 6 strings to match.
            if (Name[5] != 'x')
              break;
            switch (Name[6]) {
            default: break;
            case 'b':	 // 3 strings to match.
              switch (Name[7]) {
              default: break;
              case 'd':	 // 1 strings to match.
                return MCK_pmovzxbd;	 // "pmovzxbd"
              case 'q':	 // 1 strings to match.
                return MCK_pmovzxbq;	 // "pmovzxbq"
              case 'w':	 // 1 strings to match.
                return MCK_pmovzxbw;	 // "pmovzxbw"
              }
              break;
            case 'd':	 // 1 strings to match.
              if (Name[7] != 'q')
                break;
              return MCK_pmovzxdq;	 // "pmovzxdq"
            case 'w':	 // 2 strings to match.
              switch (Name[7]) {
              default: break;
              case 'd':	 // 1 strings to match.
                return MCK_pmovzxwd;	 // "pmovzxwd"
              case 'q':	 // 1 strings to match.
                return MCK_pmovzxwq;	 // "pmovzxwq"
              }
              break;
            }
            break;
          }
          break;
        case 'u':	 // 1 strings to match.
          if (Name.substr(3,5) != "lhrsw")
            break;
          return MCK_pmulhrsw;	 // "pmulhrsw"
        }
        break;
      }
      break;
    case 's':	 // 1 strings to match.
      if (Name.substr(1,7) != "ysenter")
        break;
      return MCK_sysenter;	 // "sysenter"
    case 'u':	 // 4 strings to match.
      if (Name.substr(1,4) != "npck")
        break;
      switch (Name[5]) {
      default: break;
      case 'h':	 // 2 strings to match.
        if (Name[6] != 'p')
          break;
        switch (Name[7]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_unpckhpd;	 // "unpckhpd"
        case 's':	 // 1 strings to match.
          return MCK_unpckhps;	 // "unpckhps"
        }
        break;
      case 'l':	 // 2 strings to match.
        if (Name[6] != 'p')
          break;
        switch (Name[7]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_unpcklpd;	 // "unpcklpd"
        case 's':	 // 1 strings to match.
          return MCK_unpcklps;	 // "unpcklps"
        }
        break;
      }
      break;
    case 'v':	 // 4 strings to match.
      if (Name[1] != 'm')
        break;
      switch (Name[2]) {
      default: break;
      case 'l':	 // 1 strings to match.
        if (Name.substr(3,5) != "aunch")
          break;
        return MCK_vmlaunch;	 // "vmlaunch"
      case 'r':	 // 1 strings to match.
        if (Name.substr(3,5) != "esume")
          break;
        return MCK_vmresume;	 // "vmresume"
      case 'w':	 // 2 strings to match.
        if (Name.substr(3,4) != "rite")
          break;
        switch (Name[7]) {
        default: break;
        case 'l':	 // 1 strings to match.
          return MCK_vmwritel;	 // "vmwritel"
        case 'q':	 // 1 strings to match.
          return MCK_vmwriteq;	 // "vmwriteq"
        }
        break;
      }
      break;
    }
    break;
  case 9:	 // 25 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 11 strings to match.
      switch (Name[1]) {
      default: break;
      case 'm':	 // 1 strings to match.
        if (Name.substr(2,7) != "pxchg8b")
          break;
        return MCK_cmpxchg8b;	 // "cmpxchg8b"
      case 'v':	 // 10 strings to match.
        if (Name[2] != 't')
          break;
        switch (Name[3]) {
        default: break;
        case 's':	 // 5 strings to match.
          switch (Name[4]) {
          default: break;
          case 'd':	 // 1 strings to match.
            if (Name.substr(5,4) != "2siq")
              break;
            return MCK_cvtsd2siq;	 // "cvtsd2siq"
          case 'i':	 // 2 strings to match.
            if (Name.substr(5,2) != "2s")
              break;
            switch (Name[7]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name[8] != 'q')
                break;
              return MCK_cvtsi2sdq;	 // "cvtsi2sdq"
            case 's':	 // 1 strings to match.
              if (Name[8] != 'q')
                break;
              return MCK_cvtsi2ssq;	 // "cvtsi2ssq"
            }
            break;
          case 's':	 // 2 strings to match.
            if (Name.substr(5,3) != "2si")
              break;
            switch (Name[8]) {
            default: break;
            case 'l':	 // 1 strings to match.
              return MCK_cvtss2sil;	 // "cvtss2sil"
            case 'q':	 // 1 strings to match.
              return MCK_cvtss2siq;	 // "cvtss2siq"
            }
            break;
          }
          break;
        case 't':	 // 5 strings to match.
          switch (Name[4]) {
          default: break;
          case 'p':	 // 3 strings to match.
            switch (Name[5]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name.substr(6,3) != "2pi")
                break;
              return MCK_cvttpd2pi;	 // "cvttpd2pi"
            case 's':	 // 2 strings to match.
              if (Name[6] != '2')
                break;
              switch (Name[7]) {
              default: break;
              case 'd':	 // 1 strings to match.
                if (Name[8] != 'q')
                  break;
                return MCK_cvttps2dq;	 // "cvttps2dq"
              case 'p':	 // 1 strings to match.
                if (Name[8] != 'i')
                  break;
                return MCK_cvttps2pi;	 // "cvttps2pi"
              }
              break;
            }
            break;
          case 's':	 // 2 strings to match.
            switch (Name[5]) {
            default: break;
            case 'd':	 // 1 strings to match.
              if (Name.substr(6,3) != "2si")
                break;
              return MCK_cvttsd2si;	 // "cvttsd2si"
            case 's':	 // 1 strings to match.
              if (Name.substr(6,3) != "2si")
                break;
              return MCK_cvttss2si;	 // "cvttss2si"
            }
            break;
          }
          break;
        }
        break;
      }
      break;
    case 'e':	 // 1 strings to match.
      if (Name.substr(1,8) != "xtractps")
        break;
      return MCK_extractps;	 // "extractps"
    case 'p':	 // 11 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 4 strings to match.
        if (Name.substr(2,2) != "mp")
          break;
        switch (Name[4]) {
        default: break;
        case 'e':	 // 2 strings to match.
          if (Name.substr(5,3) != "str")
            break;
          switch (Name[8]) {
          default: break;
          case 'i':	 // 1 strings to match.
            return MCK_pcmpestri;	 // "pcmpestri"
          case 'm':	 // 1 strings to match.
            return MCK_pcmpestrm;	 // "pcmpestrm"
          }
          break;
        case 'i':	 // 2 strings to match.
          if (Name.substr(5,3) != "str")
            break;
          switch (Name[8]) {
          default: break;
          case 'i':	 // 1 strings to match.
            return MCK_pcmpistri;	 // "pcmpistri"
          case 'm':	 // 1 strings to match.
            return MCK_pcmpistrm;	 // "pcmpistrm"
          }
          break;
        }
        break;
      case 'm':	 // 1 strings to match.
        if (Name.substr(2,7) != "addubsw")
          break;
        return MCK_pmaddubsw;	 // "pmaddubsw"
      case 'u':	 // 6 strings to match.
        if (Name.substr(2,4) != "npck")
          break;
        switch (Name[6]) {
        default: break;
        case 'h':	 // 3 strings to match.
          switch (Name[7]) {
          default: break;
          case 'b':	 // 1 strings to match.
            if (Name[8] != 'w')
              break;
            return MCK_punpckhbw;	 // "punpckhbw"
          case 'd':	 // 1 strings to match.
            if (Name[8] != 'q')
              break;
            return MCK_punpckhdq;	 // "punpckhdq"
          case 'w':	 // 1 strings to match.
            if (Name[8] != 'd')
              break;
            return MCK_punpckhwd;	 // "punpckhwd"
          }
          break;
        case 'l':	 // 3 strings to match.
          switch (Name[7]) {
          default: break;
          case 'b':	 // 1 strings to match.
            if (Name[8] != 'w')
              break;
            return MCK_punpcklbw;	 // "punpcklbw"
          case 'd':	 // 1 strings to match.
            if (Name[8] != 'q')
              break;
            return MCK_punpckldq;	 // "punpckldq"
          case 'w':	 // 1 strings to match.
            if (Name[8] != 'd')
              break;
            return MCK_punpcklwd;	 // "punpcklwd"
          }
          break;
        }
        break;
      }
      break;
    case 'r':	 // 2 strings to match.
      if (Name.substr(1,3) != "ep;")
        break;
      switch (Name[4]) {
      default: break;
      case 'm':	 // 1 strings to match.
        if (Name.substr(5,4) != "ovsq")
          break;
        return MCK_rep_59_movsq;	 // "rep;movsq"
      case 's':	 // 1 strings to match.
        if (Name.substr(5,4) != "tosq")
          break;
        return MCK_rep_59_stosq;	 // "rep;stosq"
      }
      break;
    }
    break;
  case 10:	 // 10 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'm':	 // 1 strings to match.
        if (Name.substr(2,8) != "pxchg16b")
          break;
        return MCK_cmpxchg16b;	 // "cmpxchg16b"
      case 'v':	 // 2 strings to match.
        if (Name.substr(2,3) != "tts")
          break;
        switch (Name[5]) {
        default: break;
        case 'd':	 // 1 strings to match.
          if (Name.substr(6,4) != "2siq")
            break;
          return MCK_cvttsd2siq;	 // "cvttsd2siq"
        case 's':	 // 1 strings to match.
          if (Name.substr(6,4) != "2siq")
            break;
          return MCK_cvttss2siq;	 // "cvttss2siq"
        }
        break;
      }
      break;
    case 'm':	 // 1 strings to match.
      if (Name.substr(1,9) != "askmovdqu")
        break;
      return MCK_maskmovdqu;	 // "maskmovdqu"
    case 'p':	 // 6 strings to match.
      switch (Name[1]) {
      default: break;
      case 'h':	 // 1 strings to match.
        if (Name.substr(2,8) != "minposuw")
          break;
        return MCK_phminposuw;	 // "phminposuw"
      case 'r':	 // 3 strings to match.
        if (Name.substr(2,7) != "efetcht")
          break;
        switch (Name[9]) {
        default: break;
        case '0':	 // 1 strings to match.
          return MCK_prefetcht0;	 // "prefetcht0"
        case '1':	 // 1 strings to match.
          return MCK_prefetcht1;	 // "prefetcht1"
        case '2':	 // 1 strings to match.
          return MCK_prefetcht2;	 // "prefetcht2"
        }
        break;
      case 'u':	 // 2 strings to match.
        if (Name.substr(2,4) != "npck")
          break;
        switch (Name[6]) {
        default: break;
        case 'h':	 // 1 strings to match.
          if (Name.substr(7,3) != "qdq")
            break;
          return MCK_punpckhqdq;	 // "punpckhqdq"
        case 'l':	 // 1 strings to match.
          if (Name.substr(7,3) != "qdq")
            break;
          return MCK_punpcklqdq;	 // "punpcklqdq"
        }
        break;
      }
      break;
    }
    break;
  case 11:	 // 1 strings to match.
    if (Name.substr(0,11) != "prefetchnta")
      break;
    return MCK_prefetchnta;	 // "prefetchnta"
  }
  return InvalidMatchClass;
}

static MatchClassKind ClassifyOperand(MCParsedAsmOperand *GOp) {
  X86Operand &Operand = *(X86Operand*)GOp;
  if (Operand.isToken())
    return MatchTokenString(Operand.getToken());

  if (Operand.isReg()) {
    switch (Operand.getReg()) {
    default: return InvalidMatchClass;
    case X86::AL: return MCK_AL;
    case X86::DL: return MCK_GR8_ABCD_L;
    case X86::CL: return MCK_CL;
    case X86::BL: return MCK_GR8_ABCD_L;
    case X86::SIL: return MCK_GR8;
    case X86::DIL: return MCK_GR8;
    case X86::BPL: return MCK_GR8;
    case X86::SPL: return MCK_GR8;
    case X86::R8B: return MCK_GR8;
    case X86::R9B: return MCK_GR8;
    case X86::R10B: return MCK_GR8;
    case X86::R11B: return MCK_GR8;
    case X86::R12B: return MCK_GR8;
    case X86::R13B: return MCK_GR8;
    case X86::R14B: return MCK_GR8;
    case X86::R15B: return MCK_GR8;
    case X86::AH: return MCK_GR8_ABCD_H;
    case X86::DH: return MCK_GR8_ABCD_H;
    case X86::CH: return MCK_GR8_ABCD_H;
    case X86::BH: return MCK_GR8_ABCD_H;
    case X86::AX: return MCK_AX;
    case X86::DX: return MCK_DX;
    case X86::CX: return MCK_GR16_ABCD;
    case X86::BX: return MCK_GR16_ABCD;
    case X86::SI: return MCK_GR16_NOREX;
    case X86::DI: return MCK_GR16_NOREX;
    case X86::BP: return MCK_GR16_NOREX;
    case X86::SP: return MCK_GR16_NOREX;
    case X86::R8W: return MCK_GR16;
    case X86::R9W: return MCK_GR16;
    case X86::R10W: return MCK_GR16;
    case X86::R11W: return MCK_GR16;
    case X86::R12W: return MCK_GR16;
    case X86::R13W: return MCK_GR16;
    case X86::R14W: return MCK_GR16;
    case X86::R15W: return MCK_GR16;
    case X86::EAX: return MCK_EAX;
    case X86::EDX: return MCK_GR32_AD;
    case X86::ECX: return MCK_GR32_ABCD;
    case X86::EBX: return MCK_GR32_ABCD;
    case X86::ESI: return MCK_Reg14;
    case X86::EDI: return MCK_Reg14;
    case X86::EBP: return MCK_Reg14;
    case X86::ESP: return MCK_GR32_NOREX;
    case X86::R8D: return MCK_GR32_NOSP;
    case X86::R9D: return MCK_GR32_NOSP;
    case X86::R10D: return MCK_GR32_NOSP;
    case X86::R11D: return MCK_GR32_NOSP;
    case X86::R12D: return MCK_GR32_NOSP;
    case X86::R13D: return MCK_GR32_NOSP;
    case X86::R14D: return MCK_GR32_NOSP;
    case X86::R15D: return MCK_GR32_NOSP;
    case X86::RAX: return MCK_RAX;
    case X86::RDX: return MCK_GR64_ABCD;
    case X86::RCX: return MCK_GR64_ABCD;
    case X86::RBX: return MCK_GR64_ABCD;
    case X86::RSI: return MCK_GR64_NOREX_NOSP;
    case X86::RDI: return MCK_GR64_NOREX_NOSP;
    case X86::RBP: return MCK_GR64_NOREX_NOSP;
    case X86::RSP: return MCK_GR64_NOREX;
    case X86::R8: return MCK_GR64_NOSP;
    case X86::R9: return MCK_GR64_NOSP;
    case X86::R10: return MCK_GR64_NOSP;
    case X86::R11: return MCK_GR64_NOSP;
    case X86::R12: return MCK_GR64_NOSP;
    case X86::R13: return MCK_GR64_NOSP;
    case X86::R14: return MCK_GR64_NOSP;
    case X86::R15: return MCK_GR64_NOSP;
    case X86::RIP: return MCK_GR64_NOREX;
    case X86::MM0: return MCK_VR64;
    case X86::MM1: return MCK_VR64;
    case X86::MM2: return MCK_VR64;
    case X86::MM3: return MCK_VR64;
    case X86::MM4: return MCK_VR64;
    case X86::MM5: return MCK_VR64;
    case X86::MM6: return MCK_VR64;
    case X86::MM7: return MCK_VR64;
    case X86::FP0: return MCK_RFP32;
    case X86::FP1: return MCK_RFP32;
    case X86::FP2: return MCK_RFP32;
    case X86::FP3: return MCK_RFP32;
    case X86::FP4: return MCK_RFP32;
    case X86::FP5: return MCK_RFP32;
    case X86::FP6: return MCK_RFP32;
    case X86::XMM0: return MCK_XMM0;
    case X86::XMM1: return MCK_FR32;
    case X86::XMM2: return MCK_FR32;
    case X86::XMM3: return MCK_FR32;
    case X86::XMM4: return MCK_FR32;
    case X86::XMM5: return MCK_FR32;
    case X86::XMM6: return MCK_FR32;
    case X86::XMM7: return MCK_FR32;
    case X86::XMM8: return MCK_FR32;
    case X86::XMM9: return MCK_FR32;
    case X86::XMM10: return MCK_FR32;
    case X86::XMM11: return MCK_FR32;
    case X86::XMM12: return MCK_FR32;
    case X86::XMM13: return MCK_FR32;
    case X86::XMM14: return MCK_FR32;
    case X86::XMM15: return MCK_FR32;
    case X86::YMM0: return MCK_VR256;
    case X86::YMM1: return MCK_VR256;
    case X86::YMM2: return MCK_VR256;
    case X86::YMM3: return MCK_VR256;
    case X86::YMM4: return MCK_VR256;
    case X86::YMM5: return MCK_VR256;
    case X86::YMM6: return MCK_VR256;
    case X86::YMM7: return MCK_VR256;
    case X86::YMM8: return MCK_VR256;
    case X86::YMM9: return MCK_VR256;
    case X86::YMM10: return MCK_VR256;
    case X86::YMM11: return MCK_VR256;
    case X86::YMM12: return MCK_VR256;
    case X86::YMM13: return MCK_VR256;
    case X86::YMM14: return MCK_VR256;
    case X86::YMM15: return MCK_VR256;
    case X86::ST0: return MCK_ST0;
    case X86::ST1: return MCK_RST;
    case X86::ST2: return MCK_RST;
    case X86::ST3: return MCK_RST;
    case X86::ST4: return MCK_RST;
    case X86::ST5: return MCK_RST;
    case X86::ST6: return MCK_RST;
    case X86::ST7: return MCK_RST;
    case X86::EFLAGS: return MCK_CCR;
    case X86::CS: return MCK_SEGMENT_REG;
    case X86::DS: return MCK_SEGMENT_REG;
    case X86::SS: return MCK_SEGMENT_REG;
    case X86::ES: return MCK_SEGMENT_REG;
    case X86::FS: return MCK_FS;
    case X86::GS: return MCK_GS;
    case X86::DR0: return MCK_DEBUG_REG;
    case X86::DR1: return MCK_DEBUG_REG;
    case X86::DR2: return MCK_DEBUG_REG;
    case X86::DR3: return MCK_DEBUG_REG;
    case X86::DR4: return MCK_DEBUG_REG;
    case X86::DR5: return MCK_DEBUG_REG;
    case X86::DR6: return MCK_DEBUG_REG;
    case X86::DR7: return MCK_DEBUG_REG;
    case X86::ECR0: return MCK_CONTROL_REG_32;
    case X86::ECR1: return MCK_CONTROL_REG_32;
    case X86::ECR2: return MCK_CONTROL_REG_32;
    case X86::ECR3: return MCK_CONTROL_REG_32;
    case X86::ECR4: return MCK_CONTROL_REG_32;
    case X86::ECR5: return MCK_CONTROL_REG_32;
    case X86::ECR6: return MCK_CONTROL_REG_32;
    case X86::ECR7: return MCK_CONTROL_REG_32;
    case X86::RCR0: return MCK_CONTROL_REG_64;
    case X86::RCR1: return MCK_CONTROL_REG_64;
    case X86::RCR2: return MCK_CONTROL_REG_64;
    case X86::RCR3: return MCK_CONTROL_REG_64;
    case X86::RCR4: return MCK_CONTROL_REG_64;
    case X86::RCR5: return MCK_CONTROL_REG_64;
    case X86::RCR6: return MCK_CONTROL_REG_64;
    case X86::RCR7: return MCK_CONTROL_REG_64;
    case X86::RCR8: return MCK_CONTROL_REG_64;
    }
  }

  // 'ImmSExt8' class, subclass of 'Imm'
  if (Operand.isImmSExt8()) {
    assert(Operand.isImm() && "Invalid class relationship!");
    return MCK_ImmSExt8;
  }

  // 'Imm' class
  if (Operand.isImm()) {
    return MCK_Imm;
  }

  // 'AbsMem' class, subclass of 'Mem'
  if (Operand.isAbsMem()) {
    assert(Operand.isMem() && "Invalid class relationship!");
    return MCK_AbsMem;
  }

  // 'NoSegMem' class, subclass of 'Mem'
  if (Operand.isNoSegMem()) {
    assert(Operand.isMem() && "Invalid class relationship!");
    return MCK_NoSegMem;
  }

  // 'Mem' class
  if (Operand.isMem()) {
    return MCK_Mem;
  }

  return InvalidMatchClass;
}

/// IsSubclass - Compute whether \arg A is a subclass of \arg B.
static bool IsSubclass(MatchClassKind A, MatchClassKind B) {
  if (A == B)
    return true;

  switch (A) {
  default:
    return false;

  case MCK_AL:
    switch (B) {
    default: return false;
    case MCK_GR8_ABCD_L: return true;
    case MCK_GR8_NOREX: return true;
    case MCK_GR8: return true;
    }

  case MCK_CL:
    switch (B) {
    default: return false;
    case MCK_GR8_ABCD_L: return true;
    case MCK_GR8_NOREX: return true;
    case MCK_GR8: return true;
    }

  case MCK_GR8_ABCD_L:
    switch (B) {
    default: return false;
    case MCK_GR8_NOREX: return true;
    case MCK_GR8: return true;
    }

  case MCK_GR8_ABCD_H:
    switch (B) {
    default: return false;
    case MCK_GR8_NOREX: return true;
    case MCK_GR8: return true;
    }

  case MCK_GR8_NOREX:
    return B == MCK_GR8;

  case MCK_AX:
    switch (B) {
    default: return false;
    case MCK_GR16_ABCD: return true;
    case MCK_GR16_NOREX: return true;
    case MCK_GR16: return true;
    }

  case MCK_DX:
    switch (B) {
    default: return false;
    case MCK_GR16_ABCD: return true;
    case MCK_GR16_NOREX: return true;
    case MCK_GR16: return true;
    }

  case MCK_GR16_ABCD:
    switch (B) {
    default: return false;
    case MCK_GR16_NOREX: return true;
    case MCK_GR16: return true;
    }

  case MCK_GR16_NOREX:
    return B == MCK_GR16;

  case MCK_EAX:
    switch (B) {
    default: return false;
    case MCK_GR32_AD: return true;
    case MCK_GR32_ABCD: return true;
    case MCK_Reg14: return true;
    case MCK_GR32_NOREX: return true;
    case MCK_GR32_NOSP: return true;
    case MCK_GR32: return true;
    }

  case MCK_GR32_AD:
    switch (B) {
    default: return false;
    case MCK_GR32_ABCD: return true;
    case MCK_Reg14: return true;
    case MCK_GR32_NOREX: return true;
    case MCK_GR32_NOSP: return true;
    case MCK_GR32: return true;
    }

  case MCK_GR32_ABCD:
    switch (B) {
    default: return false;
    case MCK_Reg14: return true;
    case MCK_GR32_NOREX: return true;
    case MCK_GR32_NOSP: return true;
    case MCK_GR32: return true;
    }

  case MCK_Reg14:
    switch (B) {
    default: return false;
    case MCK_GR32_NOREX: return true;
    case MCK_GR32_NOSP: return true;
    case MCK_GR32: return true;
    }

  case MCK_GR32_NOREX:
    return B == MCK_GR32;

  case MCK_GR32_NOSP:
    return B == MCK_GR32;

  case MCK_RAX:
    switch (B) {
    default: return false;
    case MCK_GR64_ABCD: return true;
    case MCK_GR64_NOREX_NOSP: return true;
    case MCK_GR64_NOREX: return true;
    case MCK_GR64_NOSP: return true;
    case MCK_GR64: return true;
    }

  case MCK_GR64_ABCD:
    switch (B) {
    default: return false;
    case MCK_GR64_NOREX_NOSP: return true;
    case MCK_GR64_NOREX: return true;
    case MCK_GR64_NOSP: return true;
    case MCK_GR64: return true;
    }

  case MCK_GR64_NOREX_NOSP:
    switch (B) {
    default: return false;
    case MCK_GR64_NOREX: return true;
    case MCK_GR64_NOSP: return true;
    case MCK_GR64: return true;
    }

  case MCK_GR64_NOREX:
    return B == MCK_GR64;

  case MCK_GR64_NOSP:
    return B == MCK_GR64;

  case MCK_XMM0:
    return B == MCK_FR32;

  case MCK_ST0:
    return B == MCK_RST;

  case MCK_FS:
    return B == MCK_SEGMENT_REG;

  case MCK_GS:
    return B == MCK_SEGMENT_REG;

  case MCK_ImmSExt8:
    return B == MCK_Imm;

  case MCK_AbsMem:
    return B == MCK_Mem;

  case MCK_NoSegMem:
    return B == MCK_Mem;
  }
}

bool X86ATTAsmParser::
MatchInstruction(const SmallVectorImpl<MCParsedAsmOperand*> &Operands,
                 MCInst &Inst) {
  static const struct MatchEntry {
    unsigned Opcode;
    ConversionKind ConvertFn;
    MatchClassKind Classes[5];
  } MatchTable[2037] = {
    { X86::CBW, Convert, { MCK_cbtw } },
    { X86::CLC, Convert, { MCK_clc } },
    { X86::CLD, Convert, { MCK_cld } },
    { X86::CLI, Convert, { MCK_cli } },
    { X86::CDQ, Convert, { MCK_cltd } },
    { X86::CDQE, Convert, { MCK_cltq } },
    { X86::CLTS, Convert, { MCK_clts } },
    { X86::CMC, Convert, { MCK_cmc } },
    { X86::CMPS8, Convert, { MCK_cmpsb } },
    { X86::CMPS32, Convert, { MCK_cmpsl } },
    { X86::CMPS64, Convert, { MCK_cmpsq } },
    { X86::CMPS16, Convert, { MCK_cmpsw } },
    { X86::CPUID, Convert, { MCK_cpuid } },
    { X86::CQO, Convert, { MCK_cqto } },
    { X86::CS_PREFIX, Convert, { MCK_cs } },
    { X86::CWD, Convert, { MCK_cwtd } },
    { X86::CWDE, Convert, { MCK_cwtl } },
    { X86::DS_PREFIX, Convert, { MCK_ds } },
    { X86::MMX_EMMS, Convert, { MCK_emms } },
    { X86::ES_PREFIX, Convert, { MCK_es } },
    { X86::F2XM1, Convert, { MCK_f2xm1 } },
    { X86::ABS_F, Convert, { MCK_fabs } },
    { X86::CHS_F, Convert, { MCK_fchs } },
    { X86::FCOMPP, Convert, { MCK_fcompp } },
    { X86::COS_F, Convert, { MCK_fcos } },
    { X86::FDECSTP, Convert, { MCK_fdecstp } },
    { X86::MMX_FEMMS, Convert, { MCK_femms } },
    { X86::FINCSTP, Convert, { MCK_fincstp } },
    { X86::LD_F1, Convert, { MCK_fld1 } },
    { X86::FLDL2E, Convert, { MCK_fldl2e } },
    { X86::FLDL2T, Convert, { MCK_fldl2t } },
    { X86::FLDLG2, Convert, { MCK_fldlg2 } },
    { X86::FLDLN2, Convert, { MCK_fldln2 } },
    { X86::FLDPI, Convert, { MCK_fldpi } },
    { X86::LD_F0, Convert, { MCK_fldz } },
    { X86::FNCLEX, Convert, { MCK_fnclex } },
    { X86::FNINIT, Convert, { MCK_fninit } },
    { X86::FNOP, Convert, { MCK_fnop } },
    { X86::FPATAN, Convert, { MCK_fpatan } },
    { X86::FPREM, Convert, { MCK_fprem } },
    { X86::FPREM1, Convert, { MCK_fprem1 } },
    { X86::FPTAN, Convert, { MCK_fptan } },
    { X86::FRNDINT, Convert, { MCK_frndint } },
    { X86::FS_PREFIX, Convert, { MCK_fs } },
    { X86::FSCALE, Convert, { MCK_fscale } },
    { X86::SIN_F, Convert, { MCK_fsin } },
    { X86::FSINCOS, Convert, { MCK_fsincos } },
    { X86::SQRT_F, Convert, { MCK_fsqrt } },
    { X86::TST_F, Convert, { MCK_ftst } },
    { X86::UCOM_FPPr, Convert, { MCK_fucompp } },
    { X86::FXAM, Convert, { MCK_fxam } },
    { X86::FXTRACT, Convert, { MCK_fxtract } },
    { X86::FYL2X, Convert, { MCK_fyl2x } },
    { X86::FYL2XP1, Convert, { MCK_fyl2xp1 } },
    { X86::GS_PREFIX, Convert, { MCK_gs } },
    { X86::HLT, Convert, { MCK_hlt } },
    { X86::IN8, Convert, { MCK_insb } },
    { X86::IN32, Convert, { MCK_insl } },
    { X86::IN16, Convert, { MCK_insw } },
    { X86::INVD, Convert, { MCK_invd } },
    { X86::INVEPT, Convert, { MCK_invept } },
    { X86::INVVPID, Convert, { MCK_invvpid } },
    { X86::IRET32, Convert, { MCK_iretl } },
    { X86::IRET64, Convert, { MCK_iretq } },
    { X86::IRET16, Convert, { MCK_iretw } },
    { X86::LAHF, Convert, { MCK_lahf } },
    { X86::LEAVE, Convert, { MCK_leave } },
    { X86::LEAVE64, Convert, { MCK_leave } },
    { X86::LFENCE, Convert, { MCK_lfence } },
    { X86::LOCK_PREFIX, Convert, { MCK_lock } },
    { X86::LODSB, Convert, { MCK_lodsb } },
    { X86::LODSD, Convert, { MCK_lodsl } },
    { X86::LODSQ, Convert, { MCK_lodsq } },
    { X86::LODSW, Convert, { MCK_lodsw } },
    { X86::LRET, Convert, { MCK_lret } },
    { X86::MFENCE, Convert, { MCK_mfence } },
    { X86::MONITOR, Convert, { MCK_monitor } },
    { X86::MOVSB, Convert, { MCK_movsb } },
    { X86::MOVSD, Convert, { MCK_movsl } },
    { X86::MOVSW, Convert, { MCK_movsw } },
    { X86::MWAIT, Convert, { MCK_mwait } },
    { X86::NOOP, Convert, { MCK_nop } },
    { X86::OUTSB, Convert, { MCK_outsb } },
    { X86::OUTSD, Convert, { MCK_outsl } },
    { X86::OUTSW, Convert, { MCK_outsw } },
    { X86::POPFD, Convert, { MCK_popfl } },
    { X86::POPFQ, Convert, { MCK_popfq } },
    { X86::POPF, Convert, { MCK_popfw } },
    { X86::PUSHFD, Convert, { MCK_pushfl } },
    { X86::PUSHFQ64, Convert, { MCK_pushfq } },
    { X86::PUSHF, Convert, { MCK_pushfw } },
    { X86::RDMSR, Convert, { MCK_rdmsr } },
    { X86::RDPMC, Convert, { MCK_rdpmc } },
    { X86::RDTSC, Convert, { MCK_rdtsc } },
    { X86::RDTSCP, Convert, { MCK_rdtscp } },
    { X86::REP_PREFIX, Convert, { MCK_rep } },
    { X86::REP_MOVSQ, Convert, { MCK_rep_59_movsq } },
    { X86::REP_STOSQ, Convert, { MCK_rep_59_stosq } },
    { X86::REPNE_PREFIX, Convert, { MCK_repne } },
    { X86::RET, Convert, { MCK_ret } },
    { X86::RSM, Convert, { MCK_rsm } },
    { X86::SAHF, Convert, { MCK_sahf } },
    { X86::SCAS8, Convert, { MCK_scasb } },
    { X86::SCAS32, Convert, { MCK_scasl } },
    { X86::SCAS64, Convert, { MCK_scasq } },
    { X86::SCAS16, Convert, { MCK_scasw } },
    { X86::SFENCE, Convert, { MCK_sfence } },
    { X86::SS_PREFIX, Convert, { MCK_ss } },
    { X86::STC, Convert, { MCK_stc } },
    { X86::STD, Convert, { MCK_std } },
    { X86::STI, Convert, { MCK_sti } },
    { X86::STOSB, Convert, { MCK_stosb } },
    { X86::STOSD, Convert, { MCK_stosl } },
    { X86::STOSW, Convert, { MCK_stosw } },
    { X86::SWAPGS, Convert, { MCK_swapgs } },
    { X86::SYSCALL, Convert, { MCK_syscall } },
    { X86::SYSENTER, Convert, { MCK_sysenter } },
    { X86::SYSEXIT, Convert, { MCK_sysexit } },
    { X86::SYSEXIT64, Convert, { MCK_sysexit } },
    { X86::SYSRET, Convert, { MCK_sysret } },
    { X86::TRAP, Convert, { MCK_ud2 } },
    { X86::VMCALL, Convert, { MCK_vmcall } },
    { X86::VMLAUNCH, Convert, { MCK_vmlaunch } },
    { X86::VMRESUME, Convert, { MCK_vmresume } },
    { X86::VMXOFF, Convert, { MCK_vmxoff } },
    { X86::WAIT, Convert, { MCK_wait } },
    { X86::WBINVD, Convert, { MCK_wbinvd } },
    { X86::WRMSR, Convert, { MCK_wrmsr } },
    { X86::XLAT, Convert, { MCK_xlatb } },
    { X86::BSWAP32r, Convert__Reg1_1__Tie0, { MCK_bswapl, MCK_GR32 } },
    { X86::BSWAP64r, Convert__Reg1_1__Tie0, { MCK_bswapq, MCK_GR64 } },
    { X86::WINCALL64pcrel32, Convert__Imm1_1, { MCK_call, MCK_Imm } },
    { X86::CALLpcrel32, Convert__AbsMem1_1, { MCK_call, MCK_AbsMem } },
    { X86::CALL64pcrel32, Convert__Imm1_1, { MCK_callq, MCK_Imm } },
    { X86::CLFLUSH, Convert__Mem5_1, { MCK_clflush, MCK_Mem } },
    { X86::CMPXCHG16B, Convert__Mem5_1, { MCK_cmpxchg16b, MCK_Mem } },
    { X86::CMPXCHG8B, Convert__Mem5_1, { MCK_cmpxchg8b, MCK_Mem } },
    { X86::DEC8r, Convert__Reg1_1__Tie0, { MCK_decb, MCK_GR8 } },
    { X86::DEC8m, Convert__Mem5_1, { MCK_decb, MCK_Mem } },
    { X86::DEC32r, Convert__Reg1_1__Tie0, { MCK_decl, MCK_GR32 } },
    { X86::DEC64_32r, Convert__Reg1_1__Tie0, { MCK_decl, MCK_GR32 } },
    { X86::DEC32m, Convert__Mem5_1, { MCK_decl, MCK_Mem } },
    { X86::DEC64_32m, Convert__Mem5_1, { MCK_decl, MCK_Mem } },
    { X86::DEC64r, Convert__Reg1_1__Tie0, { MCK_decq, MCK_GR64 } },
    { X86::DEC64m, Convert__Mem5_1, { MCK_decq, MCK_Mem } },
    { X86::DEC16r, Convert__Reg1_1__Tie0, { MCK_decw, MCK_GR16 } },
    { X86::DEC64_16r, Convert__Reg1_1__Tie0, { MCK_decw, MCK_GR16 } },
    { X86::DEC16m, Convert__Mem5_1, { MCK_decw, MCK_Mem } },
    { X86::DEC64_16m, Convert__Mem5_1, { MCK_decw, MCK_Mem } },
    { X86::DIV8r, Convert__Reg1_1, { MCK_divb, MCK_GR8 } },
    { X86::DIV8m, Convert__Mem5_1, { MCK_divb, MCK_Mem } },
    { X86::DIV32r, Convert__Reg1_1, { MCK_divl, MCK_GR32 } },
    { X86::DIV32m, Convert__Mem5_1, { MCK_divl, MCK_Mem } },
    { X86::DIV64r, Convert__Reg1_1, { MCK_divq, MCK_GR64 } },
    { X86::DIV64m, Convert__Mem5_1, { MCK_divq, MCK_Mem } },
    { X86::DIV16r, Convert__Reg1_1, { MCK_divw, MCK_GR16 } },
    { X86::DIV16m, Convert__Mem5_1, { MCK_divw, MCK_Mem } },
    { X86::ADD_FST0r, Convert__Reg1_1, { MCK_fadd, MCK_RST } },
    { X86::ADD_F64m, Convert__Mem5_1, { MCK_faddl, MCK_Mem } },
    { X86::ADD_FPrST0, Convert__Reg1_1, { MCK_faddp, MCK_RST } },
    { X86::ADD_F32m, Convert__Mem5_1, { MCK_fadds, MCK_Mem } },
    { X86::FBLDm, Convert__Mem5_1, { MCK_fbld, MCK_Mem } },
    { X86::FBSTPm, Convert__Mem5_1, { MCK_fbstp, MCK_Mem } },
    { X86::COM_FST0r, Convert__Reg1_1, { MCK_fcom, MCK_RST } },
    { X86::FCOM32m, Convert__Mem5_1, { MCK_fcoml, MCK_Mem } },
    { X86::FCOM64m, Convert__Mem5_1, { MCK_fcomll, MCK_Mem } },
    { X86::COMP_FST0r, Convert__Reg1_1, { MCK_fcomp, MCK_RST } },
    { X86::FCOMP32m, Convert__Mem5_1, { MCK_fcompl, MCK_Mem } },
    { X86::FCOMP64m, Convert__Mem5_1, { MCK_fcompll, MCK_Mem } },
    { X86::DIV_FST0r, Convert__Reg1_1, { MCK_fdiv, MCK_RST } },
    { X86::DIV_F64m, Convert__Mem5_1, { MCK_fdivl, MCK_Mem } },
    { X86::DIVR_FPrST0, Convert__Reg1_1, { MCK_fdivp, MCK_RST } },
    { X86::DIVR_FST0r, Convert__Reg1_1, { MCK_fdivr, MCK_RST } },
    { X86::DIVR_F64m, Convert__Mem5_1, { MCK_fdivrl, MCK_Mem } },
    { X86::DIV_FPrST0, Convert__Reg1_1, { MCK_fdivrp, MCK_RST } },
    { X86::DIVR_F32m, Convert__Mem5_1, { MCK_fdivrs, MCK_Mem } },
    { X86::DIV_F32m, Convert__Mem5_1, { MCK_fdivs, MCK_Mem } },
    { X86::FFREE, Convert__Reg1_1, { MCK_ffree, MCK_RST } },
    { X86::ADD_FI32m, Convert__Mem5_1, { MCK_fiaddl, MCK_Mem } },
    { X86::ADD_FI16m, Convert__Mem5_1, { MCK_fiadds, MCK_Mem } },
    { X86::FICOM32m, Convert__Mem5_1, { MCK_ficoml, MCK_Mem } },
    { X86::FICOMP32m, Convert__Mem5_1, { MCK_ficompl, MCK_Mem } },
    { X86::FICOMP16m, Convert__Mem5_1, { MCK_ficompw, MCK_Mem } },
    { X86::FICOM16m, Convert__Mem5_1, { MCK_ficomw, MCK_Mem } },
    { X86::DIV_FI32m, Convert__Mem5_1, { MCK_fidivl, MCK_Mem } },
    { X86::DIVR_FI32m, Convert__Mem5_1, { MCK_fidivrl, MCK_Mem } },
    { X86::DIVR_FI16m, Convert__Mem5_1, { MCK_fidivrs, MCK_Mem } },
    { X86::DIV_FI16m, Convert__Mem5_1, { MCK_fidivs, MCK_Mem } },
    { X86::ILD_F32m, Convert__Mem5_1, { MCK_fildl, MCK_Mem } },
    { X86::ILD_F64m, Convert__Mem5_1, { MCK_fildll, MCK_Mem } },
    { X86::ILD_F16m, Convert__Mem5_1, { MCK_filds, MCK_Mem } },
    { X86::MUL_FI32m, Convert__Mem5_1, { MCK_fimull, MCK_Mem } },
    { X86::MUL_FI16m, Convert__Mem5_1, { MCK_fimuls, MCK_Mem } },
    { X86::IST_F32m, Convert__Mem5_1, { MCK_fistl, MCK_Mem } },
    { X86::IST_FP32m, Convert__Mem5_1, { MCK_fistpl, MCK_Mem } },
    { X86::IST_FP64m, Convert__Mem5_1, { MCK_fistpll, MCK_Mem } },
    { X86::IST_FP16m, Convert__Mem5_1, { MCK_fistps, MCK_Mem } },
    { X86::IST_F16m, Convert__Mem5_1, { MCK_fists, MCK_Mem } },
    { X86::ISTT_FP32m, Convert__Mem5_1, { MCK_fisttpl, MCK_Mem } },
    { X86::ISTT_FP64m, Convert__Mem5_1, { MCK_fisttpll, MCK_Mem } },
    { X86::ISTT_FP16m, Convert__Mem5_1, { MCK_fisttps, MCK_Mem } },
    { X86::SUB_FI32m, Convert__Mem5_1, { MCK_fisubl, MCK_Mem } },
    { X86::SUBR_FI32m, Convert__Mem5_1, { MCK_fisubrl, MCK_Mem } },
    { X86::SUBR_FI16m, Convert__Mem5_1, { MCK_fisubrs, MCK_Mem } },
    { X86::SUB_FI16m, Convert__Mem5_1, { MCK_fisubs, MCK_Mem } },
    { X86::LD_Frr, Convert__Reg1_1, { MCK_fld, MCK_RST } },
    { X86::FLDCW16m, Convert__Mem5_1, { MCK_fldcw, MCK_Mem } },
    { X86::FLDENVm, Convert__Mem5_1, { MCK_fldenv, MCK_Mem } },
    { X86::LD_F64m, Convert__Mem5_1, { MCK_fldl, MCK_Mem } },
    { X86::LD_F32m, Convert__Mem5_1, { MCK_flds, MCK_Mem } },
    { X86::LD_F80m, Convert__Mem5_1, { MCK_fldt, MCK_Mem } },
    { X86::MUL_FST0r, Convert__Reg1_1, { MCK_fmul, MCK_RST } },
    { X86::MUL_F64m, Convert__Mem5_1, { MCK_fmull, MCK_Mem } },
    { X86::MUL_FPrST0, Convert__Reg1_1, { MCK_fmulp, MCK_RST } },
    { X86::MUL_F32m, Convert__Mem5_1, { MCK_fmuls, MCK_Mem } },
    { X86::FSAVEm, Convert__Mem5_1, { MCK_fnsave, MCK_Mem } },
    { X86::FNSTCW16m, Convert__Mem5_1, { MCK_fnstcw, MCK_Mem } },
    { X86::FSTENVm, Convert__Mem5_1, { MCK_fnstenv, MCK_Mem } },
    { X86::FNSTSW8r, Convert, { MCK_fnstsw, MCK_AX } },
    { X86::FNSTSWm, Convert__Mem5_1, { MCK_fnstsw, MCK_Mem } },
    { X86::FRSTORm, Convert__Mem5_1, { MCK_frstor, MCK_Mem } },
    { X86::ST_Frr, Convert__Reg1_1, { MCK_fst, MCK_RST } },
    { X86::ST_F64m, Convert__Mem5_1, { MCK_fstl, MCK_Mem } },
    { X86::ST_FPrr, Convert__Reg1_1, { MCK_fstp, MCK_RST } },
    { X86::ST_FP64m, Convert__Mem5_1, { MCK_fstpl, MCK_Mem } },
    { X86::ST_FP32m, Convert__Mem5_1, { MCK_fstps, MCK_Mem } },
    { X86::ST_FP80m, Convert__Mem5_1, { MCK_fstpt, MCK_Mem } },
    { X86::ST_F32m, Convert__Mem5_1, { MCK_fsts, MCK_Mem } },
    { X86::SUB_FST0r, Convert__Reg1_1, { MCK_fsub, MCK_RST } },
    { X86::SUB_F64m, Convert__Mem5_1, { MCK_fsubl, MCK_Mem } },
    { X86::SUBR_FPrST0, Convert__Reg1_1, { MCK_fsubp, MCK_RST } },
    { X86::SUBR_FST0r, Convert__Reg1_1, { MCK_fsubr, MCK_RST } },
    { X86::SUBR_F64m, Convert__Mem5_1, { MCK_fsubrl, MCK_Mem } },
    { X86::SUB_FPrST0, Convert__Reg1_1, { MCK_fsubrp, MCK_RST } },
    { X86::SUBR_F32m, Convert__Mem5_1, { MCK_fsubrs, MCK_Mem } },
    { X86::SUB_F32m, Convert__Mem5_1, { MCK_fsubs, MCK_Mem } },
    { X86::UCOM_Fr, Convert__Reg1_1, { MCK_fucom, MCK_RST } },
    { X86::UCOM_FPr, Convert__Reg1_1, { MCK_fucomp, MCK_RST } },
    { X86::XCH_F, Convert__Reg1_1, { MCK_fxch, MCK_RST } },
    { X86::FXRSTOR, Convert__Mem5_1, { MCK_fxrstor, MCK_Mem } },
    { X86::FXSAVE, Convert__Mem5_1, { MCK_fxsave, MCK_Mem } },
    { X86::IDIV8r, Convert__Reg1_1, { MCK_idivb, MCK_GR8 } },
    { X86::IDIV8m, Convert__Mem5_1, { MCK_idivb, MCK_Mem } },
    { X86::IDIV32r, Convert__Reg1_1, { MCK_idivl, MCK_GR32 } },
    { X86::IDIV32m, Convert__Mem5_1, { MCK_idivl, MCK_Mem } },
    { X86::IDIV64r, Convert__Reg1_1, { MCK_idivq, MCK_GR64 } },
    { X86::IDIV64m, Convert__Mem5_1, { MCK_idivq, MCK_Mem } },
    { X86::IDIV16r, Convert__Reg1_1, { MCK_idivw, MCK_GR16 } },
    { X86::IDIV16m, Convert__Mem5_1, { MCK_idivw, MCK_Mem } },
    { X86::IMUL8r, Convert__Reg1_1, { MCK_imulb, MCK_GR8 } },
    { X86::IMUL8m, Convert__Mem5_1, { MCK_imulb, MCK_Mem } },
    { X86::IMUL32r, Convert__Reg1_1, { MCK_imull, MCK_GR32 } },
    { X86::IMUL32m, Convert__Mem5_1, { MCK_imull, MCK_Mem } },
    { X86::IMUL64r, Convert__Reg1_1, { MCK_imulq, MCK_GR64 } },
    { X86::IMUL64m, Convert__Mem5_1, { MCK_imulq, MCK_Mem } },
    { X86::IMUL16r, Convert__Reg1_1, { MCK_imulw, MCK_GR16 } },
    { X86::IMUL16m, Convert__Mem5_1, { MCK_imulw, MCK_Mem } },
    { X86::INC8r, Convert__Reg1_1__Tie0, { MCK_incb, MCK_GR8 } },
    { X86::INC8m, Convert__Mem5_1, { MCK_incb, MCK_Mem } },
    { X86::INC32r, Convert__Reg1_1__Tie0, { MCK_incl, MCK_GR32 } },
    { X86::INC64_32r, Convert__Reg1_1__Tie0, { MCK_incl, MCK_GR32 } },
    { X86::INC32m, Convert__Mem5_1, { MCK_incl, MCK_Mem } },
    { X86::INC64_32m, Convert__Mem5_1, { MCK_incl, MCK_Mem } },
    { X86::INC64r, Convert__Reg1_1__Tie0, { MCK_incq, MCK_GR64 } },
    { X86::INC64m, Convert__Mem5_1, { MCK_incq, MCK_Mem } },
    { X86::INC16r, Convert__Reg1_1__Tie0, { MCK_incw, MCK_GR16 } },
    { X86::INC64_16r, Convert__Reg1_1__Tie0, { MCK_incw, MCK_GR16 } },
    { X86::INC16m, Convert__Mem5_1, { MCK_incw, MCK_Mem } },
    { X86::INC64_16m, Convert__Mem5_1, { MCK_incw, MCK_Mem } },
    { X86::INT3, Convert, { MCK_int, MCK_3 } },
    { X86::INT, Convert__Imm1_1, { MCK_int, MCK_Imm } },
    { X86::INVLPG, Convert__Mem5_1, { MCK_invlpg, MCK_Mem } },
    { X86::JA_1, Convert__AbsMem1_1, { MCK_ja, MCK_AbsMem } },
    { X86::JA_4, Convert__AbsMem1_1, { MCK_ja, MCK_AbsMem } },
    { X86::JAE_1, Convert__AbsMem1_1, { MCK_jae, MCK_AbsMem } },
    { X86::JAE_4, Convert__AbsMem1_1, { MCK_jae, MCK_AbsMem } },
    { X86::JB_1, Convert__AbsMem1_1, { MCK_jb, MCK_AbsMem } },
    { X86::JB_4, Convert__AbsMem1_1, { MCK_jb, MCK_AbsMem } },
    { X86::JBE_1, Convert__AbsMem1_1, { MCK_jbe, MCK_AbsMem } },
    { X86::JBE_4, Convert__AbsMem1_1, { MCK_jbe, MCK_AbsMem } },
    { X86::JCXZ8, Convert__AbsMem1_1, { MCK_jcxz, MCK_AbsMem } },
    { X86::JE_1, Convert__AbsMem1_1, { MCK_je, MCK_AbsMem } },
    { X86::JE_4, Convert__AbsMem1_1, { MCK_je, MCK_AbsMem } },
    { X86::JG_1, Convert__AbsMem1_1, { MCK_jg, MCK_AbsMem } },
    { X86::JG_4, Convert__AbsMem1_1, { MCK_jg, MCK_AbsMem } },
    { X86::JGE_1, Convert__AbsMem1_1, { MCK_jge, MCK_AbsMem } },
    { X86::JGE_4, Convert__AbsMem1_1, { MCK_jge, MCK_AbsMem } },
    { X86::JL_1, Convert__AbsMem1_1, { MCK_jl, MCK_AbsMem } },
    { X86::JL_4, Convert__AbsMem1_1, { MCK_jl, MCK_AbsMem } },
    { X86::JLE_1, Convert__AbsMem1_1, { MCK_jle, MCK_AbsMem } },
    { X86::JLE_4, Convert__AbsMem1_1, { MCK_jle, MCK_AbsMem } },
    { X86::JMP_1, Convert__AbsMem1_1, { MCK_jmp, MCK_AbsMem } },
    { X86::JMP_4, Convert__AbsMem1_1, { MCK_jmp, MCK_AbsMem } },
    { X86::TAILJMPd, Convert__AbsMem1_1, { MCK_jmp, MCK_AbsMem } },
    { X86::JMP64pcrel32, Convert__AbsMem1_1, { MCK_jmpq, MCK_AbsMem } },
    { X86::JNE_1, Convert__AbsMem1_1, { MCK_jne, MCK_AbsMem } },
    { X86::JNE_4, Convert__AbsMem1_1, { MCK_jne, MCK_AbsMem } },
    { X86::JNO_1, Convert__AbsMem1_1, { MCK_jno, MCK_AbsMem } },
    { X86::JNO_4, Convert__AbsMem1_1, { MCK_jno, MCK_AbsMem } },
    { X86::JNP_1, Convert__AbsMem1_1, { MCK_jnp, MCK_AbsMem } },
    { X86::JNP_4, Convert__AbsMem1_1, { MCK_jnp, MCK_AbsMem } },
    { X86::JNS_1, Convert__AbsMem1_1, { MCK_jns, MCK_AbsMem } },
    { X86::JNS_4, Convert__AbsMem1_1, { MCK_jns, MCK_AbsMem } },
    { X86::JO_1, Convert__AbsMem1_1, { MCK_jo, MCK_AbsMem } },
    { X86::JO_4, Convert__AbsMem1_1, { MCK_jo, MCK_AbsMem } },
    { X86::JP_1, Convert__AbsMem1_1, { MCK_jp, MCK_AbsMem } },
    { X86::JP_4, Convert__AbsMem1_1, { MCK_jp, MCK_AbsMem } },
    { X86::JS_1, Convert__AbsMem1_1, { MCK_js, MCK_AbsMem } },
    { X86::JS_4, Convert__AbsMem1_1, { MCK_js, MCK_AbsMem } },
    { X86::LDMXCSR, Convert__Mem5_1, { MCK_ldmxcsr, MCK_Mem } },
    { X86::LGDTm, Convert__Mem5_1, { MCK_lgdt, MCK_Mem } },
    { X86::LIDTm, Convert__Mem5_1, { MCK_lidt, MCK_Mem } },
    { X86::LLDT16r, Convert__Reg1_1, { MCK_lldtw, MCK_GR16 } },
    { X86::LLDT16m, Convert__Mem5_1, { MCK_lldtw, MCK_Mem } },
    { X86::LMSW16r, Convert__Reg1_1, { MCK_lmsww, MCK_GR16 } },
    { X86::LMSW16m, Convert__Mem5_1, { MCK_lmsww, MCK_Mem } },
    { X86::LOOP, Convert__AbsMem1_1, { MCK_loop, MCK_AbsMem } },
    { X86::LOOPE, Convert__AbsMem1_1, { MCK_loope, MCK_AbsMem } },
    { X86::LOOPNE, Convert__AbsMem1_1, { MCK_loopne, MCK_AbsMem } },
    { X86::LRETI, Convert__Imm1_1, { MCK_lret, MCK_Imm } },
    { X86::LTRr, Convert__Reg1_1, { MCK_ltrw, MCK_GR16 } },
    { X86::LTRm, Convert__Mem5_1, { MCK_ltrw, MCK_Mem } },
    { X86::MUL8r, Convert__Reg1_1, { MCK_mulb, MCK_GR8 } },
    { X86::MUL8m, Convert__Mem5_1, { MCK_mulb, MCK_Mem } },
    { X86::MUL32r, Convert__Reg1_1, { MCK_mull, MCK_GR32 } },
    { X86::MUL32m, Convert__Mem5_1, { MCK_mull, MCK_Mem } },
    { X86::MUL64r, Convert__Reg1_1, { MCK_mulq, MCK_GR64 } },
    { X86::MUL64m, Convert__Mem5_1, { MCK_mulq, MCK_Mem } },
    { X86::MUL16r, Convert__Reg1_1, { MCK_mulw, MCK_GR16 } },
    { X86::MUL16m, Convert__Mem5_1, { MCK_mulw, MCK_Mem } },
    { X86::NEG8r, Convert__Reg1_1__Tie0, { MCK_negb, MCK_GR8 } },
    { X86::NEG8m, Convert__Mem5_1, { MCK_negb, MCK_Mem } },
    { X86::NEG32r, Convert__Reg1_1__Tie0, { MCK_negl, MCK_GR32 } },
    { X86::NEG32m, Convert__Mem5_1, { MCK_negl, MCK_Mem } },
    { X86::NEG64r, Convert__Reg1_1__Tie0, { MCK_negq, MCK_GR64 } },
    { X86::NEG64m, Convert__Mem5_1, { MCK_negq, MCK_Mem } },
    { X86::NEG16r, Convert__Reg1_1__Tie0, { MCK_negw, MCK_GR16 } },
    { X86::NEG16m, Convert__Mem5_1, { MCK_negw, MCK_Mem } },
    { X86::NOOPL, Convert__Mem5_1, { MCK_nopl, MCK_Mem } },
    { X86::NOOPW, Convert__Mem5_1, { MCK_nopw, MCK_Mem } },
    { X86::NOT8r, Convert__Reg1_1__Tie0, { MCK_notb, MCK_GR8 } },
    { X86::NOT8m, Convert__Mem5_1, { MCK_notb, MCK_Mem } },
    { X86::NOT32r, Convert__Reg1_1__Tie0, { MCK_notl, MCK_GR32 } },
    { X86::NOT32m, Convert__Mem5_1, { MCK_notl, MCK_Mem } },
    { X86::NOT64r, Convert__Reg1_1__Tie0, { MCK_notq, MCK_GR64 } },
    { X86::NOT64m, Convert__Mem5_1, { MCK_notq, MCK_Mem } },
    { X86::NOT16r, Convert__Reg1_1__Tie0, { MCK_notw, MCK_GR16 } },
    { X86::NOT16m, Convert__Mem5_1, { MCK_notw, MCK_Mem } },
    { X86::POP32r, Convert__Reg1_1, { MCK_popl, MCK_GR32 } },
    { X86::POP32rmr, Convert__Reg1_1, { MCK_popl, MCK_GR32 } },
    { X86::POPFS32, Convert, { MCK_popl, MCK_FS } },
    { X86::POPGS32, Convert, { MCK_popl, MCK_GS } },
    { X86::POP32rmm, Convert__Mem5_1, { MCK_popl, MCK_Mem } },
    { X86::POP64r, Convert__Reg1_1, { MCK_popq, MCK_GR64 } },
    { X86::POP64rmr, Convert__Reg1_1, { MCK_popq, MCK_GR64 } },
    { X86::POPFS64, Convert, { MCK_popq, MCK_FS } },
    { X86::POPGS64, Convert, { MCK_popq, MCK_GS } },
    { X86::POP64rmm, Convert__Mem5_1, { MCK_popq, MCK_Mem } },
    { X86::POP16r, Convert__Reg1_1, { MCK_popw, MCK_GR16 } },
    { X86::POP16rmr, Convert__Reg1_1, { MCK_popw, MCK_GR16 } },
    { X86::POPFS16, Convert, { MCK_popw, MCK_FS } },
    { X86::POPGS16, Convert, { MCK_popw, MCK_GS } },
    { X86::POP16rmm, Convert__Mem5_1, { MCK_popw, MCK_Mem } },
    { X86::PREFETCHNTA, Convert__Mem5_1, { MCK_prefetchnta, MCK_Mem } },
    { X86::PREFETCHT0, Convert__Mem5_1, { MCK_prefetcht0, MCK_Mem } },
    { X86::PREFETCHT1, Convert__Mem5_1, { MCK_prefetcht1, MCK_Mem } },
    { X86::PREFETCHT2, Convert__Mem5_1, { MCK_prefetcht2, MCK_Mem } },
    { X86::PUSH32r, Convert__Reg1_1, { MCK_pushl, MCK_GR32 } },
    { X86::PUSH32rmr, Convert__Reg1_1, { MCK_pushl, MCK_GR32 } },
    { X86::PUSHFS32, Convert, { MCK_pushl, MCK_FS } },
    { X86::PUSHGS32, Convert, { MCK_pushl, MCK_GS } },
    { X86::PUSH32i16, Convert__Imm1_1, { MCK_pushl, MCK_Imm } },
    { X86::PUSH32i32, Convert__Imm1_1, { MCK_pushl, MCK_Imm } },
    { X86::PUSH32i8, Convert__Imm1_1, { MCK_pushl, MCK_Imm } },
    { X86::PUSH32rmm, Convert__Mem5_1, { MCK_pushl, MCK_Mem } },
    { X86::PUSH64r, Convert__Reg1_1, { MCK_pushq, MCK_GR64 } },
    { X86::PUSH64rmr, Convert__Reg1_1, { MCK_pushq, MCK_GR64 } },
    { X86::PUSHFS64, Convert, { MCK_pushq, MCK_FS } },
    { X86::PUSHGS64, Convert, { MCK_pushq, MCK_GS } },
    { X86::PUSH64i16, Convert__Imm1_1, { MCK_pushq, MCK_Imm } },
    { X86::PUSH64i32, Convert__Imm1_1, { MCK_pushq, MCK_Imm } },
    { X86::PUSH64i8, Convert__Imm1_1, { MCK_pushq, MCK_Imm } },
    { X86::PUSH64rmm, Convert__Mem5_1, { MCK_pushq, MCK_Mem } },
    { X86::PUSH16r, Convert__Reg1_1, { MCK_pushw, MCK_GR16 } },
    { X86::PUSH16rmr, Convert__Reg1_1, { MCK_pushw, MCK_GR16 } },
    { X86::PUSHFS16, Convert, { MCK_pushw, MCK_FS } },
    { X86::PUSHGS16, Convert, { MCK_pushw, MCK_GS } },
    { X86::PUSH16rmm, Convert__Mem5_1, { MCK_pushw, MCK_Mem } },
    { X86::RETI, Convert__Imm1_1, { MCK_ret, MCK_Imm } },
    { X86::ROL8r1, Convert__Reg1_1__Tie0, { MCK_rolb, MCK_GR8 } },
    { X86::ROL8m1, Convert__Mem5_1, { MCK_rolb, MCK_Mem } },
    { X86::ROL32r1, Convert__Reg1_1__Tie0, { MCK_roll, MCK_GR32 } },
    { X86::ROL32m1, Convert__Mem5_1, { MCK_roll, MCK_Mem } },
    { X86::ROL64r1, Convert__Reg1_1__Tie0, { MCK_rolq, MCK_GR64 } },
    { X86::ROL64m1, Convert__Mem5_1, { MCK_rolq, MCK_Mem } },
    { X86::ROL16r1, Convert__Reg1_1__Tie0, { MCK_rolw, MCK_GR16 } },
    { X86::ROL16m1, Convert__Mem5_1, { MCK_rolw, MCK_Mem } },
    { X86::ROR8r1, Convert__Reg1_1__Tie0, { MCK_rorb, MCK_GR8 } },
    { X86::ROR8m1, Convert__Mem5_1, { MCK_rorb, MCK_Mem } },
    { X86::ROR32r1, Convert__Reg1_1__Tie0, { MCK_rorl, MCK_GR32 } },
    { X86::ROR32m1, Convert__Mem5_1, { MCK_rorl, MCK_Mem } },
    { X86::ROR64r1, Convert__Reg1_1__Tie0, { MCK_rorq, MCK_GR64 } },
    { X86::ROR64m1, Convert__Mem5_1, { MCK_rorq, MCK_Mem } },
    { X86::ROR16r1, Convert__Reg1_1__Tie0, { MCK_rorw, MCK_GR16 } },
    { X86::ROR16m1, Convert__Mem5_1, { MCK_rorw, MCK_Mem } },
    { X86::SAR8r1, Convert__Reg1_1__Tie0, { MCK_sarb, MCK_GR8 } },
    { X86::SAR8m1, Convert__Mem5_1, { MCK_sarb, MCK_Mem } },
    { X86::SAR32r1, Convert__Reg1_1__Tie0, { MCK_sarl, MCK_GR32 } },
    { X86::SAR32m1, Convert__Mem5_1, { MCK_sarl, MCK_Mem } },
    { X86::SAR64r1, Convert__Reg1_1__Tie0, { MCK_sarq, MCK_GR64 } },
    { X86::SAR64m1, Convert__Mem5_1, { MCK_sarq, MCK_Mem } },
    { X86::SAR16r1, Convert__Reg1_1__Tie0, { MCK_sarw, MCK_GR16 } },
    { X86::SAR16m1, Convert__Mem5_1, { MCK_sarw, MCK_Mem } },
    { X86::SETAr, Convert__Reg1_1, { MCK_seta, MCK_GR8 } },
    { X86::SETAm, Convert__Mem5_1, { MCK_seta, MCK_Mem } },
    { X86::SETAEr, Convert__Reg1_1, { MCK_setae, MCK_GR8 } },
    { X86::SETAEm, Convert__Mem5_1, { MCK_setae, MCK_Mem } },
    { X86::SETBr, Convert__Reg1_1, { MCK_setb, MCK_GR8 } },
    { X86::SETBm, Convert__Mem5_1, { MCK_setb, MCK_Mem } },
    { X86::SETBEr, Convert__Reg1_1, { MCK_setbe, MCK_GR8 } },
    { X86::SETBEm, Convert__Mem5_1, { MCK_setbe, MCK_Mem } },
    { X86::SETEr, Convert__Reg1_1, { MCK_sete, MCK_GR8 } },
    { X86::SETEm, Convert__Mem5_1, { MCK_sete, MCK_Mem } },
    { X86::SETGr, Convert__Reg1_1, { MCK_setg, MCK_GR8 } },
    { X86::SETGm, Convert__Mem5_1, { MCK_setg, MCK_Mem } },
    { X86::SETGEr, Convert__Reg1_1, { MCK_setge, MCK_GR8 } },
    { X86::SETGEm, Convert__Mem5_1, { MCK_setge, MCK_Mem } },
    { X86::SETLr, Convert__Reg1_1, { MCK_setl, MCK_GR8 } },
    { X86::SETLm, Convert__Mem5_1, { MCK_setl, MCK_Mem } },
    { X86::SETLEr, Convert__Reg1_1, { MCK_setle, MCK_GR8 } },
    { X86::SETLEm, Convert__Mem5_1, { MCK_setle, MCK_Mem } },
    { X86::SETNEr, Convert__Reg1_1, { MCK_setne, MCK_GR8 } },
    { X86::SETNEm, Convert__Mem5_1, { MCK_setne, MCK_Mem } },
    { X86::SETNOr, Convert__Reg1_1, { MCK_setno, MCK_GR8 } },
    { X86::SETNOm, Convert__Mem5_1, { MCK_setno, MCK_Mem } },
    { X86::SETNPr, Convert__Reg1_1, { MCK_setnp, MCK_GR8 } },
    { X86::SETNPm, Convert__Mem5_1, { MCK_setnp, MCK_Mem } },
    { X86::SETNSr, Convert__Reg1_1, { MCK_setns, MCK_GR8 } },
    { X86::SETNSm, Convert__Mem5_1, { MCK_setns, MCK_Mem } },
    { X86::SETOr, Convert__Reg1_1, { MCK_seto, MCK_GR8 } },
    { X86::SETOm, Convert__Mem5_1, { MCK_seto, MCK_Mem } },
    { X86::SETPr, Convert__Reg1_1, { MCK_setp, MCK_GR8 } },
    { X86::SETPm, Convert__Mem5_1, { MCK_setp, MCK_Mem } },
    { X86::SETSr, Convert__Reg1_1, { MCK_sets, MCK_GR8 } },
    { X86::SETSm, Convert__Mem5_1, { MCK_sets, MCK_Mem } },
    { X86::SGDTm, Convert__Mem5_1, { MCK_sgdt, MCK_Mem } },
    { X86::SHL8r1, Convert__Reg1_1__Tie0, { MCK_shlb, MCK_GR8 } },
    { X86::SHL8m1, Convert__Mem5_1, { MCK_shlb, MCK_Mem } },
    { X86::SHL32r1, Convert__Reg1_1__Tie0, { MCK_shll, MCK_GR32 } },
    { X86::SHL32m1, Convert__Mem5_1, { MCK_shll, MCK_Mem } },
    { X86::SHL64r1, Convert__Reg1_1__Tie0, { MCK_shlq, MCK_GR64 } },
    { X86::SHL64m1, Convert__Mem5_1, { MCK_shlq, MCK_Mem } },
    { X86::SHL16r1, Convert__Reg1_1__Tie0, { MCK_shlw, MCK_GR16 } },
    { X86::SHL16m1, Convert__Mem5_1, { MCK_shlw, MCK_Mem } },
    { X86::SHR8r1, Convert__Reg1_1__Tie0, { MCK_shrb, MCK_GR8 } },
    { X86::SHR8m1, Convert__Mem5_1, { MCK_shrb, MCK_Mem } },
    { X86::SHR32r1, Convert__Reg1_1__Tie0, { MCK_shrl, MCK_GR32 } },
    { X86::SHR32m1, Convert__Mem5_1, { MCK_shrl, MCK_Mem } },
    { X86::SHR64r1, Convert__Reg1_1__Tie0, { MCK_shrq, MCK_GR64 } },
    { X86::SHR64m1, Convert__Mem5_1, { MCK_shrq, MCK_Mem } },
    { X86::SHR16r1, Convert__Reg1_1__Tie0, { MCK_shrw, MCK_GR16 } },
    { X86::SHR16m1, Convert__Mem5_1, { MCK_shrw, MCK_Mem } },
    { X86::SIDTm, Convert__Mem5_1, { MCK_sidt, MCK_Mem } },
    { X86::SLDT64r, Convert__Reg1_1, { MCK_sldtq, MCK_GR64 } },
    { X86::SLDT64m, Convert__Mem5_1, { MCK_sldtq, MCK_Mem } },
    { X86::SLDT16r, Convert__Reg1_1, { MCK_sldtw, MCK_GR16 } },
    { X86::SLDT16m, Convert__Mem5_1, { MCK_sldtw, MCK_Mem } },
    { X86::SMSW32r, Convert__Reg1_1, { MCK_smswl, MCK_GR32 } },
    { X86::SMSW64r, Convert__Reg1_1, { MCK_smswq, MCK_GR64 } },
    { X86::SMSW16r, Convert__Reg1_1, { MCK_smsww, MCK_GR16 } },
    { X86::SMSW16m, Convert__Mem5_1, { MCK_smsww, MCK_Mem } },
    { X86::STMXCSR, Convert__Mem5_1, { MCK_stmxcsr, MCK_Mem } },
    { X86::STRr, Convert__Reg1_1, { MCK_strw, MCK_GR16 } },
    { X86::STRm, Convert__Mem5_1, { MCK_strw, MCK_Mem } },
    { X86::VERRr, Convert__Reg1_1, { MCK_verr, MCK_GR16 } },
    { X86::VERRm, Convert__Mem5_1, { MCK_verr, MCK_Mem } },
    { X86::VERWr, Convert__Reg1_1, { MCK_verw, MCK_GR16 } },
    { X86::VERWm, Convert__Mem5_1, { MCK_verw, MCK_Mem } },
    { X86::VMCLEARm, Convert__Mem5_1, { MCK_vmclear, MCK_Mem } },
    { X86::VMPTRLDm, Convert__Mem5_1, { MCK_vmptrld, MCK_Mem } },
    { X86::VMPTRSTm, Convert__Mem5_1, { MCK_vmptrst, MCK_Mem } },
    { X86::VMXON, Convert__Mem5_1, { MCK_vmxon, MCK_Mem } },
    { X86::ADC8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcb, MCK_GR8, MCK_GR8 } },
    { X86::ADC8rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcb, MCK_GR8, MCK_GR8 } },
    { X86::ADC8mr, Convert__Mem5_2__Reg1_1, { MCK_adcb, MCK_GR8, MCK_Mem } },
    { X86::ADC8i8, Convert__Imm1_1, { MCK_adcb, MCK_Imm, MCK_AL } },
    { X86::ADC8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_adcb, MCK_Imm, MCK_GR8 } },
    { X86::ADC8mi, Convert__Mem5_2__Imm1_1, { MCK_adcb, MCK_Imm, MCK_Mem } },
    { X86::ADC8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_adcb, MCK_Mem, MCK_GR8 } },
    { X86::ADC32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcl, MCK_GR32, MCK_GR32 } },
    { X86::ADC32rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcl, MCK_GR32, MCK_GR32 } },
    { X86::ADC32mr, Convert__Mem5_2__Reg1_1, { MCK_adcl, MCK_GR32, MCK_Mem } },
    { X86::ADC32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_adcl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::ADC32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_adcl, MCK_ImmSExt8, MCK_Mem } },
    { X86::ADC32i32, Convert__Imm1_1, { MCK_adcl, MCK_Imm, MCK_EAX } },
    { X86::ADC32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_adcl, MCK_Imm, MCK_GR32 } },
    { X86::ADC32mi, Convert__Mem5_2__Imm1_1, { MCK_adcl, MCK_Imm, MCK_Mem } },
    { X86::ADC32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_adcl, MCK_Mem, MCK_GR32 } },
    { X86::ADC64rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcq, MCK_GR64, MCK_GR32 } },
    { X86::ADC64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcq, MCK_GR64, MCK_GR64 } },
    { X86::ADC64mr, Convert__Mem5_2__Reg1_1, { MCK_adcq, MCK_GR64, MCK_Mem } },
    { X86::ADC64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_adcq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::ADC64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_adcq, MCK_ImmSExt8, MCK_Mem } },
    { X86::ADC64i32, Convert__Imm1_1, { MCK_adcq, MCK_Imm, MCK_RAX } },
    { X86::ADC64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_adcq, MCK_Imm, MCK_GR64 } },
    { X86::ADC64mi32, Convert__Mem5_2__Imm1_1, { MCK_adcq, MCK_Imm, MCK_Mem } },
    { X86::ADC64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_adcq, MCK_Mem, MCK_GR64 } },
    { X86::ADC16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcw, MCK_GR16, MCK_GR16 } },
    { X86::ADC16rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_adcw, MCK_GR16, MCK_GR16 } },
    { X86::ADC16mr, Convert__Mem5_2__Reg1_1, { MCK_adcw, MCK_GR16, MCK_Mem } },
    { X86::ADC16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_adcw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::ADC16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_adcw, MCK_ImmSExt8, MCK_Mem } },
    { X86::ADC16i16, Convert__Imm1_1, { MCK_adcw, MCK_Imm, MCK_AX } },
    { X86::ADC16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_adcw, MCK_Imm, MCK_GR16 } },
    { X86::ADC16mi, Convert__Mem5_2__Imm1_1, { MCK_adcw, MCK_Imm, MCK_Mem } },
    { X86::ADC16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_adcw, MCK_Mem, MCK_GR16 } },
    { X86::ADD8mrmrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addb, MCK_GR8, MCK_GR8 } },
    { X86::ADD8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addb, MCK_GR8, MCK_GR8 } },
    { X86::ADD8mr, Convert__Mem5_2__Reg1_1, { MCK_addb, MCK_GR8, MCK_Mem } },
    { X86::ADD8i8, Convert__Imm1_1, { MCK_addb, MCK_Imm, MCK_AL } },
    { X86::ADD8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_addb, MCK_Imm, MCK_GR8 } },
    { X86::ADD8mi, Convert__Mem5_2__Imm1_1, { MCK_addb, MCK_Imm, MCK_Mem } },
    { X86::ADD8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addb, MCK_Mem, MCK_GR8 } },
    { X86::ADD32mrmrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addl, MCK_GR16, MCK_GR16 } },
    { X86::ADD32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addl, MCK_GR32, MCK_GR32 } },
    { X86::ADD32mr, Convert__Mem5_2__Reg1_1, { MCK_addl, MCK_GR32, MCK_Mem } },
    { X86::ADD64mrmrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addl, MCK_GR64, MCK_GR64 } },
    { X86::ADD32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_addl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::ADD32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_addl, MCK_ImmSExt8, MCK_Mem } },
    { X86::ADD32i32, Convert__Imm1_1, { MCK_addl, MCK_Imm, MCK_EAX } },
    { X86::ADD32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_addl, MCK_Imm, MCK_GR32 } },
    { X86::ADD32mi, Convert__Mem5_2__Imm1_1, { MCK_addl, MCK_Imm, MCK_Mem } },
    { X86::ADD32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addl, MCK_Mem, MCK_GR32 } },
    { X86::ADDPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addpd, MCK_FR32, MCK_FR32 } },
    { X86::ADDPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addpd, MCK_Mem, MCK_FR32 } },
    { X86::ADDPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addps, MCK_FR32, MCK_FR32 } },
    { X86::ADDPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addps, MCK_Mem, MCK_FR32 } },
    { X86::ADD64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addq, MCK_GR64, MCK_GR64 } },
    { X86::ADD64mr, Convert__Mem5_2__Reg1_1, { MCK_addq, MCK_GR64, MCK_Mem } },
    { X86::ADD64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_addq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::ADD64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_addq, MCK_ImmSExt8, MCK_Mem } },
    { X86::ADD64i32, Convert__Imm1_1, { MCK_addq, MCK_Imm, MCK_RAX } },
    { X86::ADD64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_addq, MCK_Imm, MCK_GR64 } },
    { X86::ADD64mi32, Convert__Mem5_2__Imm1_1, { MCK_addq, MCK_Imm, MCK_Mem } },
    { X86::ADD64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addq, MCK_Mem, MCK_GR64 } },
    { X86::ADDSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addsd, MCK_FR32, MCK_FR32 } },
    { X86::ADDSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addsd, MCK_Mem, MCK_FR32 } },
    { X86::ADDSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addss, MCK_FR32, MCK_FR32 } },
    { X86::ADDSSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addss, MCK_Mem, MCK_FR32 } },
    { X86::ADDSUBPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addsubpd, MCK_FR32, MCK_FR32 } },
    { X86::ADDSUBPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addsubpd, MCK_Mem, MCK_FR32 } },
    { X86::ADDSUBPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addsubps, MCK_FR32, MCK_FR32 } },
    { X86::ADDSUBPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addsubps, MCK_Mem, MCK_FR32 } },
    { X86::ADD16mrmrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addw, MCK_GR16, MCK_GR16 } },
    { X86::ADD16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_addw, MCK_GR16, MCK_GR16 } },
    { X86::ADD16mr, Convert__Mem5_2__Reg1_1, { MCK_addw, MCK_GR16, MCK_Mem } },
    { X86::ADD16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_addw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::ADD16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_addw, MCK_ImmSExt8, MCK_Mem } },
    { X86::ADD16i16, Convert__Imm1_1, { MCK_addw, MCK_Imm, MCK_AX } },
    { X86::ADD16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_addw, MCK_Imm, MCK_GR16 } },
    { X86::ADD16mi, Convert__Mem5_2__Imm1_1, { MCK_addw, MCK_Imm, MCK_Mem } },
    { X86::ADD16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_addw, MCK_Mem, MCK_GR16 } },
    { X86::AND8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andb, MCK_GR8, MCK_GR8 } },
    { X86::AND8rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andb, MCK_GR8, MCK_GR8 } },
    { X86::AND8mr, Convert__Mem5_2__Reg1_1, { MCK_andb, MCK_GR8, MCK_Mem } },
    { X86::AND8i8, Convert__Imm1_1, { MCK_andb, MCK_Imm, MCK_AL } },
    { X86::AND8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_andb, MCK_Imm, MCK_GR8 } },
    { X86::AND8mi, Convert__Mem5_2__Imm1_1, { MCK_andb, MCK_Imm, MCK_Mem } },
    { X86::AND8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andb, MCK_Mem, MCK_GR8 } },
    { X86::AND32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andl, MCK_GR32, MCK_GR32 } },
    { X86::AND32rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andl, MCK_GR32, MCK_GR32 } },
    { X86::AND32mr, Convert__Mem5_2__Reg1_1, { MCK_andl, MCK_GR32, MCK_Mem } },
    { X86::AND32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_andl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::AND32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_andl, MCK_ImmSExt8, MCK_Mem } },
    { X86::AND32i32, Convert__Imm1_1, { MCK_andl, MCK_Imm, MCK_EAX } },
    { X86::AND32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_andl, MCK_Imm, MCK_GR32 } },
    { X86::AND32mi, Convert__Mem5_2__Imm1_1, { MCK_andl, MCK_Imm, MCK_Mem } },
    { X86::AND32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andl, MCK_Mem, MCK_GR32 } },
    { X86::ANDNPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andnpd, MCK_FR32, MCK_FR32 } },
    { X86::FsANDNPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andnpd, MCK_FR32, MCK_FR32 } },
    { X86::ANDNPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andnpd, MCK_Mem, MCK_FR32 } },
    { X86::FsANDNPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andnpd, MCK_Mem, MCK_FR32 } },
    { X86::ANDNPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andnps, MCK_FR32, MCK_FR32 } },
    { X86::FsANDNPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andnps, MCK_FR32, MCK_FR32 } },
    { X86::ANDNPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andnps, MCK_Mem, MCK_FR32 } },
    { X86::FsANDNPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andnps, MCK_Mem, MCK_FR32 } },
    { X86::ANDPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andpd, MCK_FR32, MCK_FR32 } },
    { X86::FsANDPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andpd, MCK_FR32, MCK_FR32 } },
    { X86::ANDPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andpd, MCK_Mem, MCK_FR32 } },
    { X86::FsANDPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andpd, MCK_Mem, MCK_FR32 } },
    { X86::ANDPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andps, MCK_FR32, MCK_FR32 } },
    { X86::FsANDPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andps, MCK_FR32, MCK_FR32 } },
    { X86::ANDPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andps, MCK_Mem, MCK_FR32 } },
    { X86::FsANDPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andps, MCK_Mem, MCK_FR32 } },
    { X86::AND64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andq, MCK_GR64, MCK_GR64 } },
    { X86::AND64rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andq, MCK_GR64, MCK_GR64 } },
    { X86::AND64mr, Convert__Mem5_2__Reg1_1, { MCK_andq, MCK_GR64, MCK_Mem } },
    { X86::AND64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_andq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::AND64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_andq, MCK_ImmSExt8, MCK_Mem } },
    { X86::AND64i32, Convert__Imm1_1, { MCK_andq, MCK_Imm, MCK_RAX } },
    { X86::AND64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_andq, MCK_Imm, MCK_GR64 } },
    { X86::AND64mi32, Convert__Mem5_2__Imm1_1, { MCK_andq, MCK_Imm, MCK_Mem } },
    { X86::AND64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andq, MCK_Mem, MCK_GR64 } },
    { X86::AND16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andw, MCK_GR16, MCK_GR16 } },
    { X86::AND16rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_andw, MCK_GR16, MCK_GR16 } },
    { X86::AND16mr, Convert__Mem5_2__Reg1_1, { MCK_andw, MCK_GR16, MCK_Mem } },
    { X86::AND16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_andw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::AND16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_andw, MCK_ImmSExt8, MCK_Mem } },
    { X86::AND16i16, Convert__Imm1_1, { MCK_andw, MCK_Imm, MCK_AX } },
    { X86::AND16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_andw, MCK_Imm, MCK_GR16 } },
    { X86::AND16mi, Convert__Mem5_2__Imm1_1, { MCK_andw, MCK_Imm, MCK_Mem } },
    { X86::AND16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_andw, MCK_Mem, MCK_GR16 } },
    { X86::BSF32rr, Convert__Reg1_2__Reg1_1, { MCK_bsfl, MCK_GR32, MCK_GR32 } },
    { X86::BSF32rm, Convert__Reg1_2__Mem5_1, { MCK_bsfl, MCK_Mem, MCK_GR32 } },
    { X86::BSF64rr, Convert__Reg1_2__Reg1_1, { MCK_bsfq, MCK_GR64, MCK_GR64 } },
    { X86::BSF64rm, Convert__Reg1_2__Mem5_1, { MCK_bsfq, MCK_Mem, MCK_GR64 } },
    { X86::BSF16rr, Convert__Reg1_2__Reg1_1, { MCK_bsfw, MCK_GR16, MCK_GR16 } },
    { X86::BSF16rm, Convert__Reg1_2__Mem5_1, { MCK_bsfw, MCK_Mem, MCK_GR16 } },
    { X86::BSR32rr, Convert__Reg1_2__Reg1_1, { MCK_bsrl, MCK_GR32, MCK_GR32 } },
    { X86::BSR32rm, Convert__Reg1_2__Mem5_1, { MCK_bsrl, MCK_Mem, MCK_GR32 } },
    { X86::BSR64rr, Convert__Reg1_2__Reg1_1, { MCK_bsrq, MCK_GR64, MCK_GR64 } },
    { X86::BSR64rm, Convert__Reg1_2__Mem5_1, { MCK_bsrq, MCK_Mem, MCK_GR64 } },
    { X86::BSR16rr, Convert__Reg1_2__Reg1_1, { MCK_bsrw, MCK_GR16, MCK_GR16 } },
    { X86::BSR16rm, Convert__Reg1_2__Mem5_1, { MCK_bsrw, MCK_Mem, MCK_GR16 } },
    { X86::BTC32rr, Convert__Reg1_2__Reg1_1, { MCK_btcl, MCK_GR32, MCK_GR32 } },
    { X86::BTC32mr, Convert__Mem5_2__Reg1_1, { MCK_btcl, MCK_GR32, MCK_Mem } },
    { X86::BTC32ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btcl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::BTC32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btcl, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTC64rr, Convert__Reg1_2__Reg1_1, { MCK_btcq, MCK_GR64, MCK_GR64 } },
    { X86::BTC64mr, Convert__Mem5_2__Reg1_1, { MCK_btcq, MCK_GR64, MCK_Mem } },
    { X86::BTC64ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btcq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::BTC64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btcq, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTC16rr, Convert__Reg1_2__Reg1_1, { MCK_btcw, MCK_GR16, MCK_GR16 } },
    { X86::BTC16mr, Convert__Mem5_2__Reg1_1, { MCK_btcw, MCK_GR16, MCK_Mem } },
    { X86::BTC16ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btcw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::BTC16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btcw, MCK_ImmSExt8, MCK_Mem } },
    { X86::BT32rr, Convert__Reg1_2__Reg1_1, { MCK_btl, MCK_GR32, MCK_GR32 } },
    { X86::BT32mr, Convert__Mem5_2__Reg1_1, { MCK_btl, MCK_GR32, MCK_Mem } },
    { X86::BT32ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::BT32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btl, MCK_ImmSExt8, MCK_Mem } },
    { X86::BT64rr, Convert__Reg1_2__Reg1_1, { MCK_btq, MCK_GR64, MCK_GR64 } },
    { X86::BT64mr, Convert__Mem5_2__Reg1_1, { MCK_btq, MCK_GR64, MCK_Mem } },
    { X86::BT64ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::BT64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btq, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTR32rr, Convert__Reg1_2__Reg1_1, { MCK_btrl, MCK_GR32, MCK_GR32 } },
    { X86::BTR32mr, Convert__Mem5_2__Reg1_1, { MCK_btrl, MCK_GR32, MCK_Mem } },
    { X86::BTR32ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btrl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::BTR32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btrl, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTR64rr, Convert__Reg1_2__Reg1_1, { MCK_btrq, MCK_GR64, MCK_GR64 } },
    { X86::BTR64mr, Convert__Mem5_2__Reg1_1, { MCK_btrq, MCK_GR64, MCK_Mem } },
    { X86::BTR64ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btrq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::BTR64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btrq, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTR16rr, Convert__Reg1_2__Reg1_1, { MCK_btrw, MCK_GR16, MCK_GR16 } },
    { X86::BTR16mr, Convert__Mem5_2__Reg1_1, { MCK_btrw, MCK_GR16, MCK_Mem } },
    { X86::BTR16ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btrw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::BTR16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btrw, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTS32rr, Convert__Reg1_2__Reg1_1, { MCK_btsl, MCK_GR32, MCK_GR32 } },
    { X86::BTS32mr, Convert__Mem5_2__Reg1_1, { MCK_btsl, MCK_GR32, MCK_Mem } },
    { X86::BTS32ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btsl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::BTS32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btsl, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTS64rr, Convert__Reg1_2__Reg1_1, { MCK_btsq, MCK_GR64, MCK_GR64 } },
    { X86::BTS64mr, Convert__Mem5_2__Reg1_1, { MCK_btsq, MCK_GR64, MCK_Mem } },
    { X86::BTS64ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btsq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::BTS64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btsq, MCK_ImmSExt8, MCK_Mem } },
    { X86::BTS16rr, Convert__Reg1_2__Reg1_1, { MCK_btsw, MCK_GR16, MCK_GR16 } },
    { X86::BTS16mr, Convert__Mem5_2__Reg1_1, { MCK_btsw, MCK_GR16, MCK_Mem } },
    { X86::BTS16ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btsw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::BTS16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btsw, MCK_ImmSExt8, MCK_Mem } },
    { X86::BT16rr, Convert__Reg1_2__Reg1_1, { MCK_btw, MCK_GR16, MCK_GR16 } },
    { X86::BT16mr, Convert__Mem5_2__Reg1_1, { MCK_btw, MCK_GR16, MCK_Mem } },
    { X86::BT16ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_btw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::BT16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_btw, MCK_ImmSExt8, MCK_Mem } },
    { X86::CALL32r, Convert__Reg1_2, { MCK_call, MCK__STAR_, MCK_GR32 } },
    { X86::WINCALL64r, Convert__Reg1_2, { MCK_call, MCK__STAR_, MCK_GR64 } },
    { X86::CALL32m, Convert__Mem5_2, { MCK_call, MCK__STAR_, MCK_Mem } },
    { X86::WINCALL64m, Convert__Mem5_2, { MCK_call, MCK__STAR_, MCK_Mem } },
    { X86::CALL64r, Convert__Reg1_2, { MCK_callq, MCK__STAR_, MCK_GR64 } },
    { X86::CALL64m, Convert__Mem5_2, { MCK_callq, MCK__STAR_, MCK_Mem } },
    { X86::CMOVAE32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovael, MCK_GR32, MCK_GR32 } },
    { X86::CMOVAE32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovael, MCK_Mem, MCK_GR32 } },
    { X86::CMOVAE64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovaeq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVAE64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovaeq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVAE16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovaew, MCK_GR16, MCK_GR16 } },
    { X86::CMOVAE16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovaew, MCK_Mem, MCK_GR16 } },
    { X86::CMOVA32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmoval, MCK_GR32, MCK_GR32 } },
    { X86::CMOVA32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmoval, MCK_Mem, MCK_GR32 } },
    { X86::CMOVA64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovaq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVA64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovaq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVA16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovaw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVA16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovaw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVBE32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovbel, MCK_GR32, MCK_GR32 } },
    { X86::CMOVBE32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovbel, MCK_Mem, MCK_GR32 } },
    { X86::CMOVBE64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovbeq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVBE64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovbeq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVBE16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovbew, MCK_GR16, MCK_GR16 } },
    { X86::CMOVBE16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovbew, MCK_Mem, MCK_GR16 } },
    { X86::CMOVB32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovbl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVB32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovbl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVB64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovbq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVB64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovbq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVB16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovbw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVB16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovbw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVE32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovel, MCK_GR32, MCK_GR32 } },
    { X86::CMOVE32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovel, MCK_Mem, MCK_GR32 } },
    { X86::CMOVE64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmoveq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVE64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmoveq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVE16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovew, MCK_GR16, MCK_GR16 } },
    { X86::CMOVE16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovew, MCK_Mem, MCK_GR16 } },
    { X86::CMOVGE32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovgel, MCK_GR32, MCK_GR32 } },
    { X86::CMOVGE32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovgel, MCK_Mem, MCK_GR32 } },
    { X86::CMOVGE64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovgeq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVGE64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovgeq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVGE16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovgew, MCK_GR16, MCK_GR16 } },
    { X86::CMOVGE16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovgew, MCK_Mem, MCK_GR16 } },
    { X86::CMOVG32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovgl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVG32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovgl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVG64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovgq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVG64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovgq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVG16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovgw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVG16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovgw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVLE32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovlel, MCK_GR32, MCK_GR32 } },
    { X86::CMOVLE32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovlel, MCK_Mem, MCK_GR32 } },
    { X86::CMOVLE64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovleq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVLE64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovleq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVLE16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovlew, MCK_GR16, MCK_GR16 } },
    { X86::CMOVLE16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovlew, MCK_Mem, MCK_GR16 } },
    { X86::CMOVL32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovll, MCK_GR32, MCK_GR32 } },
    { X86::CMOVL32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovll, MCK_Mem, MCK_GR32 } },
    { X86::CMOVL64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovlq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVL64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovlq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVL16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovlw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVL16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovlw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNE32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnel, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNE32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnel, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNE64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovneq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNE64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovneq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNE16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnew, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNE16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnew, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNO32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnol, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNO32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnol, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNO64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnoq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNO64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnoq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNO16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnow, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNO16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnow, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNP32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnpl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNP32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnpl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNP64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnpq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNP64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnpq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNP16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnpw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNP16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnpw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNS32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnsl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNS32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnsl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNS64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnsq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNS64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnsq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNS16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovnsw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNS16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovnsw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVO32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovol, MCK_GR32, MCK_GR32 } },
    { X86::CMOVO32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovol, MCK_Mem, MCK_GR32 } },
    { X86::CMOVO64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovoq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVO64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovoq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVO16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovow, MCK_GR16, MCK_GR16 } },
    { X86::CMOVO16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovow, MCK_Mem, MCK_GR16 } },
    { X86::CMOVP32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovpl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVP32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovpl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVP64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovpq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVP64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovpq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVP16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovpw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVP16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovpw, MCK_Mem, MCK_GR16 } },
    { X86::CMOVS32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovsl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVS32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovsl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVS64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovsq, MCK_GR64, MCK_GR64 } },
    { X86::CMOVS64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovsq, MCK_Mem, MCK_GR64 } },
    { X86::CMOVS16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_cmovsw, MCK_GR16, MCK_GR16 } },
    { X86::CMOVS16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_cmovsw, MCK_Mem, MCK_GR16 } },
    { X86::CMP8mrmrr, Convert__Reg1_2__Reg1_1, { MCK_cmpb, MCK_GR8, MCK_GR8 } },
    { X86::CMP8rr, Convert__Reg1_2__Reg1_1, { MCK_cmpb, MCK_GR8, MCK_GR8 } },
    { X86::CMP8mr, Convert__Mem5_2__Reg1_1, { MCK_cmpb, MCK_GR8, MCK_Mem } },
    { X86::CMP8i8, Convert__Imm1_1, { MCK_cmpb, MCK_Imm, MCK_AL } },
    { X86::CMP8ri, Convert__Reg1_2__Imm1_1, { MCK_cmpb, MCK_Imm, MCK_GR8 } },
    { X86::CMP8mi, Convert__Mem5_2__Imm1_1, { MCK_cmpb, MCK_Imm, MCK_Mem } },
    { X86::CMP8rm, Convert__Reg1_2__Mem5_1, { MCK_cmpb, MCK_Mem, MCK_GR8 } },
    { X86::CMP32mrmrr, Convert__Reg1_2__Reg1_1, { MCK_cmpl, MCK_GR32, MCK_GR32 } },
    { X86::CMP32rr, Convert__Reg1_2__Reg1_1, { MCK_cmpl, MCK_GR32, MCK_GR32 } },
    { X86::CMP32mr, Convert__Mem5_2__Reg1_1, { MCK_cmpl, MCK_GR32, MCK_Mem } },
    { X86::CMP32ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_cmpl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::CMP32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_cmpl, MCK_ImmSExt8, MCK_Mem } },
    { X86::CMP32i32, Convert__Imm1_1, { MCK_cmpl, MCK_Imm, MCK_EAX } },
    { X86::CMP32ri, Convert__Reg1_2__Imm1_1, { MCK_cmpl, MCK_Imm, MCK_GR32 } },
    { X86::CMP32mi, Convert__Mem5_2__Imm1_1, { MCK_cmpl, MCK_Imm, MCK_Mem } },
    { X86::CMP32rm, Convert__Reg1_2__Mem5_1, { MCK_cmpl, MCK_Mem, MCK_GR32 } },
    { X86::CMP64mrmrr, Convert__Reg1_2__Reg1_1, { MCK_cmpq, MCK_GR64, MCK_GR64 } },
    { X86::CMP64rr, Convert__Reg1_2__Reg1_1, { MCK_cmpq, MCK_GR64, MCK_GR64 } },
    { X86::CMP64mr, Convert__Mem5_2__Reg1_1, { MCK_cmpq, MCK_GR64, MCK_Mem } },
    { X86::CMP64ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_cmpq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::CMP64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_cmpq, MCK_ImmSExt8, MCK_Mem } },
    { X86::CMP64i32, Convert__Imm1_1, { MCK_cmpq, MCK_Imm, MCK_RAX } },
    { X86::CMP64ri32, Convert__Reg1_2__Imm1_1, { MCK_cmpq, MCK_Imm, MCK_GR64 } },
    { X86::CMP64mi32, Convert__Mem5_2__Imm1_1, { MCK_cmpq, MCK_Imm, MCK_Mem } },
    { X86::CMP64rm, Convert__Reg1_2__Mem5_1, { MCK_cmpq, MCK_Mem, MCK_GR64 } },
    { X86::CMP16mrmrr, Convert__Reg1_2__Reg1_1, { MCK_cmpw, MCK_GR16, MCK_GR16 } },
    { X86::CMP16rr, Convert__Reg1_2__Reg1_1, { MCK_cmpw, MCK_GR16, MCK_GR16 } },
    { X86::CMP16mr, Convert__Mem5_2__Reg1_1, { MCK_cmpw, MCK_GR16, MCK_Mem } },
    { X86::CMP16ri8, Convert__Reg1_2__ImmSExt81_1, { MCK_cmpw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::CMP16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_cmpw, MCK_ImmSExt8, MCK_Mem } },
    { X86::CMP16i16, Convert__Imm1_1, { MCK_cmpw, MCK_Imm, MCK_AX } },
    { X86::CMP16ri, Convert__Reg1_2__Imm1_1, { MCK_cmpw, MCK_Imm, MCK_GR16 } },
    { X86::CMP16mi, Convert__Mem5_2__Imm1_1, { MCK_cmpw, MCK_Imm, MCK_Mem } },
    { X86::CMP16rm, Convert__Reg1_2__Mem5_1, { MCK_cmpw, MCK_Mem, MCK_GR16 } },
    { X86::CMPXCHG8rr, Convert__Reg1_2__Reg1_1, { MCK_cmpxchgb, MCK_GR8, MCK_GR8 } },
    { X86::CMPXCHG8rm, Convert__Mem5_2__Reg1_1, { MCK_cmpxchgb, MCK_GR8, MCK_Mem } },
    { X86::CMPXCHG32rr, Convert__Reg1_2__Reg1_1, { MCK_cmpxchgl, MCK_GR32, MCK_GR32 } },
    { X86::CMPXCHG32rm, Convert__Mem5_2__Reg1_1, { MCK_cmpxchgl, MCK_GR32, MCK_Mem } },
    { X86::CMPXCHG64rr, Convert__Reg1_2__Reg1_1, { MCK_cmpxchgq, MCK_GR64, MCK_GR64 } },
    { X86::CMPXCHG64rm, Convert__Mem5_2__Reg1_1, { MCK_cmpxchgq, MCK_GR64, MCK_Mem } },
    { X86::CMPXCHG16rr, Convert__Reg1_2__Reg1_1, { MCK_cmpxchgw, MCK_GR16, MCK_GR16 } },
    { X86::CMPXCHG16rm, Convert__Mem5_2__Reg1_1, { MCK_cmpxchgw, MCK_GR16, MCK_Mem } },
    { X86::COMISDrr, Convert__Reg1_2__Reg1_1, { MCK_comisd, MCK_FR32, MCK_FR32 } },
    { X86::COMISDrm, Convert__Reg1_2__Mem5_1, { MCK_comisd, MCK_Mem, MCK_FR32 } },
    { X86::COMISSrr, Convert__Reg1_2__Reg1_1, { MCK_comiss, MCK_FR32, MCK_FR32 } },
    { X86::COMISSrm, Convert__Reg1_2__Mem5_1, { MCK_comiss, MCK_Mem, MCK_FR32 } },
    { X86::CRC32r8, Convert__Reg1_2__Tie0__Reg1_1, { MCK_crc32, MCK_GR8, MCK_GR32 } },
    { X86::CRC32r16, Convert__Reg1_2__Tie0__Reg1_1, { MCK_crc32, MCK_GR16, MCK_GR32 } },
    { X86::CRC32r32, Convert__Reg1_2__Tie0__Reg1_1, { MCK_crc32, MCK_GR32, MCK_GR32 } },
    { X86::CRC64r64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_crc32, MCK_GR64, MCK_GR64 } },
    { X86::CRC32m16, Convert__Reg1_2__Tie0__Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR32 } },
    { X86::CRC32m32, Convert__Reg1_2__Tie0__Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR32 } },
    { X86::CRC32m8, Convert__Reg1_2__Tie0__Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR32 } },
    { X86::CRC64m64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR64 } },
    { X86::CVTDQ2PDrr, Convert__Reg1_2__Reg1_1, { MCK_cvtdq2pd, MCK_FR32, MCK_FR32 } },
    { X86::CVTDQ2PDrm, Convert__Reg1_2__Mem5_1, { MCK_cvtdq2pd, MCK_Mem, MCK_FR32 } },
    { X86::CVTDQ2PSrr, Convert__Reg1_2__Reg1_1, { MCK_cvtdq2ps, MCK_FR32, MCK_FR32 } },
    { X86::CVTDQ2PSrm, Convert__Reg1_2__Mem5_1, { MCK_cvtdq2ps, MCK_Mem, MCK_FR32 } },
    { X86::CVTPD2DQrr, Convert__Reg1_2__Reg1_1, { MCK_cvtpd2dq, MCK_FR32, MCK_FR32 } },
    { X86::CVTPD2DQrm, Convert__Reg1_2__Mem5_1, { MCK_cvtpd2dq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_CVTPD2PIrr, Convert__Reg1_2__Reg1_1, { MCK_cvtpd2pi, MCK_FR32, MCK_VR64 } },
    { X86::MMX_CVTPD2PIrm, Convert__Reg1_2__Mem5_1, { MCK_cvtpd2pi, MCK_Mem, MCK_VR64 } },
    { X86::CVTPD2PSrr, Convert__Reg1_2__Reg1_1, { MCK_cvtpd2ps, MCK_FR32, MCK_FR32 } },
    { X86::CVTPD2PSrm, Convert__Reg1_2__Mem5_1, { MCK_cvtpd2ps, MCK_Mem, MCK_FR32 } },
    { X86::MMX_CVTPI2PDrr, Convert__Reg1_2__Reg1_1, { MCK_cvtpi2pd, MCK_VR64, MCK_FR32 } },
    { X86::MMX_CVTPI2PDrm, Convert__Reg1_2__Mem5_1, { MCK_cvtpi2pd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_CVTPI2PSrr, Convert__Reg1_2__Reg1_1, { MCK_cvtpi2ps, MCK_VR64, MCK_FR32 } },
    { X86::MMX_CVTPI2PSrm, Convert__Reg1_2__Mem5_1, { MCK_cvtpi2ps, MCK_Mem, MCK_FR32 } },
    { X86::CVTPS2DQrr, Convert__Reg1_2__Reg1_1, { MCK_cvtps2dq, MCK_FR32, MCK_FR32 } },
    { X86::CVTPS2DQrm, Convert__Reg1_2__Mem5_1, { MCK_cvtps2dq, MCK_Mem, MCK_FR32 } },
    { X86::CVTPS2PDrr, Convert__Reg1_2__Reg1_1, { MCK_cvtps2pd, MCK_FR32, MCK_FR32 } },
    { X86::CVTPS2PDrm, Convert__Reg1_2__Mem5_1, { MCK_cvtps2pd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_CVTPS2PIrr, Convert__Reg1_2__Reg1_1, { MCK_cvtps2pi, MCK_FR32, MCK_VR64 } },
    { X86::MMX_CVTPS2PIrm, Convert__Reg1_2__Mem5_1, { MCK_cvtps2pi, MCK_Mem, MCK_VR64 } },
    { X86::CVTSD2SI64rr, Convert__Reg1_2__Reg1_1, { MCK_cvtsd2siq, MCK_FR32, MCK_GR64 } },
    { X86::CVTSD2SI64rm, Convert__Reg1_2__Mem5_1, { MCK_cvtsd2siq, MCK_Mem, MCK_GR64 } },
    { X86::CVTSD2SSrr, Convert__Reg1_2__Reg1_1, { MCK_cvtsd2ss, MCK_FR32, MCK_FR32 } },
    { X86::CVTSD2SSrm, Convert__Reg1_2__Mem5_1, { MCK_cvtsd2ss, MCK_Mem, MCK_FR32 } },
    { X86::CVTSI2SDrr, Convert__Reg1_2__Reg1_1, { MCK_cvtsi2sd, MCK_GR32, MCK_FR32 } },
    { X86::CVTSI2SDrm, Convert__Reg1_2__Mem5_1, { MCK_cvtsi2sd, MCK_Mem, MCK_FR32 } },
    { X86::CVTSI2SD64rr, Convert__Reg1_2__Reg1_1, { MCK_cvtsi2sdq, MCK_GR64, MCK_FR32 } },
    { X86::CVTSI2SD64rm, Convert__Reg1_2__Mem5_1, { MCK_cvtsi2sdq, MCK_Mem, MCK_FR32 } },
    { X86::CVTSI2SSrr, Convert__Reg1_2__Reg1_1, { MCK_cvtsi2ss, MCK_GR32, MCK_FR32 } },
    { X86::CVTSI2SSrm, Convert__Reg1_2__Mem5_1, { MCK_cvtsi2ss, MCK_Mem, MCK_FR32 } },
    { X86::CVTSI2SS64rr, Convert__Reg1_2__Reg1_1, { MCK_cvtsi2ssq, MCK_GR64, MCK_FR32 } },
    { X86::CVTSI2SS64rm, Convert__Reg1_2__Mem5_1, { MCK_cvtsi2ssq, MCK_Mem, MCK_FR32 } },
    { X86::CVTSS2SDrr, Convert__Reg1_2__Reg1_1, { MCK_cvtss2sd, MCK_FR32, MCK_FR32 } },
    { X86::CVTSS2SDrm, Convert__Reg1_2__Mem5_1, { MCK_cvtss2sd, MCK_Mem, MCK_FR32 } },
    { X86::CVTSS2SIrr, Convert__Reg1_2__Reg1_1, { MCK_cvtss2sil, MCK_FR32, MCK_GR32 } },
    { X86::CVTSS2SIrm, Convert__Reg1_2__Mem5_1, { MCK_cvtss2sil, MCK_Mem, MCK_GR32 } },
    { X86::CVTSS2SI64rr, Convert__Reg1_2__Reg1_1, { MCK_cvtss2siq, MCK_FR32, MCK_GR64 } },
    { X86::CVTSS2SI64rm, Convert__Reg1_2__Mem5_1, { MCK_cvtss2siq, MCK_Mem, MCK_GR64 } },
    { X86::MMX_CVTTPD2PIrr, Convert__Reg1_2__Reg1_1, { MCK_cvttpd2pi, MCK_FR32, MCK_VR64 } },
    { X86::MMX_CVTTPD2PIrm, Convert__Reg1_2__Mem5_1, { MCK_cvttpd2pi, MCK_Mem, MCK_VR64 } },
    { X86::CVTTPS2DQrr, Convert__Reg1_2__Reg1_1, { MCK_cvttps2dq, MCK_FR32, MCK_FR32 } },
    { X86::CVTTPS2DQrm, Convert__Reg1_2__Mem5_1, { MCK_cvttps2dq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_CVTTPS2PIrr, Convert__Reg1_2__Reg1_1, { MCK_cvttps2pi, MCK_FR32, MCK_VR64 } },
    { X86::MMX_CVTTPS2PIrm, Convert__Reg1_2__Mem5_1, { MCK_cvttps2pi, MCK_Mem, MCK_VR64 } },
    { X86::CVTTSD2SIrr, Convert__Reg1_2__Reg1_1, { MCK_cvttsd2si, MCK_FR32, MCK_GR32 } },
    { X86::CVTTSD2SIrm, Convert__Reg1_2__Mem5_1, { MCK_cvttsd2si, MCK_Mem, MCK_GR32 } },
    { X86::CVTTSD2SI64rr, Convert__Reg1_2__Reg1_1, { MCK_cvttsd2siq, MCK_FR32, MCK_GR64 } },
    { X86::CVTTSD2SI64rm, Convert__Reg1_2__Mem5_1, { MCK_cvttsd2siq, MCK_Mem, MCK_GR64 } },
    { X86::CVTTSS2SIrr, Convert__Reg1_2__Reg1_1, { MCK_cvttss2si, MCK_FR32, MCK_GR32 } },
    { X86::CVTTSS2SIrm, Convert__Reg1_2__Mem5_1, { MCK_cvttss2si, MCK_Mem, MCK_GR32 } },
    { X86::CVTTSS2SI64rr, Convert__Reg1_2__Reg1_1, { MCK_cvttss2siq, MCK_FR32, MCK_GR64 } },
    { X86::CVTTSS2SI64rm, Convert__Reg1_2__Mem5_1, { MCK_cvttss2siq, MCK_Mem, MCK_GR64 } },
    { X86::DIVPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_divpd, MCK_FR32, MCK_FR32 } },
    { X86::DIVPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_divpd, MCK_Mem, MCK_FR32 } },
    { X86::DIVPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_divps, MCK_FR32, MCK_FR32 } },
    { X86::DIVPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_divps, MCK_Mem, MCK_FR32 } },
    { X86::DIVSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_divsd, MCK_FR32, MCK_FR32 } },
    { X86::DIVSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_divsd, MCK_Mem, MCK_FR32 } },
    { X86::DIVSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_divss, MCK_FR32, MCK_FR32 } },
    { X86::DIVSSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_divss, MCK_Mem, MCK_FR32 } },
    { X86::ENTER, Convert__Imm1_1__Imm1_2, { MCK_enter, MCK_Imm, MCK_Imm } },
    { X86::ADD_FrST0, Convert__Reg1_2, { MCK_fadd, MCK_ST0, MCK_RST } },
    { X86::CMOVB_F, Convert__Reg1_1, { MCK_fcmovb, MCK_RST, MCK_ST0 } },
    { X86::CMOVBE_F, Convert__Reg1_1, { MCK_fcmovbe, MCK_RST, MCK_ST0 } },
    { X86::CMOVE_F, Convert__Reg1_1, { MCK_fcmove, MCK_RST, MCK_ST0 } },
    { X86::CMOVNB_F, Convert__Reg1_1, { MCK_fcmovnb, MCK_RST, MCK_ST0 } },
    { X86::CMOVNBE_F, Convert__Reg1_1, { MCK_fcmovnbe, MCK_RST, MCK_ST0 } },
    { X86::CMOVNE_F, Convert__Reg1_1, { MCK_fcmovne, MCK_RST, MCK_ST0 } },
    { X86::CMOVNP_F, Convert__Reg1_1, { MCK_fcmovnu, MCK_RST, MCK_ST0 } },
    { X86::CMOVP_F, Convert__Reg1_1, { MCK_fcmovu, MCK_RST, MCK_ST0 } },
    { X86::COM_FIr, Convert__Reg1_1, { MCK_fcomi, MCK_RST, MCK_ST0 } },
    { X86::COM_FIPr, Convert__Reg1_1, { MCK_fcomip, MCK_RST, MCK_ST0 } },
    { X86::DIVR_FrST0, Convert__Reg1_2, { MCK_fdiv, MCK_ST0, MCK_RST } },
    { X86::DIV_FrST0, Convert__Reg1_2, { MCK_fdivr, MCK_ST0, MCK_RST } },
    { X86::MUL_FrST0, Convert__Reg1_2, { MCK_fmul, MCK_ST0, MCK_RST } },
    { X86::SUBR_FrST0, Convert__Reg1_2, { MCK_fsub, MCK_ST0, MCK_RST } },
    { X86::SUB_FrST0, Convert__Reg1_2, { MCK_fsubr, MCK_ST0, MCK_RST } },
    { X86::UCOM_FIr, Convert__Reg1_1, { MCK_fucomi, MCK_RST, MCK_ST0 } },
    { X86::UCOM_FIPr, Convert__Reg1_1, { MCK_fucomip, MCK_RST, MCK_ST0 } },
    { X86::HADDPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_haddpd, MCK_FR32, MCK_FR32 } },
    { X86::HADDPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_haddpd, MCK_Mem, MCK_FR32 } },
    { X86::HADDPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_haddps, MCK_FR32, MCK_FR32 } },
    { X86::HADDPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_haddps, MCK_Mem, MCK_FR32 } },
    { X86::HSUBPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_hsubpd, MCK_FR32, MCK_FR32 } },
    { X86::HSUBPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_hsubpd, MCK_Mem, MCK_FR32 } },
    { X86::HSUBPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_hsubps, MCK_FR32, MCK_FR32 } },
    { X86::HSUBPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_hsubps, MCK_Mem, MCK_FR32 } },
    { X86::IMUL32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_imull, MCK_GR32, MCK_GR32 } },
    { X86::IMUL32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_imull, MCK_Mem, MCK_GR32 } },
    { X86::IMUL64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_imulq, MCK_GR64, MCK_GR64 } },
    { X86::IMUL64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_imulq, MCK_Mem, MCK_GR64 } },
    { X86::IMUL16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_imulw, MCK_GR16, MCK_GR16 } },
    { X86::IMUL16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_imulw, MCK_Mem, MCK_GR16 } },
    { X86::IN8rr, Convert, { MCK_inb, MCK_DX, MCK_AL } },
    { X86::IN8ri, Convert__ImmSExt81_1, { MCK_inb, MCK_ImmSExt8, MCK_AL } },
    { X86::IN32rr, Convert, { MCK_inl, MCK_DX, MCK_EAX } },
    { X86::IN32ri, Convert__ImmSExt81_1, { MCK_inl, MCK_ImmSExt8, MCK_EAX } },
    { X86::IN16rr, Convert, { MCK_inw, MCK_DX, MCK_AX } },
    { X86::IN16ri, Convert__ImmSExt81_1, { MCK_inw, MCK_ImmSExt8, MCK_AX } },
    { X86::TAILJMPm, Convert__Mem5_2, { MCK_jmp, MCK__STAR_, MCK_Mem } },
    { X86::JMP32r, Convert__Reg1_2, { MCK_jmpl, MCK__STAR_, MCK_GR32 } },
    { X86::TAILJMPr, Convert__Reg1_2, { MCK_jmpl, MCK__STAR_, MCK_GR32 } },
    { X86::JMP32m, Convert__Mem5_2, { MCK_jmpl, MCK__STAR_, MCK_Mem } },
    { X86::JMP64r, Convert__Reg1_2, { MCK_jmpq, MCK__STAR_, MCK_GR64 } },
    { X86::TAILJMPr64, Convert__Reg1_2, { MCK_jmpq, MCK__STAR_, MCK_GR64 } },
    { X86::JMP64m, Convert__Mem5_2, { MCK_jmpq, MCK__STAR_, MCK_Mem } },
    { X86::LAR32rr, Convert__Reg1_2__Reg1_1, { MCK_larl, MCK_GR32, MCK_GR32 } },
    { X86::LAR32rm, Convert__Reg1_2__Mem5_1, { MCK_larl, MCK_Mem, MCK_GR32 } },
    { X86::LAR64rr, Convert__Reg1_2__Reg1_1, { MCK_larq, MCK_GR32, MCK_GR64 } },
    { X86::LAR64rm, Convert__Reg1_2__Mem5_1, { MCK_larq, MCK_Mem, MCK_GR64 } },
    { X86::LAR16rr, Convert__Reg1_2__Reg1_1, { MCK_larw, MCK_GR16, MCK_GR16 } },
    { X86::LAR16rm, Convert__Reg1_2__Mem5_1, { MCK_larw, MCK_Mem, MCK_GR16 } },
    { X86::FARCALL32m, Convert__Mem5_2, { MCK_lcalll, MCK__STAR_, MCK_Mem } },
    { X86::FARCALL32i, Convert__Imm1_1__Imm1_2, { MCK_lcalll, MCK_Imm, MCK_Imm } },
    { X86::FARCALL64, Convert__Mem5_2, { MCK_lcallq, MCK__STAR_, MCK_Mem } },
    { X86::FARCALL16m, Convert__Mem5_2, { MCK_lcallw, MCK__STAR_, MCK_Mem } },
    { X86::FARCALL16i, Convert__Imm1_1__Imm1_2, { MCK_lcallw, MCK_Imm, MCK_Imm } },
    { X86::LDDQUrm, Convert__Reg1_2__Mem5_1, { MCK_lddqu, MCK_Mem, MCK_FR32 } },
    { X86::LDS32rm, Convert__Reg1_2__Mem5_1, { MCK_ldsl, MCK_Mem, MCK_GR32 } },
    { X86::LDS16rm, Convert__Reg1_2__Mem5_1, { MCK_ldsw, MCK_Mem, MCK_GR16 } },
    { X86::LEA32r, Convert__Reg1_2__NoSegMem4_1, { MCK_leal, MCK_NoSegMem, MCK_GR32 } },
    { X86::LEA64_32r, Convert__Reg1_2__Mem4_1, { MCK_leal, MCK_Mem, MCK_GR32 } },
    { X86::LEA64r, Convert__Reg1_2__Mem4_1, { MCK_leaq, MCK_Mem, MCK_GR64 } },
    { X86::LEA16r, Convert__Reg1_2__NoSegMem4_1, { MCK_leaw, MCK_NoSegMem, MCK_GR16 } },
    { X86::LES32rm, Convert__Reg1_2__Mem5_1, { MCK_lesl, MCK_Mem, MCK_GR32 } },
    { X86::LES16rm, Convert__Reg1_2__Mem5_1, { MCK_lesw, MCK_Mem, MCK_GR16 } },
    { X86::LFS32rm, Convert__Reg1_2__Mem5_1, { MCK_lfsl, MCK_Mem, MCK_GR32 } },
    { X86::LFS64rm, Convert__Reg1_2__Mem5_1, { MCK_lfsq, MCK_Mem, MCK_GR64 } },
    { X86::LFS16rm, Convert__Reg1_2__Mem5_1, { MCK_lfsw, MCK_Mem, MCK_GR16 } },
    { X86::LGS32rm, Convert__Reg1_2__Mem5_1, { MCK_lgsl, MCK_Mem, MCK_GR32 } },
    { X86::LGS64rm, Convert__Reg1_2__Mem5_1, { MCK_lgsq, MCK_Mem, MCK_GR64 } },
    { X86::LGS16rm, Convert__Reg1_2__Mem5_1, { MCK_lgsw, MCK_Mem, MCK_GR16 } },
    { X86::FARJMP32m, Convert__Mem5_2, { MCK_ljmpl, MCK__STAR_, MCK_Mem } },
    { X86::FARJMP32i, Convert__Imm1_1__Imm1_2, { MCK_ljmpl, MCK_Imm, MCK_Imm } },
    { X86::FARJMP64, Convert__Mem5_2, { MCK_ljmpq, MCK__STAR_, MCK_Mem } },
    { X86::FARJMP16m, Convert__Mem5_2, { MCK_ljmpw, MCK__STAR_, MCK_Mem } },
    { X86::FARJMP16i, Convert__Imm1_1__Imm1_2, { MCK_ljmpw, MCK_Imm, MCK_Imm } },
    { X86::LSL32rr, Convert__Reg1_2__Reg1_1, { MCK_lsll, MCK_GR32, MCK_GR32 } },
    { X86::LSL32rm, Convert__Reg1_2__Mem5_1, { MCK_lsll, MCK_Mem, MCK_GR32 } },
    { X86::LSL64rr, Convert__Reg1_2__Reg1_1, { MCK_lslq, MCK_GR64, MCK_GR64 } },
    { X86::LSL64rm, Convert__Reg1_2__Mem5_1, { MCK_lslq, MCK_Mem, MCK_GR64 } },
    { X86::LSL16rr, Convert__Reg1_2__Reg1_1, { MCK_lslw, MCK_GR16, MCK_GR16 } },
    { X86::LSL16rm, Convert__Reg1_2__Mem5_1, { MCK_lslw, MCK_Mem, MCK_GR16 } },
    { X86::LSS32rm, Convert__Reg1_2__Mem5_1, { MCK_lssl, MCK_Mem, MCK_GR32 } },
    { X86::LSS64rm, Convert__Reg1_2__Mem5_1, { MCK_lssq, MCK_Mem, MCK_GR64 } },
    { X86::LSS16rm, Convert__Reg1_2__Mem5_1, { MCK_lssw, MCK_Mem, MCK_GR16 } },
    { X86::MASKMOVDQU, Convert__Reg1_2__Reg1_1, { MCK_maskmovdqu, MCK_FR32, MCK_FR32 } },
    { X86::MASKMOVDQU64, Convert__Reg1_2__Reg1_1, { MCK_maskmovdqu, MCK_FR32, MCK_FR32 } },
    { X86::MMX_MASKMOVQ, Convert__Reg1_2__Reg1_1, { MCK_maskmovq, MCK_VR64, MCK_VR64 } },
    { X86::MMX_MASKMOVQ64, Convert__Reg1_2__Reg1_1, { MCK_maskmovq, MCK_VR64, MCK_VR64 } },
    { X86::MAXPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_maxpd, MCK_FR32, MCK_FR32 } },
    { X86::MAXPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_maxpd, MCK_Mem, MCK_FR32 } },
    { X86::MAXPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_maxps, MCK_FR32, MCK_FR32 } },
    { X86::MAXPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_maxps, MCK_Mem, MCK_FR32 } },
    { X86::MAXSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_maxsd, MCK_FR32, MCK_FR32 } },
    { X86::MAXSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_maxsd, MCK_Mem, MCK_FR32 } },
    { X86::MAXSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_maxss, MCK_FR32, MCK_FR32 } },
    { X86::MAXSSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_maxss, MCK_Mem, MCK_FR32 } },
    { X86::MINPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_minpd, MCK_FR32, MCK_FR32 } },
    { X86::MINPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_minpd, MCK_Mem, MCK_FR32 } },
    { X86::MINPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_minps, MCK_FR32, MCK_FR32 } },
    { X86::MINPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_minps, MCK_Mem, MCK_FR32 } },
    { X86::MINSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_minsd, MCK_FR32, MCK_FR32 } },
    { X86::MINSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_minsd, MCK_Mem, MCK_FR32 } },
    { X86::MINSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_minss, MCK_FR32, MCK_FR32 } },
    { X86::MINSSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_minss, MCK_Mem, MCK_FR32 } },
    { X86::MOV64ri, Convert__Reg1_2__Imm1_1, { MCK_movabsq, MCK_Imm, MCK_GR64 } },
    { X86::FsMOVAPDrr, Convert__Reg1_2__Reg1_1, { MCK_movapd, MCK_FR32, MCK_FR32 } },
    { X86::MOVAPDrr, Convert__Reg1_2__Reg1_1, { MCK_movapd, MCK_FR32, MCK_FR32 } },
    { X86::MOVAPDmr, Convert__Mem5_2__Reg1_1, { MCK_movapd, MCK_FR32, MCK_Mem } },
    { X86::FsMOVAPDrm, Convert__Reg1_2__Mem5_1, { MCK_movapd, MCK_Mem, MCK_FR32 } },
    { X86::MOVAPDrm, Convert__Reg1_2__Mem5_1, { MCK_movapd, MCK_Mem, MCK_FR32 } },
    { X86::FsMOVAPSrr, Convert__Reg1_2__Reg1_1, { MCK_movaps, MCK_FR32, MCK_FR32 } },
    { X86::MOVAPSrr, Convert__Reg1_2__Reg1_1, { MCK_movaps, MCK_FR32, MCK_FR32 } },
    { X86::MOVAPSmr, Convert__Mem5_2__Reg1_1, { MCK_movaps, MCK_FR32, MCK_Mem } },
    { X86::FsMOVAPSrm, Convert__Reg1_2__Mem5_1, { MCK_movaps, MCK_Mem, MCK_FR32 } },
    { X86::MOVAPSrm, Convert__Reg1_2__Mem5_1, { MCK_movaps, MCK_Mem, MCK_FR32 } },
    { X86::MOV8ao8, Convert__AbsMem1_2, { MCK_movb, MCK_AL, MCK_AbsMem } },
    { X86::MOV8rr_NOREX, Convert__Reg1_2__Reg1_1, { MCK_movb, MCK_GR8_NOREX, MCK_GR8_NOREX } },
    { X86::MOV8mr_NOREX, Convert__Mem5_2__Reg1_1, { MCK_movb, MCK_GR8_NOREX, MCK_Mem } },
    { X86::MOV8rr, Convert__Reg1_2__Reg1_1, { MCK_movb, MCK_GR8, MCK_GR8 } },
    { X86::MOV8rr_REV, Convert__Reg1_2__Reg1_1, { MCK_movb, MCK_GR8, MCK_GR8 } },
    { X86::MOV8mr, Convert__Mem5_2__Reg1_1, { MCK_movb, MCK_GR8, MCK_Mem } },
    { X86::MOV8ri, Convert__Reg1_2__Imm1_1, { MCK_movb, MCK_Imm, MCK_GR8 } },
    { X86::MOV8mi, Convert__Mem5_2__Imm1_1, { MCK_movb, MCK_Imm, MCK_Mem } },
    { X86::MOV8o8a, Convert__AbsMem1_1, { MCK_movb, MCK_AbsMem, MCK_AL } },
    { X86::MOV8rm_NOREX, Convert__Reg1_2__Mem5_1, { MCK_movb, MCK_Mem, MCK_GR8_NOREX } },
    { X86::MOV8rm, Convert__Reg1_2__Mem5_1, { MCK_movb, MCK_Mem, MCK_GR8 } },
    { X86::MMX_MOVD64rr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR32, MCK_VR64 } },
    { X86::MMX_MOVZDI2PDIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR32, MCK_VR64 } },
    { X86::MOVDI2PDIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR32, MCK_FR32 } },
    { X86::MOVDI2SSrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR32, MCK_FR32 } },
    { X86::MOVZDI2PDIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR32, MCK_FR32 } },
    { X86::MMX_MOVD64rrv164, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR64, MCK_VR64 } },
    { X86::MMX_MOVD64to64rr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR64, MCK_VR64 } },
    { X86::MOV64toPQIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR64, MCK_FR32 } },
    { X86::MOV64toSDrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR64, MCK_FR32 } },
    { X86::MOVZQI2PQIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_GR64, MCK_FR32 } },
    { X86::MMX_MOVD64grr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_VR64, MCK_GR32 } },
    { X86::MMX_MOVD64from64rr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_VR64, MCK_GR64 } },
    { X86::MMX_MOVD64mr, Convert__Mem5_2__Reg1_1, { MCK_movd, MCK_VR64, MCK_Mem } },
    { X86::MOVPDI2DIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_FR32, MCK_GR32 } },
    { X86::MOVSS2DIrr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_FR32, MCK_GR32 } },
    { X86::MOVPQIto64rr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_FR32, MCK_GR64 } },
    { X86::MOVSDto64rr, Convert__Reg1_2__Reg1_1, { MCK_movd, MCK_FR32, MCK_GR64 } },
    { X86::MOVPDI2DImr, Convert__Mem5_2__Reg1_1, { MCK_movd, MCK_FR32, MCK_Mem } },
    { X86::MOVSS2DImr, Convert__Mem5_2__Reg1_1, { MCK_movd, MCK_FR32, MCK_Mem } },
    { X86::MMX_MOVD64rm, Convert__Reg1_2__Mem5_1, { MCK_movd, MCK_Mem, MCK_VR64 } },
    { X86::MMX_MOVZDI2PDIrm, Convert__Reg1_2__Mem5_1, { MCK_movd, MCK_Mem, MCK_VR64 } },
    { X86::MOVDI2PDIrm, Convert__Reg1_2__Mem5_1, { MCK_movd, MCK_Mem, MCK_FR32 } },
    { X86::MOVDI2SSrm, Convert__Reg1_2__Mem5_1, { MCK_movd, MCK_Mem, MCK_FR32 } },
    { X86::MOVZDI2PDIrm, Convert__Reg1_2__Mem5_1, { MCK_movd, MCK_Mem, MCK_FR32 } },
    { X86::MOVDDUPrr, Convert__Reg1_2__Reg1_1, { MCK_movddup, MCK_FR32, MCK_FR32 } },
    { X86::MOVDDUPrm, Convert__Reg1_2__Mem5_1, { MCK_movddup, MCK_Mem, MCK_FR32 } },
    { X86::MMX_MOVDQ2Qrr, Convert__Reg1_2__Reg1_1, { MCK_movdq2q, MCK_FR32, MCK_VR64 } },
    { X86::MOVDQArr, Convert__Reg1_2__Reg1_1, { MCK_movdqa, MCK_FR32, MCK_FR32 } },
    { X86::MOVDQAmr, Convert__Mem5_2__Reg1_1, { MCK_movdqa, MCK_FR32, MCK_Mem } },
    { X86::MOVDQArm, Convert__Reg1_2__Mem5_1, { MCK_movdqa, MCK_Mem, MCK_FR32 } },
    { X86::MOVDQUmr, Convert__Mem5_2__Reg1_1, { MCK_movdqu, MCK_FR32, MCK_Mem } },
    { X86::MOVDQUrm, Convert__Reg1_2__Mem5_1, { MCK_movdqu, MCK_Mem, MCK_FR32 } },
    { X86::MOVHLPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_movhlps, MCK_FR32, MCK_FR32 } },
    { X86::MOVHPDmr, Convert__Mem5_2__Reg1_1, { MCK_movhpd, MCK_FR32, MCK_Mem } },
    { X86::MOVHPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_movhpd, MCK_Mem, MCK_FR32 } },
    { X86::MOVHPSmr, Convert__Mem5_2__Reg1_1, { MCK_movhps, MCK_FR32, MCK_Mem } },
    { X86::MOVHPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_movhps, MCK_Mem, MCK_FR32 } },
    { X86::MOV32ao32, Convert__AbsMem1_2, { MCK_movl, MCK_EAX, MCK_AbsMem } },
    { X86::MOV32rr, Convert__Reg1_2__Reg1_1, { MCK_movl, MCK_GR32, MCK_GR32 } },
    { X86::MOV32rr_REV, Convert__Reg1_2__Reg1_1, { MCK_movl, MCK_GR32, MCK_GR32 } },
    { X86::MOV32dr, Convert__Reg1_2__Reg1_1, { MCK_movl, MCK_GR32, MCK_DEBUG_REG } },
    { X86::MOV32mr, Convert__Mem5_2__Reg1_1, { MCK_movl, MCK_GR32, MCK_Mem } },
    { X86::MOV32rd, Convert__Reg1_2__Reg1_1, { MCK_movl, MCK_DEBUG_REG, MCK_GR32 } },
    { X86::MOV32ri, Convert__Reg1_2__Imm1_1, { MCK_movl, MCK_Imm, MCK_GR32 } },
    { X86::MOV32mi, Convert__Mem5_2__Imm1_1, { MCK_movl, MCK_Imm, MCK_Mem } },
    { X86::MOV32o32a, Convert__AbsMem1_1, { MCK_movl, MCK_AbsMem, MCK_EAX } },
    { X86::MOV32rm, Convert__Reg1_2__Mem5_1, { MCK_movl, MCK_Mem, MCK_GR32 } },
    { X86::MOVLHPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_movlhps, MCK_FR32, MCK_FR32 } },
    { X86::MOVLPDmr, Convert__Mem5_2__Reg1_1, { MCK_movlpd, MCK_FR32, MCK_Mem } },
    { X86::MOVLPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_movlpd, MCK_Mem, MCK_FR32 } },
    { X86::MOVLPSmr, Convert__Mem5_2__Reg1_1, { MCK_movlps, MCK_FR32, MCK_Mem } },
    { X86::MOVLPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_movlps, MCK_Mem, MCK_FR32 } },
    { X86::MOVMSKPDrr, Convert__Reg1_2__Reg1_1, { MCK_movmskpd, MCK_FR32, MCK_GR32 } },
    { X86::MOVMSKPSrr, Convert__Reg1_2__Reg1_1, { MCK_movmskps, MCK_FR32, MCK_GR32 } },
    { X86::MOVNTDQ_64mr, Convert__Mem5_2__Reg1_1, { MCK_movntdq, MCK_FR32, MCK_Mem } },
    { X86::MOVNTDQmr, Convert__Mem5_2__Reg1_1, { MCK_movntdq, MCK_FR32, MCK_Mem } },
    { X86::MOVNTDQArm, Convert__Reg1_2__Mem5_1, { MCK_movntdqa, MCK_Mem, MCK_FR32 } },
    { X86::MOVNTImr, Convert__Mem5_2__Reg1_1, { MCK_movnti, MCK_GR32, MCK_Mem } },
    { X86::MOVNTI_64mr, Convert__Mem5_2__Reg1_1, { MCK_movnti, MCK_GR64, MCK_Mem } },
    { X86::MOVNTPDmr, Convert__Mem5_2__Reg1_1, { MCK_movntpd, MCK_FR32, MCK_Mem } },
    { X86::MOVNTPSmr, Convert__Mem5_2__Reg1_1, { MCK_movntps, MCK_FR32, MCK_Mem } },
    { X86::MMX_MOVNTQmr, Convert__Mem5_2__Reg1_1, { MCK_movntq, MCK_VR64, MCK_Mem } },
    { X86::MOV32cr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_GR32, MCK_CONTROL_REG_32 } },
    { X86::MOV64ao64, Convert__AbsMem1_2, { MCK_movq, MCK_RAX, MCK_AbsMem } },
    { X86::MOV64ao8, Convert__AbsMem1_2, { MCK_movq, MCK_RAX, MCK_AbsMem } },
    { X86::MOV64rr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_GR64, MCK_GR64 } },
    { X86::MOV64rr_REV, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_GR64, MCK_GR64 } },
    { X86::MOV64sr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_GR64, MCK_SEGMENT_REG } },
    { X86::MOV64dr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_GR64, MCK_DEBUG_REG } },
    { X86::MOV64cr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_GR64, MCK_CONTROL_REG_64 } },
    { X86::MOV64mr, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_GR64, MCK_Mem } },
    { X86::MMX_MOVQ64rr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_VR64, MCK_VR64 } },
    { X86::MMX_MOVQ64gmr, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_VR64, MCK_Mem } },
    { X86::MMX_MOVQ64mr, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_VR64, MCK_Mem } },
    { X86::MOVQxrxr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_FR32, MCK_FR32 } },
    { X86::MOVZPQILo2PQIrr, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_FR32, MCK_FR32 } },
    { X86::MOVLQ128mr, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_FR32, MCK_Mem } },
    { X86::MOVPQI2QImr, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_FR32, MCK_Mem } },
    { X86::MOVSDto64mr, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_FR32, MCK_Mem } },
    { X86::MOV64rs, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_SEGMENT_REG, MCK_GR64 } },
    { X86::MOV64ms, Convert__Mem5_2__Reg1_1, { MCK_movq, MCK_SEGMENT_REG, MCK_Mem } },
    { X86::MOV64rd, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_DEBUG_REG, MCK_GR64 } },
    { X86::MOV32rc, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_CONTROL_REG_32, MCK_GR32 } },
    { X86::MOV64rc, Convert__Reg1_2__Reg1_1, { MCK_movq, MCK_CONTROL_REG_64, MCK_GR64 } },
    { X86::MOV64ri32, Convert__Reg1_2__Imm1_1, { MCK_movq, MCK_Imm, MCK_GR64 } },
    { X86::MOV64mi32, Convert__Mem5_2__Imm1_1, { MCK_movq, MCK_Imm, MCK_Mem } },
    { X86::MOV64o64a, Convert__AbsMem1_1, { MCK_movq, MCK_AbsMem, MCK_RAX } },
    { X86::MOV64o8a, Convert__AbsMem1_1, { MCK_movq, MCK_AbsMem, MCK_RAX } },
    { X86::MOV64rm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_GR64 } },
    { X86::MMX_MOVQ64rm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_VR64 } },
    { X86::MOV64toSDrm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_FR32 } },
    { X86::MOVQI2PQIrm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_FR32 } },
    { X86::MOVZPQILo2PQIrm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_FR32 } },
    { X86::MOVZQI2PQIrm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_FR32 } },
    { X86::MOV64sm, Convert__Reg1_2__Mem5_1, { MCK_movq, MCK_Mem, MCK_SEGMENT_REG } },
    { X86::MMX_MOVQ2DQrr, Convert__Reg1_2__Reg1_1, { MCK_movq2dq, MCK_VR64, MCK_FR32 } },
    { X86::MMX_MOVQ2FR64rr, Convert__Reg1_2__Reg1_1, { MCK_movq2dq, MCK_VR64, MCK_FR32 } },
    { X86::MOVSX32rr8, Convert__Reg1_2__Reg1_1, { MCK_movsbl, MCK_GR8, MCK_GR32 } },
    { X86::MOVSX32rm8, Convert__Reg1_2__Mem5_1, { MCK_movsbl, MCK_Mem, MCK_GR32 } },
    { X86::MOVSX64rr8, Convert__Reg1_2__Reg1_1, { MCK_movsbq, MCK_GR8, MCK_GR64 } },
    { X86::MOVSX64rm8, Convert__Reg1_2__Mem5_1, { MCK_movsbq, MCK_Mem, MCK_GR64 } },
    { X86::MOVSX16rr8W, Convert__Reg1_2__Reg1_1, { MCK_movsbw, MCK_GR8, MCK_GR16 } },
    { X86::MOVSX16rm8W, Convert__Reg1_2__Mem5_1, { MCK_movsbw, MCK_Mem, MCK_GR16 } },
    { X86::MOVSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_movsd, MCK_FR32, MCK_FR32 } },
    { X86::MOVSDmr, Convert__Mem5_2__Reg1_1, { MCK_movsd, MCK_FR32, MCK_Mem } },
    { X86::MOVSDrm, Convert__Reg1_2__Mem5_1, { MCK_movsd, MCK_Mem, MCK_FR32 } },
    { X86::MOVSHDUPrr, Convert__Reg1_2__Reg1_1, { MCK_movshdup, MCK_FR32, MCK_FR32 } },
    { X86::MOVSHDUPrm, Convert__Reg1_2__Mem5_1, { MCK_movshdup, MCK_Mem, MCK_FR32 } },
    { X86::MOVSLDUPrr, Convert__Reg1_2__Reg1_1, { MCK_movsldup, MCK_FR32, MCK_FR32 } },
    { X86::MOVSLDUPrm, Convert__Reg1_2__Mem5_1, { MCK_movsldup, MCK_Mem, MCK_FR32 } },
    { X86::MOVSX64rr32, Convert__Reg1_2__Reg1_1, { MCK_movslq, MCK_GR32, MCK_GR64 } },
    { X86::MOVSX64rm32, Convert__Reg1_2__Mem5_1, { MCK_movslq, MCK_Mem, MCK_GR64 } },
    { X86::MOVSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_movss, MCK_FR32, MCK_FR32 } },
    { X86::MOVSSmr, Convert__Mem5_2__Reg1_1, { MCK_movss, MCK_FR32, MCK_Mem } },
    { X86::MOVSSrm, Convert__Reg1_2__Mem5_1, { MCK_movss, MCK_Mem, MCK_FR32 } },
    { X86::MOVSX32rr16, Convert__Reg1_2__Reg1_1, { MCK_movswl, MCK_GR16, MCK_GR32 } },
    { X86::MOVSX32rm16, Convert__Reg1_2__Mem5_1, { MCK_movswl, MCK_Mem, MCK_GR32 } },
    { X86::MOVSX64rr16, Convert__Reg1_2__Reg1_1, { MCK_movswq, MCK_GR16, MCK_GR64 } },
    { X86::MOVSX64rm16, Convert__Reg1_2__Mem5_1, { MCK_movswq, MCK_Mem, MCK_GR64 } },
    { X86::MOVUPDrr, Convert__Reg1_2__Reg1_1, { MCK_movupd, MCK_FR32, MCK_FR32 } },
    { X86::MOVUPDmr, Convert__Mem5_2__Reg1_1, { MCK_movupd, MCK_FR32, MCK_Mem } },
    { X86::MOVUPDrm, Convert__Reg1_2__Mem5_1, { MCK_movupd, MCK_Mem, MCK_FR32 } },
    { X86::MOVUPSrr, Convert__Reg1_2__Reg1_1, { MCK_movups, MCK_FR32, MCK_FR32 } },
    { X86::MOVUPSmr, Convert__Mem5_2__Reg1_1, { MCK_movups, MCK_FR32, MCK_Mem } },
    { X86::MOVUPSrm, Convert__Reg1_2__Mem5_1, { MCK_movups, MCK_Mem, MCK_FR32 } },
    { X86::MOV16ao16, Convert__AbsMem1_2, { MCK_movw, MCK_AX, MCK_AbsMem } },
    { X86::MOV16rr, Convert__Reg1_2__Reg1_1, { MCK_movw, MCK_GR16, MCK_GR16 } },
    { X86::MOV16rr_REV, Convert__Reg1_2__Reg1_1, { MCK_movw, MCK_GR16, MCK_GR16 } },
    { X86::MOV16sr, Convert__Reg1_2__Reg1_1, { MCK_movw, MCK_GR16, MCK_SEGMENT_REG } },
    { X86::MOV16mr, Convert__Mem5_2__Reg1_1, { MCK_movw, MCK_GR16, MCK_Mem } },
    { X86::MOV16rs, Convert__Reg1_2__Reg1_1, { MCK_movw, MCK_SEGMENT_REG, MCK_GR16 } },
    { X86::MOV16ms, Convert__Mem5_2__Reg1_1, { MCK_movw, MCK_SEGMENT_REG, MCK_Mem } },
    { X86::MOV16ri, Convert__Reg1_2__Imm1_1, { MCK_movw, MCK_Imm, MCK_GR16 } },
    { X86::MOV16mi, Convert__Mem5_2__Imm1_1, { MCK_movw, MCK_Imm, MCK_Mem } },
    { X86::MOV16o16a, Convert__AbsMem1_1, { MCK_movw, MCK_AbsMem, MCK_AX } },
    { X86::MOV16rm, Convert__Reg1_2__Mem5_1, { MCK_movw, MCK_Mem, MCK_GR16 } },
    { X86::MOV16sm, Convert__Reg1_2__Mem5_1, { MCK_movw, MCK_Mem, MCK_SEGMENT_REG } },
    { X86::MOVZX32_NOREXrr8, Convert__Reg1_2__Reg1_1, { MCK_movzbl, MCK_GR8, MCK_GR32_NOREX } },
    { X86::MOVZX32rr8, Convert__Reg1_2__Reg1_1, { MCK_movzbl, MCK_GR8, MCK_GR32 } },
    { X86::MOVZX32_NOREXrm8, Convert__Reg1_2__Mem5_1, { MCK_movzbl, MCK_Mem, MCK_GR32_NOREX } },
    { X86::MOVZX32rm8, Convert__Reg1_2__Mem5_1, { MCK_movzbl, MCK_Mem, MCK_GR32 } },
    { X86::MOVZX64rr8_Q, Convert__Reg1_2__Reg1_1, { MCK_movzbq, MCK_GR8, MCK_GR64 } },
    { X86::MOVZX64rm8_Q, Convert__Reg1_2__Mem5_1, { MCK_movzbq, MCK_Mem, MCK_GR64 } },
    { X86::MOVZX16rr8W, Convert__Reg1_2__Reg1_1, { MCK_movzbw, MCK_GR8, MCK_GR16 } },
    { X86::MOVZX16rm8W, Convert__Reg1_2__Mem5_1, { MCK_movzbw, MCK_Mem, MCK_GR16 } },
    { X86::MOVZX32rr16, Convert__Reg1_2__Reg1_1, { MCK_movzwl, MCK_GR16, MCK_GR32 } },
    { X86::MOVZX32rm16, Convert__Reg1_2__Mem5_1, { MCK_movzwl, MCK_Mem, MCK_GR32 } },
    { X86::MOVZX64rr16_Q, Convert__Reg1_2__Reg1_1, { MCK_movzwq, MCK_GR16, MCK_GR64 } },
    { X86::MOVZX64rm16_Q, Convert__Reg1_2__Mem5_1, { MCK_movzwq, MCK_Mem, MCK_GR64 } },
    { X86::MULPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_mulpd, MCK_FR32, MCK_FR32 } },
    { X86::MULPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_mulpd, MCK_Mem, MCK_FR32 } },
    { X86::MULPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_mulps, MCK_FR32, MCK_FR32 } },
    { X86::MULPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_mulps, MCK_Mem, MCK_FR32 } },
    { X86::MULSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_mulsd, MCK_FR32, MCK_FR32 } },
    { X86::MULSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_mulsd, MCK_Mem, MCK_FR32 } },
    { X86::MULSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_mulss, MCK_FR32, MCK_FR32 } },
    { X86::MULSSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_mulss, MCK_Mem, MCK_FR32 } },
    { X86::OR8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orb, MCK_GR8, MCK_GR8 } },
    { X86::OR8rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orb, MCK_GR8, MCK_GR8 } },
    { X86::OR8mr, Convert__Mem5_2__Reg1_1, { MCK_orb, MCK_GR8, MCK_Mem } },
    { X86::OR8i8, Convert__Imm1_1, { MCK_orb, MCK_Imm, MCK_AL } },
    { X86::OR8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_orb, MCK_Imm, MCK_GR8 } },
    { X86::OR8mi, Convert__Mem5_2__Imm1_1, { MCK_orb, MCK_Imm, MCK_Mem } },
    { X86::OR8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orb, MCK_Mem, MCK_GR8 } },
    { X86::OR32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orl, MCK_GR32, MCK_GR32 } },
    { X86::OR32rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orl, MCK_GR32, MCK_GR32 } },
    { X86::OR32mr, Convert__Mem5_2__Reg1_1, { MCK_orl, MCK_GR32, MCK_Mem } },
    { X86::OR32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_orl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::OR32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_orl, MCK_ImmSExt8, MCK_Mem } },
    { X86::OR32i32, Convert__Imm1_1, { MCK_orl, MCK_Imm, MCK_EAX } },
    { X86::OR32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_orl, MCK_Imm, MCK_GR32 } },
    { X86::OR32mi, Convert__Mem5_2__Imm1_1, { MCK_orl, MCK_Imm, MCK_Mem } },
    { X86::OR32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orl, MCK_Mem, MCK_GR32 } },
    { X86::FsORPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orpd, MCK_FR32, MCK_FR32 } },
    { X86::ORPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orpd, MCK_FR32, MCK_FR32 } },
    { X86::FsORPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orpd, MCK_Mem, MCK_FR32 } },
    { X86::ORPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orpd, MCK_Mem, MCK_FR32 } },
    { X86::FsORPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orps, MCK_FR32, MCK_FR32 } },
    { X86::ORPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orps, MCK_FR32, MCK_FR32 } },
    { X86::FsORPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orps, MCK_Mem, MCK_FR32 } },
    { X86::ORPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orps, MCK_Mem, MCK_FR32 } },
    { X86::OR64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orq, MCK_GR64, MCK_GR64 } },
    { X86::OR64rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orq, MCK_GR64, MCK_GR64 } },
    { X86::OR64mr, Convert__Mem5_2__Reg1_1, { MCK_orq, MCK_GR64, MCK_Mem } },
    { X86::OR64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_orq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::OR64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_orq, MCK_ImmSExt8, MCK_Mem } },
    { X86::OR64i32, Convert__Imm1_1, { MCK_orq, MCK_Imm, MCK_RAX } },
    { X86::OR64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_orq, MCK_Imm, MCK_GR64 } },
    { X86::OR64mi32, Convert__Mem5_2__Imm1_1, { MCK_orq, MCK_Imm, MCK_Mem } },
    { X86::OR64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orq, MCK_Mem, MCK_GR64 } },
    { X86::OR16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orw, MCK_GR16, MCK_GR16 } },
    { X86::OR16rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_orw, MCK_GR16, MCK_GR16 } },
    { X86::OR16mr, Convert__Mem5_2__Reg1_1, { MCK_orw, MCK_GR16, MCK_Mem } },
    { X86::OR16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_orw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::OR16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_orw, MCK_ImmSExt8, MCK_Mem } },
    { X86::OR16i16, Convert__Imm1_1, { MCK_orw, MCK_Imm, MCK_AX } },
    { X86::OR16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_orw, MCK_Imm, MCK_GR16 } },
    { X86::OR16mi, Convert__Mem5_2__Imm1_1, { MCK_orw, MCK_Imm, MCK_Mem } },
    { X86::OR16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_orw, MCK_Mem, MCK_GR16 } },
    { X86::OUT8rr, Convert, { MCK_outb, MCK_AL, MCK_DX } },
    { X86::OUT8ir, Convert__ImmSExt81_2, { MCK_outb, MCK_AL, MCK_ImmSExt8 } },
    { X86::OUT32rr, Convert, { MCK_outl, MCK_EAX, MCK_DX } },
    { X86::OUT32ir, Convert__ImmSExt81_2, { MCK_outl, MCK_EAX, MCK_ImmSExt8 } },
    { X86::OUT16rr, Convert, { MCK_outw, MCK_AX, MCK_DX } },
    { X86::OUT16ir, Convert__ImmSExt81_2, { MCK_outw, MCK_AX, MCK_ImmSExt8 } },
    { X86::PABSBrr64, Convert__Reg1_2__Reg1_1, { MCK_pabsb, MCK_VR64, MCK_VR64 } },
    { X86::PABSBrr128, Convert__Reg1_2__Reg1_1, { MCK_pabsb, MCK_FR32, MCK_FR32 } },
    { X86::PABSBrm64, Convert__Reg1_2__Mem5_1, { MCK_pabsb, MCK_Mem, MCK_VR64 } },
    { X86::PABSBrm128, Convert__Reg1_2__Mem5_1, { MCK_pabsb, MCK_Mem, MCK_FR32 } },
    { X86::PABSDrr64, Convert__Reg1_2__Reg1_1, { MCK_pabsd, MCK_VR64, MCK_VR64 } },
    { X86::PABSDrr128, Convert__Reg1_2__Reg1_1, { MCK_pabsd, MCK_FR32, MCK_FR32 } },
    { X86::PABSDrm64, Convert__Reg1_2__Mem5_1, { MCK_pabsd, MCK_Mem, MCK_VR64 } },
    { X86::PABSDrm128, Convert__Reg1_2__Mem5_1, { MCK_pabsd, MCK_Mem, MCK_FR32 } },
    { X86::PABSWrr64, Convert__Reg1_2__Reg1_1, { MCK_pabsw, MCK_VR64, MCK_VR64 } },
    { X86::PABSWrr128, Convert__Reg1_2__Reg1_1, { MCK_pabsw, MCK_FR32, MCK_FR32 } },
    { X86::PABSWrm64, Convert__Reg1_2__Mem5_1, { MCK_pabsw, MCK_Mem, MCK_VR64 } },
    { X86::PABSWrm128, Convert__Reg1_2__Mem5_1, { MCK_pabsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PACKSSDWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packssdw, MCK_VR64, MCK_VR64 } },
    { X86::PACKSSDWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packssdw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PACKSSDWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packssdw, MCK_Mem, MCK_VR64 } },
    { X86::PACKSSDWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packssdw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PACKSSWBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packsswb, MCK_VR64, MCK_VR64 } },
    { X86::PACKSSWBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packsswb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PACKSSWBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packsswb, MCK_Mem, MCK_VR64 } },
    { X86::PACKSSWBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packsswb, MCK_Mem, MCK_FR32 } },
    { X86::PACKUSDWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packusdw, MCK_FR32, MCK_FR32 } },
    { X86::PACKUSDWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packusdw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PACKUSWBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packuswb, MCK_VR64, MCK_VR64 } },
    { X86::PACKUSWBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_packuswb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PACKUSWBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packuswb, MCK_Mem, MCK_VR64 } },
    { X86::PACKUSWBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_packuswb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddb, MCK_VR64, MCK_VR64 } },
    { X86::PADDBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddb, MCK_Mem, MCK_VR64 } },
    { X86::PADDBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddd, MCK_VR64, MCK_VR64 } },
    { X86::PADDDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddd, MCK_Mem, MCK_VR64 } },
    { X86::PADDDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddq, MCK_VR64, MCK_VR64 } },
    { X86::PADDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddq, MCK_Mem, MCK_VR64 } },
    { X86::PADDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddsb, MCK_VR64, MCK_VR64 } },
    { X86::PADDSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddsb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddsb, MCK_Mem, MCK_VR64 } },
    { X86::PADDSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddsb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddsw, MCK_VR64, MCK_VR64 } },
    { X86::PADDSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddsw, MCK_Mem, MCK_VR64 } },
    { X86::PADDSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDUSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddusb, MCK_VR64, MCK_VR64 } },
    { X86::PADDUSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddusb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDUSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddusb, MCK_Mem, MCK_VR64 } },
    { X86::PADDUSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddusb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDUSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddusw, MCK_VR64, MCK_VR64 } },
    { X86::PADDUSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddusw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDUSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddusw, MCK_Mem, MCK_VR64 } },
    { X86::PADDUSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddusw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddw, MCK_VR64, MCK_VR64 } },
    { X86::PADDWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_paddw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddw, MCK_Mem, MCK_VR64 } },
    { X86::PADDWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_paddw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PANDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pand, MCK_VR64, MCK_VR64 } },
    { X86::PANDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pand, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PANDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pand, MCK_Mem, MCK_VR64 } },
    { X86::PANDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pand, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PANDNrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pandn, MCK_VR64, MCK_VR64 } },
    { X86::PANDNrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pandn, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PANDNrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pandn, MCK_Mem, MCK_VR64 } },
    { X86::PANDNrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pandn, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PAVGBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pavgb, MCK_VR64, MCK_VR64 } },
    { X86::PAVGBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pavgb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PAVGBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pavgb, MCK_Mem, MCK_VR64 } },
    { X86::PAVGBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pavgb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PAVGWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pavgw, MCK_VR64, MCK_VR64 } },
    { X86::PAVGWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pavgw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PAVGWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pavgw, MCK_Mem, MCK_VR64 } },
    { X86::PAVGWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pavgw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPEQBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqb, MCK_VR64, MCK_VR64 } },
    { X86::PCMPEQBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPEQBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqb, MCK_Mem, MCK_VR64 } },
    { X86::PCMPEQBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPEQDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqd, MCK_VR64, MCK_VR64 } },
    { X86::PCMPEQDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPEQDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqd, MCK_Mem, MCK_VR64 } },
    { X86::PCMPEQDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqd, MCK_Mem, MCK_FR32 } },
    { X86::PCMPEQQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqq, MCK_FR32, MCK_FR32 } },
    { X86::PCMPEQQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPEQWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqw, MCK_VR64, MCK_VR64 } },
    { X86::PCMPEQWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpeqw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPEQWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqw, MCK_Mem, MCK_VR64 } },
    { X86::PCMPEQWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpeqw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPGTBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtb, MCK_VR64, MCK_VR64 } },
    { X86::PCMPGTBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPGTBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtb, MCK_Mem, MCK_VR64 } },
    { X86::PCMPGTBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPGTDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtd, MCK_VR64, MCK_VR64 } },
    { X86::PCMPGTDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPGTDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtd, MCK_Mem, MCK_VR64 } },
    { X86::PCMPGTDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtd, MCK_Mem, MCK_FR32 } },
    { X86::PCMPGTQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtq, MCK_FR32, MCK_FR32 } },
    { X86::PCMPGTQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPGTWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtw, MCK_VR64, MCK_VR64 } },
    { X86::PCMPGTWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pcmpgtw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPGTWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtw, MCK_Mem, MCK_VR64 } },
    { X86::PCMPGTWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pcmpgtw, MCK_Mem, MCK_FR32 } },
    { X86::PHADDDrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phaddd, MCK_VR64, MCK_VR64 } },
    { X86::PHADDDrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phaddd, MCK_FR32, MCK_FR32 } },
    { X86::PHADDDrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phaddd, MCK_Mem, MCK_VR64 } },
    { X86::PHADDDrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phaddd, MCK_Mem, MCK_FR32 } },
    { X86::PHADDSWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phaddsw, MCK_VR64, MCK_VR64 } },
    { X86::PHADDSWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phaddsw, MCK_FR32, MCK_FR32 } },
    { X86::PHADDSWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phaddsw, MCK_Mem, MCK_VR64 } },
    { X86::PHADDSWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phaddsw, MCK_Mem, MCK_FR32 } },
    { X86::PHADDWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phaddw, MCK_VR64, MCK_VR64 } },
    { X86::PHADDWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phaddw, MCK_FR32, MCK_FR32 } },
    { X86::PHADDWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phaddw, MCK_Mem, MCK_VR64 } },
    { X86::PHADDWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phaddw, MCK_Mem, MCK_FR32 } },
    { X86::PHMINPOSUWrr128, Convert__Reg1_2__Reg1_1, { MCK_phminposuw, MCK_FR32, MCK_FR32 } },
    { X86::PHMINPOSUWrm128, Convert__Reg1_2__Mem5_1, { MCK_phminposuw, MCK_Mem, MCK_FR32 } },
    { X86::PHSUBDrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phsubd, MCK_VR64, MCK_VR64 } },
    { X86::PHSUBDrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phsubd, MCK_FR32, MCK_FR32 } },
    { X86::PHSUBDrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phsubd, MCK_Mem, MCK_VR64 } },
    { X86::PHSUBDrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phsubd, MCK_Mem, MCK_FR32 } },
    { X86::PHSUBSWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phsubsw, MCK_VR64, MCK_VR64 } },
    { X86::PHSUBSWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phsubsw, MCK_FR32, MCK_FR32 } },
    { X86::PHSUBSWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phsubsw, MCK_Mem, MCK_VR64 } },
    { X86::PHSUBSWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phsubsw, MCK_Mem, MCK_FR32 } },
    { X86::PHSUBWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phsubw, MCK_VR64, MCK_VR64 } },
    { X86::PHSUBWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_phsubw, MCK_FR32, MCK_FR32 } },
    { X86::PHSUBWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phsubw, MCK_Mem, MCK_VR64 } },
    { X86::PHSUBWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_phsubw, MCK_Mem, MCK_FR32 } },
    { X86::PMADDUBSWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaddubsw, MCK_VR64, MCK_VR64 } },
    { X86::PMADDUBSWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaddubsw, MCK_FR32, MCK_FR32 } },
    { X86::PMADDUBSWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaddubsw, MCK_Mem, MCK_VR64 } },
    { X86::PMADDUBSWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaddubsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMADDWDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaddwd, MCK_VR64, MCK_VR64 } },
    { X86::PMADDWDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaddwd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMADDWDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaddwd, MCK_Mem, MCK_VR64 } },
    { X86::PMADDWDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaddwd, MCK_Mem, MCK_FR32 } },
    { X86::PMAXSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxsb, MCK_FR32, MCK_FR32 } },
    { X86::PMAXSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxsb, MCK_Mem, MCK_FR32 } },
    { X86::PMAXSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxsd, MCK_FR32, MCK_FR32 } },
    { X86::PMAXSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxsd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMAXSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxsw, MCK_VR64, MCK_VR64 } },
    { X86::PMAXSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMAXSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxsw, MCK_Mem, MCK_VR64 } },
    { X86::PMAXSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMAXUBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxub, MCK_VR64, MCK_VR64 } },
    { X86::PMAXUBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxub, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMAXUBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxub, MCK_Mem, MCK_VR64 } },
    { X86::PMAXUBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxub, MCK_Mem, MCK_FR32 } },
    { X86::PMAXUDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxud, MCK_FR32, MCK_FR32 } },
    { X86::PMAXUDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxud, MCK_Mem, MCK_FR32 } },
    { X86::PMAXUWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmaxuw, MCK_FR32, MCK_FR32 } },
    { X86::PMAXUWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmaxuw, MCK_Mem, MCK_FR32 } },
    { X86::PMINSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminsb, MCK_FR32, MCK_FR32 } },
    { X86::PMINSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminsb, MCK_Mem, MCK_FR32 } },
    { X86::PMINSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminsd, MCK_FR32, MCK_FR32 } },
    { X86::PMINSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminsd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMINSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminsw, MCK_VR64, MCK_VR64 } },
    { X86::PMINSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMINSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminsw, MCK_Mem, MCK_VR64 } },
    { X86::PMINSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMINUBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminub, MCK_VR64, MCK_VR64 } },
    { X86::PMINUBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminub, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMINUBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminub, MCK_Mem, MCK_VR64 } },
    { X86::PMINUBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminub, MCK_Mem, MCK_FR32 } },
    { X86::PMINUDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminud, MCK_FR32, MCK_FR32 } },
    { X86::PMINUDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminud, MCK_Mem, MCK_FR32 } },
    { X86::PMINUWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pminuw, MCK_FR32, MCK_FR32 } },
    { X86::PMINUWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pminuw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMOVMSKBrr, Convert__Reg1_2__Reg1_1, { MCK_pmovmskb, MCK_VR64, MCK_GR32 } },
    { X86::PMOVMSKBrr, Convert__Reg1_2__Reg1_1, { MCK_pmovmskb, MCK_FR32, MCK_GR32 } },
    { X86::PMOVSXBDrr, Convert__Reg1_2__Reg1_1, { MCK_pmovsxbd, MCK_FR32, MCK_FR32 } },
    { X86::PMOVSXBDrm, Convert__Reg1_2__Mem5_1, { MCK_pmovsxbd, MCK_Mem, MCK_FR32 } },
    { X86::PMOVSXBQrr, Convert__Reg1_2__Reg1_1, { MCK_pmovsxbq, MCK_FR32, MCK_FR32 } },
    { X86::PMOVSXBQrm, Convert__Reg1_2__Mem5_1, { MCK_pmovsxbq, MCK_Mem, MCK_FR32 } },
    { X86::PMOVSXBWrr, Convert__Reg1_2__Reg1_1, { MCK_pmovsxbw, MCK_FR32, MCK_FR32 } },
    { X86::PMOVSXBWrm, Convert__Reg1_2__Mem5_1, { MCK_pmovsxbw, MCK_Mem, MCK_FR32 } },
    { X86::PMOVSXDQrr, Convert__Reg1_2__Reg1_1, { MCK_pmovsxdq, MCK_FR32, MCK_FR32 } },
    { X86::PMOVSXDQrm, Convert__Reg1_2__Mem5_1, { MCK_pmovsxdq, MCK_Mem, MCK_FR32 } },
    { X86::PMOVSXWDrr, Convert__Reg1_2__Reg1_1, { MCK_pmovsxwd, MCK_FR32, MCK_FR32 } },
    { X86::PMOVSXWDrm, Convert__Reg1_2__Mem5_1, { MCK_pmovsxwd, MCK_Mem, MCK_FR32 } },
    { X86::PMOVSXWQrr, Convert__Reg1_2__Reg1_1, { MCK_pmovsxwq, MCK_FR32, MCK_FR32 } },
    { X86::PMOVSXWQrm, Convert__Reg1_2__Mem5_1, { MCK_pmovsxwq, MCK_Mem, MCK_FR32 } },
    { X86::PMOVZXBDrr, Convert__Reg1_2__Reg1_1, { MCK_pmovzxbd, MCK_FR32, MCK_FR32 } },
    { X86::PMOVZXBDrm, Convert__Reg1_2__Mem5_1, { MCK_pmovzxbd, MCK_Mem, MCK_FR32 } },
    { X86::PMOVZXBQrr, Convert__Reg1_2__Reg1_1, { MCK_pmovzxbq, MCK_FR32, MCK_FR32 } },
    { X86::PMOVZXBQrm, Convert__Reg1_2__Mem5_1, { MCK_pmovzxbq, MCK_Mem, MCK_FR32 } },
    { X86::PMOVZXBWrr, Convert__Reg1_2__Reg1_1, { MCK_pmovzxbw, MCK_FR32, MCK_FR32 } },
    { X86::PMOVZXBWrm, Convert__Reg1_2__Mem5_1, { MCK_pmovzxbw, MCK_Mem, MCK_FR32 } },
    { X86::PMOVZXDQrr, Convert__Reg1_2__Reg1_1, { MCK_pmovzxdq, MCK_FR32, MCK_FR32 } },
    { X86::PMOVZXDQrm, Convert__Reg1_2__Mem5_1, { MCK_pmovzxdq, MCK_Mem, MCK_FR32 } },
    { X86::PMOVZXWDrr, Convert__Reg1_2__Reg1_1, { MCK_pmovzxwd, MCK_FR32, MCK_FR32 } },
    { X86::PMOVZXWDrm, Convert__Reg1_2__Mem5_1, { MCK_pmovzxwd, MCK_Mem, MCK_FR32 } },
    { X86::PMOVZXWQrr, Convert__Reg1_2__Reg1_1, { MCK_pmovzxwq, MCK_FR32, MCK_FR32 } },
    { X86::PMOVZXWQrm, Convert__Reg1_2__Mem5_1, { MCK_pmovzxwq, MCK_Mem, MCK_FR32 } },
    { X86::PMULDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmuldq, MCK_FR32, MCK_FR32 } },
    { X86::PMULDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmuldq, MCK_Mem, MCK_FR32 } },
    { X86::PMULHRSWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulhrsw, MCK_VR64, MCK_VR64 } },
    { X86::PMULHRSWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulhrsw, MCK_FR32, MCK_FR32 } },
    { X86::PMULHRSWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulhrsw, MCK_Mem, MCK_VR64 } },
    { X86::PMULHRSWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulhrsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULHUWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulhuw, MCK_VR64, MCK_VR64 } },
    { X86::PMULHUWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulhuw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULHUWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulhuw, MCK_Mem, MCK_VR64 } },
    { X86::PMULHUWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulhuw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULHWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulhw, MCK_VR64, MCK_VR64 } },
    { X86::PMULHWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulhw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULHWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulhw, MCK_Mem, MCK_VR64 } },
    { X86::PMULHWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulhw, MCK_Mem, MCK_FR32 } },
    { X86::PMULLDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulld, MCK_FR32, MCK_FR32 } },
    { X86::PMULLDrr_int, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmulld, MCK_FR32, MCK_FR32 } },
    { X86::PMULLDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulld, MCK_Mem, MCK_FR32 } },
    { X86::PMULLDrm_int, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmulld, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULLWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmullw, MCK_VR64, MCK_VR64 } },
    { X86::PMULLWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmullw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULLWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmullw, MCK_Mem, MCK_VR64 } },
    { X86::PMULLWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmullw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULUDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmuludq, MCK_VR64, MCK_VR64 } },
    { X86::PMULUDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pmuludq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULUDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmuludq, MCK_Mem, MCK_VR64 } },
    { X86::PMULUDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pmuludq, MCK_Mem, MCK_FR32 } },
    { X86::POPCNT32rr, Convert__Reg1_2__Reg1_1, { MCK_popcntl, MCK_GR32, MCK_GR32 } },
    { X86::POPCNT32rm, Convert__Reg1_2__Mem5_1, { MCK_popcntl, MCK_Mem, MCK_GR32 } },
    { X86::POPCNT64rr, Convert__Reg1_2__Reg1_1, { MCK_popcntq, MCK_GR64, MCK_GR64 } },
    { X86::POPCNT64rm, Convert__Reg1_2__Mem5_1, { MCK_popcntq, MCK_Mem, MCK_GR64 } },
    { X86::POPCNT16rr, Convert__Reg1_2__Reg1_1, { MCK_popcntw, MCK_GR16, MCK_GR16 } },
    { X86::POPCNT16rm, Convert__Reg1_2__Mem5_1, { MCK_popcntw, MCK_Mem, MCK_GR16 } },
    { X86::MMX_PORrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_por, MCK_VR64, MCK_VR64 } },
    { X86::PORrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_por, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PORrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_por, MCK_Mem, MCK_VR64 } },
    { X86::PORrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_por, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSADBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psadbw, MCK_VR64, MCK_VR64 } },
    { X86::PSADBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psadbw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSADBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psadbw, MCK_Mem, MCK_VR64 } },
    { X86::PSADBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psadbw, MCK_Mem, MCK_FR32 } },
    { X86::PSHUFBrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pshufb, MCK_VR64, MCK_VR64 } },
    { X86::PSHUFBrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pshufb, MCK_FR32, MCK_FR32 } },
    { X86::PSHUFBrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pshufb, MCK_Mem, MCK_VR64 } },
    { X86::PSHUFBrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pshufb, MCK_Mem, MCK_FR32 } },
    { X86::PSIGNBrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psignb, MCK_VR64, MCK_VR64 } },
    { X86::PSIGNBrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psignb, MCK_FR32, MCK_FR32 } },
    { X86::PSIGNBrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psignb, MCK_Mem, MCK_VR64 } },
    { X86::PSIGNBrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psignb, MCK_Mem, MCK_FR32 } },
    { X86::PSIGNDrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psignd, MCK_VR64, MCK_VR64 } },
    { X86::PSIGNDrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psignd, MCK_FR32, MCK_FR32 } },
    { X86::PSIGNDrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psignd, MCK_Mem, MCK_VR64 } },
    { X86::PSIGNDrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psignd, MCK_Mem, MCK_FR32 } },
    { X86::PSIGNWrr64, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psignw, MCK_VR64, MCK_VR64 } },
    { X86::PSIGNWrr128, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psignw, MCK_FR32, MCK_FR32 } },
    { X86::PSIGNWrm64, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psignw, MCK_Mem, MCK_VR64 } },
    { X86::PSIGNWrm128, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psignw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSLLDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pslld, MCK_VR64, MCK_VR64 } },
    { X86::PSLLDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pslld, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSLLDri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_pslld, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSLLDri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_pslld, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pslld, MCK_Mem, MCK_VR64 } },
    { X86::PSLLDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pslld, MCK_Mem, MCK_FR32 } },
    { X86::PSLLDQri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_pslldq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psllq, MCK_VR64, MCK_VR64 } },
    { X86::PSLLQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psllq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSLLQri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psllq, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSLLQri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psllq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psllq, MCK_Mem, MCK_VR64 } },
    { X86::PSLLQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psllq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSLLWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psllw, MCK_VR64, MCK_VR64 } },
    { X86::PSLLWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psllw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSLLWri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psllw, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSLLWri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psllw, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psllw, MCK_Mem, MCK_VR64 } },
    { X86::PSLLWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psllw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRADrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrad, MCK_VR64, MCK_VR64 } },
    { X86::PSRADrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrad, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRADri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrad, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRADri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrad, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRADrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrad, MCK_Mem, MCK_VR64 } },
    { X86::PSRADrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrad, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRAWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psraw, MCK_VR64, MCK_VR64 } },
    { X86::PSRAWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psraw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRAWri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psraw, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRAWri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psraw, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRAWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psraw, MCK_Mem, MCK_VR64 } },
    { X86::PSRAWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psraw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRLDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrld, MCK_VR64, MCK_VR64 } },
    { X86::PSRLDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrld, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRLDri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrld, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRLDri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrld, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrld, MCK_Mem, MCK_VR64 } },
    { X86::PSRLDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrld, MCK_Mem, MCK_FR32 } },
    { X86::PSRLDQri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrldq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrlq, MCK_VR64, MCK_VR64 } },
    { X86::PSRLQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrlq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRLQri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrlq, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRLQri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrlq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrlq, MCK_Mem, MCK_VR64 } },
    { X86::PSRLQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrlq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRLWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrlw, MCK_VR64, MCK_VR64 } },
    { X86::PSRLWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psrlw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRLWri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrlw, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRLWri, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_psrlw, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrlw, MCK_Mem, MCK_VR64 } },
    { X86::PSRLWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psrlw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubb, MCK_VR64, MCK_VR64 } },
    { X86::PSUBBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubb, MCK_Mem, MCK_VR64 } },
    { X86::PSUBBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubd, MCK_VR64, MCK_VR64 } },
    { X86::PSUBDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubd, MCK_Mem, MCK_VR64 } },
    { X86::PSUBDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubq, MCK_VR64, MCK_VR64 } },
    { X86::PSUBQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubq, MCK_Mem, MCK_VR64 } },
    { X86::PSUBQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubsb, MCK_VR64, MCK_VR64 } },
    { X86::PSUBSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubsb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubsb, MCK_Mem, MCK_VR64 } },
    { X86::PSUBSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubsb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubsw, MCK_VR64, MCK_VR64 } },
    { X86::PSUBSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubsw, MCK_Mem, MCK_VR64 } },
    { X86::PSUBSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBUSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubusb, MCK_VR64, MCK_VR64 } },
    { X86::PSUBUSBrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubusb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBUSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubusb, MCK_Mem, MCK_VR64 } },
    { X86::PSUBUSBrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubusb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBUSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubusw, MCK_VR64, MCK_VR64 } },
    { X86::PSUBUSWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubusw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBUSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubusw, MCK_Mem, MCK_VR64 } },
    { X86::PSUBUSWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubusw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubw, MCK_VR64, MCK_VR64 } },
    { X86::PSUBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_psubw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubw, MCK_Mem, MCK_VR64 } },
    { X86::PSUBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_psubw, MCK_Mem, MCK_FR32 } },
    { X86::PTESTrr, Convert__Reg1_2__Reg1_1, { MCK_ptest, MCK_FR32, MCK_FR32 } },
    { X86::PTESTrm, Convert__Reg1_2__Mem5_1, { MCK_ptest, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKHBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhbw, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKHBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhbw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKHBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhbw, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKHBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhbw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKHDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhdq, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKHDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhdq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKHDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhdq, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKHDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhdq, MCK_Mem, MCK_FR32 } },
    { X86::PUNPCKHQDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhqdq, MCK_FR32, MCK_FR32 } },
    { X86::PUNPCKHQDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhqdq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKHWDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhwd, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKHWDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckhwd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKHWDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhwd, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKHWDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckhwd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKLBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpcklbw, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKLBWrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpcklbw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKLBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpcklbw, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKLBWrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpcklbw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKLDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckldq, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKLDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpckldq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKLDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckldq, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKLDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpckldq, MCK_Mem, MCK_FR32 } },
    { X86::PUNPCKLQDQrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpcklqdq, MCK_FR32, MCK_FR32 } },
    { X86::PUNPCKLQDQrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpcklqdq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKLWDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpcklwd, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKLWDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_punpcklwd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKLWDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpcklwd, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKLWDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_punpcklwd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PXORrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pxor, MCK_VR64, MCK_VR64 } },
    { X86::PXORrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_pxor, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PXORrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pxor, MCK_Mem, MCK_VR64 } },
    { X86::PXORrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_pxor, MCK_Mem, MCK_FR32 } },
    { X86::RCL8r1, Convert__Reg1_2__Tie0, { MCK_rclb, MCK_1, MCK_GR8 } },
    { X86::RCL8m1, Convert__Mem5_2, { MCK_rclb, MCK_1, MCK_Mem } },
    { X86::RCL8rCL, Convert__Reg1_2__Tie0, { MCK_rclb, MCK_CL, MCK_GR8 } },
    { X86::RCL8mCL, Convert__Mem5_2, { MCK_rclb, MCK_CL, MCK_Mem } },
    { X86::RCL8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rclb, MCK_Imm, MCK_GR8 } },
    { X86::RCL8mi, Convert__Mem5_2__Imm1_1, { MCK_rclb, MCK_Imm, MCK_Mem } },
    { X86::RCL32r1, Convert__Reg1_2__Tie0, { MCK_rcll, MCK_1, MCK_GR32 } },
    { X86::RCL32m1, Convert__Mem5_2, { MCK_rcll, MCK_1, MCK_Mem } },
    { X86::RCL32rCL, Convert__Reg1_2__Tie0, { MCK_rcll, MCK_CL, MCK_GR32 } },
    { X86::RCL32mCL, Convert__Mem5_2, { MCK_rcll, MCK_CL, MCK_Mem } },
    { X86::RCL32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rcll, MCK_Imm, MCK_GR32 } },
    { X86::RCL32mi, Convert__Mem5_2__Imm1_1, { MCK_rcll, MCK_Imm, MCK_Mem } },
    { X86::RCL64r1, Convert__Reg1_2__Tie0, { MCK_rclq, MCK_1, MCK_GR64 } },
    { X86::RCL64m1, Convert__Mem5_2, { MCK_rclq, MCK_1, MCK_Mem } },
    { X86::RCL64rCL, Convert__Reg1_2__Tie0, { MCK_rclq, MCK_CL, MCK_GR64 } },
    { X86::RCL64mCL, Convert__Mem5_2, { MCK_rclq, MCK_CL, MCK_Mem } },
    { X86::RCL64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rclq, MCK_Imm, MCK_GR64 } },
    { X86::RCL64mi, Convert__Mem5_2__Imm1_1, { MCK_rclq, MCK_Imm, MCK_Mem } },
    { X86::RCL16r1, Convert__Reg1_2__Tie0, { MCK_rclw, MCK_1, MCK_GR16 } },
    { X86::RCL16m1, Convert__Mem5_2, { MCK_rclw, MCK_1, MCK_Mem } },
    { X86::RCL16rCL, Convert__Reg1_2__Tie0, { MCK_rclw, MCK_CL, MCK_GR16 } },
    { X86::RCL16mCL, Convert__Mem5_2, { MCK_rclw, MCK_CL, MCK_Mem } },
    { X86::RCL16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rclw, MCK_Imm, MCK_GR16 } },
    { X86::RCL16mi, Convert__Mem5_2__Imm1_1, { MCK_rclw, MCK_Imm, MCK_Mem } },
    { X86::RCPPSr, Convert__Reg1_2__Reg1_1, { MCK_rcpps, MCK_FR32, MCK_FR32 } },
    { X86::RCPPSm, Convert__Reg1_2__Mem5_1, { MCK_rcpps, MCK_Mem, MCK_FR32 } },
    { X86::RCPSSr, Convert__Reg1_2__Reg1_1, { MCK_rcpss, MCK_FR32, MCK_FR32 } },
    { X86::RCPSSm, Convert__Reg1_2__Mem5_1, { MCK_rcpss, MCK_Mem, MCK_FR32 } },
    { X86::RCR8r1, Convert__Reg1_2__Tie0, { MCK_rcrb, MCK_1, MCK_GR8 } },
    { X86::RCR8m1, Convert__Mem5_2, { MCK_rcrb, MCK_1, MCK_Mem } },
    { X86::RCR8rCL, Convert__Reg1_2__Tie0, { MCK_rcrb, MCK_CL, MCK_GR8 } },
    { X86::RCR8mCL, Convert__Mem5_2, { MCK_rcrb, MCK_CL, MCK_Mem } },
    { X86::RCR8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rcrb, MCK_Imm, MCK_GR8 } },
    { X86::RCR8mi, Convert__Mem5_2__Imm1_1, { MCK_rcrb, MCK_Imm, MCK_Mem } },
    { X86::RCR32r1, Convert__Reg1_2__Tie0, { MCK_rcrl, MCK_1, MCK_GR32 } },
    { X86::RCR32m1, Convert__Mem5_2, { MCK_rcrl, MCK_1, MCK_Mem } },
    { X86::RCR32rCL, Convert__Reg1_2__Tie0, { MCK_rcrl, MCK_CL, MCK_GR32 } },
    { X86::RCR32mCL, Convert__Mem5_2, { MCK_rcrl, MCK_CL, MCK_Mem } },
    { X86::RCR32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rcrl, MCK_Imm, MCK_GR32 } },
    { X86::RCR32mi, Convert__Mem5_2__Imm1_1, { MCK_rcrl, MCK_Imm, MCK_Mem } },
    { X86::RCR64r1, Convert__Reg1_2__Tie0, { MCK_rcrq, MCK_1, MCK_GR64 } },
    { X86::RCR64m1, Convert__Mem5_2, { MCK_rcrq, MCK_1, MCK_Mem } },
    { X86::RCR64rCL, Convert__Reg1_2__Tie0, { MCK_rcrq, MCK_CL, MCK_GR64 } },
    { X86::RCR64mCL, Convert__Mem5_2, { MCK_rcrq, MCK_CL, MCK_Mem } },
    { X86::RCR64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rcrq, MCK_Imm, MCK_GR64 } },
    { X86::RCR64mi, Convert__Mem5_2__Imm1_1, { MCK_rcrq, MCK_Imm, MCK_Mem } },
    { X86::RCR16r1, Convert__Reg1_2__Tie0, { MCK_rcrw, MCK_1, MCK_GR16 } },
    { X86::RCR16m1, Convert__Mem5_2, { MCK_rcrw, MCK_1, MCK_Mem } },
    { X86::RCR16rCL, Convert__Reg1_2__Tie0, { MCK_rcrw, MCK_CL, MCK_GR16 } },
    { X86::RCR16mCL, Convert__Mem5_2, { MCK_rcrw, MCK_CL, MCK_Mem } },
    { X86::RCR16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rcrw, MCK_Imm, MCK_GR16 } },
    { X86::RCR16mi, Convert__Mem5_2__Imm1_1, { MCK_rcrw, MCK_Imm, MCK_Mem } },
    { X86::ROL8rCL, Convert__Reg1_2__Tie0, { MCK_rolb, MCK_CL, MCK_GR8 } },
    { X86::ROL8mCL, Convert__Mem5_2, { MCK_rolb, MCK_CL, MCK_Mem } },
    { X86::ROL8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rolb, MCK_Imm, MCK_GR8 } },
    { X86::ROL8mi, Convert__Mem5_2__Imm1_1, { MCK_rolb, MCK_Imm, MCK_Mem } },
    { X86::ROL32rCL, Convert__Reg1_2__Tie0, { MCK_roll, MCK_CL, MCK_GR32 } },
    { X86::ROL32mCL, Convert__Mem5_2, { MCK_roll, MCK_CL, MCK_Mem } },
    { X86::ROL32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_roll, MCK_Imm, MCK_GR32 } },
    { X86::ROL32mi, Convert__Mem5_2__Imm1_1, { MCK_roll, MCK_Imm, MCK_Mem } },
    { X86::ROL64rCL, Convert__Reg1_2__Tie0, { MCK_rolq, MCK_CL, MCK_GR64 } },
    { X86::ROL64mCL, Convert__Mem5_2, { MCK_rolq, MCK_CL, MCK_Mem } },
    { X86::ROL64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rolq, MCK_Imm, MCK_GR64 } },
    { X86::ROL64mi, Convert__Mem5_2__Imm1_1, { MCK_rolq, MCK_Imm, MCK_Mem } },
    { X86::ROL16rCL, Convert__Reg1_2__Tie0, { MCK_rolw, MCK_CL, MCK_GR16 } },
    { X86::ROL16mCL, Convert__Mem5_2, { MCK_rolw, MCK_CL, MCK_Mem } },
    { X86::ROL16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rolw, MCK_Imm, MCK_GR16 } },
    { X86::ROL16mi, Convert__Mem5_2__Imm1_1, { MCK_rolw, MCK_Imm, MCK_Mem } },
    { X86::ROR8rCL, Convert__Reg1_2__Tie0, { MCK_rorb, MCK_CL, MCK_GR8 } },
    { X86::ROR8mCL, Convert__Mem5_2, { MCK_rorb, MCK_CL, MCK_Mem } },
    { X86::ROR8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rorb, MCK_Imm, MCK_GR8 } },
    { X86::ROR8mi, Convert__Mem5_2__Imm1_1, { MCK_rorb, MCK_Imm, MCK_Mem } },
    { X86::ROR32rCL, Convert__Reg1_2__Tie0, { MCK_rorl, MCK_CL, MCK_GR32 } },
    { X86::ROR32mCL, Convert__Mem5_2, { MCK_rorl, MCK_CL, MCK_Mem } },
    { X86::ROR32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rorl, MCK_Imm, MCK_GR32 } },
    { X86::ROR32mi, Convert__Mem5_2__Imm1_1, { MCK_rorl, MCK_Imm, MCK_Mem } },
    { X86::ROR64rCL, Convert__Reg1_2__Tie0, { MCK_rorq, MCK_CL, MCK_GR64 } },
    { X86::ROR64mCL, Convert__Mem5_2, { MCK_rorq, MCK_CL, MCK_Mem } },
    { X86::ROR64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rorq, MCK_Imm, MCK_GR64 } },
    { X86::ROR64mi, Convert__Mem5_2__Imm1_1, { MCK_rorq, MCK_Imm, MCK_Mem } },
    { X86::ROR16rCL, Convert__Reg1_2__Tie0, { MCK_rorw, MCK_CL, MCK_GR16 } },
    { X86::ROR16mCL, Convert__Mem5_2, { MCK_rorw, MCK_CL, MCK_Mem } },
    { X86::ROR16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_rorw, MCK_Imm, MCK_GR16 } },
    { X86::ROR16mi, Convert__Mem5_2__Imm1_1, { MCK_rorw, MCK_Imm, MCK_Mem } },
    { X86::RSQRTPSr, Convert__Reg1_2__Reg1_1, { MCK_rsqrtps, MCK_FR32, MCK_FR32 } },
    { X86::RSQRTPSm, Convert__Reg1_2__Mem5_1, { MCK_rsqrtps, MCK_Mem, MCK_FR32 } },
    { X86::RSQRTSSr, Convert__Reg1_2__Reg1_1, { MCK_rsqrtss, MCK_FR32, MCK_FR32 } },
    { X86::RSQRTSSm, Convert__Reg1_2__Mem5_1, { MCK_rsqrtss, MCK_Mem, MCK_FR32 } },
    { X86::SAR8rCL, Convert__Reg1_2__Tie0, { MCK_sarb, MCK_CL, MCK_GR8 } },
    { X86::SAR8mCL, Convert__Mem5_2, { MCK_sarb, MCK_CL, MCK_Mem } },
    { X86::SAR8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sarb, MCK_Imm, MCK_GR8 } },
    { X86::SAR8mi, Convert__Mem5_2__Imm1_1, { MCK_sarb, MCK_Imm, MCK_Mem } },
    { X86::SAR32rCL, Convert__Reg1_2__Tie0, { MCK_sarl, MCK_CL, MCK_GR32 } },
    { X86::SAR32mCL, Convert__Mem5_2, { MCK_sarl, MCK_CL, MCK_Mem } },
    { X86::SAR32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sarl, MCK_Imm, MCK_GR32 } },
    { X86::SAR32mi, Convert__Mem5_2__Imm1_1, { MCK_sarl, MCK_Imm, MCK_Mem } },
    { X86::SAR64rCL, Convert__Reg1_2__Tie0, { MCK_sarq, MCK_CL, MCK_GR64 } },
    { X86::SAR64mCL, Convert__Mem5_2, { MCK_sarq, MCK_CL, MCK_Mem } },
    { X86::SAR64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sarq, MCK_Imm, MCK_GR64 } },
    { X86::SAR64mi, Convert__Mem5_2__Imm1_1, { MCK_sarq, MCK_Imm, MCK_Mem } },
    { X86::SAR16rCL, Convert__Reg1_2__Tie0, { MCK_sarw, MCK_CL, MCK_GR16 } },
    { X86::SAR16mCL, Convert__Mem5_2, { MCK_sarw, MCK_CL, MCK_Mem } },
    { X86::SAR16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sarw, MCK_Imm, MCK_GR16 } },
    { X86::SAR16mi, Convert__Mem5_2__Imm1_1, { MCK_sarw, MCK_Imm, MCK_Mem } },
    { X86::SBB8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbb, MCK_GR8, MCK_GR8 } },
    { X86::SBB8rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbb, MCK_GR8, MCK_GR8 } },
    { X86::SBB8mr, Convert__Mem5_2__Reg1_1, { MCK_sbbb, MCK_GR8, MCK_Mem } },
    { X86::SBB8i8, Convert__Imm1_1, { MCK_sbbb, MCK_Imm, MCK_AL } },
    { X86::SBB8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sbbb, MCK_Imm, MCK_GR8 } },
    { X86::SBB8mi, Convert__Mem5_2__Imm1_1, { MCK_sbbb, MCK_Imm, MCK_Mem } },
    { X86::SBB8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_sbbb, MCK_Mem, MCK_GR8 } },
    { X86::SBB32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbl, MCK_GR32, MCK_GR32 } },
    { X86::SBB32rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbl, MCK_GR32, MCK_GR32 } },
    { X86::SBB32mr, Convert__Mem5_2__Reg1_1, { MCK_sbbl, MCK_GR32, MCK_Mem } },
    { X86::SBB32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_sbbl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::SBB32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_sbbl, MCK_ImmSExt8, MCK_Mem } },
    { X86::SBB32i32, Convert__Imm1_1, { MCK_sbbl, MCK_Imm, MCK_EAX } },
    { X86::SBB32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sbbl, MCK_Imm, MCK_GR32 } },
    { X86::SBB32mi, Convert__Mem5_2__Imm1_1, { MCK_sbbl, MCK_Imm, MCK_Mem } },
    { X86::SBB32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_sbbl, MCK_Mem, MCK_GR32 } },
    { X86::SBB64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbq, MCK_GR64, MCK_GR64 } },
    { X86::SBB64rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbq, MCK_GR64, MCK_GR64 } },
    { X86::SBB64mr, Convert__Mem5_2__Reg1_1, { MCK_sbbq, MCK_GR64, MCK_Mem } },
    { X86::SBB64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_sbbq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::SBB64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_sbbq, MCK_ImmSExt8, MCK_Mem } },
    { X86::SBB64i32, Convert__Imm1_1, { MCK_sbbq, MCK_Imm, MCK_RAX } },
    { X86::SBB64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sbbq, MCK_Imm, MCK_GR64 } },
    { X86::SBB64mi32, Convert__Mem5_2__Imm1_1, { MCK_sbbq, MCK_Imm, MCK_Mem } },
    { X86::SBB64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_sbbq, MCK_Mem, MCK_GR64 } },
    { X86::SBB16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbw, MCK_GR16, MCK_GR16 } },
    { X86::SBB16rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_sbbw, MCK_GR16, MCK_GR16 } },
    { X86::SBB16mr, Convert__Mem5_2__Reg1_1, { MCK_sbbw, MCK_GR16, MCK_Mem } },
    { X86::SBB16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_sbbw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::SBB16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_sbbw, MCK_ImmSExt8, MCK_Mem } },
    { X86::SBB16i16, Convert__Imm1_1, { MCK_sbbw, MCK_Imm, MCK_AX } },
    { X86::SBB16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_sbbw, MCK_Imm, MCK_GR16 } },
    { X86::SBB16mi, Convert__Mem5_2__Imm1_1, { MCK_sbbw, MCK_Imm, MCK_Mem } },
    { X86::SBB16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_sbbw, MCK_Mem, MCK_GR16 } },
    { X86::SHL8rCL, Convert__Reg1_2__Tie0, { MCK_shlb, MCK_CL, MCK_GR8 } },
    { X86::SHL8mCL, Convert__Mem5_2, { MCK_shlb, MCK_CL, MCK_Mem } },
    { X86::SHL8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shlb, MCK_Imm, MCK_GR8 } },
    { X86::SHL8mi, Convert__Mem5_2__Imm1_1, { MCK_shlb, MCK_Imm, MCK_Mem } },
    { X86::SHL32rCL, Convert__Reg1_2__Tie0, { MCK_shll, MCK_CL, MCK_GR32 } },
    { X86::SHL32mCL, Convert__Mem5_2, { MCK_shll, MCK_CL, MCK_Mem } },
    { X86::SHL32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shll, MCK_Imm, MCK_GR32 } },
    { X86::SHL32mi, Convert__Mem5_2__Imm1_1, { MCK_shll, MCK_Imm, MCK_Mem } },
    { X86::SHL64rCL, Convert__Reg1_2__Tie0, { MCK_shlq, MCK_CL, MCK_GR64 } },
    { X86::SHL64mCL, Convert__Mem5_2, { MCK_shlq, MCK_CL, MCK_Mem } },
    { X86::SHL64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shlq, MCK_Imm, MCK_GR64 } },
    { X86::SHL64mi, Convert__Mem5_2__Imm1_1, { MCK_shlq, MCK_Imm, MCK_Mem } },
    { X86::SHL16rCL, Convert__Reg1_2__Tie0, { MCK_shlw, MCK_CL, MCK_GR16 } },
    { X86::SHL16mCL, Convert__Mem5_2, { MCK_shlw, MCK_CL, MCK_Mem } },
    { X86::SHL16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shlw, MCK_Imm, MCK_GR16 } },
    { X86::SHL16mi, Convert__Mem5_2__Imm1_1, { MCK_shlw, MCK_Imm, MCK_Mem } },
    { X86::SHR8rCL, Convert__Reg1_2__Tie0, { MCK_shrb, MCK_CL, MCK_GR8 } },
    { X86::SHR8mCL, Convert__Mem5_2, { MCK_shrb, MCK_CL, MCK_Mem } },
    { X86::SHR8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shrb, MCK_Imm, MCK_GR8 } },
    { X86::SHR8mi, Convert__Mem5_2__Imm1_1, { MCK_shrb, MCK_Imm, MCK_Mem } },
    { X86::SHR32rCL, Convert__Reg1_2__Tie0, { MCK_shrl, MCK_CL, MCK_GR32 } },
    { X86::SHR32mCL, Convert__Mem5_2, { MCK_shrl, MCK_CL, MCK_Mem } },
    { X86::SHR32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shrl, MCK_Imm, MCK_GR32 } },
    { X86::SHR32mi, Convert__Mem5_2__Imm1_1, { MCK_shrl, MCK_Imm, MCK_Mem } },
    { X86::SHR64rCL, Convert__Reg1_2__Tie0, { MCK_shrq, MCK_CL, MCK_GR64 } },
    { X86::SHR64mCL, Convert__Mem5_2, { MCK_shrq, MCK_CL, MCK_Mem } },
    { X86::SHR64ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shrq, MCK_Imm, MCK_GR64 } },
    { X86::SHR64mi, Convert__Mem5_2__Imm1_1, { MCK_shrq, MCK_Imm, MCK_Mem } },
    { X86::SHR16rCL, Convert__Reg1_2__Tie0, { MCK_shrw, MCK_CL, MCK_GR16 } },
    { X86::SHR16mCL, Convert__Mem5_2, { MCK_shrw, MCK_CL, MCK_Mem } },
    { X86::SHR16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_shrw, MCK_Imm, MCK_GR16 } },
    { X86::SHR16mi, Convert__Mem5_2__Imm1_1, { MCK_shrw, MCK_Imm, MCK_Mem } },
    { X86::SQRTPDr, Convert__Reg1_2__Reg1_1, { MCK_sqrtpd, MCK_FR32, MCK_FR32 } },
    { X86::SQRTPDm, Convert__Reg1_2__Mem5_1, { MCK_sqrtpd, MCK_Mem, MCK_FR32 } },
    { X86::SQRTPSr, Convert__Reg1_2__Reg1_1, { MCK_sqrtps, MCK_FR32, MCK_FR32 } },
    { X86::SQRTPSm, Convert__Reg1_2__Mem5_1, { MCK_sqrtps, MCK_Mem, MCK_FR32 } },
    { X86::SQRTSDr, Convert__Reg1_2__Reg1_1, { MCK_sqrtsd, MCK_FR32, MCK_FR32 } },
    { X86::SQRTSDm, Convert__Reg1_2__Mem5_1, { MCK_sqrtsd, MCK_Mem, MCK_FR32 } },
    { X86::SQRTSSr, Convert__Reg1_2__Reg1_1, { MCK_sqrtss, MCK_FR32, MCK_FR32 } },
    { X86::SQRTSSm, Convert__Reg1_2__Mem5_1, { MCK_sqrtss, MCK_Mem, MCK_FR32 } },
    { X86::SUB8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subb, MCK_GR8, MCK_GR8 } },
    { X86::SUB8rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subb, MCK_GR8, MCK_GR8 } },
    { X86::SUB8mr, Convert__Mem5_2__Reg1_1, { MCK_subb, MCK_GR8, MCK_Mem } },
    { X86::SUB8i8, Convert__Imm1_1, { MCK_subb, MCK_Imm, MCK_AL } },
    { X86::SUB8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_subb, MCK_Imm, MCK_GR8 } },
    { X86::SUB8mi, Convert__Mem5_2__Imm1_1, { MCK_subb, MCK_Imm, MCK_Mem } },
    { X86::SUB8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subb, MCK_Mem, MCK_GR8 } },
    { X86::SUB32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subl, MCK_GR32, MCK_GR32 } },
    { X86::SUB32rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subl, MCK_GR32, MCK_GR32 } },
    { X86::SUB32mr, Convert__Mem5_2__Reg1_1, { MCK_subl, MCK_GR32, MCK_Mem } },
    { X86::SUB32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_subl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::SUB32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_subl, MCK_ImmSExt8, MCK_Mem } },
    { X86::SUB32i32, Convert__Imm1_1, { MCK_subl, MCK_Imm, MCK_EAX } },
    { X86::SUB32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_subl, MCK_Imm, MCK_GR32 } },
    { X86::SUB32mi, Convert__Mem5_2__Imm1_1, { MCK_subl, MCK_Imm, MCK_Mem } },
    { X86::SUB32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subl, MCK_Mem, MCK_GR32 } },
    { X86::SUBPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subpd, MCK_FR32, MCK_FR32 } },
    { X86::SUBPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subpd, MCK_Mem, MCK_FR32 } },
    { X86::SUBPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subps, MCK_FR32, MCK_FR32 } },
    { X86::SUBPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subps, MCK_Mem, MCK_FR32 } },
    { X86::SUB64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subq, MCK_GR64, MCK_GR64 } },
    { X86::SUB64rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subq, MCK_GR64, MCK_GR64 } },
    { X86::SUB64mr, Convert__Mem5_2__Reg1_1, { MCK_subq, MCK_GR64, MCK_Mem } },
    { X86::SUB64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_subq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::SUB64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_subq, MCK_ImmSExt8, MCK_Mem } },
    { X86::SUB64i32, Convert__Imm1_1, { MCK_subq, MCK_Imm, MCK_RAX } },
    { X86::SUB64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_subq, MCK_Imm, MCK_GR64 } },
    { X86::SUB64mi32, Convert__Mem5_2__Imm1_1, { MCK_subq, MCK_Imm, MCK_Mem } },
    { X86::SUB64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subq, MCK_Mem, MCK_GR64 } },
    { X86::SUBSDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subsd, MCK_FR32, MCK_FR32 } },
    { X86::SUBSDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subsd, MCK_Mem, MCK_FR32 } },
    { X86::SUBSSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subss, MCK_FR32, MCK_FR32 } },
    { X86::SUBSSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subss, MCK_Mem, MCK_FR32 } },
    { X86::SUB16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subw, MCK_GR16, MCK_GR16 } },
    { X86::SUB16rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_subw, MCK_GR16, MCK_GR16 } },
    { X86::SUB16mr, Convert__Mem5_2__Reg1_1, { MCK_subw, MCK_GR16, MCK_Mem } },
    { X86::SUB16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_subw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::SUB16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_subw, MCK_ImmSExt8, MCK_Mem } },
    { X86::SUB16i16, Convert__Imm1_1, { MCK_subw, MCK_Imm, MCK_AX } },
    { X86::SUB16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_subw, MCK_Imm, MCK_GR16 } },
    { X86::SUB16mi, Convert__Mem5_2__Imm1_1, { MCK_subw, MCK_Imm, MCK_Mem } },
    { X86::SUB16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_subw, MCK_Mem, MCK_GR16 } },
    { X86::TEST8rr, Convert__Reg1_2__Reg1_1, { MCK_testb, MCK_GR8, MCK_GR8 } },
    { X86::TEST8i8, Convert__Imm1_1, { MCK_testb, MCK_Imm, MCK_AL } },
    { X86::TEST8ri, Convert__Reg1_2__Imm1_1, { MCK_testb, MCK_Imm, MCK_GR8 } },
    { X86::TEST8mi, Convert__Mem5_2__Imm1_1, { MCK_testb, MCK_Imm, MCK_Mem } },
    { X86::TEST8rm, Convert__Reg1_2__Mem5_1, { MCK_testb, MCK_Mem, MCK_GR8 } },
    { X86::TEST32rr, Convert__Reg1_2__Reg1_1, { MCK_testl, MCK_GR32, MCK_GR32 } },
    { X86::TEST32i32, Convert__Imm1_1, { MCK_testl, MCK_Imm, MCK_EAX } },
    { X86::TEST32ri, Convert__Reg1_2__Imm1_1, { MCK_testl, MCK_Imm, MCK_GR32 } },
    { X86::TEST32mi, Convert__Mem5_2__Imm1_1, { MCK_testl, MCK_Imm, MCK_Mem } },
    { X86::TEST32rm, Convert__Reg1_2__Mem5_1, { MCK_testl, MCK_Mem, MCK_GR32 } },
    { X86::TEST64rr, Convert__Reg1_2__Reg1_1, { MCK_testq, MCK_GR64, MCK_GR64 } },
    { X86::TEST64i32, Convert__Imm1_1, { MCK_testq, MCK_Imm, MCK_RAX } },
    { X86::TEST64ri32, Convert__Reg1_2__Imm1_1, { MCK_testq, MCK_Imm, MCK_GR64 } },
    { X86::TEST64mi32, Convert__Mem5_2__Imm1_1, { MCK_testq, MCK_Imm, MCK_Mem } },
    { X86::TEST64rm, Convert__Reg1_2__Mem5_1, { MCK_testq, MCK_Mem, MCK_GR64 } },
    { X86::TEST16rr, Convert__Reg1_2__Reg1_1, { MCK_testw, MCK_GR16, MCK_GR16 } },
    { X86::TEST16i16, Convert__Imm1_1, { MCK_testw, MCK_Imm, MCK_AX } },
    { X86::TEST16ri, Convert__Reg1_2__Imm1_1, { MCK_testw, MCK_Imm, MCK_GR16 } },
    { X86::TEST16mi, Convert__Mem5_2__Imm1_1, { MCK_testw, MCK_Imm, MCK_Mem } },
    { X86::TEST16rm, Convert__Reg1_2__Mem5_1, { MCK_testw, MCK_Mem, MCK_GR16 } },
    { X86::UCOMISDrr, Convert__Reg1_2__Reg1_1, { MCK_ucomisd, MCK_FR32, MCK_FR32 } },
    { X86::UCOMISDrm, Convert__Reg1_2__Mem5_1, { MCK_ucomisd, MCK_Mem, MCK_FR32 } },
    { X86::UCOMISSrr, Convert__Reg1_2__Reg1_1, { MCK_ucomiss, MCK_FR32, MCK_FR32 } },
    { X86::UCOMISSrm, Convert__Reg1_2__Mem5_1, { MCK_ucomiss, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKHPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_unpckhpd, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKHPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_unpckhpd, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKHPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_unpckhps, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKHPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_unpckhps, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKLPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_unpcklpd, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKLPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_unpcklpd, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKLPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_unpcklps, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKLPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_unpcklps, MCK_Mem, MCK_FR32 } },
    { X86::VMREAD32rr, Convert__Reg1_2__Reg1_1, { MCK_vmreadl, MCK_GR32, MCK_GR32 } },
    { X86::VMREAD32rm, Convert__Mem5_2__Reg1_1, { MCK_vmreadl, MCK_GR32, MCK_Mem } },
    { X86::VMREAD64rr, Convert__Reg1_2__Reg1_1, { MCK_vmreadq, MCK_GR64, MCK_GR64 } },
    { X86::VMREAD64rm, Convert__Mem5_2__Reg1_1, { MCK_vmreadq, MCK_GR64, MCK_Mem } },
    { X86::VMWRITE32rr, Convert__Reg1_2__Reg1_1, { MCK_vmwritel, MCK_GR32, MCK_GR32 } },
    { X86::VMWRITE32rm, Convert__Reg1_2__Mem5_1, { MCK_vmwritel, MCK_Mem, MCK_GR32 } },
    { X86::VMWRITE64rr, Convert__Reg1_2__Reg1_1, { MCK_vmwriteq, MCK_GR64, MCK_GR64 } },
    { X86::VMWRITE64rm, Convert__Reg1_2__Mem5_1, { MCK_vmwriteq, MCK_Mem, MCK_GR64 } },
    { X86::XADD8rr, Convert__Reg1_2__Reg1_1, { MCK_xaddb, MCK_GR8, MCK_GR8 } },
    { X86::XADD8rm, Convert__Mem5_2__Reg1_1, { MCK_xaddb, MCK_GR8, MCK_Mem } },
    { X86::XADD32rr, Convert__Reg1_2__Reg1_1, { MCK_xaddl, MCK_GR32, MCK_GR32 } },
    { X86::XADD32rm, Convert__Mem5_2__Reg1_1, { MCK_xaddl, MCK_GR32, MCK_Mem } },
    { X86::XADD64rr, Convert__Reg1_2__Reg1_1, { MCK_xaddq, MCK_GR64, MCK_GR64 } },
    { X86::XADD64rm, Convert__Mem5_2__Reg1_1, { MCK_xaddq, MCK_GR64, MCK_Mem } },
    { X86::XADD16rr, Convert__Reg1_2__Reg1_1, { MCK_xaddw, MCK_GR16, MCK_GR16 } },
    { X86::XADD16rm, Convert__Mem5_2__Reg1_1, { MCK_xaddw, MCK_GR16, MCK_Mem } },
    { X86::XCHG8rr, Convert__Reg1_1__Tie0__Reg1_2, { MCK_xchgb, MCK_GR8, MCK_GR8 } },
    { X86::XCHG8rm, Convert__Reg1_1__Tie0__Mem5_2, { MCK_xchgb, MCK_GR8, MCK_Mem } },
    { X86::XCHG32ar, Convert__Reg1_1, { MCK_xchgl, MCK_GR32, MCK_EAX } },
    { X86::XCHG32rr, Convert__Reg1_1__Tie0__Reg1_2, { MCK_xchgl, MCK_GR32, MCK_GR32 } },
    { X86::XCHG32rm, Convert__Reg1_1__Tie0__Mem5_2, { MCK_xchgl, MCK_GR32, MCK_Mem } },
    { X86::XCHG64ar, Convert__Reg1_1, { MCK_xchgq, MCK_GR64, MCK_RAX } },
    { X86::XCHG64rr, Convert__Reg1_1__Tie0__Reg1_2, { MCK_xchgq, MCK_GR64, MCK_GR64 } },
    { X86::XCHG64rm, Convert__Reg1_1__Tie0__Mem5_2, { MCK_xchgq, MCK_GR64, MCK_Mem } },
    { X86::XCHG16ar, Convert__Reg1_1, { MCK_xchgw, MCK_GR16, MCK_AX } },
    { X86::XCHG16rr, Convert__Reg1_1__Tie0__Reg1_2, { MCK_xchgw, MCK_GR16, MCK_GR16 } },
    { X86::XCHG16rm, Convert__Reg1_1__Tie0__Mem5_2, { MCK_xchgw, MCK_GR16, MCK_Mem } },
    { X86::XOR8rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorb, MCK_GR8, MCK_GR8 } },
    { X86::XOR8rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorb, MCK_GR8, MCK_GR8 } },
    { X86::XOR8mr, Convert__Mem5_2__Reg1_1, { MCK_xorb, MCK_GR8, MCK_Mem } },
    { X86::XOR8i8, Convert__Imm1_1, { MCK_xorb, MCK_Imm, MCK_AL } },
    { X86::XOR8ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_xorb, MCK_Imm, MCK_GR8 } },
    { X86::XOR8mi, Convert__Mem5_2__Imm1_1, { MCK_xorb, MCK_Imm, MCK_Mem } },
    { X86::XOR8rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorb, MCK_Mem, MCK_GR8 } },
    { X86::XOR32rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorl, MCK_GR32, MCK_GR32 } },
    { X86::XOR32rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorl, MCK_GR32, MCK_GR32 } },
    { X86::XOR32mr, Convert__Mem5_2__Reg1_1, { MCK_xorl, MCK_GR32, MCK_Mem } },
    { X86::XOR32ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_xorl, MCK_ImmSExt8, MCK_GR32 } },
    { X86::XOR32mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_xorl, MCK_ImmSExt8, MCK_Mem } },
    { X86::XOR32i32, Convert__Imm1_1, { MCK_xorl, MCK_Imm, MCK_EAX } },
    { X86::XOR32ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_xorl, MCK_Imm, MCK_GR32 } },
    { X86::XOR32mi, Convert__Mem5_2__Imm1_1, { MCK_xorl, MCK_Imm, MCK_Mem } },
    { X86::XOR32rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorl, MCK_Mem, MCK_GR32 } },
    { X86::FsXORPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorpd, MCK_FR32, MCK_FR32 } },
    { X86::XORPDrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorpd, MCK_FR32, MCK_FR32 } },
    { X86::FsXORPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorpd, MCK_Mem, MCK_FR32 } },
    { X86::XORPDrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorpd, MCK_Mem, MCK_FR32 } },
    { X86::FsXORPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorps, MCK_FR32, MCK_FR32 } },
    { X86::XORPSrr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorps, MCK_FR32, MCK_FR32 } },
    { X86::FsXORPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorps, MCK_Mem, MCK_FR32 } },
    { X86::XORPSrm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorps, MCK_Mem, MCK_FR32 } },
    { X86::XOR64rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorq, MCK_GR64, MCK_GR64 } },
    { X86::XOR64rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorq, MCK_GR64, MCK_GR64 } },
    { X86::XOR64mr, Convert__Mem5_2__Reg1_1, { MCK_xorq, MCK_GR64, MCK_Mem } },
    { X86::XOR64ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_xorq, MCK_ImmSExt8, MCK_GR64 } },
    { X86::XOR64mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_xorq, MCK_ImmSExt8, MCK_Mem } },
    { X86::XOR64i32, Convert__Imm1_1, { MCK_xorq, MCK_Imm, MCK_RAX } },
    { X86::XOR64ri32, Convert__Reg1_2__Tie0__Imm1_1, { MCK_xorq, MCK_Imm, MCK_GR64 } },
    { X86::XOR64mi32, Convert__Mem5_2__Imm1_1, { MCK_xorq, MCK_Imm, MCK_Mem } },
    { X86::XOR64rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorq, MCK_Mem, MCK_GR64 } },
    { X86::XOR16rr, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorw, MCK_GR16, MCK_GR16 } },
    { X86::XOR16rr_REV, Convert__Reg1_2__Tie0__Reg1_1, { MCK_xorw, MCK_GR16, MCK_GR16 } },
    { X86::XOR16mr, Convert__Mem5_2__Reg1_1, { MCK_xorw, MCK_GR16, MCK_Mem } },
    { X86::XOR16ri8, Convert__Reg1_2__Tie0__ImmSExt81_1, { MCK_xorw, MCK_ImmSExt8, MCK_GR16 } },
    { X86::XOR16mi8, Convert__Mem5_2__ImmSExt81_1, { MCK_xorw, MCK_ImmSExt8, MCK_Mem } },
    { X86::XOR16i16, Convert__Imm1_1, { MCK_xorw, MCK_Imm, MCK_AX } },
    { X86::XOR16ri, Convert__Reg1_2__Tie0__Imm1_1, { MCK_xorw, MCK_Imm, MCK_GR16 } },
    { X86::XOR16mi, Convert__Mem5_2__Imm1_1, { MCK_xorw, MCK_Imm, MCK_Mem } },
    { X86::XOR16rm, Convert__Reg1_2__Tie0__Mem5_1, { MCK_xorw, MCK_Mem, MCK_GR16 } },
    { X86::BLENDPDrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_blendpd, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::BLENDPDrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_blendpd, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::BLENDPSrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_blendps, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::BLENDPSrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_blendps, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::BLENDVPDrr0, Convert__Reg1_3__Tie0__Reg1_2, { MCK_blendvpd, MCK_XMM0, MCK_FR32, MCK_FR32 } },
    { X86::BLENDVPDrm0, Convert__Reg1_3__Tie0__Mem5_2, { MCK_blendvpd, MCK_XMM0, MCK_Mem, MCK_FR32 } },
    { X86::BLENDVPSrr0, Convert__Reg1_3__Tie0__Reg1_2, { MCK_blendvps, MCK_XMM0, MCK_FR32, MCK_FR32 } },
    { X86::BLENDVPSrm0, Convert__Reg1_3__Tie0__Mem5_2, { MCK_blendvps, MCK_XMM0, MCK_Mem, MCK_FR32 } },
    { X86::DPPDrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_dppd, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::DPPDrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_dppd, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::DPPSrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_dpps, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::DPPSrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_dpps, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::EXTRACTPSrr, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_extractps, MCK_ImmSExt8, MCK_FR32, MCK_GR32 } },
    { X86::EXTRACTPSmr, Convert__Mem5_3__Reg1_2__ImmSExt81_1, { MCK_extractps, MCK_ImmSExt8, MCK_FR32, MCK_Mem } },
    { X86::IMUL32rri8, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_imull, MCK_ImmSExt8, MCK_GR32, MCK_GR32 } },
    { X86::IMUL32rmi8, Convert__Reg1_3__Mem5_2__ImmSExt81_1, { MCK_imull, MCK_ImmSExt8, MCK_Mem, MCK_GR32 } },
    { X86::IMUL32rri, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_imull, MCK_Imm, MCK_GR32, MCK_GR32 } },
    { X86::IMUL32rmi, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_imull, MCK_Imm, MCK_Mem, MCK_GR32 } },
    { X86::IMUL64rri8, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_imulq, MCK_ImmSExt8, MCK_GR64, MCK_GR64 } },
    { X86::IMUL64rmi8, Convert__Reg1_3__Mem5_2__ImmSExt81_1, { MCK_imulq, MCK_ImmSExt8, MCK_Mem, MCK_GR64 } },
    { X86::IMUL64rri32, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_imulq, MCK_Imm, MCK_GR64, MCK_GR64 } },
    { X86::IMUL64rmi32, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_imulq, MCK_Imm, MCK_Mem, MCK_GR64 } },
    { X86::IMUL16rri8, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_imulw, MCK_ImmSExt8, MCK_GR16, MCK_GR16 } },
    { X86::IMUL16rmi8, Convert__Reg1_3__Mem5_2__ImmSExt81_1, { MCK_imulw, MCK_ImmSExt8, MCK_Mem, MCK_GR16 } },
    { X86::IMUL16rri, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_imulw, MCK_Imm, MCK_GR16, MCK_GR16 } },
    { X86::IMUL16rmi, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_imulw, MCK_Imm, MCK_Mem, MCK_GR16 } },
    { X86::INSERTPSrr, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_insertps, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::INSERTPSrm, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_insertps, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::MPSADBWrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_mpsadbw, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::MPSADBWrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_mpsadbw, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PALIGNR64rr, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_palignr, MCK_Imm, MCK_VR64, MCK_VR64 } },
    { X86::PALIGNR128rr, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_palignr, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PALIGNR64rm, Convert__Reg1_3__Tie0__Mem5_2__Imm1_1, { MCK_palignr, MCK_Imm, MCK_Mem, MCK_VR64 } },
    { X86::PALIGNR128rm, Convert__Reg1_3__Tie0__Mem5_2__Imm1_1, { MCK_palignr, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PBLENDVBrr0, Convert__Reg1_3__Tie0__Reg1_2, { MCK_pblendvb, MCK_XMM0, MCK_FR32, MCK_FR32 } },
    { X86::PBLENDVBrm0, Convert__Reg1_3__Tie0__Mem5_2, { MCK_pblendvb, MCK_XMM0, MCK_Mem, MCK_FR32 } },
    { X86::PBLENDWrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_pblendw, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::PBLENDWrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_pblendw, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRIArr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRICrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRIOrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRISrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRIZrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRIrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRIArm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRICrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRIOrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRISrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRIZrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRIrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPESTRM128rr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpestrm, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPESTRM128rm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpestrm, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRIArr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRICrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRIOrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRISrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRIZrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRIrr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRIArm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRICrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRIOrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRISrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRIZrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRIrm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PCMPISTRM128rr, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pcmpistrm, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRM128rm, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pcmpistrm, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PEXTRBrr, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_pextrb, MCK_ImmSExt8, MCK_FR32, MCK_GR32 } },
    { X86::PEXTRBmr, Convert__Mem5_3__Reg1_2__ImmSExt81_1, { MCK_pextrb, MCK_ImmSExt8, MCK_FR32, MCK_Mem } },
    { X86::PEXTRDrr, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_pextrd, MCK_ImmSExt8, MCK_FR32, MCK_GR32 } },
    { X86::PEXTRDmr, Convert__Mem5_3__Reg1_2__ImmSExt81_1, { MCK_pextrd, MCK_ImmSExt8, MCK_FR32, MCK_Mem } },
    { X86::PEXTRQrr, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_pextrq, MCK_ImmSExt8, MCK_FR32, MCK_GR64 } },
    { X86::PEXTRQmr, Convert__Mem5_3__Reg1_2__ImmSExt81_1, { MCK_pextrq, MCK_ImmSExt8, MCK_FR32, MCK_Mem } },
    { X86::MMX_PEXTRWri, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_pextrw, MCK_ImmSExt8, MCK_VR64, MCK_GR32 } },
    { X86::PEXTRWri, Convert__Reg1_3__Reg1_2__ImmSExt81_1, { MCK_pextrw, MCK_ImmSExt8, MCK_FR32, MCK_GR32 } },
    { X86::PEXTRWmr, Convert__Mem5_3__Reg1_2__ImmSExt81_1, { MCK_pextrw, MCK_ImmSExt8, MCK_FR32, MCK_Mem } },
    { X86::PINSRBrr, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_pinsrb, MCK_ImmSExt8, MCK_GR32, MCK_FR32 } },
    { X86::PINSRBrm, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_pinsrb, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PINSRDrr, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_pinsrd, MCK_ImmSExt8, MCK_GR32, MCK_FR32 } },
    { X86::PINSRDrm, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_pinsrd, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PINSRQrr, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_pinsrq, MCK_ImmSExt8, MCK_GR64, MCK_FR32 } },
    { X86::PINSRQrm, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_pinsrq, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PINSRWrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_GR32, MCK_VR64 } },
    { X86::PINSRWrri, Convert__Reg1_3__Tie0__Reg1_2__ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_GR32, MCK_FR32 } },
    { X86::MMX_PINSRWrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_Mem, MCK_VR64 } },
    { X86::PINSRWrmi, Convert__Reg1_3__Tie0__Mem5_2__ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PSHUFDri, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pshufd, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PSHUFDmi, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pshufd, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PSHUFHWri, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pshufhw, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PSHUFHWmi, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pshufhw, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PSHUFLWri, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pshuflw, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PSHUFLWmi, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pshuflw, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSHUFWri, Convert__Reg1_3__Reg1_2__Imm1_1, { MCK_pshufw, MCK_Imm, MCK_VR64, MCK_VR64 } },
    { X86::MMX_PSHUFWmi, Convert__Reg1_3__Mem5_2__Imm1_1, { MCK_pshufw, MCK_Imm, MCK_Mem, MCK_VR64 } },
    { X86::SHLD32rrCL, Convert__Reg1_3__Tie0__Reg1_2, { MCK_shldl, MCK_CL, MCK_GR32, MCK_GR32 } },
    { X86::SHLD32mrCL, Convert__Mem5_3__Reg1_2, { MCK_shldl, MCK_CL, MCK_GR32, MCK_Mem } },
    { X86::SHLD32rri8, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shldl, MCK_Imm, MCK_GR32, MCK_GR32 } },
    { X86::SHLD32mri8, Convert__Mem5_3__Reg1_2__Imm1_1, { MCK_shldl, MCK_Imm, MCK_GR32, MCK_Mem } },
    { X86::SHLD64rrCL, Convert__Reg1_3__Tie0__Reg1_2, { MCK_shldq, MCK_CL, MCK_GR64, MCK_GR64 } },
    { X86::SHLD64mrCL, Convert__Mem5_3__Reg1_2, { MCK_shldq, MCK_CL, MCK_GR64, MCK_Mem } },
    { X86::SHLD64rri8, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shldq, MCK_Imm, MCK_GR64, MCK_GR64 } },
    { X86::SHLD64mri8, Convert__Mem5_3__Reg1_2__Imm1_1, { MCK_shldq, MCK_Imm, MCK_GR64, MCK_Mem } },
    { X86::SHLD16rrCL, Convert__Reg1_3__Tie0__Reg1_2, { MCK_shldw, MCK_CL, MCK_GR16, MCK_GR16 } },
    { X86::SHLD16mrCL, Convert__Mem5_3__Reg1_2, { MCK_shldw, MCK_CL, MCK_GR16, MCK_Mem } },
    { X86::SHLD16rri8, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shldw, MCK_Imm, MCK_GR16, MCK_GR16 } },
    { X86::SHLD16mri8, Convert__Mem5_3__Reg1_2__Imm1_1, { MCK_shldw, MCK_Imm, MCK_GR16, MCK_Mem } },
    { X86::SHRD32rrCL, Convert__Reg1_3__Tie0__Reg1_2, { MCK_shrdl, MCK_CL, MCK_GR32, MCK_GR32 } },
    { X86::SHRD32mrCL, Convert__Mem5_3__Reg1_2, { MCK_shrdl, MCK_CL, MCK_GR32, MCK_Mem } },
    { X86::SHRD32rri8, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shrdl, MCK_Imm, MCK_GR32, MCK_GR32 } },
    { X86::SHRD32mri8, Convert__Mem5_3__Reg1_2__Imm1_1, { MCK_shrdl, MCK_Imm, MCK_GR32, MCK_Mem } },
    { X86::SHRD64rrCL, Convert__Reg1_3__Tie0__Reg1_2, { MCK_shrdq, MCK_CL, MCK_GR64, MCK_GR64 } },
    { X86::SHRD64mrCL, Convert__Mem5_3__Reg1_2, { MCK_shrdq, MCK_CL, MCK_GR64, MCK_Mem } },
    { X86::SHRD64rri8, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shrdq, MCK_Imm, MCK_GR64, MCK_GR64 } },
    { X86::SHRD64mri8, Convert__Mem5_3__Reg1_2__Imm1_1, { MCK_shrdq, MCK_Imm, MCK_GR64, MCK_Mem } },
    { X86::SHRD16rrCL, Convert__Reg1_3__Tie0__Reg1_2, { MCK_shrdw, MCK_CL, MCK_GR16, MCK_GR16 } },
    { X86::SHRD16mrCL, Convert__Mem5_3__Reg1_2, { MCK_shrdw, MCK_CL, MCK_GR16, MCK_Mem } },
    { X86::SHRD16rri8, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shrdw, MCK_Imm, MCK_GR16, MCK_GR16 } },
    { X86::SHRD16mri8, Convert__Mem5_3__Reg1_2__Imm1_1, { MCK_shrdw, MCK_Imm, MCK_GR16, MCK_Mem } },
    { X86::SHUFPDrri, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shufpd, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::SHUFPDrmi, Convert__Reg1_3__Tie0__Mem5_2__Imm1_1, { MCK_shufpd, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::SHUFPSrri, Convert__Reg1_3__Tie0__Reg1_2__Imm1_1, { MCK_shufps, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::SHUFPSrmi, Convert__Reg1_3__Tie0__Mem5_2__Imm1_1, { MCK_shufps, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::CMPPDrri, Convert__Reg1_4__Tie0__Reg1_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_pd, MCK_FR32, MCK_FR32 } },
    { X86::CMPPDrmi, Convert__Reg1_4__Tie0__Mem5_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_pd, MCK_Mem, MCK_FR32 } },
    { X86::CMPPSrri, Convert__Reg1_4__Tie0__Reg1_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_ps, MCK_FR32, MCK_FR32 } },
    { X86::CMPPSrmi, Convert__Reg1_4__Tie0__Mem5_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_ps, MCK_Mem, MCK_FR32 } },
    { X86::CMPSDrr, Convert__Reg1_4__Tie0__Reg1_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_sd, MCK_FR32, MCK_FR32 } },
    { X86::CMPSDrm, Convert__Reg1_4__Tie0__Mem5_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_sd, MCK_Mem, MCK_FR32 } },
    { X86::CMPSSrr, Convert__Reg1_4__Tie0__Reg1_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_ss, MCK_FR32, MCK_FR32 } },
    { X86::CMPSSrm, Convert__Reg1_4__Tie0__Mem5_3__Imm1_1, { MCK_cmp, MCK_Imm, MCK_ss, MCK_Mem, MCK_FR32 } },
  };

  // Eliminate obvious mismatches.
  if (Operands.size() > 5)
    return true;

  // Compute the class list for this operand vector.
  MatchClassKind Classes[5];
  for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
    Classes[i] = ClassifyOperand(Operands[i]);

    // Check for invalid operands before matching.
    if (Classes[i] == InvalidMatchClass)
      return true;
  }

  // Mark unused classes.
  for (unsigned i = Operands.size(), e = 5; i != e; ++i)
    Classes[i] = InvalidMatchClass;

  // Search the table.
  for (const MatchEntry *it = MatchTable, *ie = MatchTable + 2037; it != ie; ++it) {
    if (!IsSubclass(Classes[0], it->Classes[0]))
      continue;
    if (!IsSubclass(Classes[1], it->Classes[1]))
      continue;
    if (!IsSubclass(Classes[2], it->Classes[2]))
      continue;
    if (!IsSubclass(Classes[3], it->Classes[3]))
      continue;
    if (!IsSubclass(Classes[4], it->Classes[4]))
      continue;

    return ConvertToMCInst(it->ConvertFn, Inst, it->Opcode, Operands);
  }

  return true;
}

#endif // REGISTERS_ONLY