| /* PREFIX_EVEX_0F2E */ | |
| { | |
| { "%XEvucomis%XS", { XMScalar, EXd, EXxEVexS }, 0 }, | |
| { "vucomxs%XS", { XMScalar, EXd, EXxEVexS }, 0 }, | |
| { "%XEvucomis%XD", { XMScalar, EXq, EXxEVexS }, 0 }, | |
| { "vucomxs%XD", { XMScalar, EXq, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F2F */ | |
| { | |
| { "%XEvcomis%XS", { XMScalar, EXd, EXxEVexS }, 0 }, | |
| { "vcomxs%XS", { XMScalar, EXd, EXxEVexS }, 0 }, | |
| { "%XEvcomis%XD", { XMScalar, EXq, EXxEVexS }, 0 }, | |
| { "vcomxs%XD", { XMScalar, EXq, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F5B */ | |
| { | |
| { VEX_W_TABLE (EVEX_W_0F5B_P_0) }, | |
| { "%XEvcvttp%XS2dq", { XM, EXx, EXxEVexS }, 0 }, | |
| { "%XEvcvtp%XS2dq", { XM, EXx, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F6F */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F6F_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F6F_P_2) }, | |
| { VEX_W_TABLE (EVEX_W_0F6F_P_3) }, | |
| }, | |
| /* PREFIX_EVEX_0F70 */ | |
| { | |
| { Bad_Opcode }, | |
| { "%XEvpshufhw", { XM, EXx, Ib }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F70_P_2) }, | |
| { "%XEvpshuflw", { XM, EXx, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F78 */ | |
| { | |
| { VEX_W_TABLE (EVEX_W_0F78_P_0) }, | |
| { "vcvttss2usi", { Gdq, EXd, EXxEVexS }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F78_P_2) }, | |
| { "vcvttsd2usi", { Gdq, EXq, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F79 */ | |
| { | |
| { VEX_W_TABLE (EVEX_W_0F79_P_0) }, | |
| { "vcvtss2usi", { Gdq, EXd, EXxEVexR }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F79_P_2) }, | |
| { "vcvtsd2usi", { Gdq, EXq, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F7A */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F7A_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F7A_P_2) }, | |
| { VEX_W_TABLE (EVEX_W_0F7A_P_3) }, | |
| }, | |
| /* PREFIX_EVEX_0F7B */ | |
| { | |
| { Bad_Opcode }, | |
| { "vcvtusi2ssY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F7B_P_2) }, | |
| { "vcvtusi2sdY{%LQ|}", { XMScalar, VexScalar, EXxEVexR64, Edq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F7E */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F7E_P_1) }, | |
| { VEX_LEN_TABLE (VEX_LEN_0F7E_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F7F */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F7F_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F7F_P_2) }, | |
| { VEX_W_TABLE (EVEX_W_0F7F_P_3) }, | |
| }, | |
| /* PREFIX_EVEX_0FC2 */ | |
| { | |
| { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE }, | |
| { "vcmps%XS", { MaskG, VexScalar, EXd, EXxEVexS, CMP }, 0 }, | |
| { "vcmppX", { MaskG, Vex, EXx, EXxEVexS, CMP }, PREFIX_OPCODE }, | |
| { "vcmps%XD", { MaskG, VexScalar, EXq, EXxEVexS, CMP }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0FE6 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0FE6_P_1) }, | |
| { "%XEvcvttp%XD2dq%XY", { XMxmmq, EXx, EXxEVexS }, 0 }, | |
| { "%XEvcvtp%XD2dq%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3810 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3810_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F3810_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3811 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3811_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F3811_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3812 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3812_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F3812_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3813 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3813_P_1) }, | |
| { "%XEvcvtph2p%XS", { XM, EXxmmq, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3814 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3814_P_1) }, | |
| { "vprorv%DQ", { XM, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3815 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3815_P_1) }, | |
| { "vprolv%DQ", { XM, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3820 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3820_P_1) }, | |
| { "%XEvpmovsxbw", { XM, EXxmmq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3821 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3821_P_1) }, | |
| { "%XEvpmovsxbd", { XM, EXxmmqd }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3822 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3822_P_1) }, | |
| { "%XEvpmovsxbq", { XM, EXxmmdw }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3823 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3823_P_1) }, | |
| { "%XEvpmovsxwd", { XM, EXxmmq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3824 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3824_P_1) }, | |
| { "%XEvpmovsxwq", { XM, EXxmmqd }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3825 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3825_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F3825_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3826 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vptestnm%BW", { MaskG, Vex, EXx }, 0 }, | |
| { "vptestm%BW", { MaskG, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3827 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vptestnm%DQ", { MaskG, Vex, EXx }, 0 }, | |
| { "vptestm%DQ", { MaskG, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3828 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vpmovm2Y%BW", { XM, MaskR }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F3828_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3829 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vpmov%BW2mY", { MaskG, Ux }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F3829_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F382A */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F382A_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F382A_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3830 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3830_P_1) }, | |
| { "%XEvpmovzxbw", { XM, EXxmmq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3831 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3831_P_1) }, | |
| { "%XEvpmovzxbd", { XM, EXxmmqd }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3832 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3832_P_1) }, | |
| { "%XEvpmovzxbq", { XM, EXxmmdw }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3833 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3833_P_1) }, | |
| { "%XEvpmovzxwd", { XM, EXxmmq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3834 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3834_P_1) }, | |
| { "%XEvpmovzxwq", { XM, EXxmmqd }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3835 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F3835_P_1) }, | |
| { VEX_W_TABLE (EVEX_W_0F3835_P_2) }, | |
| }, | |
| /* PREFIX_EVEX_0F3838 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vpmovm2Y%DQ", { XM, MaskR }, 0 }, | |
| { "%XEvpminsb", { XM, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3839 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vpmov%DQ2mY", { MaskG, Ux }, 0 }, | |
| { "%XEvpmins%DQ", { XM, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F383A */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_0F383A_P_1) }, | |
| { "%XEvpminuw", { XM, Vex, EXx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F384A_W_0_L_2 */ | |
| { | |
| { Bad_Opcode }, | |
| { "tcvtrowd2ps", { XM, Rtmm, VexGdq }, 0 }, | |
| { "tilemovrow", { XM, Rtmm, VexGdq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3852 */ | |
| { | |
| { "vdpphp%XS", { XM, Vex, EXx }, 0 }, | |
| { "vdpbf16p%XS", { XM, Vex, EXx }, 0 }, | |
| { VEX_W_TABLE (VEX_W_0F3852) }, | |
| { "vp4dpws%XSd", { XM, Vex, Mxmm }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3853 */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (VEX_W_0F3853) }, | |
| { "vp4dpws%XSds", { XM, Vex, Mxmm }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3868 */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "vp2intersectY%DQ", { MaskG, Vex, EXx, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F386D_W_0_L_2 */ | |
| { | |
| { "tcvtrowps2phh", { XM, Rtmm, VexGdq }, 0 }, | |
| { "tcvtrowps2bf16l", { XM, Rtmm, VexGdq }, 0 }, | |
| { "tcvtrowps2phl", { XM, Rtmm, VexGdq }, 0 }, | |
| { "tcvtrowps2bf16h", { XM, Rtmm, VexGdq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3872 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vcvtnep%XS2bf16%XY", { XMxmmq, EXx }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_0F3872_P_2) }, | |
| { "vcvtne2p%XS2bf16", { XM, Vex, EXx}, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3874 */ | |
| { | |
| { "vcvtbiasp%XH2bf8", { XMxmmq, Vex, EXxh }, 0 }, | |
| { "vcvtp%XH2bf8%XY", { XMxmmq, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvt2p%XH2bf8", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F389A */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "%XEvfmsub132p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, | |
| { "v4fmaddp%XS", { XM, Vex, Mxmm }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F389B */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "%XEvfmsub132s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, 0 }, | |
| { "v4fmadds%XS", { XMScalar, VexScalar, Mxmm }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F38AA */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "%XEvfmsub213p%XW", { XM, Vex, EXx, EXxEVexR }, 0 }, | |
| { "v4fnmaddp%XS", { XM, Vex, Mxmm }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F38AB */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "%XEvfmsub213s%XW", { XMScalar, VexScalar, EXdq, EXxEVexR }, 0 }, | |
| { "v4fnmadds%XS", { XMScalar, VexScalar, Mxmm }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A07_W_0_L_2 */ | |
| { | |
| { "tcvtrowps2phh", { XM, Rtmm, Ib }, 0 }, | |
| { "tcvtrowd2ps", { XM, Rtmm, Ib }, 0 }, | |
| { "tilemovrow", { XM, Rtmm, Ib }, 0 }, | |
| { "tcvtrowps2bf16h", { XM, Rtmm, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A08 */ | |
| { | |
| { "vrndscalep%XH", { XM, EXxh, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vrndscalep%XS", { XM, EXx, EXxEVexS, Ib }, 0 }, | |
| { "vrndscale%XB", { XM, EXxh, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A0A */ | |
| { | |
| { "vrndscales%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vrndscales%XS", { XMScalar, VexScalar, EXd, EXxEVexS, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A26 */ | |
| { | |
| { "vgetmantp%XH", { XM, EXxh, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vgetmantp%XW", { XM, EXx, EXxEVexS, Ib }, 0 }, | |
| { "vgetmant%XB", { XM, EXxh, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A27 */ | |
| { | |
| { "vgetmants%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vgetmants%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A42_W_0 */ | |
| { | |
| { Bad_Opcode }, | |
| { "%XEvmpsadbw", { XM, Vex, EXx, Ib }, 0 }, | |
| { "vdbpsadbw", { XM, Vex, EXx, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A52 */ | |
| { | |
| { "vminmaxp%XH", { XM, Vex, EXxh, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vminmaxp%XW", { XM, Vex, EXx, EXxEVexS, Ib }, 0 }, | |
| { "vminmax%XB", { XM, Vex, EXxh, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A53 */ | |
| { | |
| { "vminmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vminmaxs%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A56 */ | |
| { | |
| { "vreducep%XH", { XM, EXxh, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vreducep%XW", { XM, EXx, EXxEVexS, Ib }, 0 }, | |
| { "vreduce%XB", { XM, EXxh, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A57 */ | |
| { | |
| { "vreduces%XH", { XMScalar, VexScalar, EXw, EXxEVexS, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vreduces%XW", { XMScalar, VexScalar, EXdq, EXxEVexS, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A66 */ | |
| { | |
| { "vfpclassp%XH%XZ", { MaskG, EXxh, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfpclassp%XW%XZ", { MaskG, EXx, Ib }, 0 }, | |
| { "vfpclass%XB%XZ", { MaskG, EXxh, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A67 */ | |
| { | |
| { "vfpclasss%XH", { MaskG, EXw, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfpclasss%XW", { MaskG, EXdq, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3A77_W_0_L_2 */ | |
| { | |
| { Bad_Opcode }, | |
| { "tcvtrowps2bf16l", { XM, Rtmm, Ib }, 0 }, | |
| { Bad_Opcode }, | |
| { "tcvtrowps2phl", { XM, Rtmm, Ib }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_0F3AC2 */ | |
| { | |
| { "vcmpp%XH", { MaskG, Vex, EXxh, EXxEVexS, CMP }, 0 }, | |
| { "vcmps%XH", { MaskG, VexScalar, EXw, EXxEVexS, CMP }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcmp%XB", { MaskG, Vex, EXxh, CMP }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP4_4x */ | |
| { | |
| { "%CFcmov%CCS", { VexGv, { CFCMOV_Fixup, 0 }, { CFCMOV_Fixup, 1 } }, 0 }, | |
| { Bad_Opcode }, | |
| { "%CFcmov%CCS", { VexGv, { CFCMOV_Fixup, 0 }, { CFCMOV_Fixup, 1 } }, 0 }, | |
| { "set%ZU%CC", { Eb }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP4_F0 */ | |
| { | |
| { "crc32A", { Gdq, Eb }, 0 }, | |
| { "invept", { Gm, Mo }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP4_F1 */ | |
| { | |
| { "crc32Q", { Gdq, Ev }, 0 }, | |
| { "invvpid", { Gm, Mo }, 0 }, | |
| { "crc32Q", { Gdq, Ev }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP4_F2 */ | |
| { | |
| { Bad_Opcode }, | |
| { "invpcid", { Gm, M }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP4_F8 */ | |
| { | |
| { Bad_Opcode }, | |
| { MOD_TABLE (MOD_EVEX_MAP4_F8_P_1) }, | |
| { "movdir64b", { Gva, M }, 0 }, | |
| { MOD_TABLE (MOD_EVEX_MAP4_F8_P_3) }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_10 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vmovs%XH", { XMScalar, VexScalarR, EXw }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_11 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vmovs%XH", { EXwS, VexScalarR, XMScalar }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_18 */ | |
| { | |
| { "vcvtbiasp%XH2hf8", { XMxmmq, Vex, EXxh }, 0 }, | |
| { "vcvtp%XH2hf8%XY", { XMxmmq, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvt2p%XH2hf8", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_1B */ | |
| { | |
| { "vcvtbiasp%XH2hf8s", { XMxmmq, Vex, EXxh }, 0 }, | |
| { "vcvtp%XH2hf8s%XY", { XMxmmq, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvt2p%XH2hf8s", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_1D */ | |
| { | |
| { "vcvtss2s%XH", { XMScalar, VexScalar, EXd, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvtps2p%XHx%XY", { XMxmmq, EXx, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_1E */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "vcvthf82p%XH", { XM, EXxmmq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_2A */ | |
| { | |
| { Bad_Opcode }, | |
| { "vcvtsi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_2C */ | |
| { | |
| { Bad_Opcode }, | |
| { "vcvttsh2si", { Gdq, EXw, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_2D */ | |
| { | |
| { Bad_Opcode }, | |
| { "vcvtsh2si", { Gdq, EXw, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_2E */ | |
| { | |
| { "vucomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 }, | |
| { "vucomxs%XH", { XMScalar, EXw, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_2F */ | |
| { | |
| { "vcomisY%XH", { XMScalar, EXw, EXxEVexS }, 0 }, | |
| { "vcomxs%XH", { XMScalar, EXw, EXxEVexS }, 0 }, | |
| { "vcomis%XB", { XMScalar, EXw, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_51 */ | |
| { | |
| { "vsqrtp%XH", { XM, EXxh, EXxEVexR }, 0 }, | |
| { "vsqrts%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 }, | |
| { "vsqrt%XB", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_58 */ | |
| { | |
| { "vaddp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| { "vadds%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 }, | |
| { "vadd%XB", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_59 */ | |
| { | |
| { "vmulp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| { "vmuls%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 }, | |
| { "vmul%XB", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_5A */ | |
| { | |
| { "vcvtp%XH2pd", { XM, EXxmmqdh, EXxEVexS }, 0 }, | |
| { "vcvts%XH2sd", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 }, | |
| { "vcvtp%XD2ph%XZ", { XMM, EXx, EXxEVexR }, 0 }, | |
| { "vcvts%XD2sh", { XMScalar, VexScalar, EXq, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_5B */ | |
| { | |
| { VEX_W_TABLE (EVEX_W_MAP5_5B_P_0) }, | |
| { "vcvttp%XH2dq", { XM, EXxmmqh, EXxEVexS }, 0 }, | |
| { "vcvtp%XH2dq", { XM, EXxmmqh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_5C */ | |
| { | |
| { "vsubp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| { "vsubs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 }, | |
| { "vsub%XB", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_5D */ | |
| { | |
| { "vminp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 }, | |
| { "vmins%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 }, | |
| { "vmin%XB", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_5E */ | |
| { | |
| { "vdivp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| { "vdivs%XH", { XMScalar, VexScalar, EXw, EXxEVexR }, 0 }, | |
| { "vdiv%XB", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_5F */ | |
| { | |
| { "vmaxp%XH", { XM, Vex, EXxh, EXxEVexS }, 0 }, | |
| { "vmaxs%XH", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 }, | |
| { "vmax%XB", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_68 */ | |
| { | |
| { "vcvttp%XH2ibs", { XM, EXxh, EXxEVexS }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvttp%XS2ibs", { XM, EXx, EXxEVexS }, 0 }, | |
| { "vcvtt%XB2ibs", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_69 */ | |
| { | |
| { "vcvtp%XH2ibs", { XM, EXxh, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvtp%XS2ibs", { XM, EXx, EXxEVexR }, 0 }, | |
| { "vcvt%XB2ibs", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_6A */ | |
| { | |
| { "vcvttp%XH2iubs", { XM, EXxh, EXxEVexS }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvttp%XS2iubs", { XM, EXx, EXxEVexS }, 0 }, | |
| { "vcvtt%XB2iubs", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_6B */ | |
| { | |
| { "vcvtp%XH2iubs", { XM, EXxh, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvtp%XS2iubs", { XM, EXx, EXxEVexR }, 0 }, | |
| { "vcvt%XB2iubs", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_6C */ | |
| { | |
| { VEX_W_TABLE (EVEX_W_MAP5_6C_P_0) }, | |
| { "vcvttss2usis", { Gdq, EXd, EXxEVexS }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_MAP5_6C_P_2) }, | |
| { "vcvttsd2usis", { Gdq, EXq, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_6D */ | |
| { | |
| { VEX_W_TABLE (EVEX_W_MAP5_6D_P_0) }, | |
| { "vcvttss2sis", { Gdq, EXd, EXxEVexS }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_MAP5_6D_P_2) }, | |
| { "vcvttsd2sis", { Gdq, EXq, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_6E_L_0 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_MAP5_6E_P_1) }, | |
| { "vmovwY", { XMScalar, Edw }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_6F_X86_64 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vmovrs%DQ", { XM, Mx }, 0 }, | |
| { Bad_Opcode }, | |
| { "vmovrs%BW", { XM, Mx }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_74 */ | |
| { | |
| { "vcvtbiasp%XH2bf8s", { XMxmmq, Vex, EXxh }, 0 }, | |
| { "vcvtp%XH2bf8s%XY", { XMxmmq, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvt2p%XH2bf8s", { XM, Vex, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_78 */ | |
| { | |
| { "vcvttp%XH2udq", { XM, EXxmmqh, EXxEVexS }, 0 }, | |
| { "vcvttsh2usi", { Gdq, EXw, EXxEVexS }, 0 }, | |
| { "vcvttp%XH2uqq", { XM, EXxmmqdh, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_79 */ | |
| { | |
| { "vcvtp%XH2udq", { XM, EXxmmqh, EXxEVexR }, 0 }, | |
| { "vcvtsh2usi", { Gdq, EXw, EXxEVexR }, 0 }, | |
| { "vcvtp%XH2uqq", { XM, EXxmmqdh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_7A */ | |
| { | |
| { Bad_Opcode }, | |
| { Bad_Opcode }, | |
| { "vcvttp%XH2qq", { XM, EXxmmqdh, EXxEVexS }, 0 }, | |
| { VEX_W_TABLE (EVEX_W_MAP5_7A_P_3) }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_7B */ | |
| { | |
| { Bad_Opcode }, | |
| { "vcvtusi2shY{%LQ|}", { XMScalar, VexScalar, EXxEVexR, Edq }, 0 }, | |
| { "vcvtp%XH2qq", { XM, EXxmmqdh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_7C */ | |
| { | |
| { "vcvttp%XH2uw", { XM, EXxh, EXxEVexS }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvttp%XH2w", { XM, EXxh, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_7D */ | |
| { | |
| { "vcvtp%XH2uw", { XM, EXxh, EXxEVexR }, 0 }, | |
| { "vcvtw2p%XH", { XM, EXxh, EXxEVexR }, 0 }, | |
| { "vcvtp%XH2w", { XM, EXxh, EXxEVexR }, 0 }, | |
| { "vcvtuw2p%XH", { XM, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP5_7E_L_0 */ | |
| { | |
| { Bad_Opcode }, | |
| { VEX_W_TABLE (EVEX_W_MAP5_7E_P_1) }, | |
| { "vmovw", { Edw, XMScalar }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_13 */ | |
| { | |
| { "vcvts%XH2ss", { XMScalar, VexScalar, EXw, EXxEVexS }, 0 }, | |
| { Bad_Opcode }, | |
| { "vcvtp%XH2psx", { XM, EXxmmqh, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_2C */ | |
| { | |
| { "vscalef%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vscalefp%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_42 */ | |
| { | |
| { "vgetexp%XB", { XM, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vgetexpp%XH", { XM, EXxh, EXxEVexS }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_4C */ | |
| { | |
| { "vrcp%XB", { XM, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vrcpp%XH", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_4E */ | |
| { | |
| { "vrsqrt%XB", { XM, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vrsqrtp%XH", { XM, EXxh }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_56 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vfmaddcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfcmaddcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_57 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vfmaddcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfcmaddcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_98 */ | |
| { | |
| { "vfmadd132%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_9A */ | |
| { | |
| { "vfmsub132%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_9C */ | |
| { | |
| { "vfnmadd132%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfnmadd132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_9E */ | |
| { | |
| { "vfnmsub132%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfnmsub132p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_A8 */ | |
| { | |
| { "vfmadd213%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_AA */ | |
| { | |
| { "vfmsub213%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_AC */ | |
| { | |
| { "vfnmadd213%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfnmadd213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_AE */ | |
| { | |
| { "vfnmsub213%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfnmsub213p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_B8 */ | |
| { | |
| { "vfmadd231%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_BA */ | |
| { | |
| { "vfmsub231%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_BC */ | |
| { | |
| { "vfnmadd231%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfnmadd231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_BE */ | |
| { | |
| { "vfnmsub231%XB", { XM, Vex, EXxh }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfnmsub231p%XH", { XM, Vex, EXxh, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_D6 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vfmulcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfcmulcp%XH", { { DistinctDest_Fixup, 0 }, Vex, EXx, EXxEVexR }, 0 }, | |
| }, | |
| /* PREFIX_EVEX_MAP6_D7 */ | |
| { | |
| { Bad_Opcode }, | |
| { "vfmulcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 }, | |
| { Bad_Opcode }, | |
| { "vfcmulcs%XH", { { DistinctDest_Fixup, scalar_mode }, VexScalar, EXd, EXxEVexR }, 0 }, | |
| }, |