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

unsigned X86ATTAsmParser::MatchRegisterName(const 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 17;	 // "ds"
      case 'x':	 // 1 strings to match.
        return 18;	 // "dx"
      }
      break;
    case 'e':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return 27;	 // "es"
    case 'f':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return 37;	 // "fs"
    case 'g':	 // 1 strings to match.
      if (Name[1] != 's')
        break;
      return 38;	 // "gs"
    case 'i':	 // 1 strings to match.
      if (Name[1] != 'p')
        break;
      return 39;	 // "ip"
    case 'r':	 // 2 strings to match.
      switch (Name[1]) {
      default: break;
      case '8':	 // 1 strings to match.
        return 72;	 // "r8"
      case '9':	 // 1 strings to match.
        return 76;	 // "r9"
      }
      break;
    case 's':	 // 3 strings to match.
      switch (Name[1]) {
      default: break;
      case 'i':	 // 1 strings to match.
        return 89;	 // "si"
      case 'p':	 // 1 strings to match.
        return 91;	 // "sp"
      case 's':	 // 1 strings to match.
        return 93;	 // "ss"
      }
      break;
    }
    break;
  case 3:	 // 49 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':	 // 1 strings to match.
      if (Name.substr(1,2) != "il")
        break;
      return 15;	 // "dil"
    case 'e':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'a':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 19;	 // "eax"
      case 'b':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 1 strings to match.
          return 20;	 // "ebp"
        case 'x':	 // 1 strings to match.
          return 21;	 // "ebx"
        }
        break;
      case 'c':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 22;	 // "ecx"
      case 'd':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 23;	 // "edi"
        case 'x':	 // 1 strings to match.
          return 24;	 // "edx"
        }
        break;
      case 'i':	 // 1 strings to match.
        if (Name[2] != 'p')
          break;
        return 26;	 // "eip"
      case 's':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 28;	 // "esi"
        case 'p':	 // 1 strings to match.
          return 29;	 // "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 30;	 // "fp0"
      case '1':	 // 1 strings to match.
        return 31;	 // "fp1"
      case '2':	 // 1 strings to match.
        return 32;	 // "fp2"
      case '3':	 // 1 strings to match.
        return 33;	 // "fp3"
      case '4':	 // 1 strings to match.
        return 34;	 // "fp4"
      case '5':	 // 1 strings to match.
        return 35;	 // "fp5"
      case '6':	 // 1 strings to match.
        return 36;	 // "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 40;	 // "mm0"
      case '1':	 // 1 strings to match.
        return 41;	 // "mm1"
      case '2':	 // 1 strings to match.
        return 42;	 // "mm2"
      case '3':	 // 1 strings to match.
        return 43;	 // "mm3"
      case '4':	 // 1 strings to match.
        return 44;	 // "mm4"
      case '5':	 // 1 strings to match.
        return 45;	 // "mm5"
      case '6':	 // 1 strings to match.
        return 46;	 // "mm6"
      case '7':	 // 1 strings to match.
        return 47;	 // "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 48;	 // "r10"
        case '1':	 // 1 strings to match.
          return 52;	 // "r11"
        case '2':	 // 1 strings to match.
          return 56;	 // "r12"
        case '3':	 // 1 strings to match.
          return 60;	 // "r13"
        case '4':	 // 1 strings to match.
          return 64;	 // "r14"
        case '5':	 // 1 strings to match.
          return 68;	 // "r15"
        }
        break;
      case '8':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 73;	 // "r8b"
        case 'd':	 // 1 strings to match.
          return 74;	 // "r8d"
        case 'w':	 // 1 strings to match.
          return 75;	 // "r8w"
        }
        break;
      case '9':	 // 3 strings to match.
        switch (Name[2]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 77;	 // "r9b"
        case 'd':	 // 1 strings to match.
          return 78;	 // "r9d"
        case 'w':	 // 1 strings to match.
          return 79;	 // "r9w"
        }
        break;
      case 'a':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 80;	 // "rax"
      case 'b':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 1 strings to match.
          return 81;	 // "rbp"
        case 'x':	 // 1 strings to match.
          return 82;	 // "rbx"
        }
        break;
      case 'c':	 // 1 strings to match.
        if (Name[2] != 'x')
          break;
        return 83;	 // "rcx"
      case 'd':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 84;	 // "rdi"
        case 'x':	 // 1 strings to match.
          return 85;	 // "rdx"
        }
        break;
      case 'i':	 // 1 strings to match.
        if (Name[2] != 'p')
          break;
        return 86;	 // "rip"
      case 's':	 // 2 strings to match.
        switch (Name[2]) {
        default: break;
        case 'i':	 // 1 strings to match.
          return 87;	 // "rsi"
        case 'p':	 // 1 strings to match.
          return 88;	 // "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 90;	 // "sil"
      case 'p':	 // 1 strings to match.
        if (Name[2] != 'l')
          break;
        return 92;	 // "spl"
      }
      break;
    }
    break;
  case 4:	 // 38 strings to match.
    switch (Name[0]) {
    default: break;
    case 'r':	 // 18 strings to match.
      if (Name[1] != '1')
        break;
      switch (Name[2]) {
      default: break;
      case '0':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 49;	 // "r10b"
        case 'd':	 // 1 strings to match.
          return 50;	 // "r10d"
        case 'w':	 // 1 strings to match.
          return 51;	 // "r10w"
        }
        break;
      case '1':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 53;	 // "r11b"
        case 'd':	 // 1 strings to match.
          return 54;	 // "r11d"
        case 'w':	 // 1 strings to match.
          return 55;	 // "r11w"
        }
        break;
      case '2':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 57;	 // "r12b"
        case 'd':	 // 1 strings to match.
          return 58;	 // "r12d"
        case 'w':	 // 1 strings to match.
          return 59;	 // "r12w"
        }
        break;
      case '3':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 61;	 // "r13b"
        case 'd':	 // 1 strings to match.
          return 62;	 // "r13d"
        case 'w':	 // 1 strings to match.
          return 63;	 // "r13w"
        }
        break;
      case '4':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 65;	 // "r14b"
        case 'd':	 // 1 strings to match.
          return 66;	 // "r14d"
        case 'w':	 // 1 strings to match.
          return 67;	 // "r14w"
        }
        break;
      case '5':	 // 3 strings to match.
        switch (Name[3]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return 69;	 // "r15b"
        case 'd':	 // 1 strings to match.
          return 70;	 // "r15d"
        case 'w':	 // 1 strings to match.
          return 71;	 // "r15w"
        }
        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 102;	 // "xmm0"
      case '1':	 // 1 strings to match.
        return 103;	 // "xmm1"
      case '2':	 // 1 strings to match.
        return 110;	 // "xmm2"
      case '3':	 // 1 strings to match.
        return 111;	 // "xmm3"
      case '4':	 // 1 strings to match.
        return 112;	 // "xmm4"
      case '5':	 // 1 strings to match.
        return 113;	 // "xmm5"
      case '6':	 // 1 strings to match.
        return 114;	 // "xmm6"
      case '7':	 // 1 strings to match.
        return 115;	 // "xmm7"
      case '8':	 // 1 strings to match.
        return 116;	 // "xmm8"
      case '9':	 // 1 strings to match.
        return 117;	 // "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 118;	 // "ymm0"
      case '1':	 // 1 strings to match.
        return 119;	 // "ymm1"
      case '2':	 // 1 strings to match.
        return 126;	 // "ymm2"
      case '3':	 // 1 strings to match.
        return 127;	 // "ymm3"
      case '4':	 // 1 strings to match.
        return 128;	 // "ymm4"
      case '5':	 // 1 strings to match.
        return 129;	 // "ymm5"
      case '6':	 // 1 strings to match.
        return 130;	 // "ymm6"
      case '7':	 // 1 strings to match.
        return 131;	 // "ymm7"
      case '8':	 // 1 strings to match.
        return 132;	 // "ymm8"
      case '9':	 // 1 strings to match.
        return 133;	 // "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 25;	 // "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 94;	 // "st(0)"
      case '1':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 95;	 // "st(1)"
      case '2':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 96;	 // "st(2)"
      case '3':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 97;	 // "st(3)"
      case '4':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 98;	 // "st(4)"
      case '5':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 99;	 // "st(5)"
      case '6':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 100;	 // "st(6)"
      case '7':	 // 1 strings to match.
        if (Name[4] != ')')
          break;
        return 101;	 // "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 104;	 // "xmm10"
      case '1':	 // 1 strings to match.
        return 105;	 // "xmm11"
      case '2':	 // 1 strings to match.
        return 106;	 // "xmm12"
      case '3':	 // 1 strings to match.
        return 107;	 // "xmm13"
      case '4':	 // 1 strings to match.
        return 108;	 // "xmm14"
      case '5':	 // 1 strings to match.
        return 109;	 // "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 120;	 // "ymm10"
      case '1':	 // 1 strings to match.
        return 121;	 // "ymm11"
      case '2':	 // 1 strings to match.
        return 122;	 // "ymm12"
      case '3':	 // 1 strings to match.
        return 123;	 // "ymm13"
      case '4':	 // 1 strings to match.
        return 124;	 // "ymm14"
      case '5':	 // 1 strings to match.
        return 125;	 // "ymm15"
      }
      break;
    }
    break;
  }
  return 0;
}

// Unified function for converting operants to MCInst instances.

enum ConversionKind {
  Convert,
  ConvertImp,
  Convert_Reg1_1Imp,
  Convert_Imm1_1,
  Convert_Mem5_1,
  Convert_Reg1_1,
  Convert_Reg1_2_ImpReg1_1,
  Convert_Mem5_2_Reg1_1,
  Convert_Reg1_2_ImpImm1_1,
  Convert_Mem5_2_Imm1_1,
  Convert_Reg1_2_ImpMem5_1,
  Convert_Reg1_2_ImpImmSExt81_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_ImpReg1_2_Reg1_1,
  Convert_ImpReg1_2_Mem5_1,
  Convert_Imm1_1_Imm1_2,
  Convert_ImmSExt81_1,
  Convert_Reg1_2_Mem4_1,
  Convert_Imm1_2,
  Convert_ImmSExt81_2,
  Convert_Reg1_2Imp,
  Convert_Mem5_2ImpImpImpImpImp,
  Convert_Mem5_2_ImpImpImpImpImpImm1_1,
  Convert_ImpMem5_2_Reg1_1,
  Convert_Reg1_3_ImpReg1_2_ImmSExt81_1,
  Convert_Reg1_3_ImpMem5_2_ImmSExt81_1,
  Convert_Reg1_3_ImpReg1_2,
  Convert_Reg1_3_ImpMem5_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_ImpReg1_2_Imm1_1,
  Convert_Reg1_3_ImpMem5_2_Imm1_1,
  Convert_Mem5_3_Reg1_2,
  Convert_Mem5_3_Reg1_2_Imm1_1,
  Convert_Reg1_4_ImpReg1_3_Imm1_1,
  Convert_Reg1_4_ImpMem5_3_Imm1_1,
  NumConversionVariants
};

static bool ConvertToMCInst(ConversionKind Kind, MCInst &Inst, unsigned Opcode,
                            SmallVectorImpl<X86Operand> &Operands) {
  Inst.setOpcode(Opcode);
  switch (Kind) {
  default:
  case Convert:
    break;
  case ConvertImp:
    Inst.addOperand(MCOperand::CreateReg(0));
    break;
  case Convert_Reg1_1Imp:
    Operands[1].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    break;
  case Convert_Imm1_1:
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Mem5_1:
    Operands[1].addMemOperands(Inst, 5);
    break;
  case Convert_Reg1_1:
    Operands[1].addRegOperands(Inst, 1);
    break;
  case Convert_Reg1_2_ImpReg1_1:
    Operands[2].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[1].addRegOperands(Inst, 1);
    break;
  case Convert_Mem5_2_Reg1_1:
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addRegOperands(Inst, 1);
    break;
  case Convert_Reg1_2_ImpImm1_1:
    Operands[2].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Mem5_2_Imm1_1:
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Reg1_2_ImpMem5_1:
    Operands[2].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[1].addMemOperands(Inst, 5);
    break;
  case Convert_Reg1_2_ImpImmSExt81_1:
    Operands[2].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Mem5_2_ImmSExt81_1:
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_2_Reg1_1:
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addRegOperands(Inst, 1);
    break;
  case Convert_Reg1_2_Mem5_1:
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addMemOperands(Inst, 5);
    break;
  case Convert_Reg1_2_ImmSExt81_1:
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_2:
    Operands[2].addRegOperands(Inst, 1);
    break;
  case Convert_Mem5_2:
    Operands[2].addMemOperands(Inst, 5);
    break;
  case Convert_Reg1_2_Imm1_1:
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_ImpReg1_2_Reg1_1:
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addRegOperands(Inst, 1);
    break;
  case Convert_ImpReg1_2_Mem5_1:
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addMemOperands(Inst, 5);
    break;
  case Convert_Imm1_1_Imm1_2:
    Operands[1].addImmOperands(Inst, 1);
    Operands[2].addImmOperands(Inst, 1);
    break;
  case Convert_ImmSExt81_1:
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_2_Mem4_1:
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addMemOperands(Inst, 4);
    break;
  case Convert_Imm1_2:
    Operands[2].addImmOperands(Inst, 1);
    break;
  case Convert_ImmSExt81_2:
    Operands[2].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_2Imp:
    Operands[2].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    break;
  case Convert_Mem5_2ImpImpImpImpImp:
    Operands[2].addMemOperands(Inst, 5);
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    break;
  case Convert_Mem5_2_ImpImpImpImpImpImm1_1:
    Operands[2].addMemOperands(Inst, 5);
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_ImpMem5_2_Reg1_1:
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addRegOperands(Inst, 1);
    break;
  case Convert_Reg1_3_ImpReg1_2_ImmSExt81_1:
    Operands[3].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_3_ImpMem5_2_ImmSExt81_1:
    Operands[3].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_3_ImpReg1_2:
    Operands[3].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addRegOperands(Inst, 1);
    break;
  case Convert_Reg1_3_ImpMem5_2:
    Operands[3].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addMemOperands(Inst, 5);
    break;
  case Convert_Reg1_3_Reg1_2_ImmSExt81_1:
    Operands[3].addRegOperands(Inst, 1);
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Mem5_3_Reg1_2_ImmSExt81_1:
    Operands[3].addMemOperands(Inst, 5);
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_3_Mem5_2_ImmSExt81_1:
    Operands[3].addRegOperands(Inst, 1);
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addImmSExt8Operands(Inst, 1);
    break;
  case Convert_Reg1_3_Reg1_2_Imm1_1:
    Operands[3].addRegOperands(Inst, 1);
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Reg1_3_Mem5_2_Imm1_1:
    Operands[3].addRegOperands(Inst, 1);
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Reg1_3_ImpReg1_2_Imm1_1:
    Operands[3].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Reg1_3_ImpMem5_2_Imm1_1:
    Operands[3].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[2].addMemOperands(Inst, 5);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Mem5_3_Reg1_2:
    Operands[3].addMemOperands(Inst, 5);
    Operands[2].addRegOperands(Inst, 1);
    break;
  case Convert_Mem5_3_Reg1_2_Imm1_1:
    Operands[3].addMemOperands(Inst, 5);
    Operands[2].addRegOperands(Inst, 1);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Reg1_4_ImpReg1_3_Imm1_1:
    Operands[4].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[3].addRegOperands(Inst, 1);
    Operands[1].addImmOperands(Inst, 1);
    break;
  case Convert_Reg1_4_ImpMem5_3_Imm1_1:
    Operands[4].addRegOperands(Inst, 1);
    Inst.addOperand(MCOperand::CreateReg(0));
    Operands[3].addMemOperands(Inst, 5);
    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_btl, // 'btl'
  MCK_btq, // 'btq'
  MCK_btw, // 'btw'
  MCK_call, // 'call'
  MCK_cbtw, // 'cbtw'
  MCK_clflush, // 'clflush'
  MCK_cltd, // 'cltd'
  MCK_cltq, // 'cltq'
  MCK_cmova, // 'cmova'
  MCK_cmovae, // 'cmovae'
  MCK_cmovb, // 'cmovb'
  MCK_cmovbe, // 'cmovbe'
  MCK_cmove, // 'cmove'
  MCK_cmovg, // 'cmovg'
  MCK_cmovge, // 'cmovge'
  MCK_cmovl, // 'cmovl'
  MCK_cmovle, // 'cmovle'
  MCK_cmovne, // 'cmovne'
  MCK_cmovno, // 'cmovno'
  MCK_cmovnp, // 'cmovnp'
  MCK_cmovns, // 'cmovns'
  MCK_cmovo, // 'cmovo'
  MCK_cmovp, // 'cmovp'
  MCK_cmovs, // 'cmovs'
  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_comisd, // 'comisd'
  MCK_cqto, // 'cqto'
  MCK_crc32, // 'crc32'
  MCK_cvtdq2pd, // 'cvtdq2pd'
  MCK_cvtdq2ps, // 'cvtdq2ps'
  MCK_cvtpd2dq, // 'cvtpd2dq'
  MCK_cvtpd2pi, // 'cvtpd2pi'
  MCK_cvtpi2pd, // 'cvtpi2pd'
  MCK_cvtpi2ps, // 'cvtpi2ps'
  MCK_cvtps2dq, // 'cvtps2dq'
  MCK_cvtps2pi, // 'cvtps2pi'
  MCK_cvtsd2ss, // 'cvtsd2ss'
  MCK_cvtsi2sd, // 'cvtsi2sd'
  MCK_cvtsi2sdq, // 'cvtsi2sdq'
  MCK_cvtsi2ss, // 'cvtsi2ss'
  MCK_cvtsi2ssq, // 'cvtsi2ssq'
  MCK_cvtss2sd, // 'cvtss2sd'
  MCK_cvttpd2pi, // 'cvttpd2pi'
  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_emms, // 'emms'
  MCK_enter, // 'enter'
  MCK_extractps, // 'extractps'
  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_fcomp, // 'fcomp'
  MCK_fcos, // 'fcos'
  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_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_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_flds, // 'flds'
  MCK_fldt, // 'fldt'
  MCK_fldz, // 'fldz'
  MCK_fmul, // 'fmul'
  MCK_fmull, // 'fmull'
  MCK_fmulp, // 'fmulp'
  MCK_fmuls, // 'fmuls'
  MCK_fnstcw, // 'fnstcw'
  MCK_fnstsw, // 'fnstsw'
  MCK_frstor, // 'frstor'
  MCK_fsave, // 'fsave'
  MCK_fsin, // 'fsin'
  MCK_fsqrt, // 'fsqrt'
  MCK_fst, // 'fst'
  MCK_fstenv, // 'fstenv'
  MCK_fstl, // 'fstl'
  MCK_fstp, // 'fstp'
  MCK_fstpl, // 'fstpl'
  MCK_fstps, // 'fstps'
  MCK_fstpt, // 'fstpt'
  MCK_fsts, // 'fsts'
  MCK_fstsw, // 'fstsw'
  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_fxch, // 'fxch'
  MCK_haddpd, // 'haddpd'
  MCK_haddps, // 'haddps'
  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_insertps, // 'insertps'
  MCK_int, // 'int'
  MCK_inw, // 'inw'
  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_leal, // 'leal'
  MCK_leaq, // 'leaq'
  MCK_leave, // 'leave'
  MCK_leaw, // 'leaw'
  MCK_lfence, // 'lfence'
  MCK_ljmpl, // 'ljmpl'
  MCK_ljmpq, // 'ljmpq'
  MCK_ljmpw, // 'ljmpw'
  MCK_lodsb, // 'lodsb'
  MCK_lodsd, // 'lodsd'
  MCK_lodsq, // 'lodsq'
  MCK_lodsw, // 'lodsw'
  MCK_loop, // 'loop'
  MCK_loope, // 'loope'
  MCK_loopne, // 'loopne'
  MCK_lret, // 'lret'
  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_movsbl, // 'movsbl'
  MCK_movsbq, // 'movsbq'
  MCK_movsd, // 'movsd'
  MCK_movshdup, // 'movshdup'
  MCK_movsldup, // 'movsldup'
  MCK_movslq, // 'movslq'
  MCK_movss, // 'movss'
  MCK_movswl, // 'movswl'
  MCK_movswq, // 'movswq'
  MCK_movupd, // 'movupd'
  MCK_movups, // 'movups'
  MCK_movw, // 'movw'
  MCK_movzbl, // 'movzbl'
  MCK_movzwl, // 'movzwl'
  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_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_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_popf, // 'popf'
  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_pushf, // 'pushf'
  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_rdtsc, // 'rdtsc'
  MCK_rep_59_movsb, // 'rep;movsb'
  MCK_rep_59_movsl, // 'rep;movsl'
  MCK_rep_59_movsq, // 'rep;movsq'
  MCK_rep_59_movsw, // 'rep;movsw'
  MCK_rep_59_stosb, // 'rep;stosb'
  MCK_rep_59_stosl, // 'rep;stosl'
  MCK_rep_59_stosq, // 'rep;stosq'
  MCK_rep_59_stosw, // 'rep;stosw'
  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_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_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_sqrtpd, // 'sqrtpd'
  MCK_sqrtps, // 'sqrtps'
  MCK_sqrtsd, // 'sqrtsd'
  MCK_sqrtss, // 'sqrtss'
  MCK_ss, // 'ss'
  MCK_stmxcsr, // 'stmxcsr'
  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_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_wait, // 'wait'
  MCK_xchg, // 'xchg'
  MCK_xchgb, // 'xchgb'
  MCK_xchgl, // 'xchgl'
  MCK_xchgw, // 'xchgw'
  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_NOSP, // register class 'GR32_NOSP'
  MCK_GR32_NOREX, // register class 'GR32_NOREX'
  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_SEGMENT_REG, // register class 'SEGMENT_REG'
  MCK_ImmSExt8, // user defined class 'ImmSExt8AsmOperand'
  MCK_Imm, // user defined class 'ImmAsmOperand'
  MCK_Mem, // user defined class 'X86MemAsmOperand'
  NumMatchClassKinds
};

}

static MatchClassKind MatchTokenString(const 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:	 // 12 strings to match.
    switch (Name[0]) {
    default: break;
    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:	 // 27 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':	 // 1 strings to match.
      if (Name.substr(1,2) != "mp")
        break;
      return MCK_cmp;	 // "cmp"
    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 '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':	 // 1 strings to match.
      if (Name.substr(1,2) != "et")
        break;
      return MCK_ret;	 // "ret"
    case 'u':	 // 1 strings to match.
      if (Name.substr(1,2) != "d2")
        break;
      return MCK_ud2;	 // "ud2"
    }
    break;
  case 4:	 // 156 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':	 // 6 strings to match.
      if (Name[1] != 's')
        break;
      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 'c':	 // 11 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':	 // 2 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"
        }
        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':	 // 20 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 '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':	 // 1 strings to match.
        if (Name.substr(2,2) != "ch")
          break;
        return MCK_fxch;	 // "fxch"
      }
      break;
    case 'i':	 // 4 strings to match.
      if (Name.substr(1,2) != "nc")
        break;
      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 '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':	 // 9 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 'e':	 // 3 strings to match.
        if (Name[2] != 'a')
          break;
        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 'o':	 // 1 strings to match.
        if (Name.substr(2,2) != "op")
          break;
        return MCK_loop;	 // "loop"
      case 'r':	 // 1 strings to match.
        if (Name.substr(2,2) != "et")
          break;
        return MCK_lret;	 // "lret"
      }
      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':	 // 9 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':	 // 5 strings to match.
        switch (Name[2]) {
        default: break;
        case 'p':	 // 1 strings to match.
          if (Name[3] != 'l')
            break;
          return MCK_nopl;	 // "nopl"
        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':	 // 6 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':	 // 4 strings to match.
        if (Name[2] != 'p')
          break;
        switch (Name[3]) {
        default: break;
        case 'f':	 // 1 strings to match.
          return MCK_popf;	 // "popf"
        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':	 // 29 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 '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 '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 'w':	 // 1 strings to match.
      if (Name.substr(1,3) != "ait")
        break;
      return MCK_wait;	 // "wait"
    case 'x':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 1 strings to match.
        if (Name.substr(2,2) != "hg")
          break;
        return MCK_xchg;	 // "xchg"
      case 'o':	 // 4 strings to match.
        if (Name[2] != 'r')
          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;
    }
    break;
  case 5:	 // 147 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':	 // 13 strings to match.
      switch (Name[1]) {
      default: break;
      case 'm':	 // 12 strings to match.
        switch (Name[2]) {
        default: break;
        case 'o':	 // 8 strings to match.
          if (Name[3] != 'v')
            break;
          switch (Name[4]) {
          default: break;
          case 'a':	 // 1 strings to match.
            return MCK_cmova;	 // "cmova"
          case 'b':	 // 1 strings to match.
            return MCK_cmovb;	 // "cmovb"
          case 'e':	 // 1 strings to match.
            return MCK_cmove;	 // "cmove"
          case 'g':	 // 1 strings to match.
            return MCK_cmovg;	 // "cmovg"
          case 'l':	 // 1 strings to match.
            return MCK_cmovl;	 // "cmovl"
          case 'o':	 // 1 strings to match.
            return MCK_cmovo;	 // "cmovo"
          case 'p':	 // 1 strings to match.
            return MCK_cmovp;	 // "cmovp"
          case 's':	 // 1 strings to match.
            return MCK_cmovs;	 // "cmovs"
          }
          break;
        case 'p':	 // 4 strings to match.
          if (Name[3] != 's')
            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;
        }
        break;
      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':	 // 29 strings to match.
      switch (Name[1]) {
      default: break;
      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':	 // 1 strings to match.
        if (Name.substr(2,3) != "omp")
          break;
        return MCK_fcomp;	 // "fcomp"
      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 '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':	 // 1 strings to match.
        if (Name.substr(2,3) != "dcw")
          break;
        return MCK_fldcw;	 // "fldcw"
      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 's':	 // 10 strings to match.
        switch (Name[2]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name.substr(3,2) != "ve")
            break;
          return MCK_fsave;	 // "fsave"
        case 'q':	 // 1 strings to match.
          if (Name.substr(3,2) != "rt")
            break;
          return MCK_fsqrt;	 // "fsqrt"
        case 't':	 // 4 strings to match.
          switch (Name[3]) {
          default: break;
          case 'p':	 // 3 strings to match.
            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 's':	 // 1 strings to match.
            if (Name[4] != 'w')
              break;
            return MCK_fstsw;	 // "fstsw"
          }
          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"
      }
      break;
    case 'i':	 // 8 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;
      }
      break;
    case 'l':	 // 10 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 '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 'd':	 // 1 strings to match.
            return MCK_lodsd;	 // "lodsd"
          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':	 // 15 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':	 // 2 strings to match.
        if (Name.substr(2,2) != "vs")
          break;
        switch (Name[4]) {
        default: break;
        case 'd':	 // 1 strings to match.
          return MCK_movsd;	 // "movsd"
        case 's':	 // 1 strings to match.
          return MCK_movss;	 // "movss"
        }
        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 'p':	 // 27 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 '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':	 // 4 strings to match.
        if (Name.substr(2,2) != "sh")
          break;
        switch (Name[4]) {
        default: break;
        case 'f':	 // 1 strings to match.
          return MCK_pushf;	 // "pushf"
        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':	 // 3 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':	 // 1 strings to match.
        if (Name.substr(2,3) != "tsc")
          break;
        return MCK_rdtsc;	 // "rdtsc"
      }
      break;
    case 's':	 // 22 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 '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 'x':	 // 5 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 3 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 'w':	 // 1 strings to match.
          return MCK_xchgw;	 // "xchgw"
        }
        break;
      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:	 // 120 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':	 // 9 strings to match.
      switch (Name[1]) {
      default: break;
      case 'm':	 // 8 strings to match.
        if (Name.substr(2,2) != "ov")
          break;
        switch (Name[4]) {
        default: break;
        case 'a':	 // 1 strings to match.
          if (Name[5] != 'e')
            break;
          return MCK_cmovae;	 // "cmovae"
        case 'b':	 // 1 strings to match.
          if (Name[5] != 'e')
            break;
          return MCK_cmovbe;	 // "cmovbe"
        case 'g':	 // 1 strings to match.
          if (Name[5] != 'e')
            break;
          return MCK_cmovge;	 // "cmovge"
        case 'l':	 // 1 strings to match.
          if (Name[5] != 'e')
            break;
          return MCK_cmovle;	 // "cmovle"
        case 'n':	 // 4 strings to match.
          switch (Name[5]) {
          default: break;
          case 'e':	 // 1 strings to match.
            return MCK_cmovne;	 // "cmovne"
          case 'o':	 // 1 strings to match.
            return MCK_cmovno;	 // "cmovno"
          case 'p':	 // 1 strings to match.
            return MCK_cmovnp;	 // "cmovnp"
          case 's':	 // 1 strings to match.
            return MCK_cmovns;	 // "cmovns"
          }
          break;
        }
        break;
      case 'o':	 // 1 strings to match.
        if (Name.substr(2,4) != "misd")
          break;
        return MCK_comisd;	 // "comisd"
      }
      break;
    case 'f':	 // 29 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 3 strings to match.
        if (Name.substr(2,3) != "mov")
          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 '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':	 // 1 strings to match.
        if (Name.substr(2,4) != "denv")
          break;
        return MCK_fldenv;	 // "fldenv"
      case 'n':	 // 2 strings to match.
        if (Name.substr(2,2) != "st")
          break;
        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;
      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 't':	 // 1 strings to match.
          if (Name.substr(3,3) != "env")
            break;
          return MCK_fstenv;	 // "fstenv"
        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;
      }
      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 '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':	 // 20 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':	 // 19 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':	 // 5 strings to match.
          switch (Name[4]) {
          default: break;
          case 'b':	 // 2 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"
            }
            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':	 // 2 strings to match.
          switch (Name[4]) {
          default: break;
          case 'b':	 // 1 strings to match.
            if (Name[5] != 'l')
              break;
            return MCK_movzbl;	 // "movzbl"
          case 'w':	 // 1 strings to match.
            if (Name[5] != 'l')
              break;
            return MCK_movzwl;	 // "movzwl"
          }
          break;
        }
        break;
      }
      break;
    case 'p':	 // 41 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;
      }
      break;
    case 's':	 // 8 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 'y':	 // 1 strings to match.
        if (Name.substr(2,4) != "sret")
          break;
        return MCK_sysret;	 // "sysret"
      }
      break;
    }
    break;
  case 7:	 // 58 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':	 // 1 strings to match.
      if (Name.substr(1,6) != "lflush")
        break;
      return MCK_clflush;	 // "clflush"
    case 'f':	 // 15 strings to match.
      switch (Name[1]) {
      default: break;
      case 'c':	 // 4 strings to match.
        if (Name.substr(2,3) != "mov")
          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 'i':	 // 9 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 '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 '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;
      }
      break;
    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':	 // 21 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 '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;
    }
    break;
  case 8:	 // 49 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':	 // 12 strings to match.
      if (Name.substr(1,2) != "vt")
        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':	 // 6 strings to match.
        switch (Name[4]) {
        default: break;
        case 'd':	 // 2 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':	 // 1 strings to match.
            if (Name[7] != 'i')
              break;
            return MCK_cvtpd2pi;	 // "cvtpd2pi"
          }
          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':	 // 2 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':	 // 1 strings to match.
            if (Name[7] != 'i')
              break;
            return MCK_cvtps2pi;	 // "cvtps2pi"
          }
          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;
    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;
    }
    break;
  case 9:	 // 26 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 6 strings to match.
      if (Name.substr(1,2) != "vt")
        break;
      switch (Name[3]) {
      default: break;
      case 's':	 // 2 strings to match.
        if (Name.substr(4,3) != "i2s")
          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 't':	 // 4 strings to match.
        switch (Name[4]) {
        default: break;
        case 'p':	 // 2 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':	 // 1 strings to match.
            if (Name.substr(6,3) != "2pi")
              break;
            return MCK_cvttps2pi;	 // "cvttps2pi"
          }
          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;
    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':	 // 8 strings to match.
      if (Name.substr(1,3) != "ep;")
        break;
      switch (Name[4]) {
      default: break;
      case 'm':	 // 4 strings to match.
        if (Name.substr(5,3) != "ovs")
          break;
        switch (Name[8]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_rep_59_movsb;	 // "rep;movsb"
        case 'l':	 // 1 strings to match.
          return MCK_rep_59_movsl;	 // "rep;movsl"
        case 'q':	 // 1 strings to match.
          return MCK_rep_59_movsq;	 // "rep;movsq"
        case 'w':	 // 1 strings to match.
          return MCK_rep_59_movsw;	 // "rep;movsw"
        }
        break;
      case 's':	 // 4 strings to match.
        if (Name.substr(5,3) != "tos")
          break;
        switch (Name[8]) {
        default: break;
        case 'b':	 // 1 strings to match.
          return MCK_rep_59_stosb;	 // "rep;stosb"
        case 'l':	 // 1 strings to match.
          return MCK_rep_59_stosl;	 // "rep;stosl"
        case 'q':	 // 1 strings to match.
          return MCK_rep_59_stosq;	 // "rep;stosq"
        case 'w':	 // 1 strings to match.
          return MCK_rep_59_stosw;	 // "rep;stosw"
        }
        break;
      }
      break;
    }
    break;
  case 10:	 // 9 strings to match.
    switch (Name[0]) {
    default: break;
    case 'c':	 // 2 strings to match.
      if (Name.substr(1,4) != "vtts")
        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;
    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(X86Operand &Operand) {
  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_NOREX;
    case X86::DIL: return MCK_GR8_NOREX;
    case X86::BPL: return MCK_GR8_NOREX;
    case X86::SPL: return MCK_GR8_NOREX;
    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_SEGMENT_REG;
    case X86::GS: return MCK_SEGMENT_REG;
    }
  }

  // '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;
  }

  // '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_NOSP: return true;
    case MCK_GR32_NOREX: 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_NOSP: return true;
    case MCK_GR32_NOREX: return true;
    case MCK_GR32: return true;
    }

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

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

  case MCK_GR32_NOSP:
    return B == MCK_GR32;

  case MCK_GR32_NOREX:
    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_ImmSExt8:
    return B == MCK_Imm;
  }
}

bool X86ATTAsmParser::MatchInstruction(SmallVectorImpl<X86Operand> &Operands, MCInst &Inst) {
  static const struct MatchEntry {
    unsigned Opcode;
    ConversionKind ConvertFn;
    MatchClassKind Classes[5];
  } MatchTable[1775] = {
    { X86::CBW, Convert, { MCK_cbtw } },
    { X86::CDQ, Convert, { MCK_cltd } },
    { X86::CDQE, Convert, { MCK_cltq } },
    { X86::CMPS8, Convert, { MCK_cmpsb } },
    { X86::CMPS32, Convert, { MCK_cmpsl } },
    { X86::CMPS64, Convert, { MCK_cmpsq } },
    { X86::CMPS16, Convert, { MCK_cmpsw } },
    { X86::CQO, Convert, { MCK_cqto } },
    { X86::CWD, Convert, { MCK_cwtd } },
    { X86::CWDE, Convert, { MCK_cwtl } },
    { X86::MMX_EMMS, Convert, { MCK_emms } },
    { X86::ABS_F, Convert, { MCK_fabs } },
    { X86::CHS_F, Convert, { MCK_fchs } },
    { X86::COS_F, Convert, { MCK_fcos } },
    { X86::MMX_FEMMS, Convert, { MCK_femms } },
    { X86::LD_F1, Convert, { MCK_fld1 } },
    { X86::LD_F0, Convert, { MCK_fldz } },
    { X86::FNSTSW8r, Convert, { MCK_fnstsw } },
    { X86::SIN_F, Convert, { MCK_fsin } },
    { X86::SQRT_F, Convert, { MCK_fsqrt } },
    { X86::TST_F, Convert, { MCK_ftst } },
    { X86::UCOM_FPPr, Convert, { MCK_fucompp } },
    { X86::LAHF, Convert, { MCK_lahf } },
    { X86::LEAVE, Convert, { MCK_leave } },
    { X86::LEAVE64, Convert, { MCK_leave } },
    { X86::LFENCE, Convert, { MCK_lfence } },
    { X86::LODSB, Convert, { MCK_lodsb } },
    { X86::LODSD, Convert, { MCK_lodsd } },
    { 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::MWAIT, Convert, { MCK_mwait } },
    { X86::NOOP, Convert, { MCK_nop } },
    { X86::POPFD, Convert, { MCK_popf } },
    { X86::POPFQ, Convert, { MCK_popf } },
    { X86::PUSHFD, Convert, { MCK_pushf } },
    { X86::PUSHFQ, Convert, { MCK_pushf } },
    { X86::RDTSC, Convert, { MCK_rdtsc } },
    { X86::REP_MOVSB, Convert, { MCK_rep_59_movsb } },
    { X86::REP_MOVSD, Convert, { MCK_rep_59_movsl } },
    { X86::REP_MOVSQ, Convert, { MCK_rep_59_movsq } },
    { X86::REP_MOVSW, Convert, { MCK_rep_59_movsw } },
    { X86::REP_STOSB, Convert, { MCK_rep_59_stosb } },
    { X86::REP_STOSD, Convert, { MCK_rep_59_stosl } },
    { X86::REP_STOSQ, Convert, { MCK_rep_59_stosq } },
    { X86::REP_STOSW, Convert, { MCK_rep_59_stosw } },
    { X86::EH_RETURN64, ConvertImp, { MCK_ret } },
    { X86::RET, Convert, { MCK_ret } },
    { 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::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::WAIT, Convert, { MCK_wait } },
    { X86::BSWAP32r, Convert_Reg1_1Imp, { MCK_bswapl, MCK_GR32 } },
    { X86::BSWAP64r, Convert_Reg1_1Imp, { MCK_bswapq, MCK_GR64 } },
    { X86::WINCALL64pcrel32, Convert_Imm1_1, { MCK_call, MCK_Imm } },
    { X86::CALL64pcrel32, Convert_Imm1_1, { MCK_call, MCK_Imm } },
    { X86::CALLpcrel32, Convert_Imm1_1, { MCK_call, MCK_Imm } },
    { X86::CLFLUSH, Convert_Mem5_1, { MCK_clflush, MCK_Mem } },
    { X86::DEC8r, Convert_Reg1_1Imp, { MCK_decb, MCK_GR8 } },
    { X86::DEC8m, Convert_Mem5_1, { MCK_decb, MCK_Mem } },
    { X86::DEC32r, Convert_Reg1_1Imp, { MCK_decl, MCK_GR32 } },
    { X86::DEC64_32r, Convert_Reg1_1Imp, { MCK_decl, MCK_GR32 } },
    { X86::DEC64_32m, Convert_Mem5_1, { MCK_decl, MCK_Mem } },
    { X86::DEC32m, Convert_Mem5_1, { MCK_decl, MCK_Mem } },
    { X86::DEC64r, Convert_Reg1_1Imp, { MCK_decq, MCK_GR64 } },
    { X86::DEC64m, Convert_Mem5_1, { MCK_decq, MCK_Mem } },
    { X86::DEC64_16r, Convert_Reg1_1Imp, { MCK_decw, MCK_GR16 } },
    { X86::DEC16r, Convert_Reg1_1Imp, { MCK_decw, MCK_GR16 } },
    { X86::DEC64_16m, Convert_Mem5_1, { MCK_decw, MCK_Mem } },
    { X86::DEC16m, 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::FCOM32m, Convert_Mem5_1, { MCK_fcom, MCK_Mem } },
    { X86::FCOM64m, Convert_Mem5_1, { MCK_fcom, MCK_Mem } },
    { X86::FCOMP32m, Convert_Mem5_1, { MCK_fcomp, MCK_Mem } },
    { X86::FCOMP64m, Convert_Mem5_1, { MCK_fcomp, 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::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::FISTTP32m, Convert_Mem5_1, { MCK_fisttpl, 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::FNSTCW16m, Convert_Mem5_1, { MCK_fnstcw, MCK_Mem } },
    { X86::FRSTORm, Convert_Mem5_1, { MCK_frstor, MCK_Mem } },
    { X86::FSAVEm, Convert_Mem5_1, { MCK_fsave, MCK_Mem } },
    { X86::ST_Frr, Convert_Reg1_1, { MCK_fst, MCK_RST } },
    { X86::FSTENVm, Convert_Mem5_1, { MCK_fstenv, MCK_Mem } },
    { 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::FSTSWm, Convert_Mem5_1, { MCK_fstsw, 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::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_1Imp, { MCK_incb, MCK_GR8 } },
    { X86::INC8m, Convert_Mem5_1, { MCK_incb, MCK_Mem } },
    { X86::INC64_32r, Convert_Reg1_1Imp, { MCK_incl, MCK_GR32 } },
    { X86::INC32r, Convert_Reg1_1Imp, { 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_1Imp, { MCK_incq, MCK_GR64 } },
    { X86::INC64m, Convert_Mem5_1, { MCK_incq, MCK_Mem } },
    { X86::INC16r, Convert_Reg1_1Imp, { MCK_incw, MCK_GR16 } },
    { X86::INC64_16r, Convert_Reg1_1Imp, { 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::JA8, Convert_Imm1_1, { MCK_ja, MCK_Imm } },
    { X86::JA, Convert_Imm1_1, { MCK_ja, MCK_Imm } },
    { X86::JAE8, Convert_Imm1_1, { MCK_jae, MCK_Imm } },
    { X86::JAE, Convert_Imm1_1, { MCK_jae, MCK_Imm } },
    { X86::JB8, Convert_Imm1_1, { MCK_jb, MCK_Imm } },
    { X86::JB, Convert_Imm1_1, { MCK_jb, MCK_Imm } },
    { X86::JBE, Convert_Imm1_1, { MCK_jbe, MCK_Imm } },
    { X86::JBE8, Convert_Imm1_1, { MCK_jbe, MCK_Imm } },
    { X86::JCXZ8, Convert_Imm1_1, { MCK_jcxz, MCK_Imm } },
    { X86::JE, Convert_Imm1_1, { MCK_je, MCK_Imm } },
    { X86::JE8, Convert_Imm1_1, { MCK_je, MCK_Imm } },
    { X86::JG, Convert_Imm1_1, { MCK_jg, MCK_Imm } },
    { X86::JG8, Convert_Imm1_1, { MCK_jg, MCK_Imm } },
    { X86::JGE, Convert_Imm1_1, { MCK_jge, MCK_Imm } },
    { X86::JGE8, Convert_Imm1_1, { MCK_jge, MCK_Imm } },
    { X86::JL, Convert_Imm1_1, { MCK_jl, MCK_Imm } },
    { X86::JL8, Convert_Imm1_1, { MCK_jl, MCK_Imm } },
    { X86::JLE, Convert_Imm1_1, { MCK_jle, MCK_Imm } },
    { X86::JLE8, Convert_Imm1_1, { MCK_jle, MCK_Imm } },
    { X86::TAILJMPd, Convert_Imm1_1, { MCK_jmp, MCK_Imm } },
    { X86::JMP, Convert_Imm1_1, { MCK_jmp, MCK_Imm } },
    { X86::JMP8, Convert_Imm1_1, { MCK_jmp, MCK_Imm } },
    { X86::JNE, Convert_Imm1_1, { MCK_jne, MCK_Imm } },
    { X86::JNE8, Convert_Imm1_1, { MCK_jne, MCK_Imm } },
    { X86::JNO, Convert_Imm1_1, { MCK_jno, MCK_Imm } },
    { X86::JNO8, Convert_Imm1_1, { MCK_jno, MCK_Imm } },
    { X86::JNP, Convert_Imm1_1, { MCK_jnp, MCK_Imm } },
    { X86::JNP8, Convert_Imm1_1, { MCK_jnp, MCK_Imm } },
    { X86::JNS, Convert_Imm1_1, { MCK_jns, MCK_Imm } },
    { X86::JNS8, Convert_Imm1_1, { MCK_jns, MCK_Imm } },
    { X86::JO8, Convert_Imm1_1, { MCK_jo, MCK_Imm } },
    { X86::JO, Convert_Imm1_1, { MCK_jo, MCK_Imm } },
    { X86::JP8, Convert_Imm1_1, { MCK_jp, MCK_Imm } },
    { X86::JP, Convert_Imm1_1, { MCK_jp, MCK_Imm } },
    { X86::JS, Convert_Imm1_1, { MCK_js, MCK_Imm } },
    { X86::JS8, Convert_Imm1_1, { MCK_js, MCK_Imm } },
    { X86::LDMXCSR, Convert_Mem5_1, { MCK_ldmxcsr, MCK_Mem } },
    { X86::LOOP, Convert_Imm1_1, { MCK_loop, MCK_Imm } },
    { X86::LOOPE, Convert_Imm1_1, { MCK_loope, MCK_Imm } },
    { X86::LOOPNE, Convert_Imm1_1, { MCK_loopne, MCK_Imm } },
    { X86::LRETI, Convert_Imm1_1, { MCK_lret, MCK_Imm } },
    { 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_1Imp, { MCK_negb, MCK_GR8 } },
    { X86::NEG8m, Convert_Mem5_1, { MCK_negb, MCK_Mem } },
    { X86::NEG32r, Convert_Reg1_1Imp, { MCK_negl, MCK_GR32 } },
    { X86::NEG32m, Convert_Mem5_1, { MCK_negl, MCK_Mem } },
    { X86::NEG64r, Convert_Reg1_1Imp, { MCK_negq, MCK_GR64 } },
    { X86::NEG64m, Convert_Mem5_1, { MCK_negq, MCK_Mem } },
    { X86::NEG16r, Convert_Reg1_1Imp, { MCK_negw, MCK_GR16 } },
    { X86::NEG16m, Convert_Mem5_1, { MCK_negw, MCK_Mem } },
    { X86::NOOPL, Convert_Mem5_1, { MCK_nopl, MCK_Mem } },
    { X86::NOT8r, Convert_Reg1_1Imp, { MCK_notb, MCK_GR8 } },
    { X86::NOT8m, Convert_Mem5_1, { MCK_notb, MCK_Mem } },
    { X86::NOT32r, Convert_Reg1_1Imp, { MCK_notl, MCK_GR32 } },
    { X86::NOT32m, Convert_Mem5_1, { MCK_notl, MCK_Mem } },
    { X86::NOT64r, Convert_Reg1_1Imp, { MCK_notq, MCK_GR64 } },
    { X86::NOT64m, Convert_Mem5_1, { MCK_notq, MCK_Mem } },
    { X86::NOT16r, Convert_Reg1_1Imp, { MCK_notw, MCK_GR16 } },
    { X86::NOT16m, Convert_Mem5_1, { MCK_notw, MCK_Mem } },
    { X86::POP32rmr, Convert_Reg1_1, { MCK_popl, MCK_GR32 } },
    { X86::POP32r, Convert_Reg1_1, { MCK_popl, MCK_GR32 } },
    { 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::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::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::PUSH32i8, Convert_Imm1_1, { MCK_pushl, MCK_Imm } },
    { X86::PUSH32i32, Convert_Imm1_1, { MCK_pushl, MCK_Imm } },
    { X86::PUSH32i16, 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::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::PUSH16rmr, Convert_Reg1_1, { MCK_pushw, MCK_GR16 } },
    { X86::PUSH16r, Convert_Reg1_1, { MCK_pushw, MCK_GR16 } },
    { X86::PUSH16rmm, Convert_Mem5_1, { MCK_pushw, MCK_Mem } },
    { X86::RETI, Convert_Imm1_1, { MCK_ret, MCK_Imm } },
    { X86::ROL8r1, Convert_Reg1_1Imp, { MCK_rolb, MCK_GR8 } },
    { X86::ROL8m1, Convert_Mem5_1, { MCK_rolb, MCK_Mem } },
    { X86::ROL32r1, Convert_Reg1_1Imp, { MCK_roll, MCK_GR32 } },
    { X86::ROL32m1, Convert_Mem5_1, { MCK_roll, MCK_Mem } },
    { X86::ROL64r1, Convert_Reg1_1Imp, { MCK_rolq, MCK_GR64 } },
    { X86::ROL64m1, Convert_Mem5_1, { MCK_rolq, MCK_Mem } },
    { X86::ROL16r1, Convert_Reg1_1Imp, { MCK_rolw, MCK_GR16 } },
    { X86::ROL16m1, Convert_Mem5_1, { MCK_rolw, MCK_Mem } },
    { X86::ROR8r1, Convert_Reg1_1Imp, { MCK_rorb, MCK_GR8 } },
    { X86::ROR8m1, Convert_Mem5_1, { MCK_rorb, MCK_Mem } },
    { X86::ROR32r1, Convert_Reg1_1Imp, { MCK_rorl, MCK_GR32 } },
    { X86::ROR32m1, Convert_Mem5_1, { MCK_rorl, MCK_Mem } },
    { X86::ROR64r1, Convert_Reg1_1Imp, { MCK_rorq, MCK_GR64 } },
    { X86::ROR64m1, Convert_Mem5_1, { MCK_rorq, MCK_Mem } },
    { X86::ROR16r1, Convert_Reg1_1Imp, { MCK_rorw, MCK_GR16 } },
    { X86::ROR16m1, Convert_Mem5_1, { MCK_rorw, MCK_Mem } },
    { X86::SAR8r1, Convert_Reg1_1Imp, { MCK_sarb, MCK_GR8 } },
    { X86::SAR8m1, Convert_Mem5_1, { MCK_sarb, MCK_Mem } },
    { X86::SAR32r1, Convert_Reg1_1Imp, { MCK_sarl, MCK_GR32 } },
    { X86::SAR32m1, Convert_Mem5_1, { MCK_sarl, MCK_Mem } },
    { X86::SAR64r1, Convert_Reg1_1Imp, { MCK_sarq, MCK_GR64 } },
    { X86::SAR64m1, Convert_Mem5_1, { MCK_sarq, MCK_Mem } },
    { X86::SAR16r1, Convert_Reg1_1Imp, { 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::SHL8r1, Convert_Reg1_1Imp, { MCK_shlb, MCK_GR8 } },
    { X86::SHL8m1, Convert_Mem5_1, { MCK_shlb, MCK_Mem } },
    { X86::SHL32r1, Convert_Reg1_1Imp, { MCK_shll, MCK_GR32 } },
    { X86::SHL32m1, Convert_Mem5_1, { MCK_shll, MCK_Mem } },
    { X86::SHL64m1, Convert_Mem5_1, { MCK_shlq, MCK_Mem } },
    { X86::SHL16r1, Convert_Reg1_1Imp, { MCK_shlw, MCK_GR16 } },
    { X86::SHL16m1, Convert_Mem5_1, { MCK_shlw, MCK_Mem } },
    { X86::SHR8r1, Convert_Reg1_1Imp, { MCK_shrb, MCK_GR8 } },
    { X86::SHR8m1, Convert_Mem5_1, { MCK_shrb, MCK_Mem } },
    { X86::SHR32r1, Convert_Reg1_1Imp, { MCK_shrl, MCK_GR32 } },
    { X86::SHR32m1, Convert_Mem5_1, { MCK_shrl, MCK_Mem } },
    { X86::SHR64r1, Convert_Reg1_1Imp, { MCK_shrq, MCK_GR64 } },
    { X86::SHL64r1, Convert_Reg1_1Imp, { MCK_shrq, MCK_GR64 } },
    { X86::SHR64m1, Convert_Mem5_1, { MCK_shrq, MCK_Mem } },
    { X86::SHR16r1, Convert_Reg1_1Imp, { MCK_shrw, MCK_GR16 } },
    { X86::SHR16m1, Convert_Mem5_1, { MCK_shrw, MCK_Mem } },
    { X86::STMXCSR, Convert_Mem5_1, { MCK_stmxcsr, MCK_Mem } },
    { X86::ADC8rr, Convert_Reg1_2_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_adcb, MCK_Mem, MCK_GR8 } },
    { X86::ADC32rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_adcl, MCK_Mem, MCK_GR32 } },
    { X86::ADC64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_adcq, MCK_Mem, MCK_GR64 } },
    { X86::ADC16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_adcw, MCK_Mem, MCK_GR16 } },
    { X86::ADD8mrmrr, Convert_Reg1_2_ImpReg1_1, { MCK_addb, MCK_GR8, MCK_GR8 } },
    { X86::ADD8rr, Convert_Reg1_2_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_addb, MCK_Mem, MCK_GR8 } },
    { X86::ADD32mrmrr, Convert_Reg1_2_ImpReg1_1, { MCK_addl, MCK_GR16, MCK_GR16 } },
    { X86::ADD32rr, Convert_Reg1_2_ImpReg1_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_ImpReg1_1, { MCK_addl, MCK_GR64, MCK_GR64 } },
    { X86::ADD32ri8, Convert_Reg1_2_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_addl, MCK_Mem, MCK_GR32 } },
    { X86::ADDPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_addpd, MCK_FR32, MCK_FR32 } },
    { X86::ADDPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_addpd, MCK_Mem, MCK_FR32 } },
    { X86::ADDPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_addps, MCK_FR32, MCK_FR32 } },
    { X86::ADDPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_addps, MCK_Mem, MCK_FR32 } },
    { X86::ADD64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_addq, MCK_Mem, MCK_GR64 } },
    { X86::ADDSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_addsd, MCK_FR32, MCK_FR32 } },
    { X86::ADDSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_addsd, MCK_Mem, MCK_FR32 } },
    { X86::ADDSSrr, Convert_Reg1_2_ImpReg1_1, { MCK_addss, MCK_FR32, MCK_FR32 } },
    { X86::ADDSSrm, Convert_Reg1_2_ImpMem5_1, { MCK_addss, MCK_Mem, MCK_FR32 } },
    { X86::ADDSUBPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_addsubpd, MCK_FR32, MCK_FR32 } },
    { X86::ADDSUBPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_addsubpd, MCK_Mem, MCK_FR32 } },
    { X86::ADDSUBPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_addsubps, MCK_FR32, MCK_FR32 } },
    { X86::ADDSUBPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_addsubps, MCK_Mem, MCK_FR32 } },
    { X86::ADD16mrmrr, Convert_Reg1_2_ImpReg1_1, { MCK_addw, MCK_GR16, MCK_GR16 } },
    { X86::ADD16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_addw, MCK_Mem, MCK_GR16 } },
    { X86::AND8rr, Convert_Reg1_2_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_andb, MCK_Mem, MCK_GR8 } },
    { X86::AND32rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_andl, MCK_Mem, MCK_GR32 } },
    { X86::ANDNPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_andnpd, MCK_FR32, MCK_FR32 } },
    { X86::FsANDNPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_andnpd, MCK_FR32, MCK_FR32 } },
    { X86::FsANDNPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_andnpd, MCK_Mem, MCK_FR32 } },
    { X86::ANDNPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_andnpd, MCK_Mem, MCK_FR32 } },
    { X86::FsANDNPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_andnps, MCK_FR32, MCK_FR32 } },
    { X86::ANDNPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_andnps, MCK_FR32, MCK_FR32 } },
    { X86::FsANDNPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_andnps, MCK_Mem, MCK_FR32 } },
    { X86::ANDNPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_andnps, MCK_Mem, MCK_FR32 } },
    { X86::FsANDPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_andpd, MCK_FR32, MCK_FR32 } },
    { X86::ANDPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_andpd, MCK_FR32, MCK_FR32 } },
    { X86::FsANDPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_andpd, MCK_Mem, MCK_FR32 } },
    { X86::ANDPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_andpd, MCK_Mem, MCK_FR32 } },
    { X86::ANDPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_andps, MCK_FR32, MCK_FR32 } },
    { X86::FsANDPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_andps, MCK_FR32, MCK_FR32 } },
    { X86::ANDPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_andps, MCK_Mem, MCK_FR32 } },
    { X86::FsANDPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_andps, MCK_Mem, MCK_FR32 } },
    { X86::AND64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_andq, MCK_Mem, MCK_GR64 } },
    { X86::AND16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_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::BT32rr, Convert_Reg1_2_Reg1_1, { MCK_btl, MCK_GR32, MCK_GR32 } },
    { 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::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::BT16rr, Convert_Reg1_2_Reg1_1, { MCK_btw, MCK_GR16, MCK_GR16 } },
    { 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::CALL64r, Convert_Reg1_2, { MCK_call, MCK__STAR_, MCK_GR64 } },
    { X86::WINCALL64r, Convert_Reg1_2, { MCK_call, MCK__STAR_, MCK_GR64 } },
    { X86::CALL64m, Convert_Mem5_2, { MCK_call, MCK__STAR_, MCK_Mem } },
    { X86::WINCALL64m, Convert_Mem5_2, { MCK_call, MCK__STAR_, MCK_Mem } },
    { X86::CALL32m, Convert_Mem5_2, { MCK_call, MCK__STAR_, MCK_Mem } },
    { X86::CMOVA16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmova, MCK_GR16, MCK_GR16 } },
    { X86::CMOVA32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmova, MCK_GR32, MCK_GR32 } },
    { X86::CMOVA64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmova, MCK_GR64, MCK_GR64 } },
    { X86::CMOVA16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmova, MCK_Mem, MCK_GR16 } },
    { X86::CMOVA32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmova, MCK_Mem, MCK_GR32 } },
    { X86::CMOVA64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmova, MCK_Mem, MCK_GR64 } },
    { X86::CMOVAE16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovae, MCK_GR16, MCK_GR16 } },
    { X86::CMOVAE32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovae, MCK_GR32, MCK_GR32 } },
    { X86::CMOVAE64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovae, MCK_GR64, MCK_GR64 } },
    { X86::CMOVAE16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovae, MCK_Mem, MCK_GR16 } },
    { X86::CMOVAE32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovae, MCK_Mem, MCK_GR32 } },
    { X86::CMOVAE64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovae, MCK_Mem, MCK_GR64 } },
    { X86::CMOVB16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovb, MCK_GR16, MCK_GR16 } },
    { X86::CMOVB32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovb, MCK_GR32, MCK_GR32 } },
    { X86::CMOVB64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovb, MCK_GR64, MCK_GR64 } },
    { X86::CMOVB16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovb, MCK_Mem, MCK_GR16 } },
    { X86::CMOVB32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovb, MCK_Mem, MCK_GR32 } },
    { X86::CMOVB64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovb, MCK_Mem, MCK_GR64 } },
    { X86::CMOVBE16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovbe, MCK_GR16, MCK_GR16 } },
    { X86::CMOVBE32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovbe, MCK_GR32, MCK_GR32 } },
    { X86::CMOVBE64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovbe, MCK_GR64, MCK_GR64 } },
    { X86::CMOVBE16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovbe, MCK_Mem, MCK_GR16 } },
    { X86::CMOVBE32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovbe, MCK_Mem, MCK_GR32 } },
    { X86::CMOVBE64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovbe, MCK_Mem, MCK_GR64 } },
    { X86::CMOVE16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmove, MCK_GR16, MCK_GR16 } },
    { X86::CMOVE32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmove, MCK_GR32, MCK_GR32 } },
    { X86::CMOVE64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmove, MCK_GR64, MCK_GR64 } },
    { X86::CMOVE16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmove, MCK_Mem, MCK_GR16 } },
    { X86::CMOVE32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmove, MCK_Mem, MCK_GR32 } },
    { X86::CMOVE64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmove, MCK_Mem, MCK_GR64 } },
    { X86::CMOVG16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovg, MCK_GR16, MCK_GR16 } },
    { X86::CMOVG32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovg, MCK_GR32, MCK_GR32 } },
    { X86::CMOVG64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovg, MCK_GR64, MCK_GR64 } },
    { X86::CMOVG16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovg, MCK_Mem, MCK_GR16 } },
    { X86::CMOVG32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovg, MCK_Mem, MCK_GR32 } },
    { X86::CMOVG64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovg, MCK_Mem, MCK_GR64 } },
    { X86::CMOVGE16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovge, MCK_GR16, MCK_GR16 } },
    { X86::CMOVGE32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovge, MCK_GR32, MCK_GR32 } },
    { X86::CMOVGE64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovge, MCK_GR64, MCK_GR64 } },
    { X86::CMOVGE16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovge, MCK_Mem, MCK_GR16 } },
    { X86::CMOVGE32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovge, MCK_Mem, MCK_GR32 } },
    { X86::CMOVGE64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovge, MCK_Mem, MCK_GR64 } },
    { X86::CMOVL16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovl, MCK_GR16, MCK_GR16 } },
    { X86::CMOVL32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovl, MCK_GR32, MCK_GR32 } },
    { X86::CMOVL64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovl, MCK_GR64, MCK_GR64 } },
    { X86::CMOVL16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovl, MCK_Mem, MCK_GR16 } },
    { X86::CMOVL32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovl, MCK_Mem, MCK_GR32 } },
    { X86::CMOVL64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovl, MCK_Mem, MCK_GR64 } },
    { X86::CMOVLE16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovle, MCK_GR16, MCK_GR16 } },
    { X86::CMOVLE32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovle, MCK_GR32, MCK_GR32 } },
    { X86::CMOVLE64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovle, MCK_GR64, MCK_GR64 } },
    { X86::CMOVLE16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovle, MCK_Mem, MCK_GR16 } },
    { X86::CMOVLE32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovle, MCK_Mem, MCK_GR32 } },
    { X86::CMOVLE64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovle, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNE16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovne, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNE32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovne, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNE64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovne, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNE16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovne, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNE32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovne, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNE64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovne, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNO16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovno, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNO32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovno, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNO64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovno, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNO16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovno, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNO32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovno, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNO64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovno, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNP16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovnp, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNP32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovnp, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNP64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovnp, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNP16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovnp, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNP32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovnp, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNP64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovnp, MCK_Mem, MCK_GR64 } },
    { X86::CMOVNS16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovns, MCK_GR16, MCK_GR16 } },
    { X86::CMOVNS32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovns, MCK_GR32, MCK_GR32 } },
    { X86::CMOVNS64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovns, MCK_GR64, MCK_GR64 } },
    { X86::CMOVNS16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovns, MCK_Mem, MCK_GR16 } },
    { X86::CMOVNS32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovns, MCK_Mem, MCK_GR32 } },
    { X86::CMOVNS64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovns, MCK_Mem, MCK_GR64 } },
    { X86::CMOVO16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovo, MCK_GR16, MCK_GR16 } },
    { X86::CMOVO32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovo, MCK_GR32, MCK_GR32 } },
    { X86::CMOVO64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovo, MCK_GR64, MCK_GR64 } },
    { X86::CMOVO16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovo, MCK_Mem, MCK_GR16 } },
    { X86::CMOVO32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovo, MCK_Mem, MCK_GR32 } },
    { X86::CMOVO64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovo, MCK_Mem, MCK_GR64 } },
    { X86::CMOVP16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovp, MCK_GR16, MCK_GR16 } },
    { X86::CMOVP32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovp, MCK_GR32, MCK_GR32 } },
    { X86::CMOVP64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovp, MCK_GR64, MCK_GR64 } },
    { X86::CMOVP16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovp, MCK_Mem, MCK_GR16 } },
    { X86::CMOVP32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovp, MCK_Mem, MCK_GR32 } },
    { X86::CMOVP64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovp, MCK_Mem, MCK_GR64 } },
    { X86::CMOVS16rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovs, MCK_GR16, MCK_GR16 } },
    { X86::CMOVS32rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovs, MCK_GR32, MCK_GR32 } },
    { X86::CMOVS64rr, Convert_Reg1_2_ImpReg1_1, { MCK_cmovs, MCK_GR64, MCK_GR64 } },
    { X86::CMOVS16rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovs, MCK_Mem, MCK_GR16 } },
    { X86::CMOVS32rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovs, MCK_Mem, MCK_GR32 } },
    { X86::CMOVS64rm, Convert_Reg1_2_ImpMem5_1, { MCK_cmovs, MCK_Mem, MCK_GR64 } },
    { 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::CMP32rr, Convert_Reg1_2_Reg1_1, { MCK_cmpl, MCK_GR32, MCK_GR32 } },
    { X86::CMP32mrmrr, 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::CMP64rr, Convert_Reg1_2_Reg1_1, { MCK_cmpq, MCK_GR64, MCK_GR64 } },
    { X86::CMP64mrmrr, 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::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::CRC32r8, Convert_ImpReg1_2_Reg1_1, { MCK_crc32, MCK_GR8, MCK_GR32 } },
    { X86::CRC32r16, Convert_ImpReg1_2_Reg1_1, { MCK_crc32, MCK_GR16, MCK_GR32 } },
    { X86::CRC32r32, Convert_ImpReg1_2_Reg1_1, { MCK_crc32, MCK_GR32, MCK_GR32 } },
    { X86::CRC64r64, Convert_ImpReg1_2_Reg1_1, { MCK_crc32, MCK_GR64, MCK_GR64 } },
    { X86::CRC32m8, Convert_ImpReg1_2_Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR32 } },
    { X86::CRC32m32, Convert_ImpReg1_2_Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR32 } },
    { X86::CRC32m16, Convert_ImpReg1_2_Mem5_1, { MCK_crc32, MCK_Mem, MCK_GR32 } },
    { X86::CRC64m64, Convert_ImpReg1_2_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::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::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::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::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::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_ImpReg1_1, { MCK_divpd, MCK_FR32, MCK_FR32 } },
    { X86::DIVPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_divpd, MCK_Mem, MCK_FR32 } },
    { X86::DIVPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_divps, MCK_FR32, MCK_FR32 } },
    { X86::DIVPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_divps, MCK_Mem, MCK_FR32 } },
    { X86::DIVSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_divsd, MCK_FR32, MCK_FR32 } },
    { X86::DIVSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_divsd, MCK_Mem, MCK_FR32 } },
    { X86::DIVSSrr, Convert_Reg1_2_ImpReg1_1, { MCK_divss, MCK_FR32, MCK_FR32 } },
    { X86::DIVSSrm, Convert_Reg1_2_ImpMem5_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::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_ImpReg1_1, { MCK_haddpd, MCK_FR32, MCK_FR32 } },
    { X86::HADDPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_haddpd, MCK_Mem, MCK_FR32 } },
    { X86::HADDPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_haddps, MCK_FR32, MCK_FR32 } },
    { X86::HADDPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_haddps, MCK_Mem, MCK_FR32 } },
    { X86::HSUBPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_hsubpd, MCK_FR32, MCK_FR32 } },
    { X86::HSUBPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_hsubpd, MCK_Mem, MCK_FR32 } },
    { X86::HSUBPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_hsubps, MCK_FR32, MCK_FR32 } },
    { X86::HSUBPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_hsubps, MCK_Mem, MCK_FR32 } },
    { X86::IMUL32rr, Convert_Reg1_2_ImpReg1_1, { MCK_imull, MCK_GR32, MCK_GR32 } },
    { X86::IMUL32rm, Convert_Reg1_2_ImpMem5_1, { MCK_imull, MCK_Mem, MCK_GR32 } },
    { X86::IMUL64rr, Convert_Reg1_2_ImpReg1_1, { MCK_imulq, MCK_GR64, MCK_GR64 } },
    { X86::IMUL64rm, Convert_Reg1_2_ImpMem5_1, { MCK_imulq, MCK_Mem, MCK_GR64 } },
    { X86::IMUL16rr, Convert_Reg1_2_ImpReg1_1, { MCK_imulw, MCK_GR16, MCK_GR16 } },
    { X86::IMUL16rm, Convert_Reg1_2_ImpMem5_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::TAILJMPr, Convert_Reg1_2, { MCK_jmpl, MCK__STAR_, MCK_GR32 } },
    { X86::JMP32r, Convert_Reg1_2, { MCK_jmpl, MCK__STAR_, MCK_GR32 } },
    { X86::JMP32m, Convert_Mem5_2, { MCK_jmpl, MCK__STAR_, MCK_Mem } },
    { X86::TAILJMPr64, Convert_Reg1_2, { MCK_jmpq, MCK__STAR_, MCK_GR64 } },
    { X86::JMP64r, 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::LEA64_32r, Convert_Reg1_2_Mem4_1, { MCK_leal, MCK_Mem, MCK_GR32 } },
    { X86::LEA32r, 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_Mem4_1, { MCK_leaw, 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::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_MASKMOVQ64, Convert_Reg1_2_Reg1_1, { MCK_maskmovq, MCK_VR64, MCK_VR64 } },
    { X86::MMX_MASKMOVQ, Convert_Reg1_2_Reg1_1, { MCK_maskmovq, MCK_VR64, MCK_VR64 } },
    { X86::MAXPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_maxpd, MCK_FR32, MCK_FR32 } },
    { X86::MAXPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_maxpd, MCK_Mem, MCK_FR32 } },
    { X86::MAXPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_maxps, MCK_FR32, MCK_FR32 } },
    { X86::MAXPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_maxps, MCK_Mem, MCK_FR32 } },
    { X86::MAXSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_maxsd, MCK_FR32, MCK_FR32 } },
    { X86::MAXSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_maxsd, MCK_Mem, MCK_FR32 } },
    { X86::MAXSSrr, Convert_Reg1_2_ImpReg1_1, { MCK_maxss, MCK_FR32, MCK_FR32 } },
    { X86::MAXSSrm, Convert_Reg1_2_ImpMem5_1, { MCK_maxss, MCK_Mem, MCK_FR32 } },
    { X86::MINPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_minpd, MCK_FR32, MCK_FR32 } },
    { X86::MINPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_minpd, MCK_Mem, MCK_FR32 } },
    { X86::MINPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_minps, MCK_FR32, MCK_FR32 } },
    { X86::MINPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_minps, MCK_Mem, MCK_FR32 } },
    { X86::MINSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_minsd, MCK_FR32, MCK_FR32 } },
    { X86::MINSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_minsd, MCK_Mem, MCK_FR32 } },
    { X86::MINSSrr, Convert_Reg1_2_ImpReg1_1, { MCK_minss, MCK_FR32, MCK_FR32 } },
    { X86::MINSSrm, Convert_Reg1_2_ImpMem5_1, { MCK_minss, MCK_Mem, MCK_FR32 } },
    { X86::MOV64ri, Convert_Reg1_2_Imm1_1, { MCK_movabsq, MCK_Imm, MCK_GR64 } },
    { X86::MOVAPDrr, Convert_Reg1_2_Reg1_1, { MCK_movapd, MCK_FR32, MCK_FR32 } },
    { X86::FsMOVAPDrr, 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::MOVAPSrm, Convert_Reg1_2_Mem5_1, { MCK_movaps, MCK_Mem, MCK_FR32 } },
    { X86::FsMOVAPSrm, Convert_Reg1_2_Mem5_1, { MCK_movaps, MCK_Mem, MCK_FR32 } },
    { X86::MOV8ao8, Convert_Imm1_2, { MCK_movb, MCK_AL, MCK_Imm } },
    { 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::MOV8mr, Convert_Mem5_2_Reg1_1, { MCK_movb, MCK_GR8, MCK_Mem } },
    { X86::MOV8o8a, Convert_Imm1_1, { MCK_movb, MCK_Imm, MCK_AL } },
    { 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::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_MOVZDI2PDIrr, Convert_Reg1_2_Reg1_1, { MCK_movd, MCK_GR32, MCK_VR64 } },
    { X86::MMX_MOVD64rr, 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::MOV64toSDrr, Convert_Reg1_2_Reg1_1, { MCK_movd, MCK_GR64, MCK_FR32 } },
    { X86::MOV64toPQIrr, 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_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::MOVSS2DIrr, Convert_Reg1_2_Reg1_1, { MCK_movd, MCK_FR32, MCK_GR32 } },
    { X86::MOVPDI2DIrr, Convert_Reg1_2_Reg1_1, { MCK_movd, MCK_FR32, MCK_GR32 } },
    { X86::MOVSDto64rr, Convert_Reg1_2_Reg1_1, { MCK_movd, MCK_FR32, MCK_GR64 } },
    { X86::MOVPQIto64rr, 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_MOVZDI2PDIrm, Convert_Reg1_2_Mem5_1, { MCK_movd, MCK_Mem, MCK_VR64 } },
    { X86::MMX_MOVD64rm, Convert_Reg1_2_Mem5_1, { MCK_movd, MCK_Mem, MCK_VR64 } },
    { X86::MOVZDI2PDIrm, Convert_Reg1_2_Mem5_1, { MCK_movd, MCK_Mem, MCK_FR32 } },
    { 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::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_ImpReg1_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_ImpMem5_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_ImpMem5_1, { MCK_movhps, MCK_Mem, MCK_FR32 } },
    { X86::MOV32ao32, Convert_Imm1_2, { MCK_movl, MCK_EAX, MCK_Imm } },
    { X86::MOV32rr, Convert_Reg1_2_Reg1_1, { MCK_movl, MCK_GR32, MCK_GR32 } },
    { X86::MOV32mr, Convert_Mem5_2_Reg1_1, { MCK_movl, MCK_GR32, MCK_Mem } },
    { X86::MOV32o32a, Convert_Imm1_1, { MCK_movl, MCK_Imm, MCK_EAX } },
    { 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::MOV32rm, Convert_Reg1_2_Mem5_1, { MCK_movl, MCK_Mem, MCK_GR32 } },
    { X86::MOVLHPSrr, Convert_Reg1_2_ImpReg1_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_ImpMem5_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_ImpMem5_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::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::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::MOV64ao8, Convert_Imm1_2, { MCK_movq, MCK_RAX, MCK_Imm } },
    { X86::MOV64ao32, Convert_Imm1_2, { MCK_movq, MCK_RAX, MCK_Imm } },
    { X86::MOV64rr, Convert_Reg1_2_Reg1_1, { MCK_movq, MCK_GR64, MCK_GR64 } },
    { 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_MOVQ64mr, Convert_Mem5_2_Reg1_1, { MCK_movq, MCK_VR64, MCK_Mem } },
    { X86::MOVZPQILo2PQIrr, Convert_Reg1_2_Reg1_1, { MCK_movq, MCK_FR32, MCK_FR32 } },
    { X86::MOVSDto64mr, 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::MOVLQ128mr, Convert_Mem5_2_Reg1_1, { MCK_movq, MCK_FR32, MCK_Mem } },
    { X86::MOV64o8a, Convert_Imm1_1, { MCK_movq, MCK_Imm, MCK_RAX } },
    { X86::MOV64o32a, Convert_Imm1_1, { MCK_movq, MCK_Imm, MCK_RAX } },
    { 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::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::MOVZQI2PQIrm, 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::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::MOVSDrr, Convert_Reg1_2_Reg1_1, { MCK_movsd, MCK_FR32, MCK_FR32 } },
    { X86::MOVPD2SDrr, Convert_Reg1_2_Reg1_1, { MCK_movsd, MCK_FR32, MCK_FR32 } },
    { X86::MOVLSD2PDrr, Convert_Reg1_2_ImpReg1_1, { MCK_movsd, MCK_FR32, MCK_FR32 } },
    { X86::MOVLPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_movsd, MCK_FR32, MCK_FR32 } },
    { X86::MOVSD2PDrr, Convert_Reg1_2_Reg1_1, { MCK_movsd, MCK_FR32, MCK_FR32 } },
    { X86::MOVPD2SDmr, Convert_Mem5_2_Reg1_1, { MCK_movsd, MCK_FR32, MCK_Mem } },
    { X86::MOVSDmr, Convert_Mem5_2_Reg1_1, { MCK_movsd, MCK_FR32, MCK_Mem } },
    { X86::MOVSD2PDrm, Convert_Reg1_2_Mem5_1, { MCK_movsd, MCK_Mem, MCK_FR32 } },
    { X86::MOVSDrm, Convert_Reg1_2_Mem5_1, { MCK_movsd, MCK_Mem, MCK_FR32 } },
    { X86::MOVZSD2PDrm, 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::MOVSS2PSrr, Convert_Reg1_2_Reg1_1, { MCK_movss, MCK_FR32, MCK_FR32 } },
    { X86::MOVSSrr, Convert_Reg1_2_Reg1_1, { MCK_movss, MCK_FR32, MCK_FR32 } },
    { X86::MOVLPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_movss, MCK_FR32, MCK_FR32 } },
    { X86::MOVLSS2PSrr, Convert_Reg1_2_ImpReg1_1, { MCK_movss, MCK_FR32, MCK_FR32 } },
    { X86::MOVPS2SSrr, Convert_Reg1_2_Reg1_1, { MCK_movss, MCK_FR32, MCK_FR32 } },
    { X86::MOVSSmr, Convert_Mem5_2_Reg1_1, { MCK_movss, MCK_FR32, MCK_Mem } },
    { X86::MOVPS2SSmr, 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::MOVSS2PSrm, Convert_Reg1_2_Mem5_1, { MCK_movss, MCK_Mem, MCK_FR32 } },
    { X86::MOVZSS2PSrm, 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_Imm1_2, { MCK_movw, MCK_AX, MCK_Imm } },
    { X86::MOV16rr, 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::MOV64sr, Convert_Reg1_2_Reg1_1, { MCK_movw, MCK_GR64, MCK_SEGMENT_REG } },
    { X86::MOV16rs, Convert_Reg1_2_Reg1_1, { MCK_movw, MCK_SEGMENT_REG, MCK_GR16 } },
    { X86::MOV64rs, Convert_Reg1_2_Reg1_1, { MCK_movw, MCK_SEGMENT_REG, MCK_GR64 } },
    { X86::MOV16ms, Convert_Mem5_2_Reg1_1, { MCK_movw, MCK_SEGMENT_REG, MCK_Mem } },
    { X86::MOV64ms, Convert_Mem5_2_Reg1_1, { MCK_movw, MCK_SEGMENT_REG, MCK_Mem } },
    { X86::MOV16o16a, Convert_Imm1_1, { MCK_movw, MCK_Imm, MCK_AX } },
    { 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::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::MOV64sm, 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::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::MULPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_mulpd, MCK_FR32, MCK_FR32 } },
    { X86::MULPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_mulpd, MCK_Mem, MCK_FR32 } },
    { X86::MULPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_mulps, MCK_FR32, MCK_FR32 } },
    { X86::MULPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_mulps, MCK_Mem, MCK_FR32 } },
    { X86::MULSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_mulsd, MCK_FR32, MCK_FR32 } },
    { X86::MULSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_mulsd, MCK_Mem, MCK_FR32 } },
    { X86::MULSSrr, Convert_Reg1_2_ImpReg1_1, { MCK_mulss, MCK_FR32, MCK_FR32 } },
    { X86::MULSSrm, Convert_Reg1_2_ImpMem5_1, { MCK_mulss, MCK_Mem, MCK_FR32 } },
    { X86::OR8rr, Convert_Reg1_2_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_orb, MCK_Mem, MCK_GR8 } },
    { X86::OR32rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_orl, MCK_Mem, MCK_GR32 } },
    { X86::ORPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_orpd, MCK_FR32, MCK_FR32 } },
    { X86::FsORPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_orpd, MCK_FR32, MCK_FR32 } },
    { X86::FsORPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_orpd, MCK_Mem, MCK_FR32 } },
    { X86::ORPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_orpd, MCK_Mem, MCK_FR32 } },
    { X86::FsORPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_orps, MCK_FR32, MCK_FR32 } },
    { X86::ORPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_orps, MCK_FR32, MCK_FR32 } },
    { X86::FsORPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_orps, MCK_Mem, MCK_FR32 } },
    { X86::ORPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_orps, MCK_Mem, MCK_FR32 } },
    { X86::OR64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_orq, MCK_Mem, MCK_GR64 } },
    { X86::OR16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_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_ImpReg1_1, { MCK_packssdw, MCK_VR64, MCK_VR64 } },
    { X86::PACKSSDWrr, Convert_Reg1_2_ImpReg1_1, { MCK_packssdw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PACKSSDWrm, Convert_Reg1_2_ImpMem5_1, { MCK_packssdw, MCK_Mem, MCK_VR64 } },
    { X86::PACKSSDWrm, Convert_Reg1_2_ImpMem5_1, { MCK_packssdw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PACKSSWBrr, Convert_Reg1_2_ImpReg1_1, { MCK_packsswb, MCK_VR64, MCK_VR64 } },
    { X86::PACKSSWBrr, Convert_Reg1_2_ImpReg1_1, { MCK_packsswb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PACKSSWBrm, Convert_Reg1_2_ImpMem5_1, { MCK_packsswb, MCK_Mem, MCK_VR64 } },
    { X86::PACKSSWBrm, Convert_Reg1_2_ImpMem5_1, { MCK_packsswb, MCK_Mem, MCK_FR32 } },
    { X86::PACKUSDWrr, Convert_Reg1_2_ImpReg1_1, { MCK_packusdw, MCK_FR32, MCK_FR32 } },
    { X86::PACKUSDWrm, Convert_Reg1_2_ImpMem5_1, { MCK_packusdw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PACKUSWBrr, Convert_Reg1_2_ImpReg1_1, { MCK_packuswb, MCK_VR64, MCK_VR64 } },
    { X86::PACKUSWBrr, Convert_Reg1_2_ImpReg1_1, { MCK_packuswb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PACKUSWBrm, Convert_Reg1_2_ImpMem5_1, { MCK_packuswb, MCK_Mem, MCK_VR64 } },
    { X86::PACKUSWBrm, Convert_Reg1_2_ImpMem5_1, { MCK_packuswb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDBrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddb, MCK_VR64, MCK_VR64 } },
    { X86::PADDBrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDBrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddb, MCK_Mem, MCK_VR64 } },
    { X86::PADDBrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDDrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddd, MCK_VR64, MCK_VR64 } },
    { X86::PADDDrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDDrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddd, MCK_Mem, MCK_VR64 } },
    { X86::PADDDrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddq, MCK_VR64, MCK_VR64 } },
    { X86::PADDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddq, MCK_Mem, MCK_VR64 } },
    { X86::PADDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddsb, MCK_VR64, MCK_VR64 } },
    { X86::PADDSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddsb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddsb, MCK_Mem, MCK_VR64 } },
    { X86::PADDSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddsb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddsw, MCK_VR64, MCK_VR64 } },
    { X86::PADDSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddsw, MCK_Mem, MCK_VR64 } },
    { X86::PADDSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDUSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddusb, MCK_VR64, MCK_VR64 } },
    { X86::PADDUSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddusb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDUSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddusb, MCK_Mem, MCK_VR64 } },
    { X86::PADDUSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddusb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDUSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddusw, MCK_VR64, MCK_VR64 } },
    { X86::PADDUSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddusw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDUSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddusw, MCK_Mem, MCK_VR64 } },
    { X86::PADDUSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddusw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PADDWrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddw, MCK_VR64, MCK_VR64 } },
    { X86::PADDWrr, Convert_Reg1_2_ImpReg1_1, { MCK_paddw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PADDWrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddw, MCK_Mem, MCK_VR64 } },
    { X86::PADDWrm, Convert_Reg1_2_ImpMem5_1, { MCK_paddw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PANDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pand, MCK_VR64, MCK_VR64 } },
    { X86::PANDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pand, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PANDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pand, MCK_Mem, MCK_VR64 } },
    { X86::PANDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pand, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PANDNrr, Convert_Reg1_2_ImpReg1_1, { MCK_pandn, MCK_VR64, MCK_VR64 } },
    { X86::PANDNrr, Convert_Reg1_2_ImpReg1_1, { MCK_pandn, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PANDNrm, Convert_Reg1_2_ImpMem5_1, { MCK_pandn, MCK_Mem, MCK_VR64 } },
    { X86::PANDNrm, Convert_Reg1_2_ImpMem5_1, { MCK_pandn, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PAVGBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pavgb, MCK_VR64, MCK_VR64 } },
    { X86::PAVGBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pavgb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PAVGBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pavgb, MCK_Mem, MCK_VR64 } },
    { X86::PAVGBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pavgb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PAVGWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pavgw, MCK_VR64, MCK_VR64 } },
    { X86::PAVGWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pavgw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PAVGWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pavgw, MCK_Mem, MCK_VR64 } },
    { X86::PAVGWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pavgw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPEQBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqb, MCK_VR64, MCK_VR64 } },
    { X86::PCMPEQBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPEQBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqb, MCK_Mem, MCK_VR64 } },
    { X86::PCMPEQBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPEQDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqd, MCK_VR64, MCK_VR64 } },
    { X86::PCMPEQDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPEQDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqd, MCK_Mem, MCK_VR64 } },
    { X86::PCMPEQDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqd, MCK_Mem, MCK_FR32 } },
    { X86::PCMPEQQrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqq, MCK_FR32, MCK_FR32 } },
    { X86::PCMPEQQrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPEQWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqw, MCK_VR64, MCK_VR64 } },
    { X86::PCMPEQWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpeqw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPEQWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqw, MCK_Mem, MCK_VR64 } },
    { X86::PCMPEQWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpeqw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPGTBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtb, MCK_VR64, MCK_VR64 } },
    { X86::PCMPGTBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPGTBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtb, MCK_Mem, MCK_VR64 } },
    { X86::PCMPGTBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPGTDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtd, MCK_VR64, MCK_VR64 } },
    { X86::PCMPGTDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPGTDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtd, MCK_Mem, MCK_VR64 } },
    { X86::PCMPGTDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtd, MCK_Mem, MCK_FR32 } },
    { X86::PCMPGTQrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtq, MCK_FR32, MCK_FR32 } },
    { X86::PCMPGTQrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PCMPGTWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtw, MCK_VR64, MCK_VR64 } },
    { X86::PCMPGTWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pcmpgtw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PCMPGTWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtw, MCK_Mem, MCK_VR64 } },
    { X86::PCMPGTWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pcmpgtw, MCK_Mem, MCK_FR32 } },
    { X86::PHADDDrr64, Convert_Reg1_2_ImpReg1_1, { MCK_phaddd, MCK_VR64, MCK_VR64 } },
    { X86::PHADDDrr128, Convert_Reg1_2_ImpReg1_1, { MCK_phaddd, MCK_FR32, MCK_FR32 } },
    { X86::PHADDDrm64, Convert_Reg1_2_ImpMem5_1, { MCK_phaddd, MCK_Mem, MCK_VR64 } },
    { X86::PHADDDrm128, Convert_Reg1_2_ImpMem5_1, { MCK_phaddd, MCK_Mem, MCK_FR32 } },
    { X86::PHADDSWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_phaddsw, MCK_VR64, MCK_VR64 } },
    { X86::PHADDSWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_phaddsw, MCK_FR32, MCK_FR32 } },
    { X86::PHADDSWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_phaddsw, MCK_Mem, MCK_VR64 } },
    { X86::PHADDSWrm128, Convert_Reg1_2_ImpMem5_1, { MCK_phaddsw, MCK_Mem, MCK_FR32 } },
    { X86::PHADDWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_phaddw, MCK_VR64, MCK_VR64 } },
    { X86::PHADDWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_phaddw, MCK_FR32, MCK_FR32 } },
    { X86::PHADDWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_phaddw, MCK_Mem, MCK_VR64 } },
    { X86::PHADDWrm128, Convert_Reg1_2_ImpMem5_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_ImpReg1_1, { MCK_phsubd, MCK_VR64, MCK_VR64 } },
    { X86::PHSUBDrr128, Convert_Reg1_2_ImpReg1_1, { MCK_phsubd, MCK_FR32, MCK_FR32 } },
    { X86::PHSUBDrm64, Convert_Reg1_2_ImpMem5_1, { MCK_phsubd, MCK_Mem, MCK_VR64 } },
    { X86::PHSUBDrm128, Convert_Reg1_2_ImpMem5_1, { MCK_phsubd, MCK_Mem, MCK_FR32 } },
    { X86::PHSUBSWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_phsubsw, MCK_VR64, MCK_VR64 } },
    { X86::PHSUBSWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_phsubsw, MCK_FR32, MCK_FR32 } },
    { X86::PHSUBSWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_phsubsw, MCK_Mem, MCK_VR64 } },
    { X86::PHSUBSWrm128, Convert_Reg1_2_ImpMem5_1, { MCK_phsubsw, MCK_Mem, MCK_FR32 } },
    { X86::PHSUBWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_phsubw, MCK_VR64, MCK_VR64 } },
    { X86::PHSUBWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_phsubw, MCK_FR32, MCK_FR32 } },
    { X86::PHSUBWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_phsubw, MCK_Mem, MCK_VR64 } },
    { X86::PHSUBWrm128, Convert_Reg1_2_ImpMem5_1, { MCK_phsubw, MCK_Mem, MCK_FR32 } },
    { X86::PMADDUBSWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_pmaddubsw, MCK_VR64, MCK_VR64 } },
    { X86::PMADDUBSWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_pmaddubsw, MCK_FR32, MCK_FR32 } },
    { X86::PMADDUBSWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_pmaddubsw, MCK_Mem, MCK_VR64 } },
    { X86::PMADDUBSWrm128, Convert_Reg1_2_ImpMem5_1, { MCK_pmaddubsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMADDWDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaddwd, MCK_VR64, MCK_VR64 } },
    { X86::PMADDWDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaddwd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMADDWDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaddwd, MCK_Mem, MCK_VR64 } },
    { X86::PMADDWDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaddwd, MCK_Mem, MCK_FR32 } },
    { X86::PMAXSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxsb, MCK_FR32, MCK_FR32 } },
    { X86::PMAXSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxsb, MCK_Mem, MCK_FR32 } },
    { X86::PMAXSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxsd, MCK_FR32, MCK_FR32 } },
    { X86::PMAXSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxsd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMAXSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxsw, MCK_VR64, MCK_VR64 } },
    { X86::PMAXSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMAXSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxsw, MCK_Mem, MCK_VR64 } },
    { X86::PMAXSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMAXUBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxub, MCK_VR64, MCK_VR64 } },
    { X86::PMAXUBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxub, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMAXUBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxub, MCK_Mem, MCK_VR64 } },
    { X86::PMAXUBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxub, MCK_Mem, MCK_FR32 } },
    { X86::PMAXUDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxud, MCK_FR32, MCK_FR32 } },
    { X86::PMAXUDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxud, MCK_Mem, MCK_FR32 } },
    { X86::PMAXUWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmaxuw, MCK_FR32, MCK_FR32 } },
    { X86::PMAXUWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmaxuw, MCK_Mem, MCK_FR32 } },
    { X86::PMINSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminsb, MCK_FR32, MCK_FR32 } },
    { X86::PMINSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminsb, MCK_Mem, MCK_FR32 } },
    { X86::PMINSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminsd, MCK_FR32, MCK_FR32 } },
    { X86::PMINSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminsd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMINSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminsw, MCK_VR64, MCK_VR64 } },
    { X86::PMINSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMINSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminsw, MCK_Mem, MCK_VR64 } },
    { X86::PMINSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMINUBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminub, MCK_VR64, MCK_VR64 } },
    { X86::PMINUBrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminub, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMINUBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminub, MCK_Mem, MCK_VR64 } },
    { X86::PMINUBrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminub, MCK_Mem, MCK_FR32 } },
    { X86::PMINUDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminud, MCK_FR32, MCK_FR32 } },
    { X86::PMINUDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pminud, MCK_Mem, MCK_FR32 } },
    { X86::PMINUWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pminuw, MCK_FR32, MCK_FR32 } },
    { X86::PMINUWrm, Convert_Reg1_2_ImpMem5_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_ImpReg1_1, { MCK_pmuldq, MCK_FR32, MCK_FR32 } },
    { X86::PMULDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmuldq, MCK_Mem, MCK_FR32 } },
    { X86::PMULHRSWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_pmulhrsw, MCK_VR64, MCK_VR64 } },
    { X86::PMULHRSWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_pmulhrsw, MCK_FR32, MCK_FR32 } },
    { X86::PMULHRSWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_pmulhrsw, MCK_Mem, MCK_VR64 } },
    { X86::PMULHRSWrm128, Convert_Reg1_2_ImpMem5_1, { MCK_pmulhrsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULHUWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmulhuw, MCK_VR64, MCK_VR64 } },
    { X86::PMULHUWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmulhuw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULHUWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmulhuw, MCK_Mem, MCK_VR64 } },
    { X86::PMULHUWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmulhuw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULHWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmulhw, MCK_VR64, MCK_VR64 } },
    { X86::PMULHWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmulhw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULHWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmulhw, MCK_Mem, MCK_VR64 } },
    { X86::PMULHWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmulhw, MCK_Mem, MCK_FR32 } },
    { X86::PMULLDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmulld, MCK_FR32, MCK_FR32 } },
    { X86::PMULLDrr_int, Convert_Reg1_2_ImpReg1_1, { MCK_pmulld, MCK_FR32, MCK_FR32 } },
    { X86::PMULLDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmulld, MCK_Mem, MCK_FR32 } },
    { X86::PMULLDrm_int, Convert_Reg1_2_ImpMem5_1, { MCK_pmulld, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULLWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmullw, MCK_VR64, MCK_VR64 } },
    { X86::PMULLWrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmullw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULLWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmullw, MCK_Mem, MCK_VR64 } },
    { X86::PMULLWrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmullw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PMULUDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmuludq, MCK_VR64, MCK_VR64 } },
    { X86::PMULUDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_pmuludq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PMULUDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmuludq, MCK_Mem, MCK_VR64 } },
    { X86::PMULUDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_pmuludq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PORrr, Convert_Reg1_2_ImpReg1_1, { MCK_por, MCK_VR64, MCK_VR64 } },
    { X86::PORrr, Convert_Reg1_2_ImpReg1_1, { MCK_por, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PORrm, Convert_Reg1_2_ImpMem5_1, { MCK_por, MCK_Mem, MCK_VR64 } },
    { X86::PORrm, Convert_Reg1_2_ImpMem5_1, { MCK_por, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSADBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psadbw, MCK_VR64, MCK_VR64 } },
    { X86::PSADBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psadbw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSADBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psadbw, MCK_Mem, MCK_VR64 } },
    { X86::PSADBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psadbw, MCK_Mem, MCK_FR32 } },
    { X86::PSHUFBrr64, Convert_Reg1_2_ImpReg1_1, { MCK_pshufb, MCK_VR64, MCK_VR64 } },
    { X86::PSHUFBrr128, Convert_Reg1_2_ImpReg1_1, { MCK_pshufb, MCK_FR32, MCK_FR32 } },
    { X86::PSHUFBrm64, Convert_Reg1_2_ImpMem5_1, { MCK_pshufb, MCK_Mem, MCK_VR64 } },
    { X86::PSHUFBrm128, Convert_Reg1_2_ImpMem5_1, { MCK_pshufb, MCK_Mem, MCK_FR32 } },
    { X86::PSIGNBrr64, Convert_Reg1_2_ImpReg1_1, { MCK_psignb, MCK_VR64, MCK_VR64 } },
    { X86::PSIGNBrr128, Convert_Reg1_2_ImpReg1_1, { MCK_psignb, MCK_FR32, MCK_FR32 } },
    { X86::PSIGNBrm64, Convert_Reg1_2_ImpMem5_1, { MCK_psignb, MCK_Mem, MCK_VR64 } },
    { X86::PSIGNBrm128, Convert_Reg1_2_ImpMem5_1, { MCK_psignb, MCK_Mem, MCK_FR32 } },
    { X86::PSIGNDrr64, Convert_Reg1_2_ImpReg1_1, { MCK_psignd, MCK_VR64, MCK_VR64 } },
    { X86::PSIGNDrr128, Convert_Reg1_2_ImpReg1_1, { MCK_psignd, MCK_FR32, MCK_FR32 } },
    { X86::PSIGNDrm64, Convert_Reg1_2_ImpMem5_1, { MCK_psignd, MCK_Mem, MCK_VR64 } },
    { X86::PSIGNDrm128, Convert_Reg1_2_ImpMem5_1, { MCK_psignd, MCK_Mem, MCK_FR32 } },
    { X86::PSIGNWrr64, Convert_Reg1_2_ImpReg1_1, { MCK_psignw, MCK_VR64, MCK_VR64 } },
    { X86::PSIGNWrr128, Convert_Reg1_2_ImpReg1_1, { MCK_psignw, MCK_FR32, MCK_FR32 } },
    { X86::PSIGNWrm64, Convert_Reg1_2_ImpMem5_1, { MCK_psignw, MCK_Mem, MCK_VR64 } },
    { X86::PSIGNWrm128, Convert_Reg1_2_ImpMem5_1, { MCK_psignw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSLLDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pslld, MCK_VR64, MCK_VR64 } },
    { X86::PSLLDrr, Convert_Reg1_2_ImpReg1_1, { MCK_pslld, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSLLDri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_pslld, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSLLDri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_pslld, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pslld, MCK_Mem, MCK_VR64 } },
    { X86::PSLLDrm, Convert_Reg1_2_ImpMem5_1, { MCK_pslld, MCK_Mem, MCK_FR32 } },
    { X86::PSLLDQri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_pslldq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLQrr, Convert_Reg1_2_ImpReg1_1, { MCK_psllq, MCK_VR64, MCK_VR64 } },
    { X86::PSLLQrr, Convert_Reg1_2_ImpReg1_1, { MCK_psllq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSLLQri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psllq, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSLLQri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psllq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLQrm, Convert_Reg1_2_ImpMem5_1, { MCK_psllq, MCK_Mem, MCK_VR64 } },
    { X86::PSLLQrm, Convert_Reg1_2_ImpMem5_1, { MCK_psllq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSLLWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psllw, MCK_VR64, MCK_VR64 } },
    { X86::PSLLWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psllw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSLLWri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psllw, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSLLWri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psllw, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSLLWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psllw, MCK_Mem, MCK_VR64 } },
    { X86::PSLLWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psllw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRADrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrad, MCK_VR64, MCK_VR64 } },
    { X86::PSRADrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrad, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRADri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrad, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRADri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrad, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRADrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrad, MCK_Mem, MCK_VR64 } },
    { X86::PSRADrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrad, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRAWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psraw, MCK_VR64, MCK_VR64 } },
    { X86::PSRAWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psraw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRAWri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psraw, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRAWri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psraw, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRAWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psraw, MCK_Mem, MCK_VR64 } },
    { X86::PSRAWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psraw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRLDrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrld, MCK_VR64, MCK_VR64 } },
    { X86::PSRLDrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrld, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRLDri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrld, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRLDri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrld, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLDrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrld, MCK_Mem, MCK_VR64 } },
    { X86::PSRLDrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrld, MCK_Mem, MCK_FR32 } },
    { X86::PSRLDQri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrldq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLQrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrlq, MCK_VR64, MCK_VR64 } },
    { X86::PSRLQrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrlq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRLQri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrlq, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRLQri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrlq, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLQrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrlq, MCK_Mem, MCK_VR64 } },
    { X86::PSRLQrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrlq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSRLWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrlw, MCK_VR64, MCK_VR64 } },
    { X86::PSRLWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psrlw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSRLWri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrlw, MCK_ImmSExt8, MCK_VR64 } },
    { X86::PSRLWri, Convert_Reg1_2_ImpImmSExt81_1, { MCK_psrlw, MCK_ImmSExt8, MCK_FR32 } },
    { X86::MMX_PSRLWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrlw, MCK_Mem, MCK_VR64 } },
    { X86::PSRLWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psrlw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBBrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubb, MCK_VR64, MCK_VR64 } },
    { X86::PSUBBrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBBrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubb, MCK_Mem, MCK_VR64 } },
    { X86::PSUBBrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBDrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubd, MCK_VR64, MCK_VR64 } },
    { X86::PSUBDrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBDrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubd, MCK_Mem, MCK_VR64 } },
    { X86::PSUBDrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBQrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubq, MCK_VR64, MCK_VR64 } },
    { X86::PSUBQrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBQrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubq, MCK_Mem, MCK_VR64 } },
    { X86::PSUBQrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubsb, MCK_VR64, MCK_VR64 } },
    { X86::PSUBSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubsb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubsb, MCK_Mem, MCK_VR64 } },
    { X86::PSUBSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubsb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubsw, MCK_VR64, MCK_VR64 } },
    { X86::PSUBSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubsw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubsw, MCK_Mem, MCK_VR64 } },
    { X86::PSUBSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubsw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBUSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubusb, MCK_VR64, MCK_VR64 } },
    { X86::PSUBUSBrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubusb, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBUSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubusb, MCK_Mem, MCK_VR64 } },
    { X86::PSUBUSBrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubusb, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBUSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubusw, MCK_VR64, MCK_VR64 } },
    { X86::PSUBUSWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubusw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBUSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubusw, MCK_Mem, MCK_VR64 } },
    { X86::PSUBUSWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubusw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PSUBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubw, MCK_VR64, MCK_VR64 } },
    { X86::PSUBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_psubw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PSUBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_psubw, MCK_Mem, MCK_VR64 } },
    { X86::PSUBWrm, Convert_Reg1_2_ImpMem5_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_ImpReg1_1, { MCK_punpckhbw, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKHBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckhbw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKHBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhbw, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKHBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhbw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKHDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckhdq, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKHDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckhdq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKHDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhdq, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKHDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhdq, MCK_Mem, MCK_FR32 } },
    { X86::PUNPCKHQDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckhqdq, MCK_FR32, MCK_FR32 } },
    { X86::PUNPCKHQDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhqdq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKHWDrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckhwd, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKHWDrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckhwd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKHWDrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhwd, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKHWDrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckhwd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKLBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpcklbw, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKLBWrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpcklbw, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKLBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpcklbw, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKLBWrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpcklbw, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKLDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckldq, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKLDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpckldq, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKLDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckldq, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKLDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpckldq, MCK_Mem, MCK_FR32 } },
    { X86::PUNPCKLQDQrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpcklqdq, MCK_FR32, MCK_FR32 } },
    { X86::PUNPCKLQDQrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpcklqdq, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PUNPCKLWDrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpcklwd, MCK_VR64, MCK_VR64 } },
    { X86::PUNPCKLWDrr, Convert_Reg1_2_ImpReg1_1, { MCK_punpcklwd, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PUNPCKLWDrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpcklwd, MCK_Mem, MCK_VR64 } },
    { X86::PUNPCKLWDrm, Convert_Reg1_2_ImpMem5_1, { MCK_punpcklwd, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PXORrr, Convert_Reg1_2_ImpReg1_1, { MCK_pxor, MCK_VR64, MCK_VR64 } },
    { X86::PXORrr, Convert_Reg1_2_ImpReg1_1, { MCK_pxor, MCK_FR32, MCK_FR32 } },
    { X86::MMX_PXORrm, Convert_Reg1_2_ImpMem5_1, { MCK_pxor, MCK_Mem, MCK_VR64 } },
    { X86::PXORrm, Convert_Reg1_2_ImpMem5_1, { MCK_pxor, MCK_Mem, MCK_FR32 } },
    { X86::RCL8r1, Convert_Reg1_2Imp, { MCK_rclb, MCK_1, MCK_GR8 } },
    { X86::RCL8m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rclb, MCK_1, MCK_Mem } },
    { X86::RCL8rCL, Convert_Reg1_2Imp, { MCK_rclb, MCK_CL, MCK_GR8 } },
    { X86::RCL8mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rclb, MCK_CL, MCK_Mem } },
    { X86::RCL8ri, Convert_Reg1_2_ImpImm1_1, { MCK_rclb, MCK_Imm, MCK_GR8 } },
    { X86::RCL8mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rclb, MCK_Imm, MCK_Mem } },
    { X86::RCL32r1, Convert_Reg1_2Imp, { MCK_rcll, MCK_1, MCK_GR32 } },
    { X86::RCL32m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcll, MCK_1, MCK_Mem } },
    { X86::RCL32rCL, Convert_Reg1_2Imp, { MCK_rcll, MCK_CL, MCK_GR32 } },
    { X86::RCL32mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcll, MCK_CL, MCK_Mem } },
    { X86::RCL32ri, Convert_Reg1_2_ImpImm1_1, { MCK_rcll, MCK_Imm, MCK_GR32 } },
    { X86::RCL32mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rcll, MCK_Imm, MCK_Mem } },
    { X86::RCL64r1, Convert_Reg1_2Imp, { MCK_rclq, MCK_1, MCK_GR64 } },
    { X86::RCL64m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rclq, MCK_1, MCK_Mem } },
    { X86::RCL64rCL, Convert_Reg1_2Imp, { MCK_rclq, MCK_CL, MCK_GR64 } },
    { X86::RCL64mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rclq, MCK_CL, MCK_Mem } },
    { X86::RCL64ri, Convert_Reg1_2_ImpImm1_1, { MCK_rclq, MCK_Imm, MCK_GR64 } },
    { X86::RCL64mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rclq, MCK_Imm, MCK_Mem } },
    { X86::RCL16r1, Convert_Reg1_2Imp, { MCK_rclw, MCK_1, MCK_GR16 } },
    { X86::RCL16m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rclw, MCK_1, MCK_Mem } },
    { X86::RCL16rCL, Convert_Reg1_2Imp, { MCK_rclw, MCK_CL, MCK_GR16 } },
    { X86::RCL16mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rclw, MCK_CL, MCK_Mem } },
    { X86::RCL16ri, Convert_Reg1_2_ImpImm1_1, { MCK_rclw, MCK_Imm, MCK_GR16 } },
    { X86::RCL16mi, Convert_Mem5_2_ImpImpImpImpImpImm1_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_2Imp, { MCK_rcrb, MCK_1, MCK_GR8 } },
    { X86::RCR8m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrb, MCK_1, MCK_Mem } },
    { X86::RCR8rCL, Convert_Reg1_2Imp, { MCK_rcrb, MCK_CL, MCK_GR8 } },
    { X86::RCR8mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrb, MCK_CL, MCK_Mem } },
    { X86::RCR8ri, Convert_Reg1_2_ImpImm1_1, { MCK_rcrb, MCK_Imm, MCK_GR8 } },
    { X86::RCR8mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rcrb, MCK_Imm, MCK_Mem } },
    { X86::RCR32r1, Convert_Reg1_2Imp, { MCK_rcrl, MCK_1, MCK_GR32 } },
    { X86::RCR32m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrl, MCK_1, MCK_Mem } },
    { X86::RCR32rCL, Convert_Reg1_2Imp, { MCK_rcrl, MCK_CL, MCK_GR32 } },
    { X86::RCR32mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrl, MCK_CL, MCK_Mem } },
    { X86::RCR32ri, Convert_Reg1_2_ImpImm1_1, { MCK_rcrl, MCK_Imm, MCK_GR32 } },
    { X86::RCR32mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rcrl, MCK_Imm, MCK_Mem } },
    { X86::RCR64r1, Convert_Reg1_2Imp, { MCK_rcrq, MCK_1, MCK_GR64 } },
    { X86::RCR64m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrq, MCK_1, MCK_Mem } },
    { X86::RCR64rCL, Convert_Reg1_2Imp, { MCK_rcrq, MCK_CL, MCK_GR64 } },
    { X86::RCR64mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrq, MCK_CL, MCK_Mem } },
    { X86::RCR64ri, Convert_Reg1_2_ImpImm1_1, { MCK_rcrq, MCK_Imm, MCK_GR64 } },
    { X86::RCR64mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rcrq, MCK_Imm, MCK_Mem } },
    { X86::RCR16r1, Convert_Reg1_2Imp, { MCK_rcrw, MCK_1, MCK_GR16 } },
    { X86::RCR16m1, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrw, MCK_1, MCK_Mem } },
    { X86::RCR16rCL, Convert_Reg1_2Imp, { MCK_rcrw, MCK_CL, MCK_GR16 } },
    { X86::RCR16mCL, Convert_Mem5_2ImpImpImpImpImp, { MCK_rcrw, MCK_CL, MCK_Mem } },
    { X86::RCR16ri, Convert_Reg1_2_ImpImm1_1, { MCK_rcrw, MCK_Imm, MCK_GR16 } },
    { X86::RCR16mi, Convert_Mem5_2_ImpImpImpImpImpImm1_1, { MCK_rcrw, MCK_Imm, MCK_Mem } },
    { X86::ROL8rCL, Convert_Reg1_2Imp, { MCK_rolb, MCK_CL, MCK_GR8 } },
    { X86::ROL8mCL, Convert_Mem5_2, { MCK_rolb, MCK_CL, MCK_Mem } },
    { X86::ROL8ri, Convert_Reg1_2_ImpImm1_1, { MCK_rolb, MCK_Imm, MCK_GR8 } },
    { X86::ROL8mi, Convert_Mem5_2_Imm1_1, { MCK_rolb, MCK_Imm, MCK_Mem } },
    { X86::ROL32rCL, Convert_Reg1_2Imp, { MCK_roll, MCK_CL, MCK_GR32 } },
    { X86::ROL32mCL, Convert_Mem5_2, { MCK_roll, MCK_CL, MCK_Mem } },
    { X86::ROL32ri, Convert_Reg1_2_ImpImm1_1, { MCK_roll, MCK_Imm, MCK_GR32 } },
    { X86::ROL32mi, Convert_Mem5_2_Imm1_1, { MCK_roll, MCK_Imm, MCK_Mem } },
    { X86::ROL64rCL, Convert_Reg1_2Imp, { MCK_rolq, MCK_CL, MCK_GR64 } },
    { X86::ROL64mCL, Convert_Mem5_2, { MCK_rolq, MCK_CL, MCK_Mem } },
    { X86::ROL64ri, Convert_Reg1_2_ImpImm1_1, { MCK_rolq, MCK_Imm, MCK_GR64 } },
    { X86::ROL64mi, Convert_Mem5_2_Imm1_1, { MCK_rolq, MCK_Imm, MCK_Mem } },
    { X86::ROL16rCL, Convert_Reg1_2Imp, { MCK_rolw, MCK_CL, MCK_GR16 } },
    { X86::ROL16mCL, Convert_Mem5_2, { MCK_rolw, MCK_CL, MCK_Mem } },
    { X86::ROL16ri, Convert_Reg1_2_ImpImm1_1, { MCK_rolw, MCK_Imm, MCK_GR16 } },
    { X86::ROL16mi, Convert_Mem5_2_Imm1_1, { MCK_rolw, MCK_Imm, MCK_Mem } },
    { X86::ROR8rCL, Convert_Reg1_2Imp, { MCK_rorb, MCK_CL, MCK_GR8 } },
    { X86::ROR8mCL, Convert_Mem5_2, { MCK_rorb, MCK_CL, MCK_Mem } },
    { X86::ROR8ri, Convert_Reg1_2_ImpImm1_1, { MCK_rorb, MCK_Imm, MCK_GR8 } },
    { X86::ROR8mi, Convert_Mem5_2_Imm1_1, { MCK_rorb, MCK_Imm, MCK_Mem } },
    { X86::ROR32rCL, Convert_Reg1_2Imp, { MCK_rorl, MCK_CL, MCK_GR32 } },
    { X86::ROR32mCL, Convert_Mem5_2, { MCK_rorl, MCK_CL, MCK_Mem } },
    { X86::ROR32ri, Convert_Reg1_2_ImpImm1_1, { MCK_rorl, MCK_Imm, MCK_GR32 } },
    { X86::ROR32mi, Convert_Mem5_2_Imm1_1, { MCK_rorl, MCK_Imm, MCK_Mem } },
    { X86::ROR64rCL, Convert_Reg1_2Imp, { MCK_rorq, MCK_CL, MCK_GR64 } },
    { X86::ROR64mCL, Convert_Mem5_2, { MCK_rorq, MCK_CL, MCK_Mem } },
    { X86::ROR64ri, Convert_Reg1_2_ImpImm1_1, { MCK_rorq, MCK_Imm, MCK_GR64 } },
    { X86::ROR64mi, Convert_Mem5_2_Imm1_1, { MCK_rorq, MCK_Imm, MCK_Mem } },
    { X86::ROR16rCL, Convert_Reg1_2Imp, { MCK_rorw, MCK_CL, MCK_GR16 } },
    { X86::ROR16mCL, Convert_Mem5_2, { MCK_rorw, MCK_CL, MCK_Mem } },
    { X86::ROR16ri, Convert_Reg1_2_ImpImm1_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_2Imp, { MCK_sarb, MCK_CL, MCK_GR8 } },
    { X86::SAR8mCL, Convert_Mem5_2, { MCK_sarb, MCK_CL, MCK_Mem } },
    { X86::SAR8ri, Convert_Reg1_2_ImpImm1_1, { MCK_sarb, MCK_Imm, MCK_GR8 } },
    { X86::SAR8mi, Convert_Mem5_2_Imm1_1, { MCK_sarb, MCK_Imm, MCK_Mem } },
    { X86::SAR32rCL, Convert_Reg1_2Imp, { MCK_sarl, MCK_CL, MCK_GR32 } },
    { X86::SAR32mCL, Convert_Mem5_2, { MCK_sarl, MCK_CL, MCK_Mem } },
    { X86::SAR32ri, Convert_Reg1_2_ImpImm1_1, { MCK_sarl, MCK_Imm, MCK_GR32 } },
    { X86::SAR32mi, Convert_Mem5_2_Imm1_1, { MCK_sarl, MCK_Imm, MCK_Mem } },
    { X86::SAR64rCL, Convert_Reg1_2Imp, { MCK_sarq, MCK_CL, MCK_GR64 } },
    { X86::SAR64mCL, Convert_Mem5_2, { MCK_sarq, MCK_CL, MCK_Mem } },
    { X86::SAR64ri, Convert_Reg1_2_ImpImm1_1, { MCK_sarq, MCK_Imm, MCK_GR64 } },
    { X86::SAR64mi, Convert_Mem5_2_Imm1_1, { MCK_sarq, MCK_Imm, MCK_Mem } },
    { X86::SAR16rCL, Convert_Reg1_2Imp, { MCK_sarw, MCK_CL, MCK_GR16 } },
    { X86::SAR16mCL, Convert_Mem5_2, { MCK_sarw, MCK_CL, MCK_Mem } },
    { X86::SAR16ri, Convert_Reg1_2_ImpImm1_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_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_sbbb, MCK_Mem, MCK_GR8 } },
    { X86::SBB32rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_sbbl, MCK_Mem, MCK_GR32 } },
    { X86::SBB64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_sbbq, MCK_Mem, MCK_GR64 } },
    { X86::SBB16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_sbbw, MCK_Mem, MCK_GR16 } },
    { X86::SHL8rCL, Convert_Reg1_2Imp, { MCK_shlb, MCK_CL, MCK_GR8 } },
    { X86::SHL8mCL, Convert_Mem5_2, { MCK_shlb, MCK_CL, MCK_Mem } },
    { X86::SHL8ri, Convert_Reg1_2_ImpImm1_1, { MCK_shlb, MCK_Imm, MCK_GR8 } },
    { X86::SHL8mi, Convert_Mem5_2_Imm1_1, { MCK_shlb, MCK_Imm, MCK_Mem } },
    { X86::SHL32rCL, Convert_Reg1_2Imp, { MCK_shll, MCK_CL, MCK_GR32 } },
    { X86::SHL32mCL, Convert_Mem5_2, { MCK_shll, MCK_CL, MCK_Mem } },
    { X86::SHL32ri, Convert_Reg1_2_ImpImm1_1, { MCK_shll, MCK_Imm, MCK_GR32 } },
    { X86::SHL32mi, Convert_Mem5_2_Imm1_1, { MCK_shll, MCK_Imm, MCK_Mem } },
    { X86::SHL64rCL, Convert_Reg1_2Imp, { MCK_shlq, MCK_CL, MCK_GR64 } },
    { X86::SHL64mCL, Convert_Mem5_2, { MCK_shlq, MCK_CL, MCK_Mem } },
    { X86::SHL64ri, Convert_Reg1_2_ImpImm1_1, { MCK_shlq, MCK_Imm, MCK_GR64 } },
    { X86::SHL64mi, Convert_Mem5_2_Imm1_1, { MCK_shlq, MCK_Imm, MCK_Mem } },
    { X86::SHL16rCL, Convert_Reg1_2Imp, { MCK_shlw, MCK_CL, MCK_GR16 } },
    { X86::SHL16mCL, Convert_Mem5_2, { MCK_shlw, MCK_CL, MCK_Mem } },
    { X86::SHL16ri, Convert_Reg1_2_ImpImm1_1, { MCK_shlw, MCK_Imm, MCK_GR16 } },
    { X86::SHL16mi, Convert_Mem5_2_Imm1_1, { MCK_shlw, MCK_Imm, MCK_Mem } },
    { X86::SHR8rCL, Convert_Reg1_2Imp, { MCK_shrb, MCK_CL, MCK_GR8 } },
    { X86::SHR8mCL, Convert_Mem5_2, { MCK_shrb, MCK_CL, MCK_Mem } },
    { X86::SHR8ri, Convert_Reg1_2_ImpImm1_1, { MCK_shrb, MCK_Imm, MCK_GR8 } },
    { X86::SHR8mi, Convert_Mem5_2_Imm1_1, { MCK_shrb, MCK_Imm, MCK_Mem } },
    { X86::SHR32rCL, Convert_Reg1_2Imp, { MCK_shrl, MCK_CL, MCK_GR32 } },
    { X86::SHR32mCL, Convert_Mem5_2, { MCK_shrl, MCK_CL, MCK_Mem } },
    { X86::SHR32ri, Convert_Reg1_2_ImpImm1_1, { MCK_shrl, MCK_Imm, MCK_GR32 } },
    { X86::SHR32mi, Convert_Mem5_2_Imm1_1, { MCK_shrl, MCK_Imm, MCK_Mem } },
    { X86::SHR64rCL, Convert_Reg1_2Imp, { MCK_shrq, MCK_CL, MCK_GR64 } },
    { X86::SHR64mCL, Convert_Mem5_2, { MCK_shrq, MCK_CL, MCK_Mem } },
    { X86::SHR64ri, Convert_Reg1_2_ImpImm1_1, { MCK_shrq, MCK_Imm, MCK_GR64 } },
    { X86::SHR64mi, Convert_Mem5_2_Imm1_1, { MCK_shrq, MCK_Imm, MCK_Mem } },
    { X86::SHR16rCL, Convert_Reg1_2Imp, { MCK_shrw, MCK_CL, MCK_GR16 } },
    { X86::SHR16mCL, Convert_Mem5_2, { MCK_shrw, MCK_CL, MCK_Mem } },
    { X86::SHR16ri, Convert_Reg1_2_ImpImm1_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_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_subb, MCK_Mem, MCK_GR8 } },
    { X86::SUB32rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_subl, MCK_Mem, MCK_GR32 } },
    { X86::SUBPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_subpd, MCK_FR32, MCK_FR32 } },
    { X86::SUBPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_subpd, MCK_Mem, MCK_FR32 } },
    { X86::SUBPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_subps, MCK_FR32, MCK_FR32 } },
    { X86::SUBPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_subps, MCK_Mem, MCK_FR32 } },
    { X86::SUB64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_subq, MCK_Mem, MCK_GR64 } },
    { X86::SUBSDrr, Convert_Reg1_2_ImpReg1_1, { MCK_subsd, MCK_FR32, MCK_FR32 } },
    { X86::SUBSDrm, Convert_Reg1_2_ImpMem5_1, { MCK_subsd, MCK_Mem, MCK_FR32 } },
    { X86::SUBSSrr, Convert_Reg1_2_ImpReg1_1, { MCK_subss, MCK_FR32, MCK_FR32 } },
    { X86::SUBSSrm, Convert_Reg1_2_ImpMem5_1, { MCK_subss, MCK_Mem, MCK_FR32 } },
    { X86::SUB16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_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_ImpReg1_1, { MCK_unpckhpd, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKHPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_unpckhpd, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKHPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_unpckhps, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKHPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_unpckhps, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKLPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_unpcklpd, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKLPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_unpcklpd, MCK_Mem, MCK_FR32 } },
    { X86::UNPCKLPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_unpcklps, MCK_FR32, MCK_FR32 } },
    { X86::UNPCKLPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_unpcklps, MCK_Mem, MCK_FR32 } },
    { X86::XCHG64rm, Convert_ImpMem5_2_Reg1_1, { MCK_xchg, MCK_GR64, MCK_Mem } },
    { X86::XCHG8rm, Convert_ImpMem5_2_Reg1_1, { MCK_xchgb, MCK_GR8, MCK_Mem } },
    { X86::XCHG32rm, Convert_ImpMem5_2_Reg1_1, { MCK_xchgl, MCK_GR32, MCK_Mem } },
    { X86::XCHG16rm, Convert_ImpMem5_2_Reg1_1, { MCK_xchgw, MCK_GR16, MCK_Mem } },
    { X86::XOR8rr, Convert_Reg1_2_ImpReg1_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_ImpImm1_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_ImpMem5_1, { MCK_xorb, MCK_Mem, MCK_GR8 } },
    { X86::XOR32rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_xorl, MCK_Mem, MCK_GR32 } },
    { X86::XORPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_xorpd, MCK_FR32, MCK_FR32 } },
    { X86::FsXORPDrr, Convert_Reg1_2_ImpReg1_1, { MCK_xorpd, MCK_FR32, MCK_FR32 } },
    { X86::XORPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_xorpd, MCK_Mem, MCK_FR32 } },
    { X86::FsXORPDrm, Convert_Reg1_2_ImpMem5_1, { MCK_xorpd, MCK_Mem, MCK_FR32 } },
    { X86::XORPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_xorps, MCK_FR32, MCK_FR32 } },
    { X86::FsXORPSrr, Convert_Reg1_2_ImpReg1_1, { MCK_xorps, MCK_FR32, MCK_FR32 } },
    { X86::FsXORPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_xorps, MCK_Mem, MCK_FR32 } },
    { X86::XORPSrm, Convert_Reg1_2_ImpMem5_1, { MCK_xorps, MCK_Mem, MCK_FR32 } },
    { X86::XOR64rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_xorq, MCK_Mem, MCK_GR64 } },
    { X86::XOR16rr, Convert_Reg1_2_ImpReg1_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_ImpImmSExt81_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_ImpImm1_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_ImpMem5_1, { MCK_xorw, MCK_Mem, MCK_GR16 } },
    { X86::BLENDPDrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_blendpd, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::BLENDPDrmi, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_blendpd, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::BLENDPSrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_blendps, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::BLENDPSrmi, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_blendps, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::BLENDVPDrr0, Convert_Reg1_3_ImpReg1_2, { MCK_blendvpd, MCK_XMM0, MCK_FR32, MCK_FR32 } },
    { X86::BLENDVPDrm0, Convert_Reg1_3_ImpMem5_2, { MCK_blendvpd, MCK_XMM0, MCK_Mem, MCK_FR32 } },
    { X86::BLENDVPSrr0, Convert_Reg1_3_ImpReg1_2, { MCK_blendvps, MCK_XMM0, MCK_FR32, MCK_FR32 } },
    { X86::BLENDVPSrm0, Convert_Reg1_3_ImpMem5_2, { MCK_blendvps, MCK_XMM0, MCK_Mem, MCK_FR32 } },
    { X86::DPPDrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_dppd, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::DPPDrmi, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_dppd, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::DPPSrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_dpps, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::DPPSrmi, Convert_Reg1_3_ImpMem5_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_ImpReg1_2_ImmSExt81_1, { MCK_insertps, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::INSERTPSrm, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_insertps, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::MPSADBWrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_mpsadbw, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::MPSADBWrmi, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_mpsadbw, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PALIGNR64rr, Convert_Reg1_3_ImpReg1_2_Imm1_1, { MCK_palignr, MCK_Imm, MCK_VR64, MCK_VR64 } },
    { X86::PALIGNR128rr, Convert_Reg1_3_ImpReg1_2_Imm1_1, { MCK_palignr, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PALIGNR64rm, Convert_Reg1_3_ImpMem5_2_Imm1_1, { MCK_palignr, MCK_Imm, MCK_Mem, MCK_VR64 } },
    { X86::PALIGNR128rm, Convert_Reg1_3_ImpMem5_2_Imm1_1, { MCK_palignr, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::PBLENDVBrr0, Convert_Reg1_3_ImpReg1_2, { MCK_pblendvb, MCK_XMM0, MCK_FR32, MCK_FR32 } },
    { X86::PBLENDVBrm0, Convert_Reg1_3_ImpMem5_2, { MCK_pblendvb, MCK_XMM0, MCK_Mem, MCK_FR32 } },
    { X86::PBLENDWrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_pblendw, MCK_ImmSExt8, MCK_FR32, MCK_FR32 } },
    { X86::PBLENDWrmi, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_pblendw, MCK_ImmSExt8, MCK_Mem, 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::PCMPESTRIArr, 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::PCMPESTRIOrr, 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::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::PCMPESTRISrm, 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::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::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::PCMPISTRISrr, 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::PCMPISTRICrr, Convert_Reg1_3_Reg1_2_Imm1_1, { MCK_pcmpistri, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::PCMPISTRIArr, 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::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::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::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_ImpReg1_2_ImmSExt81_1, { MCK_pinsrb, MCK_ImmSExt8, MCK_GR32, MCK_FR32 } },
    { X86::PINSRBrm, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_pinsrb, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PINSRDrr, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_pinsrd, MCK_ImmSExt8, MCK_GR32, MCK_FR32 } },
    { X86::PINSRDrm, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_pinsrd, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::PINSRQrr, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_pinsrq, MCK_ImmSExt8, MCK_GR64, MCK_FR32 } },
    { X86::PINSRQrm, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_pinsrq, MCK_ImmSExt8, MCK_Mem, MCK_FR32 } },
    { X86::MMX_PINSRWrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_GR32, MCK_VR64 } },
    { X86::PINSRWrri, Convert_Reg1_3_ImpReg1_2_ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_GR32, MCK_FR32 } },
    { X86::MMX_PINSRWrmi, Convert_Reg1_3_ImpMem5_2_ImmSExt81_1, { MCK_pinsrw, MCK_ImmSExt8, MCK_Mem, MCK_VR64 } },
    { X86::PINSRWrmi, Convert_Reg1_3_ImpMem5_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_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_ImpReg1_2_Imm1_1, { MCK_shufpd, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::SHUFPDrmi, Convert_Reg1_3_ImpMem5_2_Imm1_1, { MCK_shufpd, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::SHUFPSrri, Convert_Reg1_3_ImpReg1_2_Imm1_1, { MCK_shufps, MCK_Imm, MCK_FR32, MCK_FR32 } },
    { X86::SHUFPSrmi, Convert_Reg1_3_ImpMem5_2_Imm1_1, { MCK_shufps, MCK_Imm, MCK_Mem, MCK_FR32 } },
    { X86::CMPPDrri, Convert_Reg1_4_ImpReg1_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_pd, MCK_FR32, MCK_FR32 } },
    { X86::CMPPDrmi, Convert_Reg1_4_ImpMem5_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_pd, MCK_Mem, MCK_FR32 } },
    { X86::CMPPSrri, Convert_Reg1_4_ImpReg1_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_ps, MCK_FR32, MCK_FR32 } },
    { X86::CMPPSrmi, Convert_Reg1_4_ImpMem5_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_ps, MCK_Mem, MCK_FR32 } },
    { X86::CMPSDrr, Convert_Reg1_4_ImpReg1_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_sd, MCK_FR32, MCK_FR32 } },
    { X86::CMPSDrm, Convert_Reg1_4_ImpMem5_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_sd, MCK_Mem, MCK_FR32 } },
    { X86::CMPSSrr, Convert_Reg1_4_ImpReg1_3_Imm1_1, { MCK_cmp, MCK_Imm, MCK_ss, MCK_FR32, MCK_FR32 } },
    { X86::CMPSSrm, Convert_Reg1_4_ImpMem5_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 + 1775; 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;
}