#define RD RS
{ 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
-#define RD_EVEN RS + 1
+ /* As above, but 0 in the RT field means zero, not r0. */
+#define RT0 RS + 1
+ { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR_0 },
+
+#define RD_EVEN RT0 + 1
#define RS_EVEN RD_EVEN
{ 0x1f, 21, insert_rD_rS_even, extract_rD_rS_even, PPC_OPERAND_GPR },
{"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
{"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE|EXT, {RT, NDXD}},
-{"minu", MMXMMM(19,3,0,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"minu.", MMXMMM(19,3,0,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxu", MMXMMM(19,3,1,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxu.", MMXMMM(19,3,1,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"mins", MMXMMM(19,3,2,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"mins.", MMXMMM(19,3,2,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxs", MMXMMM(19,3,3,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxs.", MMXMMM(19,3,3,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"minuw", MMXMMM(19,3,4,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"minuw.", MMXMMM(19,3,4,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxuw", MMXMMM(19,3,5,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxuw.", MMXMMM(19,3,5,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"minsw", MMXMMM(19,3,6,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"minsw.", MMXMMM(19,3,6,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxsw", MMXMMM(19,3,7,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"maxsw.", MMXMMM(19,3,7,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA, RB}},
-{"minmax", MM(19,3,0), MM_MASK, SFFS, PPCVLE, {RT, RA, RB, MMM}},
-{"minmax.", MM(19,3,1), MM_MASK, SFFS, PPCVLE, {RT, RA, RB, MMM}},
+{"minu", MMXMMM(19,3,0,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"minu.", MMXMMM(19,3,0,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxu", MMXMMM(19,3,1,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxu.", MMXMMM(19,3,1,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"mins", MMXMMM(19,3,2,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"mins.", MMXMMM(19,3,2,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxs", MMXMMM(19,3,3,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxs.", MMXMMM(19,3,3,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"minuw", MMXMMM(19,3,4,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"minuw.", MMXMMM(19,3,4,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxuw", MMXMMM(19,3,5,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxuw.", MMXMMM(19,3,5,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"minsw", MMXMMM(19,3,6,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"minsw.", MMXMMM(19,3,6,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxsw", MMXMMM(19,3,7,0), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"maxsw.", MMXMMM(19,3,7,1), MMXMMM_MASK, SFFS, PPCVLE, {RT, RA0, RB}},
+{"minmax", MM(19,3,0), MM_MASK, SFFS, PPCVLE, {RT, RA0, RB, MMM}},
+{"minmax.", MM(19,3,1), MM_MASK, SFFS, PPCVLE, {RT, RA0, RB, MMM}},
{"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
{"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE|EXT, {BH}},
{"svshape2", SVM2(22,281), SVM2_MASK, SFFS, PPCVLE, {SVo, yx10, rmm, SVd, sk, mm}},
{"svshape", SVM(22,25), SVM_MASK, SFFS, PPCVLE, {SVxd, SVyd, SVzd, SVrm, vf}},
-{"setvl", SVL(22,27,0), SVL_MASK, SFFS, PPCVLE, {RT, RA, SVi, vf, vs, ms}},
-{"setvl.", SVL(22,27,1), SVL_MASK, SFFS, PPCVLE, {RT, RA, SVi, vf, vs, ms}},
+{"setvl", SVL(22,27,0), SVL_MASK, SFFS, PPCVLE, {RT0, RA0, SVi, vf, vs, ms}},
+{"setvl.", SVL(22,27,1), SVL_MASK, SFFS, PPCVLE, {RT0, RA0, SVi, vf, vs, ms}},
{"svindex", SVI(22,41), SVI_MASK, SFFS, PPCVLE, {SVG, rmm, SVd, ew, yx, mm, sk}},