[PowerPC VLE] Add SPE2 and EFS2 instructions support
[external/binutils.git] / opcodes / ppc-opc.c
index b6ab79f..5edb1ad 100644 (file)
@@ -1478,6 +1478,33 @@ extract_vleil (unsigned long insn,
 }
 
 static unsigned long
+insert_evuimm1_ex0 (unsigned long insn,
+                   long value,
+                   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+                   const char **errmsg)
+{
+  if (value > 0 && value <= 0x1f)
+    return insn | ((value & 0x1f) << 11);
+  else
+    {
+      *errmsg = _("UIMM = 00000 is illegal");
+      return 0;
+    }
+}
+
+static long
+extract_evuimm1_ex0 (unsigned long insn,
+                    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+                    int *invalid)
+{
+  long value = ((insn >> 11) & 0x1f);
+  if (value == 0)
+    *invalid = 1;
+
+  return value;
+}
+
+static unsigned long
 insert_evuimm2_ex0 (unsigned long insn,
                    long value,
                    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
@@ -1559,6 +1586,33 @@ extract_evuimm8_ex0 (unsigned long insn,
 }
 
 static unsigned long
+insert_evuimm_lt8 (unsigned long insn,
+                  long value,
+                  ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+                  const char **errmsg)
+{
+  if (value >= 0 && value <= 7)
+    return insn | ((value & 0x7) << 11);
+  else
+    {
+      *errmsg = _("UIMM values >7 are illegal");
+      return 0;
+    }
+}
+
+static long
+extract_evuimm_lt8 (unsigned long insn,
+                   ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+                   int *invalid)
+{
+  long value = ((insn >> 11) & 0x1f);
+  if (value > 7)
+    *invalid = 1;
+
+  return value;
+}
+
+static unsigned long
 insert_evuimm_lt16 (unsigned long insn,
                    long value,
                    ppc_cpu_t dialect ATTRIBUTE_UNUSED,
@@ -1638,6 +1692,56 @@ extract_off_lsp (unsigned long insn,
 
   return value;
 }
+
+static unsigned long
+insert_off_spe2 (unsigned long insn,
+                long value,
+                ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+                const char **errmsg)
+{
+  if (value > 0 && value <= 0x7)
+    return insn | (value & 0x7);
+  else
+    {
+      *errmsg = _("invalid offset");
+      return 0;
+    }
+}
+
+static long
+extract_off_spe2 (unsigned long insn,
+                 ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+                 int *invalid)
+{
+  long value = (insn & 0x7);
+  if (value == 0)
+    *invalid = 1;
+
+  return value;
+}
+
+static unsigned long
+insert_Ddd (unsigned long insn,
+           long value,
+           ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+           const char **errmsg)
+{
+  if (value >= 0 && value <= 0x7)
+    return insn | ((value & 0x3) << 11) | ((value & 0x4) >> 2);
+  else
+    {
+      *errmsg = _("invalid Ddd value");
+      return 0;
+    }
+}
+
+static long
+extract_Ddd (unsigned long insn,
+            ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+            int *invalid ATTRIBUTE_UNUSED)
+{
+  return ((insn >> 11) & 0x3) | ((insn << 2) & 0x4);
+}
 \f
 /* The operands table.
 
@@ -1750,6 +1854,7 @@ const struct powerpc_operand powerpc_operands[] =
 
   /* The RM field in an X form instruction.  */
 #define RM BOE + 1
+#define DD RM
   { 0x3, 11, NULL, NULL, 0 },
 
 #define BH RM + 1
@@ -2154,7 +2259,10 @@ const struct powerpc_operand powerpc_operands[] =
 #define FC SH
   { 0x1f, 11, NULL, NULL, 0 },
 
-#define EVUIMM_LT16 SH + 1
+#define EVUIMM_LT8 SH + 1
+  { 0x1f, 11, insert_evuimm_lt8, extract_evuimm_lt8, 0 },
+
+#define EVUIMM_LT16 EVUIMM_LT8 + 1
   { 0x1f, 11, insert_evuimm_lt16, extract_evuimm_lt16, 0 },
 
   /* The SI field in a HTM X form instruction.  */
@@ -2294,6 +2402,7 @@ const struct powerpc_operand powerpc_operands[] =
 
   /* The SIX field in a VX form instruction.  */
 #define SIX UIM6 + 1
+#define MMMM SIX
   { 0xf, 11, NULL, NULL, 0 },
 
   /* The PS field in a VX form instruction.  */
@@ -2305,7 +2414,13 @@ const struct powerpc_operand powerpc_operands[] =
   { 0xf, 6, NULL, NULL, 0 },
 
   /* The other UIMM field in a half word EVX form instruction.  */
-#define EVUIMM_2 SHB + 1
+#define EVUIMM_1 SHB + 1
+  { 0x1f, 11, NULL, NULL, PPC_OPERAND_PARENS },
+
+#define EVUIMM_1_EX0 EVUIMM_1 + 1
+  { 0x1f, 11, insert_evuimm1_ex0, extract_evuimm1_ex0, PPC_OPERAND_PARENS },
+
+#define EVUIMM_2 EVUIMM_1_EX0 + 1
   { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
 
 #define EVUIMM_2_EX0 EVUIMM_2 + 1
@@ -2328,6 +2443,8 @@ const struct powerpc_operand powerpc_operands[] =
   /* The WS or DRM field in an X form instruction.  */
 #define WS EVUIMM_8_EX0 + 1
 #define DRM WS
+  /* The NNN field in a VX form instruction for SPE2  */
+#define NNN WS
   { 0x7, 11, NULL, NULL, 0 },
 
   /* PowerPC paired singles extensions.  */
@@ -2498,6 +2615,19 @@ const struct powerpc_operand powerpc_operands[] =
 
 #define VX_OFF IMM8 + 1
   { 0x3, 0, insert_off_lsp, extract_off_lsp, 0 },
+
+#define VX_OFF_SPE2 VX_OFF + 1
+  { 0x7, 0, insert_off_spe2, extract_off_spe2, 0 },
+
+#define BBB VX_OFF_SPE2 + 1
+  { 0x7, 13, NULL, NULL, 0 },
+
+#define DDD BBB + 1
+#define VX_MASK_DDD  (VX_MASK & ~0x1)
+  { 0x7, PPC_OPSHIFT_INV, insert_Ddd, extract_Ddd, 0 },
+
+#define HH DDD + 1
+  { 0x3, 13, NULL, NULL, 0 },
 };
 
 const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
@@ -2793,6 +2923,66 @@ const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
 #define VX_LSP_MASK    VX_LSP(0x3f, 0xffff)
 #define VX_LSP_OFF_MASK        VX_LSP(0x3f, 0x7fc)
 
+/* Additional format of VX SPE2 form instruction.   */
+#define VX_RA_CONST(op, xop, bits11_15)                        \
+  (OP (op)                                             \
+   | (((unsigned long)(bits11_15) & 0x1f) << 16)       \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_RA_CONST_MASK VX_RA_CONST(0x3f, 0x7ff, 0x1f)
+
+#define VX_RB_CONST(op, xop, bits16_20)                        \
+  (OP (op)                                             \
+   | (((unsigned long)(bits16_20) & 0x1f) << 11)       \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_RB_CONST_MASK VX_RB_CONST(0x3f, 0x7ff, 0x1f)
+
+#define VX_OFF_SPE2_MASK VX(0x3f, 0x7f8)
+
+#define VX_SPE_CRFD(op, xop, bits9_10)                 \
+  (OP (op)                                             \
+   | (((unsigned long)(bits9_10) & 0x3) << 21)         \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE_CRFD_MASK VX_SPE_CRFD(0x3f, 0x7ff, 0x3)
+
+#define VX_SPE2_CLR(op, xop, bit16)                    \
+  (OP (op)                                             \
+   | (((unsigned long)(bit16) & 0x1) << 15)            \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE2_CLR_MASK VX_SPE2_CLR(0x3f, 0x7ff, 0x1)
+
+#define VX_SPE2_SPLATB(op, xop, bits19_20)             \
+  (OP (op)                                             \
+   | (((unsigned long)(bits19_20) & 0x3) << 11)                \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE2_SPLATB_MASK VX_SPE2_SPLATB(0x3f, 0x7ff, 0x3)
+
+#define VX_SPE2_OCTET(op, xop, bits16_17)              \
+  (OP (op)                                             \
+   | (((unsigned long)(bits16_17) & 0x3) << 14)                \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE2_OCTET_MASK VX_SPE2_OCTET(0x3f, 0x7ff, 0x7)
+
+#define VX_SPE2_DDHH(op, xop, bit16)                   \
+  (OP (op)                                             \
+   | (((unsigned long)(bit16) & 0x1) << 15)            \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE2_DDHH_MASK VX_SPE2_DDHH(0x3f, 0x7ff, 0x1)
+
+#define VX_SPE2_HH(op, xop, bit16, bits19_20)          \
+  (OP (op)                                             \
+   | (((unsigned long)(bit16) & 0x1) << 15)            \
+   | (((unsigned long)(bits19_20) & 0x3) << 11)        \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE2_HH_MASK VX_SPE2_HH(0x3f, 0x7ff, 0x1, 0x3)
+
+#define VX_SPE2_EVMAR(op, xop)                         \
+  (OP (op)                                             \
+   | ((unsigned long)(0x1) << 11)                      \
+   | (((unsigned long)(xop)) & 0x7ff))
+#define VX_SPE2_EVMAR_MASK                             \
+  (VX_SPE2_EVMAR(0x3f, 0x7ff)                          \
+   | ((unsigned long)(0x1) << 11))
+
 /* A VX_MASK with the VA field fixed.  */
 #define VXVA_MASK (VX_MASK | (0x1f << 16))
 
@@ -3313,8 +3503,10 @@ const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
 #define NO371  PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
 #define PPCE300 PPC_OPCODE_E300
 #define PPCSPE PPC_OPCODE_SPE
+#define PPCSPE2 PPC_OPCODE_SPE2
 #define PPCISEL PPC_OPCODE_ISEL
 #define PPCEFS PPC_OPCODE_EFS
+#define PPCEFS2        PPC_OPCODE_EFS2
 #define PPCBRLK PPC_OPCODE_BRLOCK
 #define PPCPMR PPC_OPCODE_PMR
 #define PPCTMR  PPC_OPCODE_TMR
@@ -3656,16 +3848,21 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"evfsadd",    VX (4, 640),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vadduws",    VX (4, 640),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"evfssub",    VX (4, 641),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evfsmadd",   VX (4, 642),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vminuw",     VX (4, 642),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
+{"evfsmsub",   VX (4, 643),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evfsabs",    VX (4, 644),    VX_MASK,     PPCSPE,    0,              {RS, RA}},
 {"vsrw",       VX (4, 644),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"evfsnabs",   VX (4, 645),    VX_MASK,     PPCSPE,    0,              {RS, RA}},
 {"evfsneg",    VX (4, 646),    VX_MASK,     PPCSPE,    0,              {RS, RA}},
 {"vcmpgtuw",   VXR(4, 646,0),  VXR_MASK,    PPCVEC,    0,              {VD, VA, VB}},
+{"evfssqrt",   VX_RB_CONST(4, 647, 0),  VX_RB_CONST_MASK,      PPCEFS2,        0,              {RD, RA}},
 {"vmuleuw",    VX (4, 648),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
 {"evfsmul",    VX (4, 648),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evfsdiv",    VX (4, 649),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evfsnmadd",  VX (4, 650),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vrfip",      VX (4, 650),    VXVA_MASK,   PPCVEC,    0,              {VD, VB}},
+{"evfsnmsub",  VX (4, 651),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evfscmpgt",  VX (4, 652),    VX_MASK,     PPCSPE,    0,              {CRFD, RA, RB}},
 {"vspltw",     VX (4, 652),   VXUIMM2_MASK, PPCVEC,    0,              {VD, VB, UIMM2}},
 {"vextractuw", VX (4, 653),   VXUIMM4_MASK, PPCVEC3,   0,              {VD, VB, UIMM4}},
@@ -3673,10 +3870,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"evfscmpeq",  VX (4, 654),    VX_MASK,     PPCSPE,    0,              {CRFD, RA, RB}},
 {"vupklsb",    VX (4, 654),    VXVA_MASK,   PPCVEC,    0,              {VD, VB}},
 {"evfscfui",   VX (4, 656),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
+{"evfscfh",    VX_RA_CONST(4, 657, 4),  VX_RA_CONST_MASK,      PPCEFS2,        0,              {RD, RB}},
 {"evfscfsi",   VX (4, 657),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
 {"evfscfuf",   VX (4, 658),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
 {"evfscfsf",   VX (4, 659),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
 {"evfsctui",   VX (4, 660),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
+{"evfscth",    VX_RA_CONST(4, 661, 4),  VX_RA_CONST_MASK,      PPCEFS2,        0,              {RD, RB}},
 {"evfsctsi",   VX (4, 661),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
 {"evfsctuf",   VX (4, 662),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
 {"evfsctsf",   VX (4, 663),    VX_MASK,     PPCSPE,    0,              {RS, RB}},
@@ -3686,19 +3885,43 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"evfststgt",  VX (4, 668),    VX_MASK,     PPCSPE,    0,              {CRFD, RA, RB}},
 {"evfststlt",  VX (4, 669),    VX_MASK,     PPCSPE,    0,              {CRFD, RA, RB}},
 {"evfststeq",  VX (4, 670),    VX_MASK,     PPCSPE,    0,              {CRFD, RA, RB}},
+{"evfsmax",    VX (4, 672),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsmin",    VX (4, 673),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsaddsub", VX (4, 674),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfssubadd", VX (4, 675),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfssum",    VX (4, 676),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsdiff",   VX (4, 677),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfssumdiff",        VX (4, 678),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsdiffsum",        VX (4, 679),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsaddx",   VX (4, 680),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfssubx",   VX (4, 681),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsaddsubx",        VX (4, 682),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfssubaddx",        VX (4, 683),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsmulx",   VX (4, 684),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsmule",   VX (4, 686),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"evfsmulo",   VX (4, 687),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"efsmax",     VX (4, 688),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"efsmin",     VX (4, 689),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
+{"efdmax",     VX (4, 696),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
 {"cput",       APU(4, 348,0),  APU_RT_MASK, PPC405,    0,              {RA, FSL}},
+{"efdmin",     VX (4, 697),    VX_MASK,     PPCEFS2,   0,              {RD, RA, RB}},
 {"efsadd",     VX (4, 704),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
 {"efssub",     VX (4, 705),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
+{"efsmadd",    VX (4, 706),    VX_MASK,     PPCEFS2,   0,              {RS, RA, RB}},
 {"vminud",     VX (4, 706),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
+{"efsmsub",    VX (4, 707),    VX_MASK,     PPCEFS2,   0,              {RS, RA, RB}},
 {"efsabs",     VX (4, 708),    VX_MASK,     PPCEFS,    0,              {RS, RA}},
 {"vsr",                VX (4, 708),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"efsnabs",    VX (4, 709),    VX_MASK,     PPCEFS,    0,              {RS, RA}},
 {"efsneg",     VX (4, 710),    VX_MASK,     PPCEFS,    0,              {RS, RA}},
 {"vcmpgtfp",   VXR(4, 710,0),  VXR_MASK,    PPCVEC,    0,              {VD, VA, VB}},
+{"efssqrt",    VX_RB_CONST(4, 711, 0), VX_RB_CONST_MASK,PPCEFS2, 0,    {RD, RA}},
 {"vcmpgtud",   VXR(4, 711,0),  VXR_MASK,    PPCVEC2,   0,              {VD, VA, VB}},
 {"efsmul",     VX (4, 712),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
 {"efsdiv",     VX (4, 713),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
+{"efsnmadd",   VX (4, 714),    VX_MASK,     PPCEFS2,   0,              {RS, RA, RB}},
 {"vrfim",      VX (4, 714),    VXVA_MASK,   PPCVEC,    0,              {VD, VB}},
+{"efsnmsub",   VX (4, 715),    VX_MASK,     PPCEFS2,   0,              {RS, RA, RB}},
 {"efscmpgt",   VX (4, 716),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"vextractd",  VX (4, 717),   VXUIMM4_MASK, PPCVEC3,   0,              {VD, VB, UIMM4}},
 {"efscmplt",   VX (4, 717),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
@@ -3706,10 +3929,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vupklsh",    VX (4, 718),    VXVA_MASK,   PPCVEC,    0,              {VD, VB}},
 {"efscfd",     VX (4, 719),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efscfui",    VX (4, 720),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efscfh",     VX_RA_CONST(4, 721, 4), VX_RA_CONST_MASK, PPCEFS2, 0,   {RD, RB}},
 {"efscfsi",    VX (4, 721),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efscfuf",    VX (4, 722),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efscfsf",    VX (4, 723),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efsctui",    VX (4, 724),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efscth",     VX_RA_CONST(4, 725, 4), VX_RA_CONST_MASK, PPCEFS2, 0,   {RD, RB}},
 {"efsctsi",    VX (4, 725),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efsctuf",    VX (4, 726),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efsctsf",    VX (4, 727),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
@@ -3721,30 +3946,41 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"efststeq",   VX (4, 734),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"efdadd",     VX (4, 736),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
 {"efdsub",     VX (4, 737),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
-{"efdcfuid",   VX (4, 738),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
-{"efdcfsid",   VX (4, 739),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efdmadd",    VX (4, 738),    VX_MASK,     PPCEFS2,   E500|E500MC,    {RD, RA, RB}},
+{"efdcfuid",   VX (4, 738),    VX_MASK,     E500|E500MC,0,             {RS, RB}},
+{"efdmsub",    VX (4, 739),    VX_MASK,     PPCEFS2,   E500|E500MC,    {RD, RA, RB}},
+{"efdcfsid",   VX (4, 739),    VX_MASK,     E500|E500MC,0,             {RS, RB}},
 {"efdabs",     VX (4, 740),    VX_MASK,     PPCEFS,    0,              {RS, RA}},
 {"efdnabs",    VX (4, 741),    VX_MASK,     PPCEFS,    0,              {RS, RA}},
 {"efdneg",     VX (4, 742),    VX_MASK,     PPCEFS,    0,              {RS, RA}},
+{"efdsqrt",    VX_RB_CONST(4, 743, 0), VX_RB_CONST_MASK, PPCEFS2, 0,   {RD, RA}},
 {"efdmul",     VX (4, 744),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
 {"efddiv",     VX (4, 745),    VX_MASK,     PPCEFS,    0,              {RS, RA, RB}},
-{"efdctuidz",  VX (4, 746),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
-{"efdctsidz",  VX (4, 747),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efdnmadd",   VX (4, 746),    VX_MASK,     PPCEFS2,   E500|E500MC,    {RD, RA, RB}},
+{"efdctuidz",  VX (4, 746),    VX_MASK,     E500|E500MC,0,             {RS, RB}},
+{"efdnmsub",   VX (4, 747),    VX_MASK,     PPCEFS2,   E500|E500MC,    {RD, RA, RB}},
+{"efdctsidz",  VX (4, 747),    VX_MASK,     E500|E500MC,0,             {RS, RB}},
 {"efdcmpgt",   VX (4, 748),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"efdcmplt",   VX (4, 749),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"efdcmpeq",   VX (4, 750),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"efdcfs",     VX (4, 751),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
-{"efdcfui",    VX (4, 752),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
-{"efdcfsi",    VX (4, 753),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efdcfui",    VX_RA_CONST(4, 752, 0), VX_RA_CONST_MASK, PPCEFS, 0,    {RS, RB}},
+{"efdcfuid",   VX_RA_CONST(4, 752, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,  {RS, RB}},
+{"efdcfsi",    VX_RA_CONST(4, 753, 0), VX_RA_CONST_MASK, PPCEFS, 0,    {RS, RB}},
+{"efdcfsid",   VX_RA_CONST(4, 753, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,  {RS, RB}},
+{"efdcfh",     VX_RA_CONST(4, 753, 4), VX_RA_CONST_MASK, PPCEFS2, 0,   {RD, RB}},
 {"efdcfuf",    VX (4, 754),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efdcfsf",    VX (4, 755),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efdctui",    VX (4, 756),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efdcth",     VX_RA_CONST(4, 757, 4), VX_RA_CONST_MASK, PPCEFS2, 0,   {RD, RB}},
 {"efdctsi",    VX (4, 757),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efdctuf",    VX (4, 758),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
 {"efdctsf",    VX (4, 759),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
-{"efdctuiz",   VX (4, 760),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efdctuiz",   VX_RA_CONST(4, 760, 0), VX_RA_CONST_MASK, PPCEFS, 0,    {RS, RB}},
+{"efdctuidz",  VX_RA_CONST(4, 760, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,  {RS, RB}},
 {"ncput",      APU(4, 380,0),  APU_RT_MASK, PPC405,    0,              {RA, FSL}},
-{"efdctsiz",   VX (4, 762),    VX_MASK,     PPCEFS,    0,              {RS, RB}},
+{"efdctsiz",   VX_RA_CONST(4, 762, 0), VX_RA_CONST_MASK, PPCEFS, 0,    {RS, RB}},
+{"efdctsidz",  VX_RA_CONST(4, 762, 1), VX_RA_CONST_MASK, PPCEFS, E500|E500MC,  {RS, RB}},
 {"efdtstgt",   VX (4, 764),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"efdtstlt",   VX (4, 765),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
 {"efdtsteq",   VX (4, 766),    VX_MASK,     PPCEFS,    0,              {CRFD, RA, RB}},
@@ -3873,6 +4109,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vsubuhm",    VX (4,1088),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"bcdsub.",    VX (4,1089),    VXPS_MASK,   PPCVEC2,   0,              {VD, VA, VB, PS}},
 {"vavguh",     VX (4,1090),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
+{"evmwlssf",   VX (4,1091),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vabsduh",    VX (4,1091),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
 {"vandc",      VX (4,1092),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"vcmpequh.",  VXR(4,  70,1),  VXR_MASK,    PPCVEC,    0,              {VD, VA, VB}},
@@ -3883,6 +4120,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"vpmsumh",    VX (4,1096),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
 {"evmwlumi",   VX (4,1096),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vminfp",     VX (4,1098),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
+{"evmwlsmf",   VX (4,1099),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"evmwhumi",   VX (4,1100),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vsro",       VX (4,1100),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"evmwhsmi",   VX (4,1101),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
@@ -3898,8 +4136,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"nmachhwo.",  XO (4,  46,1,1), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"ps_merge01", XOPS(4,560,0),  XOPS_MASK,   PPCPS,     0,              {FRT, FRA, FRB}},
 {"ps_merge01.",        XOPS(4,560,1),  XOPS_MASK,   PPCPS,     0,              {FRT, FRA, FRB}},
+{"evmwlssfa",  VX (4,1123),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"evmwhssfa",  VX (4,1127),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evmwlumia",  VX (4,1128),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evmwlsmfa",  VX (4,1131),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"evmwhumia",  VX (4,1132),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evmwhsmia",  VX (4,1133),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evmwhsmfa",  VX (4,1135),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
@@ -3984,16 +4224,24 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"bcdutrunc.", VX (4,1345),    VX_MASK,     PPCVEC3,   0,              {VD, VA, VB}},
 {"evmwlssiaaw",        VX (4,1345),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vavgsh",     VX (4,1346),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
+{"evmwlssfaaw",        VX (4,1347),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhusiaa", VX (4,1348),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vorc",       VX (4,1348),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
+{"evmwhssmaa", VX (4,1349),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"udi5fcm.",   APU(4, 675,0),  APU_MASK, PPC405|PPC440, 0,             {URT, URA, URB}},
 {"udi5fcm",    APU(4, 675,1),  APU_MASK, PPC405|PPC440, 0,             {URT, URA, URB}},
 {"vcmpnezh.",  VXR(4, 327,1),  VXR_MASK,    PPCVEC3,   0,              {VD, VA, VB}},
+{"evmwhssfaa", VX (4,1351),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vncipher",   VX (4,1352),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
 {"evmwlumiaaw",        VX (4,1352),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vncipherlast",VX (4,1353),   VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
 {"evmwlsmiaaw",        VX (4,1353),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evmwlsmfaaw",        VX (4,1355),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhumiaa", VX (4,1356),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vbpermq",    VX (4,1356),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
+{"evmwhsmiaa", VX (4,1357),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vpksdus",    VX (4,1358),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
+{"evmwhsmfaa", VX (4,1359),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"evmwssfaa",  VX (4,1363),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"macchwo",    XO (4, 172,1,0), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"evmwumiaa",  VX (4,1368),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
@@ -4002,6 +4250,10 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"evmwsmfaa",  VX (4,1371),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"nmacchwo",   XO (4, 174,1,0), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"nmacchwo.",  XO (4, 174,1,1), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
+{"evmwhgumiaa",        VX (4,1380),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhgsmiaa",        VX (4,1381),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhgssfaa",        VX (4,1383),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhgsmfaa",        VX (4,1391),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"evmheusianw",        VX (4,1408),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"vsubcuw",    VX (4,1408),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
 {"evmhessianw",        VX (4,1409),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
@@ -4038,21 +4290,33 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"evmwlusianw",        VX (4,1472),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"bcdsr.",     VX (4,1473),    VXPS_MASK,   PPCVEC3,   0,              {VD, VA, VB, PS}},
 {"evmwlssianw",        VX (4,1473),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evmwlssfanw",        VX (4,1475),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhusian", VX (4,1476),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vsld",       VX (4,1476),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
+{"evmwhssian", VX (4,1477),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vcmpgefp.",  VXR(4, 454,1),  VXR_MASK,    PPCVEC,    0,              {VD, VA, VB}},
 {"udi7fcm.",   APU(4, 739,0),  APU_MASK, PPC405|PPC440, 0,             {URT, URA, URB}},
 {"udi7fcm",    APU(4, 739,1),  APU_MASK, PPC405|PPC440, 0,             {URT, URA, URB}},
+{"evmwhssfan", VX (4,1479),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vsbox",      VX (4,1480),    VXVB_MASK,   PPCVEC2,   0,              {VD, VA}},
 {"evmwlumianw",        VX (4,1480),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evmwlsmianw",        VX (4,1481),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evmwlsmfanw",        VX (4,1483),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhumian", VX (4,1484),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vbpermd",    VX (4,1484),    VX_MASK,     PPCVEC3,   0,              {VD, VA, VB}},
+{"evmwhsmian", VX (4,1485),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"vpksdss",    VX (4,1486),    VX_MASK,     PPCVEC2,   0,              {VD, VA, VB}},
+{"evmwhsmfan", VX (4,1487),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"evmwssfan",  VX (4,1491),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"macchwso",   XO (4, 236,1,0), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"evmwumian",  VX (4,1496),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"macchwso.",  XO (4, 236,1,1), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"evmwsmian",  VX (4,1497),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
 {"evmwsmfan",  VX (4,1499),    VX_MASK,     PPCSPE,    0,              {RS, RA, RB}},
+{"evmwhgumian",        VX (4,1508),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhgsmian",        VX (4,1509),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhgssfan",        VX (4,1511),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
+{"evmwhgsmfan",        VX (4,1519),    VX_MASK,     PPCSPE,    0,              {RD, RA, RB}},
 {"nmacchwso",  XO (4, 238,1,0), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"nmacchwso.", XO (4, 238,1,1), XO_MASK,    MULHW,     0,              {RT, RA, RB}},
 {"vsububs",    VX (4,1536),    VX_MASK,     PPCVEC,    0,              {VD, VA, VB}},
@@ -6382,6 +6646,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"srad",       XRC(31,794,0),  X_MASK,      PPC64,     0,              {RA, RS, RB}},
 {"srad.",      XRC(31,794,1),  X_MASK,      PPC64,     0,              {RA, RS, RB}},
 
+{"evlddepx",    VX (31, 1598), VX_MASK,     PPCSPE,    0,              {RT, RA, RB}},
 {"lfddx",      X(31,803),      X_MASK,      E500MC,    0,              {FRT, RA, RB}},
 
 {"lvtrxl",     X(31,805),      X_MASK,      E6500,     0,              {VD, RA0, RB}},
@@ -6500,6 +6765,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
 {"extsh.",     XRC(31,922,1),  XRB_MASK,    PPCCOM,    0,              {RA, RS}},
 {"exts.",      XRC(31,922,1),  XRB_MASK,    PWRCOM,    0,              {RA, RS}},
 
+{"evstddepx",  VX (31, 1854),  VX_MASK,     PPCSPE,    0,              {RT, RA, RB}},
 {"stfddx",     X(31,931),      X_MASK,      E500MC,    0,              {FRS, RA, RB}},
 
 {"stvfrxl",    X(31,933),      X_MASK,      E6500,     0,              {VS, RA0, RB}},
@@ -8285,7 +8551,829 @@ const struct powerpc_macro powerpc_macros[] = {
 {"e_clrlwi", 3,        PPCVLE, "e_rlwinm %0,%1,0,%2,31"},
 {"e_clrrwi", 3,        PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"},
 {"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
+
+/* old SPE instructions have new names with the same opcodes */
+{"evsadd",      3, PPCSPE|PPCVLE, "efsadd %0,%1,%2"},
+{"evssub",      3, PPCSPE|PPCVLE, "efssub %0,%1,%2"},
+{"evsabs",      2, PPCSPE|PPCVLE, "efsabs %0,%1"},
+{"evsnabs",     2, PPCSPE|PPCVLE, "efsnabs %0,%1"},
+{"evsneg",      2, PPCSPE|PPCVLE, "efsneg %0,%1"},
+{"evsmul",     3, PPCSPE|PPCVLE, "efsmul %0,%1,%2"},
+{"evsdiv",     3, PPCSPE|PPCVLE, "efsdiv %0,%1,%2"},
+{"evscmpgt",   3, PPCSPE|PPCVLE, "efscmpgt %0,%1,%2"},
+{"evsgmplt",   3, PPCSPE|PPCVLE, "efscmplt %0,%1,%2"},
+{"evsgmpeq",    3, PPCSPE|PPCVLE, "efscmpeq %0,%1,%2"},
+{"evscfui",     2, PPCSPE|PPCVLE, "efscfui %0,%1"},
+{"evscfsi",     2, PPCSPE|PPCVLE, "efscfsi %0,%1"},
+{"evscfuf",     2, PPCSPE|PPCVLE, "efscfuf %0,%1"},
+{"evscfsf",     2, PPCSPE|PPCVLE, "efscfsf %0,%1"},
+{"evsctui",     2, PPCSPE|PPCVLE, "efsctui %0,%1"},
+{"evsctsi",     2, PPCSPE|PPCVLE, "efsctsi %0,%1"},
+{"evsctuf",     2, PPCSPE|PPCVLE, "efsctuf %0,%1"},
+{"evsctsf",     2, PPCSPE|PPCVLE, "efsctsf %0,%1"},
+{"evsctuiz",    2, PPCSPE|PPCVLE, "efsctuiz %0,%1"},
+{"evsctsiz",    2, PPCSPE|PPCVLE, "efsctsiz %0,%1"},
+{"evststgt",    3, PPCSPE|PPCVLE, "efststgt %0,%1,%2"},
+{"evststlt",    3, PPCSPE|PPCVLE, "efststlt %0,%1,%2"},
+{"evststeq",    3, PPCSPE|PPCVLE, "efststeq %0,%1,%2"},
+
+/* SPE2 instructions which just are mapped to SPE2 */
+{"evdotphsssi",  3, PPCSPE2, "evdotphssmi %0,%1,%2"},
+{"evdotphsssia", 3, PPCSPE2, "evdotphssmia %0,%1,%2"},
+{"evdotpwsssi",  3, PPCSPE2, "evdotpwssmi %0,%1,%2"},
+{"evdotpwsssia", 3, PPCSPE2, "evdotpwssmia %0,%1,%2"}
 };
 
 const int powerpc_num_macros =
   sizeof (powerpc_macros) / sizeof (powerpc_macros[0]);
+
+/* SPE v2 instruction set from SPE2PIM Rev. 2 08/2011 */
+const struct powerpc_opcode spe2_opcodes[] = {
+{"evdotpwcssi",                  VX (4, 128),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcsmi",                  VX (4, 129),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfr",         VX (4, 130),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssf",                  VX (4, 131),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmf",         VX (4, 136),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmf",        VX (4, 137),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfr",        VX (4, 138),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfr",       VX (4, 139),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmf",         VX (4, 140),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmf",        VX (4, 141),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfr",        VX (4, 142),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfr",       VX (4, 143),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssiaaw3",      VX (4, 144),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcsmiaaw3",      VX (4, 145),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfraaw3",     VX (4, 146),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfaaw3",      VX (4, 147),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfaa3",      VX (4, 152),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfaa3",     VX (4, 153),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfraa3",     VX (4, 154),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfraa3",    VX (4, 155),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfaa3",      VX (4, 156),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfaa3",     VX (4, 157),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfraa3",     VX (4, 158),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfraa3",    VX (4, 159),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssia",         VX (4, 160),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcsmia",         VX (4, 161),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfra",        VX (4, 162),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfa",         VX (4, 163),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfa",        VX (4, 168),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfa",       VX (4, 169),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfra",       VX (4, 170),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfra",      VX (4, 171),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfa",        VX (4, 172),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfa",       VX (4, 173),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfra",       VX (4, 174),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfra",      VX (4, 175),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssiaaw",       VX (4, 176),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcsmiaaw",       VX (4, 177),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfraaw",      VX (4, 178),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwcssfaaw",       VX (4, 179),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfaa",       VX (4, 184),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfaa",      VX (4, 185),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgasmfraa",      VX (4, 186),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgasmfraa",     VX (4, 187),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfaa",       VX (4, 188),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfaa",      VX (4, 189),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwgssmfraa",      VX (4, 190),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwxgssmfraa",     VX (4, 191),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssi",        VX (4, 256),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssi",        VX (4, 257),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssf",        VX (4, 258),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssf",        VX (4, 259),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcsmi",        VX (4, 264),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcsmi",        VX (4, 265),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfr",       VX (4, 266),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfr",       VX (4, 267),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssiaaw3",    VX (4, 272),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssiaaw3",    VX (4, 273),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfaaw3",    VX (4, 274),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfaaw3",    VX (4, 275),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcsmiaaw3",    VX (4, 280),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcsmiaaw3",    VX (4, 281),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfraaw3",   VX (4, 282),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfraaw3",   VX (4, 283),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssia",       VX (4, 288),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssia",       VX (4, 289),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfa",       VX (4, 290),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfa",       VX (4, 291),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcsmia",       VX (4, 296),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcsmia",       VX (4, 297),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfra",      VX (4, 298),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfra",      VX (4, 299),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssiaaw",     VX (4, 304),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssiaaw",     VX (4, 305),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfaaw",     VX (4, 306),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfaaw",     VX (4, 307),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcsmiaaw",     VX (4, 312),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcsmiaaw",     VX (4, 313),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphihcssfraaw",    VX (4, 314),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotplohcssfraaw",    VX (4, 315),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphausi",                  VX (4, 320),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassi",                  VX (4, 321),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasusi",         VX (4, 322),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassf",                  VX (4, 323),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssf",                  VX (4, 327),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphaumi",                  VX (4, 328),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasmi",                  VX (4, 329),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasumi",         VX (4, 330),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfr",         VX (4, 331),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphssmi",                  VX (4, 333),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfr",         VX (4, 335),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphausiaaw3",      VX (4, 336),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassiaaw3",      VX (4, 337),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasusiaaw3",     VX (4, 338),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfaaw3",      VX (4, 339),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssiaaw3",      VX (4, 341),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfaaw3",      VX (4, 343),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphaumiaaw3",      VX (4, 344),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasmiaaw3",      VX (4, 345),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasumiaaw3",     VX (4, 346),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfraaw3",     VX (4, 347),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphssmiaaw3",      VX (4, 349),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfraaw3",     VX (4, 351),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphausia",         VX (4, 352),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassia",         VX (4, 353),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasusia",        VX (4, 354),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfa",         VX (4, 355),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfa",         VX (4, 359),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphaumia",         VX (4, 360),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasmia",         VX (4, 361),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasumia",        VX (4, 362),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfra",        VX (4, 363),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphssmia",         VX (4, 365),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfra",        VX (4, 367),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphausiaaw",       VX (4, 368),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassiaaw",       VX (4, 369),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasusiaaw",      VX (4, 370),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfaaw",       VX (4, 371),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssiaaw",       VX (4, 373),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfaaw",       VX (4, 375),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphaumiaaw",       VX (4, 376),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasmiaaw",       VX (4, 377),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphasumiaaw",      VX (4, 378),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphassfraaw",      VX (4, 379),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphssmiaaw",       VX (4, 381),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotphsssfraaw",      VX (4, 383),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgaumi",        VX (4, 384),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmi",        VX (4, 385),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasumi",       VX (4, 386),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmf",        VX (4, 387),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmi",        VX (4, 388),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmf",        VX (4, 389),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmi",       VX (4, 390),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmf",       VX (4, 391),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbaumi",                  VX (4, 392),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasmi",                  VX (4, 393),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasumi",         VX (4, 394),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmi",       VX (4, 398),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmf",       VX (4, 399),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgaumiaa3",     VX (4, 400),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmiaa3",     VX (4, 401),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasumiaa3",    VX (4, 402),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmfaa3",     VX (4, 403),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmiaa3",     VX (4, 404),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmfaa3",     VX (4, 405),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmiaa3",    VX (4, 406),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmfaa3",    VX (4, 407),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbaumiaaw3",      VX (4, 408),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasmiaaw3",      VX (4, 409),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasumiaaw3",     VX (4, 410),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmiaa3",    VX (4, 414),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmfaa3",    VX (4, 415),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgaumia",       VX (4, 416),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmia",       VX (4, 417),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasumia",      VX (4, 418),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmfa",       VX (4, 419),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmia",       VX (4, 420),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmfa",       VX (4, 421),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmia",      VX (4, 422),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmfa",      VX (4, 423),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbaumia",         VX (4, 424),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasmia",         VX (4, 425),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasumia",        VX (4, 426),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmia",      VX (4, 430),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmfa",      VX (4, 431),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgaumiaa",      VX (4, 432),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmiaa",      VX (4, 433),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasumiaa",     VX (4, 434),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgasmfaa",      VX (4, 435),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmiaa",      VX (4, 436),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hgssmfaa",      VX (4, 437),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmiaa",     VX (4, 438),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgasmfaa",     VX (4, 439),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbaumiaaw",       VX (4, 440),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasmiaaw",       VX (4, 441),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpbasumiaaw",      VX (4, 442),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmiaa",     VX (4, 446),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotp4hxgssmfaa",     VX (4, 447),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwausi",                  VX (4, 448),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwassi",                  VX (4, 449),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasusi",         VX (4, 450),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwaumi",                  VX (4, 456),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasmi",                  VX (4, 457),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasumi",         VX (4, 458),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwssmi",                  VX (4, 461),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwausiaa3",       VX (4, 464),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwassiaa3",       VX (4, 465),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasusiaa3",      VX (4, 466),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwsssiaa3",       VX (4, 469),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwaumiaa3",       VX (4, 472),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasmiaa3",       VX (4, 473),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasumiaa3",      VX (4, 474),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwssmiaa3",       VX (4, 477),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwausia",         VX (4, 480),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwassia",         VX (4, 481),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasusia",        VX (4, 482),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwaumia",         VX (4, 488),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasmia",         VX (4, 489),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasumia",        VX (4, 490),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwssmia",         VX (4, 493),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwausiaa",        VX (4, 496),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwassiaa",        VX (4, 497),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasusiaa",       VX (4, 498),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwsssiaa",        VX (4, 501),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwaumiaa",        VX (4, 504),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasmiaa",        VX (4, 505),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwasumiaa",       VX (4, 506),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdotpwssmiaa",        VX (4, 509),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddib",              VX (4, 515),          VX_MASK,                PPCSPE2, 0, {RD, RB, UIMM}},
+{"evaddih",              VX (4, 513),          VX_MASK,                PPCSPE2, 0, {RD, RB, UIMM}},
+{"evsubifh",             VX (4, 517),          VX_MASK,                PPCSPE2, 0, {RD, UIMM, RB}},
+{"evsubifb",             VX (4, 519),          VX_MASK,                PPCSPE2, 0, {RD, UIMM, RB}},
+{"evabsb",               VX_RB_CONST(4, 520, 2),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evabsh",               VX_RB_CONST(4, 520, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evabsd",               VX_RB_CONST(4, 520, 6),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evabss",               VX_RB_CONST(4, 520, 8),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evabsbs",              VX_RB_CONST(4, 520, 10), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evabshs",              VX_RB_CONST(4, 520, 12), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evabsds",              VX_RB_CONST(4, 520, 14), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegwo",              VX_RB_CONST(4, 521, 1),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegb",               VX_RB_CONST(4, 521, 2),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegbo",              VX_RB_CONST(4, 521, 3),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegh",               VX_RB_CONST(4, 521, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegho",              VX_RB_CONST(4, 521, 5),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegd",               VX_RB_CONST(4, 521, 6),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegs",               VX_RB_CONST(4, 521, 8),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegwos",             VX_RB_CONST(4, 521, 9),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegbs",              VX_RB_CONST(4, 521, 10), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegbos",             VX_RB_CONST(4, 521, 11), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evneghs",              VX_RB_CONST(4, 521, 12), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evneghos",             VX_RB_CONST(4, 521, 13), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evnegds",              VX_RB_CONST(4, 521, 14), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evextzb",              VX_RB_CONST(4, 522, 1),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evextsbh",             VX_RB_CONST(4, 522, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evextsw",              VX_RB_CONST(4, 523, 6),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndwh",              VX_RB_CONST(4, 524, 0),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndhb",              VX_RB_CONST(4, 524, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrnddw",              VX_RB_CONST(4, 524, 6),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndwhus",            VX_RB_CONST(4, 524, 8),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndwhss",            VX_RB_CONST(4, 524, 9),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndhbus",            VX_RB_CONST(4, 524, 12), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndhbss",            VX_RB_CONST(4, 524, 13), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrnddwus",            VX_RB_CONST(4, 524, 14), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrnddwss",            VX_RB_CONST(4, 524, 15), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndwnh",             VX_RB_CONST(4, 524, 16), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndhnb",             VX_RB_CONST(4, 524, 20), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrnddnw",             VX_RB_CONST(4, 524, 22), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndwnhus",           VX_RB_CONST(4, 524, 24), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndwnhss",           VX_RB_CONST(4, 524, 25), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndhnbus",           VX_RB_CONST(4, 524, 28), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrndhnbss",           VX_RB_CONST(4, 524, 29), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrnddnwus",           VX_RB_CONST(4, 524, 30), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evrnddnwss",           VX_RB_CONST(4, 524, 31), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evcntlzh",             VX_RB_CONST(4, 525, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evcntlsh",             VX_RB_CONST(4, 526, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evpopcntb",            VX_RB_CONST(4, 526, 26), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"circinc",              VX (4, 528),             VX_MASK,             PPCSPE2, 0, {RD, RA, RB}},
+{"evunpkhibui",                  VX_RB_CONST(4, 540, 0),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpkhibsi",                  VX_RB_CONST(4, 540, 1),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpkhihui",                  VX_RB_CONST(4, 540, 2),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpkhihsi",                  VX_RB_CONST(4, 540, 3),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpklobui",                  VX_RB_CONST(4, 540, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpklobsi",                  VX_RB_CONST(4, 540, 5),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpklohui",                  VX_RB_CONST(4, 540, 6),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpklohsi",                  VX_RB_CONST(4, 540, 7),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpklohf",           VX_RB_CONST(4, 540, 8),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpkhihf",           VX_RB_CONST(4, 540, 9),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpklowgsf",         VX_RB_CONST(4, 540, 12), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evunpkhiwgsf",         VX_RB_CONST(4, 540, 13), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatsduw",            VX_RB_CONST(4, 540, 16), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatsdsw",            VX_RB_CONST(4, 540, 17), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatshub",            VX_RB_CONST(4, 540, 18), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatshsb",            VX_RB_CONST(4, 540, 19), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatuwuh",            VX_RB_CONST(4, 540, 20), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatswsh",            VX_RB_CONST(4, 540, 21), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatswuh",            VX_RB_CONST(4, 540, 22), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatuhub",            VX_RB_CONST(4, 540, 23), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatuduw",            VX_RB_CONST(4, 540, 24), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatuwsw",            VX_RB_CONST(4, 540, 25), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatshuh",            VX_RB_CONST(4, 540, 26), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatuhsh",            VX_RB_CONST(4, 540, 27), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatswuw",            VX_RB_CONST(4, 540, 28), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatswgsdf",                  VX_RB_CONST(4, 540, 29), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatsbub",            VX_RB_CONST(4, 540, 30), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsatubsb",            VX_RB_CONST(4, 540, 31), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxhpuw",            VX_RB_CONST(4, 541, 0),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxhpsw",            VX_RB_CONST(4, 541, 1),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxbpuh",            VX_RB_CONST(4, 541, 4),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxbpsh",            VX_RB_CONST(4, 541, 5),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxwpud",            VX_RB_CONST(4, 541, 6),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxwpsd",            VX_RB_CONST(4, 541, 7),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evminhpuw",            VX_RB_CONST(4, 541, 8),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evminhpsw",            VX_RB_CONST(4, 541, 9),  VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evminbpuh",            VX_RB_CONST(4, 541, 12), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evminbpsh",            VX_RB_CONST(4, 541, 13), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evminwpud",            VX_RB_CONST(4, 541, 14), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evminwpsd",            VX_RB_CONST(4, 541, 15), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evmaxmagws",           VX (4, 543),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsl",                 VX (4, 549),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsli",                VX (4, 551),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM}},
+{"evsplatie",            VX_RB_CONST (4, 553, 1),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatib",            VX_RB_CONST (4, 553, 2),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatibe",           VX_RB_CONST (4, 553, 3),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatih",            VX_RB_CONST (4, 553, 4),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatihe",           VX_RB_CONST (4, 553, 5),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatid",            VX_RB_CONST (4, 553, 6),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatia",            VX_RB_CONST (4, 553, 16), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatiea",           VX_RB_CONST (4, 553, 17), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatiba",           VX_RB_CONST (4, 553, 18), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatibea",                  VX_RB_CONST (4, 553, 19), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatiha",           VX_RB_CONST (4, 553, 20), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatihea",                  VX_RB_CONST (4, 553, 21), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatida",           VX_RB_CONST (4, 553, 22), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfio",           VX_RB_CONST (4, 555, 1),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfib",           VX_RB_CONST (4, 555, 2),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfibo",                  VX_RB_CONST (4, 555, 3),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfih",           VX_RB_CONST (4, 555, 4),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfiho",                  VX_RB_CONST (4, 555, 5),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfid",           VX_RB_CONST (4, 555, 6),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfia",           VX_RB_CONST (4, 555, 16), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfioa",                  VX_RB_CONST (4, 555, 17), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfiba",                  VX_RB_CONST (4, 555, 18), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfiboa",         VX_RB_CONST (4, 555, 19), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfiha",                  VX_RB_CONST (4, 555, 20), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfihoa",         VX_RB_CONST (4, 555, 21), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evsplatfida",                  VX_RB_CONST (4, 555, 22), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, SIMM}},
+{"evcmpgtdu",            VX_SPE_CRFD (4, 560, 1), VX_SPE_CRFD_MASK,    PPCSPE2, 0, {CRFD, RA, RB}},
+{"evcmpgtds",            VX_SPE_CRFD (4, 561, 1), VX_SPE_CRFD_MASK,    PPCSPE2, 0, {CRFD, RA, RB}},
+{"evcmpltdu",            VX_SPE_CRFD (4, 562, 1), VX_SPE_CRFD_MASK,    PPCSPE2, 0, {CRFD, RA, RB}},
+{"evcmpltds",            VX_SPE_CRFD (4, 563, 1), VX_SPE_CRFD_MASK,    PPCSPE2, 0, {CRFD, RA, RB}},
+{"evcmpeqd",             VX_SPE_CRFD (4, 564, 1), VX_SPE_CRFD_MASK,    PPCSPE2, 0, {CRFD, RA, RB}},
+{"evswapbhilo",                  VX (4, 568),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswapblohi",                  VX (4, 569),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswaphhilo",                  VX (4, 570),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswaphlohi",                  VX (4, 571),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswaphe",             VX (4, 572),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswaphhi",            VX (4, 573),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswaphlo",            VX (4, 574),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evswapho",             VX (4, 575),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evinsb",               VX (4, 584),          VX_MASK_DDD,            PPCSPE2, 0, {RD, RA, DDD, BBB}},
+{"evxtrb",               VX (4, 586),          VX_MASK_DDD,            PPCSPE2, 0, {RD, RA, DDD, BBB}},
+{"evsplath",             VX_SPE2_HH (4, 588, 0, 0), VX_SPE2_HH_MASK,   PPCSPE2, 0, {RD, RA, HH}},
+{"evsplatb",             VX_SPE2_SPLATB (4, 588, 2), VX_SPE2_SPLATB_MASK, PPCSPE2, 0, {RD, RA, BBB}},
+{"evinsh",               VX_SPE2_DDHH (4, 589, 0), VX_SPE2_DDHH_MASK,  PPCSPE2, 0, {RD, RA, DD, HH}},
+{"evclrbe",              VX_SPE2_CLR (4, 590, 0), VX_SPE2_CLR_MASK,    PPCSPE2, 0, {RD, RA, MMMM}},
+{"evclrbo",              VX_SPE2_CLR (4, 590, 1), VX_SPE2_CLR_MASK,    PPCSPE2, 0, {RD, RA, MMMM}},
+{"evclrh",               VX_SPE2_CLR (4, 591, 1), VX_SPE2_CLR_MASK,    PPCSPE2, 0, {RD, RA, MMMM}},
+{"evxtrh",               VX_SPE2_DDHH (4, 591, 0), VX_SPE2_DDHH_MASK,  PPCSPE2, 0, {RD, RA, DD, HH}},
+{"evselbitm0",           VX (4, 592),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evselbitm1",           VX (4, 593),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evselbit",             VX (4, 594),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evperm",               VX (4, 596),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evperm2",              VX (4, 597),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evperm3",              VX (4, 598),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evxtrd",               VX (4, 600),          VX_OFF_SPE2_MASK,       PPCSPE2, 0, {RD, RA, RB, VX_OFF_SPE2}},
+{"evsrbu",               VX (4, 608),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsrbs",               VX (4, 609),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsrbiu",              VX (4, 610),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
+{"evsrbis",              VX (4, 611),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
+{"evslb",                VX (4, 612),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evrlb",                VX (4, 613),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evslbi",               VX (4, 614),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
+{"evrlbi",               VX (4, 615),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT8}},
+{"evsrhu",               VX (4, 616),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsrhs",               VX (4, 617),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsrhiu",              VX (4, 618),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
+{"evsrhis",              VX (4, 619),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
+{"evslh",                VX (4, 620),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evrlh",                VX (4, 621),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evslhi",               VX (4, 622),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
+{"evrlhi",               VX (4, 623),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM_LT16}},
+{"evsru",                VX (4, 624),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsrs",                VX (4, 625),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsriu",               VX (4, 626),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM}},
+{"evsris",               VX (4, 627),          VX_MASK,                PPCSPE2, 0, {RD, RA, EVUIMM}},
+{"evlvsl",               VX (4, 628),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlvsr",               VX (4, 629),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsroiu",              VX_SPE2_OCTET (4, 631, 0), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
+{"evsrois",              VX_SPE2_OCTET (4, 631, 1), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
+{"evsloi",               VX_SPE2_OCTET (4, 631, 2), VX_SPE2_OCTET_MASK, PPCSPE2, 0, {RD, RA, NNN}},
+{"evldbx",               VX (4, 774),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evldb",                VX (4, 775),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_8, RA}},
+{"evlhhsplathx",         VX (4, 778),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlhhsplath",                  VX (4, 779),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_2, RA}},
+{"evlwbsplatwx",         VX (4, 786),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbsplatw",                  VX (4, 787),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4, RA}},
+{"evlwhsplatwx",         VX (4, 794),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwhsplatw",                  VX (4, 795),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4, RA}},
+{"evlbbsplatbx",         VX (4, 798),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlbbsplatb",                  VX (4, 799),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_1, RA}},
+{"evstdbx",              VX (4, 806),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstdb",               VX (4, 807),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_8, RA}},
+{"evlwbex",              VX (4, 810),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbe",               VX (4, 811),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4, RA}},
+{"evlwboux",             VX (4, 812),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbou",              VX (4, 813),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4, RA}},
+{"evlwbosx",             VX (4, 814),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbos",              VX (4, 815),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4, RA}},
+{"evstwbex",             VX (4, 818),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwbe",              VX (4, 819),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4, RA}},
+{"evstwbox",             VX (4, 822),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwbo",              VX (4, 823),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4, RA}},
+{"evstwbx",              VX (4, 826),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwb",               VX (4, 827),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4, RA}},
+{"evsthbx",              VX (4, 830),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evsthb",               VX (4, 831),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_2, RA}},
+{"evlddmx",              VX (4, 832),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlddu",               VX (4, 833),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
+{"evldwmx",              VX (4, 834),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evldwu",               VX (4, 835),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
+{"evldhmx",              VX (4, 836),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evldhu",               VX (4, 837),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
+{"evldbmx",              VX (4, 838),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evldbu",               VX (4, 839),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_8_EX0, RA}},
+{"evlhhesplatmx",        VX (4, 840),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlhhesplatu",         VX (4, 841),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
+{"evlhhsplathmx",        VX (4, 842),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlhhsplathu",         VX (4, 843),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
+{"evlhhousplatmx",       VX (4, 844),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlhhousplatu",        VX (4, 845),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
+{"evlhhossplatmx",       VX (4, 846),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlhhossplatu",        VX (4, 847),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_2_EX0, RA}},
+{"evlwhemx",             VX (4, 848),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwheu",              VX (4, 849),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwbsplatwmx",        VX (4, 850),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbsplatwu",         VX (4, 851),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwhoumx",            VX (4, 852),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwhouu",             VX (4, 853),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwhosmx",            VX (4, 854),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwhosu",             VX (4, 855),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwwsplatmx",         VX (4, 856),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwwsplatu",                  VX (4, 857),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwhsplatwmx",        VX (4, 858),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwhsplatwu",         VX (4, 859),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwhsplatmx",         VX (4, 860),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwhsplatu",                  VX (4, 861),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlbbsplatbmx",        VX (4, 862),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlbbsplatbu",         VX (4, 863),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_1_EX0, RA}},
+{"evstddmx",             VX (4, 864),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstddu",              VX (4, 865),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
+{"evstdwmx",             VX (4, 866),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstdwu",              VX (4, 867),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
+{"evstdhmx",             VX (4, 868),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstdhu",              VX (4, 869),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
+{"evstdbmx",             VX (4, 870),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstdbu",              VX (4, 871),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_8_EX0, RA}},
+{"evlwbemx",             VX (4, 874),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbeu",              VX (4, 875),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwboumx",            VX (4, 876),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbouu",             VX (4, 877),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evlwbosmx",            VX (4, 878),          VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evlwbosu",             VX (4, 879),          VX_MASK,                PPCSPE2, 0, {RD, EVUIMM_4_EX0, RA}},
+{"evstwhemx",            VX (4, 880),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwheu",             VX (4, 881),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evstwbemx",            VX (4, 882),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwbeu",             VX (4, 883),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evstwhomx",            VX (4, 884),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwhou",             VX (4, 885),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evstwbomx",            VX (4, 886),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwbou",             VX (4, 887),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evstwwemx",            VX (4, 888),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwweu",             VX (4, 889),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evstwbmx",             VX (4, 890),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwbu",              VX (4, 891),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evstwwomx",            VX (4, 892),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evstwwou",             VX (4, 893),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_4_EX0, RA}},
+{"evsthbmx",             VX (4, 894),          VX_MASK,                PPCSPE2, 0, {RS, RA, RB}},
+{"evsthbu",              VX (4, 895),          VX_MASK,                PPCSPE2, 0, {RS, EVUIMM_2_EX0, RA}},
+{"evmhusi",              VX (4, 1024),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhssi",              VX (4, 1025),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhsusi",             VX (4, 1026),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhssf",              VX (4, 1028),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhumi",              VX (4, 1029),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhssfr",             VX (4, 1030),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhesumi",            VX (4, 1034),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhosumi",            VX (4, 1038),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbeumi",             VX (4, 1048),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesmi",             VX (4, 1049),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesumi",            VX (4, 1050),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmboumi",             VX (4, 1052),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosmi",             VX (4, 1053),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosumi",            VX (4, 1054),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhesumia",           VX (4, 1066),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhosumia",           VX (4, 1070),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbeumia",            VX (4, 1080),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesmia",            VX (4, 1081),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesumia",           VX (4, 1082),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmboumia",            VX (4, 1084),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosmia",            VX (4, 1085),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosumia",           VX (4, 1086),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwusiw",             VX (4, 1088),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwssiw",             VX (4, 1089),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfr",            VX (4, 1094),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfr",                  VX (4, 1110),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmf",           VX (4, 1111),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfr",                  VX (4, 1118),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmf",           VX (4, 1119),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfra",           VX (4, 1126),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfra",         VX (4, 1142),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfa",                  VX (4, 1143),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfra",         VX (4, 1150),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfa",                  VX (4, 1151),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddusiaa",           VX_RB_CONST(4, 1152, 0), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evaddssiaa",           VX_RB_CONST(4, 1153, 0), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsubfusiaa",                  VX_RB_CONST(4, 1154, 0), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsubfssiaa",                  VX_RB_CONST(4, 1155, 0), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evaddsmiaa",           VX_RB_CONST(4, 1156, 0), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evsubfsmiaa",                  VX_RB_CONST(4, 1158, 0), VX_RB_CONST_MASK,    PPCSPE2, 0, {RD, RA}},
+{"evaddh",               VX (4, 1160),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhss",             VX (4, 1161),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfh",              VX (4, 1162),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhss",            VX (4, 1163),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhx",              VX (4, 1164),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhxss",            VX (4, 1165),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhx",             VX (4, 1166),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhxss",           VX (4, 1167),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddd",               VX (4, 1168),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evadddss",             VX (4, 1169),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfd",              VX (4, 1170),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfdss",            VX (4, 1171),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddb",               VX (4, 1172),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddbss",             VX (4, 1173),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfb",              VX (4, 1174),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfbss",            VX (4, 1175),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfh",           VX (4, 1176),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfhss",         VX (4, 1177),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddh",           VX (4, 1178),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddhss",         VX (4, 1179),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfhx",                  VX (4, 1180),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfhxss",        VX (4, 1181),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddhx",                  VX (4, 1182),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddhxss",        VX (4, 1183),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evadddus",             VX (4, 1184),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddbus",             VX (4, 1185),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfdus",            VX (4, 1186),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfbus",            VX (4, 1187),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwus",             VX (4, 1188),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwxus",            VX (4, 1189),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwus",            VX (4, 1190),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwxus",           VX (4, 1191),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evadd2subf2h",         VX (4, 1192),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evadd2subf2hss",       VX (4, 1193),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubf2add2h",         VX (4, 1194),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubf2add2hss",       VX (4, 1195),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhus",             VX (4, 1196),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhxus",            VX (4, 1197),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhus",            VX (4, 1198),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhxus",           VX (4, 1199),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwss",             VX (4, 1201),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwss",            VX (4, 1203),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwx",              VX (4, 1204),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwxss",            VX (4, 1205),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwx",             VX (4, 1206),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwxss",           VX (4, 1207),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfw",           VX (4, 1208),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfwss",         VX (4, 1209),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddw",           VX (4, 1210),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddwss",         VX (4, 1211),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfwx",                  VX (4, 1212),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddsubfwxss",        VX (4, 1213),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddwx",                  VX (4, 1214),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfaddwxss",        VX (4, 1215),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmar",                VX_SPE2_EVMAR (4, 1220),  VX_SPE2_EVMAR_MASK, PPCSPE2, 0, {RD}},
+{"evsumwu",              VX_RB_CONST(4, 1221, 0),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsumws",              VX_RB_CONST(4, 1221, 1),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum4bu",             VX_RB_CONST(4, 1221, 2),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum4bs",             VX_RB_CONST(4, 1221, 3),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hu",             VX_RB_CONST(4, 1221, 4),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hs",             VX_RB_CONST(4, 1221, 5),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evdiff2his",           VX_RB_CONST(4, 1221, 6),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2his",            VX_RB_CONST(4, 1221, 7),  VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsumwua",             VX_RB_CONST(4, 1221, 16), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsumwsa",             VX_RB_CONST(4, 1221, 17), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum4bua",            VX_RB_CONST(4, 1221, 18), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum4bsa",            VX_RB_CONST(4, 1221, 19), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hua",            VX_RB_CONST(4, 1221, 20), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hsa",            VX_RB_CONST(4, 1221, 21), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evdiff2hisa",                  VX_RB_CONST(4, 1221, 22), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hisa",           VX_RB_CONST(4, 1221, 23), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsumwuaa",            VX_RB_CONST(4, 1221, 24), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsumwsaa",            VX_RB_CONST(4, 1221, 25), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum4buaaw",                  VX_RB_CONST(4, 1221, 26), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum4bsaaw",                  VX_RB_CONST(4, 1221, 27), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2huaaw",                  VX_RB_CONST(4, 1221, 28), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hsaaw",                  VX_RB_CONST(4, 1221, 29), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evdiff2hisaaw",        VX_RB_CONST(4, 1221, 30), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evsum2hisaaw",         VX_RB_CONST(4, 1221, 31), VX_RB_CONST_MASK,   PPCSPE2, 0, {RD, RA}},
+{"evdivwsf",             VX (4, 1228),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdivwuf",             VX (4, 1229),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdivs",               VX (4, 1230),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdivu",               VX (4, 1231),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwegsi",           VX (4, 1232),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwegsf",           VX (4, 1233),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwegsi",                  VX (4, 1234),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwegsf",                  VX (4, 1235),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwogsi",           VX (4, 1236),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddwogsf",           VX (4, 1237),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwogsi",                  VX (4, 1238),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfwogsf",                  VX (4, 1239),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhhiuw",           VX (4, 1240),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhhisw",           VX (4, 1241),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhhiuw",                  VX (4, 1242),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhhisw",                  VX (4, 1243),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhlouw",           VX (4, 1244),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evaddhlosw",           VX (4, 1245),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhlouw",                  VX (4, 1246),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsubfhlosw",                  VX (4, 1247),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhesusiaaw",         VX (4, 1282),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhosusiaaw",         VX (4, 1286),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhesumiaaw",         VX (4, 1290),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhosumiaaw",         VX (4, 1294),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbeusiaah",                  VX (4, 1296),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbessiaah",                  VX (4, 1297),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesusiaah",         VX (4, 1298),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbousiaah",                  VX (4, 1300),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbossiaah",                  VX (4, 1301),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosusiaah",         VX (4, 1302),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbeumiaah",                  VX (4, 1304),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesmiaah",                  VX (4, 1305),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesumiaah",         VX (4, 1306),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmboumiaah",                  VX (4, 1308),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosmiaah",                  VX (4, 1309),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosumiaah",         VX (4, 1310),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlusiaaw3",         VX (4, 1346),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlssiaaw3",         VX (4, 1347),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfraaw3",        VX (4, 1348),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfaaw3",         VX (4, 1349),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfraaw",         VX (4, 1350),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfaaw",                  VX (4, 1351),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlumiaaw3",         VX (4, 1354),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlsmiaaw3",         VX (4, 1355),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwusiaa",            VX (4, 1360),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwssiaa",            VX (4, 1361),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfraa",        VX (4, 1366),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfaa",         VX (4, 1367),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfraa",        VX (4, 1374),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfaa",         VX (4, 1375),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhesusianw",         VX (4, 1410),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhosusianw",         VX (4, 1414),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhesumianw",         VX (4, 1418),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmhosumianw",         VX (4, 1422),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbeusianh",                  VX (4, 1424),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbessianh",                  VX (4, 1425),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesusianh",         VX (4, 1426),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbousianh",                  VX (4, 1428),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbossianh",                  VX (4, 1429),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosusianh",         VX (4, 1430),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbeumianh",                  VX (4, 1432),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesmianh",                  VX (4, 1433),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbesumianh",         VX (4, 1434),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmboumianh",                  VX (4, 1436),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosmianh",                  VX (4, 1437),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmbosumianh",         VX (4, 1438),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlusianw3",         VX (4, 1474),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlssianw3",         VX (4, 1475),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfranw3",        VX (4, 1476),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfanw3",         VX (4, 1477),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfranw",         VX (4, 1478),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwhssfanw",                  VX (4, 1479),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlumianw3",         VX (4, 1482),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwlsmianw3",         VX (4, 1483),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwusian",            VX (4, 1488),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwssian",            VX (4, 1489),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfran",        VX (4, 1494),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwehgsmfan",         VX (4, 1495),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfran",        VX (4, 1502),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmwohgsmfan",         VX (4, 1503),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evseteqb",             VX (4, 1536),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evseteqb.",            VX (4, 1537),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evseteqh",             VX (4, 1538),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evseteqh.",            VX (4, 1539),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evseteqw",             VX (4, 1540),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evseteqw.",            VX (4, 1541),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgthu",            VX (4, 1544),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgthu.",           VX (4, 1545),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgths",            VX (4, 1546),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgths.",           VX (4, 1547),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtwu",            VX (4, 1548),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtwu.",           VX (4, 1549),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtws",            VX (4, 1550),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtws.",           VX (4, 1551),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtbu",            VX (4, 1552),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtbu.",           VX (4, 1553),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtbs",            VX (4, 1554),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetgtbs.",           VX (4, 1555),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltbu",            VX (4, 1556),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltbu.",           VX (4, 1557),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltbs",            VX (4, 1558),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltbs.",           VX (4, 1559),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetlthu",            VX (4, 1560),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetlthu.",           VX (4, 1561),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetlths",            VX (4, 1562),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetlths.",           VX (4, 1563),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltwu",            VX (4, 1564),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltwu.",           VX (4, 1565),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltws",            VX (4, 1566),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsetltws.",           VX (4, 1567),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsaduw",              VX (4, 1568),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsadsw",              VX (4, 1569),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad4ub",             VX (4, 1570),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad4sb",             VX (4, 1571),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad2uh",             VX (4, 1572),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad2sh",             VX (4, 1573),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsaduwa",             VX (4, 1576),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsadswa",             VX (4, 1577),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad4uba",            VX (4, 1578),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad4sba",            VX (4, 1579),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad2uha",            VX (4, 1580),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad2sha",            VX (4, 1581),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evabsdifuw",           VX (4, 1584),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evabsdifsw",           VX (4, 1585),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evabsdifub",           VX (4, 1586),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evabsdifsb",           VX (4, 1587),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evabsdifuh",           VX (4, 1588),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evabsdifsh",           VX (4, 1589),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsaduwaa",            VX (4, 1592),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsadswaa",            VX (4, 1593),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad4ubaaw",                  VX (4, 1594),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad4sbaaw",                  VX (4, 1595),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad2uhaaw",                  VX (4, 1596),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evsad2shaaw",                  VX (4, 1597),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkshubs",            VX (4, 1600),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkshsbs",            VX (4, 1601),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswuhs",            VX (4, 1602),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswshs",            VX (4, 1603),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkuhubs",            VX (4, 1604),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkuwuhs",            VX (4, 1605),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswshilvs",         VX (4, 1606),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswgshefrs",        VX (4, 1607),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswshfrs",                  VX (4, 1608),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswshilvfrs",       VX (4, 1609),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpksdswfrs",                  VX (4, 1610),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpksdshefrs",         VX (4, 1611),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkuduws",            VX (4, 1612),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpksdsws",            VX (4, 1613),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evpkswgswfrs",         VX (4, 1614),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilveh",              VX (4, 1616),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilveoh",             VX (4, 1617),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilvhih",             VX (4, 1618),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilvhiloh",           VX (4, 1619),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilvloh",             VX (4, 1620),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilvlohih",           VX (4, 1621),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilvoeh",             VX (4, 1622),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evilvoh",              VX (4, 1623),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlveb",              VX (4, 1624),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlveh",              VX (4, 1625),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlveob",             VX (4, 1626),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlveoh",             VX (4, 1627),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlvob",              VX (4, 1628),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlvoh",              VX (4, 1629),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlvoeb",             VX (4, 1630),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evdlvoeh",             VX (4, 1631),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxbu",              VX (4, 1632),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxbs",              VX (4, 1633),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxhu",              VX (4, 1634),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxhs",              VX (4, 1635),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxwu",              VX (4, 1636),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxws",              VX (4, 1637),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxdu",              VX (4, 1638),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmaxds",              VX (4, 1639),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminbu",              VX (4, 1640),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminbs",              VX (4, 1641),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminhu",              VX (4, 1642),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminhs",              VX (4, 1643),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminwu",              VX (4, 1644),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminws",              VX (4, 1645),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evmindu",              VX (4, 1646),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evminds",              VX (4, 1647),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgwu",              VX (4, 1648),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgws",              VX (4, 1649),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgbu",              VX (4, 1650),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgbs",              VX (4, 1651),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavghu",              VX (4, 1652),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavghs",              VX (4, 1653),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgdu",              VX (4, 1654),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgds",              VX (4, 1655),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgwur",             VX (4, 1656),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgwsr",             VX (4, 1657),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgbur",             VX (4, 1658),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgbsr",             VX (4, 1659),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavghur",             VX (4, 1660),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavghsr",             VX (4, 1661),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgdur",             VX (4, 1662),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+{"evavgdsr",             VX (4, 1663),         VX_MASK,                PPCSPE2, 0, {RD, RA, RB}},
+};
+
+const int spe2_num_opcodes =
+  sizeof (spe2_opcodes) / sizeof (spe2_opcodes[0]);