VirtualBox

Changeset 106864 in vbox for trunk/src/VBox/ValidationKit


Ignore:
Timestamp:
Nov 7, 2024 4:40:17 AM (2 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: post-cvt cleanup; bugref:10658; bugref:9898; jiraref:VBP-1306

Bs3ExtCtxSetReg:

  • implement previously latent SetReg support for 8-bit-low GPRs
  • add bs3CpuInstrXGetRegisterSize(), bs3CpuInstrXGetRegisterFullSize()
  • add BS3_REGISTER_IS_GPR() macro

ValKit bs3-cpu-instr-3 test worker & tests:

  • fix details of VEX.B, VEX.W testing of vpextrb
  • update instr-3 worker #2 to new SetReg scheme
Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3-template.mac

    r106620 r106864  
    22832283EMIT_INSTR_PLUS_ICEBP_C64  vpextrb, FSxBX, XMM8, 000h
    22842284
    2285 %ifnmacro vpextrb_w1b_EDX_XMM1 1
    2286  ; special encoding to prove that VEX.W is effectively ignored everywhere and that VEX.B only matter in 64-bit code.
    2287  %macro vpextrb_w1b_EDX_XMM1 1
     2285%ifnmacro vpextrb_w0b0_EDX_XMM1 1
     2286 ; special encodings to prove that VEX.W is effectively ignored everywhere and that VEX.B only matters in 64-bit code.
     2287 %macro vpextrb_w0b0_EDX_XMM1 1
     2288        db      X86_OP_VEX3, 3 | X86_OP_VEX3_BYTE1_X | X86_OP_VEX3_BYTE1_R ; !VEX.B = REX.B = registers 8..15
     2289        db      X86_OP_VEX3_BYTE2_P_066H | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT)
     2290        db      14h, X86_MODRM_MAKE(X86_MOD_REG, 1, X86_GREG_xDX), %1
     2291 %endmacro
     2292 %macro vpextrb_w1b0_EDX_XMM1 1
    22882293        db      X86_OP_VEX3, 3 | X86_OP_VEX3_BYTE1_X | X86_OP_VEX3_BYTE1_R
    22892294        db      X86_OP_VEX3_BYTE2_P_066H | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT) | X86_OP_VEX3_BYTE2_W
     
    22932298 ; invalid coding where VEX.L=1.
    22942299 %macro vpextrb_l1_EDX_XMM1 1
    2295         db      X86_OP_VEX3, 3 | X86_OP_VEX3_BYTE1_X | X86_OP_VEX3_BYTE1_R | X86_OP_VEX3_BYTE1_B
     2300        db      X86_OP_VEX3, 3 | X86_OP_VEX3_BYTE1_X | X86_OP_VEX3_BYTE1_R
    22962301        db      X86_OP_VEX3_BYTE2_P_066H | (X86_OP_VEX3_BYTE2_VVVV_NONE << X86_OP_VEX3_BYTE2_VVVV_SHIFT) | X86_OP_VEX3_BYTE2_L
    22972302        db      14h, X86_MODRM_MAKE(X86_MOD_REG, 1, X86_GREG_xDX), %1
    22982303 %endmacro
    22992304%endif
    2300 EMIT_INSTR_PLUS_ICEBP      vpextrb_w1b_EDX_XMM1, 0FFh
     2305EMIT_INSTR_PLUS_ICEBP      vpextrb_w1b0_EDX_XMM1, 0FFh
     2306EMIT_INSTR_PLUS_ICEBP      vpextrb_w0b0_EDX_XMM1, 0FFh
    23012307EMIT_INSTR_PLUS_ICEBP      vpextrb_l1_EDX_XMM1, 0FFh
    23022308
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r106781 r106864  
    95179517 * Test type #2 - GPR <- MM/XMM/YMM, no VVVV.
    95189518 */
     9519#define BS3_XCPT_ALWAYS 0x80
     9520#define BS3_XCPT_UD     (X86_XCPT_UD | BS3_XCPT_ALWAYS)
    95199521
    95209522typedef struct BS3CPUINSTR3_TEST2_VALUES_T
    95219523{
    9522     RTUINT256U      uMedia;
    9523     uint64_t        uGpr;
     9524    RTUINT256U      uSrc;
     9525    uint64_t        uDstOut;
    95249526} BS3CPUINSTR3_TEST2_VALUES_T;
    95259527
     
    95279529{
    95289530    FPFNBS3FAR      pfnWorker;
    9529     uint8_t         bAvxMisalignXcpt;
     9531    uint8_t         bAltXcpt;            /**< AVX misalignment exception, or always-expected exception. */
    95309532    uint8_t         enmRm;
    95319533    uint8_t         enmType;
    95329534    uint8_t         cbGpr;
    9533     uint8_t         cBitsGprValMask;
    9534     bool            fInvalidEncoding;
    9535     uint8_t         fGprDst;
    9536     uint8_t         iGprReg;
    9537     uint8_t         iMediaReg;
     9535    uint8_t         iRegDst;
     9536    uint8_t         iRegSrc;
    95389537    uint8_t         cValues;
    95399538    BS3CPUINSTR3_TEST2_VALUES_T const BS3_FAR *paValues;
     
    95659564    PBS3EXTCTX                  pExtCtxOut;
    95669565    PBS3EXTCTX                  pExtCtx = bs3CpuInstr3AllocExtCtxs(&pExtCtxOut);
     9566    BS3SETREGCTX                pSetRegCtx;
    95679567    if (!pExtCtx)
    95689568        return 0;
     
    95789578    Bs3RegCtxSaveForMode(&Ctx, bMode, 1024);
    95799579    bs3CpuInstr3SetupSseAndAvx(&Ctx, pExtCtx);
     9580
     9581    pSetRegCtx.pExtCtx = pExtCtx;
     9582    pSetRegCtx.pCtx = &Ctx;
     9583    pSetRegCtx.bMode = bMode;
    95809584
    95819585    /*
     
    96049608                    uint8_t const   cbInstr     = ((uint8_t const BS3_FAR *)(uintptr_t)paTests[iTest].pfnWorker)[-1];
    96059609                    unsigned const  cValues     = paTests[iTest].cValues;
    9606                     bool const      fGprDst     = paTests[iTest].fGprDst == true;
    9607                     bool const      fMmBoth     = paTests[iTest].fGprDst == 2;
    96089610                    bool const      fMmxInstr   = paTests[iTest].enmType < T_SSE;
    96099611                    bool const      fSseInstr   = paTests[iTest].enmType >= T_SSE && paTests[iTest].enmType < T_AVX_128;
    96109612                    bool const      fAvxInstr   = paTests[iTest].enmType >= T_AVX_128;
     9613                    bool const      fMemOp      = paTests[iTest].enmRm >= RM_MEM;
    96119614                    uint8_t const   cbOperand   = paTests[iTest].enmType < T_128BITS ? 64/8
    96129615                                                : paTests[iTest].enmType < T_256BITS ? 128/8 : 256/8;
     
    96159618                    PRTUINT256U     puMemOp     = bs3CpuInstr3BufForOperand(pbBuf, cbBuf, cbMemOp, cbAlign, &paConfigs[iCfg], fPf);
    96169619                    PRTUINT256U     puMemOpAlias = (PRTUINT256U)&g_pbBufAlias[(uintptr_t)puMemOp - (uintptr_t)pbBuf];
    9617                     uint8_t         bXcptExpect =    !g_afTypeSupports[paTests[iTest].enmType]
    9618                                                   || paTests[iTest].fInvalidEncoding ? X86_XCPT_UD
     9620                    uint8_t         bXcptExpect = !g_afTypeSupports[paTests[iTest].enmType] ? X86_XCPT_UD
     9621                                                : paTests[iTest].bAltXcpt & BS3_XCPT_ALWAYS && paTests[iTest].bAltXcpt != 255 ? paTests[iTest].bAltXcpt & ~BS3_XCPT_ALWAYS
    96199622                                                : fMmxInstr ? paConfigs[iCfg].bXcptMmx
    96209623                                                : fSseInstr ? paConfigs[iCfg].bXcptSse
    96219624                                                : BS3_MODE_IS_RM_OR_V86(bMode) ? X86_XCPT_UD : paConfigs[iCfg].bXcptAvx;
    9622                     uint64_t const  fGprValMask = paTests[iTest].cBitsGprValMask == 64 ? UINT64_MAX
    9623                                                 : RT_BIT_64(paTests[iTest].cBitsGprValMask) - 1;
    96249625                    uint16_t        idTestStep  = bRing * 10000 + iCfg * 100 + iTest * 10;
    96259626                    unsigned        cRecompRuns = 0;
     
    96319632                    if ((paTests[iTest].enmRm == RM_REG || paTests[iTest].enmRm == RM_MEM8) && (!paConfigs[iCfg].fAligned || paConfigs[iCfg].fAlignCheck || fPf))
    96329633                        continue;
     9634
     9635                    BS3_ASSERT(!fMemOp || BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegDst) || BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegSrc));
     9636                    BS3_ASSERT(!(BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegDst) && BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegSrc)));
    96339637
    96349638                    /* #AC is only raised in ring-3.: */
     
    96389642                            bXcptExpect = X86_XCPT_DB;
    96399643                        else if (fAvxInstr)
    9640                             bXcptExpect = paTests[iTest].bAvxMisalignXcpt; /* they generally don't raise #AC */
     9644                            bXcptExpect = paTests[iTest].bAltXcpt; /* they generally don't raise #AC */
    96419645                    }
    96429646
     
    96559659                            uint16_t   uSavedFtw = 0xff;
    96569660                            RTUINT256U uMemOpExpect;
     9661                            RTUINT256U uDstVal = RTUINT256_INIT_C(0, 0, 0, 0);
    96579662
    96589663                            if (BS3_SKIPIT(bRing, iCfg, iTest, iVal, 0)) continue;
     
    96619666                             * Set up the context and some expectations.
    96629667                             */
    9663                             if (fMmBoth)
     9668                            Bs3MemCpy(&uDstVal, &paValues[iVal].uDstOut, paTests[iTest].cbGpr);
     9669
     9670                            /* dest */
     9671                            if (BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegDst))
    96649672                            {
    9665                                 if (fMmxInstr)
    9666                                     Bs3ExtCtxSetMm(pExtCtx, paTests[iTest].iGprReg, paValues[iVal].uMedia.QWords.qw0, BS3EXTCTXTOPMM_ZERO);
    9667                                 else if (fSseInstr)
    9668                                     Bs3ExtCtxSetXmm(pExtCtx, paTests[iTest].iGprReg, &paValues[iVal].uMedia.DQWords.dqw0);
     9673                                Bs3MemSet(puMemOpAlias, 0xcc, cbMemOp);
     9674                                if (bXcptExpect == X86_XCPT_DB)
     9675                                    uMemOpExpect = uDstVal;
    96699676                                else
    9670                                     Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iGprReg, &paValues[iVal].uMedia, 32);
     9677                                    Bs3MemSet(&uMemOpExpect, 0xcc, sizeof(uMemOpExpect));
    96719678                            }
    9672                             else if (fGprDst)
     9679
     9680                            /* source */
     9681                            if (BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegSrc))
    96739682                            {
    9674                                 /* dest - gpr/mem */
    9675                                 if (paTests[iTest].iGprReg == UINT8_MAX)
    9676                                 {
    9677                                     BS3_ASSERT(paTests[iTest].enmRm >= RM_MEM);
    9678                                     Bs3MemSet(puMemOpAlias, 0xcc, cbMemOp);
    9679                                     if (bXcptExpect != X86_XCPT_DB)
    9680                                         Bs3MemSet(&uMemOpExpect, 0xcc, sizeof(uMemOpExpect));
    9681                                     else
    9682                                     {
    9683                                         Bs3MemSet(&uMemOpExpect, 0xaa, sizeof(uMemOpExpect));
    9684                                         switch (paTests[iTest].cbGpr)
    9685                                         {
    9686                                             case 1: uMemOpExpect.au8[0]  = (uint8_t) (paValues[iVal].uGpr & fGprValMask); break;
    9687                                             case 2: uMemOpExpect.au16[0] = (uint16_t)(paValues[iVal].uGpr & fGprValMask); break;
    9688                                             case 4: uMemOpExpect.au32[0] = (uint32_t)(paValues[iVal].uGpr & fGprValMask); break;
    9689                                             case 8: uMemOpExpect.au64[0] =           (paValues[iVal].uGpr & fGprValMask); break;
    9690                                             default: BS3_ASSERT(0);
    9691                                         }
    9692                                     }
    9693                                 }
    9694                                 else
    9695                                     Bs3RegCtxSetGpr(&Ctx, paTests[iTest].iGprReg, UINT64_C(0xcccccccccccccccc),
    9696                                                     BS3_MODE_IS_64BIT_CODE(bMode) ? 8 : 4); /* we only restore 63:32 when bMode==LM64 */
    9697 
    9698                                 /* source - media/mem */
    9699                                 if (paTests[iTest].iMediaReg == UINT8_MAX)
    9700                                 {
    9701                                     BS3_ASSERT(paTests[iTest].enmRm >= RM_MEM);
    9702                                     BS3_ASSERT(paTests[iTest].iGprReg != UINT8_MAX);
    9703                                     Bs3MemCpy(puMemOpAlias, &paValues[iVal].uMedia, cbMemOp);
    9704                                     uMemOpExpect = paValues[iVal].uMedia;
    9705                                 }
    9706                                 else if (fMmxInstr)
    9707                                     Bs3ExtCtxSetMm(pExtCtx, paTests[iTest].iMediaReg, paValues[iVal].uMedia.QWords.qw0, BS3EXTCTXTOPMM_ZERO);
    9708                                 else if (fSseInstr)
    9709                                     Bs3ExtCtxSetXmm(pExtCtx, paTests[iTest].iMediaReg, &paValues[iVal].uMedia.DQWords.dqw0);
    9710                                 else
    9711                                     Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iMediaReg, &paValues[iVal].uMedia, 32);
     9683                                Bs3MemCpy(puMemOpAlias, &paValues[iVal].uSrc, cbMemOp);
     9684                                uMemOpExpect = paValues[iVal].uSrc;
    97129685                            }
    97139686                            else
    9714                             {
    9715                                 /* dest - media */
    9716                                 if (paTests[iTest].iMediaReg == UINT8_MAX)
    9717                                 {
    9718                                     BS3_ASSERT(paTests[iTest].enmRm >= RM_MEM);
    9719                                     Bs3MemSet(puMemOpAlias, 0xcc, cbMemOp);
    9720                                     if (bXcptExpect == X86_XCPT_DB)
    9721                                         uMemOpExpect = paValues[iVal].uMedia;
    9722                                     else
    9723                                         Bs3MemSet(&uMemOpExpect, 0xcc, sizeof(uMemOpExpect));
    9724                                 }
    9725 
    9726                                 /* source - gpr/mem */
    9727                                 if (paTests[iTest].iGprReg == UINT8_MAX)
    9728                                 {
    9729                                     BS3_ASSERT(paTests[iTest].enmRm >= RM_MEM);
    9730                                     Bs3MemSet(&uMemOpExpect, 0xcc, sizeof(uMemOpExpect));
    9731                                     if (bXcptExpect == X86_XCPT_DB)
    9732                                         switch (paTests[iTest].cbGpr)
    9733                                         {
    9734                                             case 1: uMemOpExpect.au8[0]  = (uint8_t) (paValues[iVal].uGpr & fGprValMask); break;
    9735                                             case 2: uMemOpExpect.au16[0] = (uint16_t)(paValues[iVal].uGpr & fGprValMask); break;
    9736                                             case 4: uMemOpExpect.au32[0] = (uint32_t)(paValues[iVal].uGpr & fGprValMask); break;
    9737                                             case 8: uMemOpExpect.au64[0] =           (paValues[iVal].uGpr & fGprValMask); break;
    9738                                             default: BS3_ASSERT(0);
    9739                                         }
    9740                                     Bs3MemCpy(puMemOpAlias, &uMemOpExpect, cbMemOp);
    9741                                 }
    9742                                 else
    9743                                     Bs3RegCtxSetGpr(&Ctx, paTests[iTest].iGprReg, paValues[iVal].uGpr & fGprValMask, paTests[iTest].cbGpr);
    9744                             }
     9687                                Bs3ExtCtxSetReg(&pSetRegCtx, paTests[iTest].iRegSrc, &paValues[iVal].uSrc);
    97459688
    97469689                            /* Memory pointer. */
    9747                             if (paTests[iTest].enmRm >= RM_MEM)
    9748                             {
    9749                                 BS3_ASSERT(paTests[iTest].iGprReg == UINT8_MAX || paTests[iTest].iMediaReg == UINT8_MAX);
     9690                            if (fMemOp)
    97509691                                Bs3RegCtxSetGrpSegFromCurPtr(&Ctx, &Ctx.rbx, &Ctx.fs, puMemOp);
    9751                             }
    97529692
    97539693                            /*
     
    97679707                                Bs3ExtCtxSetAbridgedFtw(pExtCtx, 0xff);
    97689708                            }
    9769                             if (fMmBoth && bXcptExpect == X86_XCPT_DB)
    9770                             {
    9771                                 RTUINT256U uDstVal = RTUINT256_INIT_C(0, 0, 0, 0);
    9772                                 uDstVal.au64[0] = paValues[iVal].uGpr;
    9773                                 if (fMmxInstr)
    9774                                     Bs3ExtCtxSetMm(pExtCtx, paTests[iTest].iMediaReg, paValues[iVal].uGpr, BS3EXTCTXTOPMM_SET);
    9775                                 else if (fSseInstr)
    9776                                     Bs3ExtCtxSetXmm(pExtCtx, paTests[iTest].iMediaReg, &uDstVal.DQWords.dqw0);
    9777                                 else
    9778                                     Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iMediaReg, &uDstVal, 32);
    9779                             }
    9780                             else if (!fGprDst && bXcptExpect == X86_XCPT_DB && paTests[iTest].iMediaReg != UINT8_MAX)
    9781                             {
    9782                                 if (fMmxInstr)
    9783                                     Bs3ExtCtxSetMm(pExtCtx, paTests[iTest].iMediaReg, paValues[iVal].uMedia.QWords.qw0, BS3EXTCTXTOPMM_SET);
    9784                                 else if (fSseInstr)
    9785                                     Bs3ExtCtxSetXmm(pExtCtx, paTests[iTest].iMediaReg, &paValues[iVal].uMedia.DQWords.dqw0);
    9786                                 else
    9787                                     Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iMediaReg, &paValues[iVal].uMedia, 32);
    9788                             }
     9709
     9710                            if (bXcptExpect == X86_XCPT_DB && !BS3_REGISTER_IS_MEMREF(paTests[iTest].iRegDst))
     9711                                Bs3ExtCtxSetReg(&pSetRegCtx, paTests[iTest].iRegDst, &uDstVal);
     9712
    97899713                            Bs3TestCheckExtCtx(pExtCtxOut, pExtCtx, 0 /*fFlags*/, pszMode, idTestStep);
    97909714
     
    97929716                                Bs3TestFailedF("Expected bXcpt = %#x, got %#x", bXcptExpect, TrapFrame.bXcpt);
    97939717
    9794                             if (fGprDst && bXcptExpect == X86_XCPT_DB && paTests[iTest].iGprReg != UINT8_MAX)
    9795                                 Bs3RegCtxSetGpr(&Ctx, paTests[iTest].iGprReg, paValues[iVal].uGpr & fGprValMask,
    9796                                                 paTests[iTest].cbGpr >= 4 ? 8 : paTests[iTest].cbGpr);
    97979718                            /* Kludge! Looks like EFLAGS.AC is cleared when raising #GP in real mode on the 10980XE. WEIRD! */
    97989719                            if (bMode == BS3_MODE_RM && (Ctx.rflags.u32 & X86_EFL_AC))
     
    98689789    static BS3CPUINSTR3_TEST2_T const s_aTests16[] =
    98699790    {
    9870         {  bs3CpuInstr3_pmovmskb_EAX_MM2_icebp_c16,           255, RM_REG, T_AXMMX_OR_SSE, 4,  8, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9871         {  bs3CpuInstr3_pmovmskb_EAX_qword_FSxBX_icebp_c16,   255, RM_MEM, T_AXMMX_OR_SSE, 4,  8, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9872         {  bs3CpuInstr3_pmovmskb_EAX_XMM2_icebp_c16,          255, RM_REG, T_SSE2,         4, 16, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9873         {  bs3CpuInstr3_pmovmskb_EAX_dqword_FSxBX_icebp_c16,  255, RM_MEM, T_SSE2,         4, 16, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9874         {  bs3CpuInstr3_vpmovmskb_EAX_XMM2_icebp_c16,         255, RM_REG, T_AVX_128,      4, 16, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9875         {  bs3CpuInstr3_vpmovmskb_EAX_dqword_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128,      4, 16, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9876         {  bs3CpuInstr3_vpmovmskb_EAX_YMM2_icebp_c16,         255, RM_REG, T_AVX2_256,     4, 32, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9877         {  bs3CpuInstr3_vpmovmskb_EAX_qqword_FSxBX_icebp_c16, 255, RM_MEM, T_AVX2_256,     4, 32, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
     9791        {  bs3CpuInstr3_pmovmskb_EAX_MM2_icebp_c16,           255,         RM_REG, T_AXMMX_OR_SSE, 4, AL,  MM2,  RT_ELEMENTS(s_aValues), s_aValues },
     9792        {  bs3CpuInstr3_pmovmskb_EAX_qword_FSxBX_icebp_c16,   BS3_XCPT_UD, RM_MEM, T_AXMMX_OR_SSE, 4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9793        {  bs3CpuInstr3_pmovmskb_EAX_XMM2_icebp_c16,          255,         RM_REG, T_SSE2,         4, AX,  XMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9794        {  bs3CpuInstr3_pmovmskb_EAX_dqword_FSxBX_icebp_c16,  BS3_XCPT_UD, RM_MEM, T_SSE2,         4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9795        {  bs3CpuInstr3_vpmovmskb_EAX_XMM2_icebp_c16,         255,         RM_REG, T_AVX_128,      4, AX,  XMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9796        {  bs3CpuInstr3_vpmovmskb_EAX_dqword_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128,      4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9797        {  bs3CpuInstr3_vpmovmskb_EAX_YMM2_icebp_c16,         255,         RM_REG, T_AVX2_256,     4, EAX, YMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9798        {  bs3CpuInstr3_vpmovmskb_EAX_qqword_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX2_256,     4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
    98789799    };
    98799800    static BS3CPUINSTR3_TEST2_T const s_aTests32[] =
    98809801    {
    9881         {  bs3CpuInstr3_pmovmskb_EAX_MM2_icebp_c32,           255, RM_REG, T_AXMMX_OR_SSE, 4,  8, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9882         {  bs3CpuInstr3_pmovmskb_EAX_qword_FSxBX_icebp_c32,   255, RM_MEM, T_AXMMX_OR_SSE, 4,  8, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9883         {  bs3CpuInstr3_pmovmskb_EAX_XMM2_icebp_c32,          255, RM_REG, T_SSE2,         4, 16, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9884         {  bs3CpuInstr3_pmovmskb_EAX_dqword_FSxBX_icebp_c32,  255, RM_MEM, T_SSE2,         4, 16, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9885         {  bs3CpuInstr3_vpmovmskb_EAX_XMM2_icebp_c32,         255, RM_REG, T_AVX_128,      4, 16, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9886         {  bs3CpuInstr3_vpmovmskb_EAX_dqword_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128,      4, 16, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9887         {  bs3CpuInstr3_vpmovmskb_EAX_YMM2_icebp_c32,         255, RM_REG, T_AVX2_256,     4, 32, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9888         {  bs3CpuInstr3_vpmovmskb_EAX_qqword_FSxBX_icebp_c32, 255, RM_MEM, T_AVX2_256,     4, 32, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
     9802        {  bs3CpuInstr3_pmovmskb_EAX_MM2_icebp_c32,           255,         RM_REG, T_AXMMX_OR_SSE, 4, AL,  MM2,  RT_ELEMENTS(s_aValues), s_aValues },
     9803        {  bs3CpuInstr3_pmovmskb_EAX_qword_FSxBX_icebp_c32,   BS3_XCPT_UD, RM_MEM, T_AXMMX_OR_SSE, 4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9804        {  bs3CpuInstr3_pmovmskb_EAX_XMM2_icebp_c32,          255,         RM_REG, T_SSE2,         4, AX,  XMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9805        {  bs3CpuInstr3_pmovmskb_EAX_dqword_FSxBX_icebp_c32,  BS3_XCPT_UD, RM_MEM, T_SSE2,         4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9806        {  bs3CpuInstr3_vpmovmskb_EAX_XMM2_icebp_c32,         255,         RM_REG, T_AVX_128,      4, AX,  XMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9807        {  bs3CpuInstr3_vpmovmskb_EAX_dqword_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128,      4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9808        {  bs3CpuInstr3_vpmovmskb_EAX_YMM2_icebp_c32,         255,         RM_REG, T_AVX2_256,     4, EAX, YMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9809        {  bs3CpuInstr3_vpmovmskb_EAX_qqword_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX2_256,     4, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
    98899810    };
    98909811    static BS3CPUINSTR3_TEST2_T const s_aTests64[] =
    98919812    {
    9892         {  bs3CpuInstr3_pmovmskb_EAX_MM2_icebp_c64,           255, RM_REG, T_AXMMX_OR_SSE, 8,  8, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9893         {  bs3CpuInstr3_pmovmskb_EAX_qword_FSxBX_icebp_c64,   255, RM_MEM, T_AXMMX_OR_SSE, 8,  8, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9894         {  bs3CpuInstr3_pmovmskb_EAX_XMM2_icebp_c64,          255, RM_REG, T_SSE2,         8, 16, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9895         {  bs3CpuInstr3_pmovmskb_EAX_dqword_FSxBX_icebp_c64,  255, RM_MEM, T_SSE2,         8, 16, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9896         {  bs3CpuInstr3_vpmovmskb_EAX_XMM2_icebp_c64,         255, RM_REG, T_AVX_128,      8, 16, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9897         {  bs3CpuInstr3_vpmovmskb_EAX_dqword_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128,      8, 16, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9898         {  bs3CpuInstr3_vpmovmskb_EAX_YMM2_icebp_c64,         255, RM_REG, T_AVX2_256,     8, 32, false, true, 0,   2, RT_ELEMENTS(s_aValues), s_aValues },
    9899         {  bs3CpuInstr3_vpmovmskb_EAX_qqword_FSxBX_icebp_c64, 255, RM_MEM, T_AVX2_256,     8, 32, true,  true, 0, 255, RT_ELEMENTS(s_aValues), s_aValues },
    9900         {  bs3CpuInstr3_vpmovmskb_RAX_YMM9_icebp_c64,         255, RM_REG, T_AVX2_256,     8, 32, false, true, 0,   9, RT_ELEMENTS(s_aValues), s_aValues },
     9813        {  bs3CpuInstr3_pmovmskb_EAX_MM2_icebp_c64,           255,         RM_REG, T_AXMMX_OR_SSE, 8, AL,  MM2,  RT_ELEMENTS(s_aValues), s_aValues },
     9814        {  bs3CpuInstr3_pmovmskb_EAX_qword_FSxBX_icebp_c64,   BS3_XCPT_UD, RM_MEM, T_AXMMX_OR_SSE, 8, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9815        {  bs3CpuInstr3_pmovmskb_EAX_XMM2_icebp_c64,          255,         RM_REG, T_SSE2,         8, AX,  XMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9816        {  bs3CpuInstr3_pmovmskb_EAX_dqword_FSxBX_icebp_c64,  BS3_XCPT_UD, RM_MEM, T_SSE2,         8, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9817        {  bs3CpuInstr3_vpmovmskb_EAX_XMM2_icebp_c64,         255,         RM_REG, T_AVX_128,      8, AX,  XMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9818        {  bs3CpuInstr3_vpmovmskb_EAX_dqword_FSxBX_icebp_c64, BS3_XCPT_UD, RM_MEM, T_AVX_128,      8, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9819        {  bs3CpuInstr3_vpmovmskb_EAX_YMM2_icebp_c64,         255,         RM_REG, T_AVX2_256,     8, EAX, YMM2, RT_ELEMENTS(s_aValues), s_aValues },
     9820        {  bs3CpuInstr3_vpmovmskb_EAX_qqword_FSxBX_icebp_c64, BS3_XCPT_UD, RM_MEM, T_AVX2_256,     8, EAX, FSxBX, RT_ELEMENTS(s_aValues), s_aValues },
     9821        {  bs3CpuInstr3_vpmovmskb_RAX_YMM9_icebp_c64,         255,         RM_REG, T_AVX2_256,     8, RAX, YMM9, RT_ELEMENTS(s_aValues), s_aValues },
    99019822    };
    99029823    static BS3CPUINSTR3_TEST2_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST2_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    99429863    /* Note! Seems the 256-bit variants doesn't generate \#ACs on a 10980XE. WEIRD! */
    99439864    /* Note: 'VEX.W!' entries: 'vmovq' in non-long modes ignores VEX.W1, acts as VEX.W0 'vmovd' */
    9944     /* Note: 'MMx2' entries: test type #2 worker now supports Media, Media operands (fGprDst == 2) */
    99459865    static BS3CPUINSTR3_TEST2_T const s_aTests16[] =
    99469866    {
    9947         {  bs3CpuInstr3_movd_MM1_EDX_icebp_c16,         255,         RM_REG,   T_MMX,     4, 32, false, false,   2,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9948         {  bs3CpuInstr3_movd_MM1_FSxBX_icebp_c16,       255,         RM_MEM32, T_MMX,     4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9949         {  bs3CpuInstr3_movd_EAX_MM1_icebp_c16,         255,         RM_REG,   T_MMX,     4, 32, false, true,    0,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9950         {  bs3CpuInstr3_movd_FSxBX_MM1_icebp_c16,       255,         RM_MEM32, T_MMX,     4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9951 
    9952         {  bs3CpuInstr3_movd_XMM1_EAX_icebp_c16,        255,         RM_REG,   T_SSE2,    4, 32, false, false,   0,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9953         {  bs3CpuInstr3_movd_XMM1_FSxBX_icebp_c16,      255,         RM_MEM32, T_SSE2,    4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9954         {  bs3CpuInstr3_movd_EAX_XMM1_icebp_c16,        255,         RM_REG,   T_SSE2,    4, 32, false, true,    0,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9955         {  bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c16,      255,         RM_MEM32, T_SSE2,    4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9956 
    9957         {  bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c16,       255,         RM_REG,   T_AVX_128, 4, 32, false, false,   0,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9958         {  bs3CpuInstr3_vmovd_XMM1_FSxBX_icebp_c16,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9959         {  bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c16,       255,         RM_REG,   T_AVX_128, 4, 32, false, true,    2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9960         {  bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c16,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9961 
    9962         {  bs3CpuInstr3_movq_MM1_FSxBX_icebp_c16,       255,         RM_MEM64, T_MMX,     8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    9963         {  bs3CpuInstr3_movq_FSxBX_MM1_icebp_c16,       255,         RM_MEM64, T_MMX,     8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9964         {  bs3CpuInstr3_movq_MM1_MM2_icebp_c16,         255,         RM_REG,   T_MMX,     8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
    9965         {  bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c16,      255,         RM_MEM64, T_SSE2,    8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    9966         {  bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c16,      255,         RM_MEM64, T_SSE2,    8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9967         {  bs3CpuInstr3_movq_XMM1_XMM2_icebp_c16,       255,         RM_REG,   T_SSE2,    8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
    9968 
    9969         {  bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c16,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    9970         {  bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, /* VEX.W! */
    9971         {  bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c16,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9972         {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },        /* VEX.W! */
    9973         {  bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c16,      255,         RM_REG,   T_AVX_128, 8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
     9867        {  bs3CpuInstr3_movd_MM1_EDX_icebp_c16,         255,         RM_REG,   T_MMX,     4, MM1,   EDX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9868        {  bs3CpuInstr3_movd_MM1_FSxBX_icebp_c16,       255,         RM_MEM32, T_MMX,     4, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9869        {  bs3CpuInstr3_movd_EAX_MM1_icebp_c16,         255,         RM_REG,   T_MMX,     4, EAX,   MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9870        {  bs3CpuInstr3_movd_FSxBX_MM1_icebp_c16,       255,         RM_MEM32, T_MMX,     4, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9871
     9872        {  bs3CpuInstr3_movd_XMM1_EAX_icebp_c16,        255,         RM_REG,   T_SSE2,    4, XMM1,  EAX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9873        {  bs3CpuInstr3_movd_XMM1_FSxBX_icebp_c16,      255,         RM_MEM32, T_SSE2,    4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9874        {  bs3CpuInstr3_movd_EAX_XMM1_icebp_c16,        255,         RM_REG,   T_SSE2,    4, EAX,   XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9875        {  bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c16,      255,         RM_MEM32, T_SSE2,    4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9876
     9877        {  bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c16,       255,         RM_REG,   T_AVX_128, 4, XMM1,  EAX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9878        {  bs3CpuInstr3_vmovd_XMM1_FSxBX_icebp_c16,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9879        {  bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c16,       255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9880        {  bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c16,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9881
     9882        {  bs3CpuInstr3_movq_MM1_FSxBX_icebp_c16,       255,         RM_MEM64, T_MMX,     8, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9883        {  bs3CpuInstr3_movq_FSxBX_MM1_icebp_c16,       255,         RM_MEM64, T_MMX,     8, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9884        {  bs3CpuInstr3_movq_MM1_MM2_icebp_c16,         255,         RM_REG,   T_MMX,     8, MM1,   MM2,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
     9885        {  bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c16,      255,         RM_MEM64, T_SSE2,    8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9886        {  bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c16,      255,         RM_MEM64, T_SSE2,    8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9887        {  bs3CpuInstr3_movq_XMM1_XMM2_icebp_c16,       255,         RM_REG,   T_SSE2,    8, XMM1,  XMM2,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
     9888
     9889        {  bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c16,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9890        {  bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, /* VEX.W! */
     9891        {  bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c16,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9892        {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     }, /* VEX.W! */
     9893        {  bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c16,      255,         RM_REG,   T_AVX_128, 8, XMM1,  XMM2,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
    99749894    };
    99759895    static BS3CPUINSTR3_TEST2_T const s_aTests32[] =
    99769896    {
    9977         {  bs3CpuInstr3_movd_MM1_EDX_icebp_c32,         255,         RM_REG,   T_MMX,     4, 32, false, false,   2,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9978         {  bs3CpuInstr3_movd_MM1_FSxBX_icebp_c32,       255,         RM_MEM32, T_MMX,     4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9979         {  bs3CpuInstr3_movd_EAX_MM1_icebp_c32,         255,         RM_REG,   T_MMX,     4, 32, false, true,    0,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9980         {  bs3CpuInstr3_movd_FSxBX_MM1_icebp_c32,       255,         RM_MEM32, T_MMX,     4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9981 
    9982         {  bs3CpuInstr3_movd_XMM1_EAX_icebp_c32,        255,         RM_REG,   T_SSE2,    4, 32, false, false,   0,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9983         {  bs3CpuInstr3_movd_XMM1_FSxBX_icebp_c32,      255,         RM_MEM32, T_SSE2,    4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9984         {  bs3CpuInstr3_movd_EAX_XMM1_icebp_c32,        255,         RM_REG,   T_SSE2,    4, 32, false, true,    0,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9985         {  bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c32,      255,         RM_MEM32, T_SSE2,    4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9986 
    9987         {  bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c32,       255,         RM_REG,   T_AVX_128, 4, 32, false, false,   0,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9988         {  bs3CpuInstr3_vmovd_XMM1_FSxBX_icebp_c32,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    9989         {  bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c32,       255,         RM_REG,   T_AVX_128, 4, 32, false, true,    2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9990         {  bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c32,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9991 
    9992         {  bs3CpuInstr3_movq_MM1_FSxBX_icebp_c32,       255,         RM_MEM64, T_MMX,     8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    9993         {  bs3CpuInstr3_movq_FSxBX_MM1_icebp_c32,       255,         RM_MEM64, T_MMX,     8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9994         {  bs3CpuInstr3_movq_MM1_MM2_icebp_c32,         255,         RM_REG,   T_MMX,     8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
    9995 
    9996         {  bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c32,      255,         RM_MEM64, T_SSE2,    8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    9997         {  bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c32,      255,         RM_MEM64, T_SSE2,    8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    9998         {  bs3CpuInstr3_movq_XMM1_XMM2_icebp_c32,       255,         RM_REG,   T_SSE2,    8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
    9999 
    10000         {  bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c32,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10001         {  bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, /* VEX.W! */
    10002         {  bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c32,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10003         {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },        /* VEX.W! */
    10004         {  bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c32,      255,         RM_REG,   T_AVX_128, 8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
     9897        {  bs3CpuInstr3_movd_MM1_EDX_icebp_c32,         255,         RM_REG,   T_MMX,     4, MM1,   EDX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9898        {  bs3CpuInstr3_movd_MM1_FSxBX_icebp_c32,       255,         RM_MEM32, T_MMX,     4, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9899        {  bs3CpuInstr3_movd_EAX_MM1_icebp_c32,         255,         RM_REG,   T_MMX,     4, EAX,   MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9900        {  bs3CpuInstr3_movd_FSxBX_MM1_icebp_c32,       255,         RM_MEM32, T_MMX,     4, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9901
     9902        {  bs3CpuInstr3_movd_XMM1_EAX_icebp_c32,        255,         RM_REG,   T_SSE2,    4, XMM1,  EAX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9903        {  bs3CpuInstr3_movd_XMM1_FSxBX_icebp_c32,      255,         RM_MEM32, T_SSE2,    4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9904        {  bs3CpuInstr3_movd_EAX_XMM1_icebp_c32,        255,         RM_REG,   T_SSE2,    4, EAX,   XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9905        {  bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c32,      255,         RM_MEM32, T_SSE2,    4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9906
     9907        {  bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c32,       255,         RM_REG,   T_AVX_128, 4, XMM1,  EAX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9908        {  bs3CpuInstr3_vmovd_XMM1_FSxBX_icebp_c32,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9909        {  bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c32,       255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9910        {  bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c32,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9911
     9912        {  bs3CpuInstr3_movq_MM1_FSxBX_icebp_c32,       255,         RM_MEM64, T_MMX,     8, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9913        {  bs3CpuInstr3_movq_FSxBX_MM1_icebp_c32,       255,         RM_MEM64, T_MMX,     8, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9914        {  bs3CpuInstr3_movq_MM1_MM2_icebp_c32,         255,         RM_REG,   T_MMX,     8, MM1,   MM2,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
     9915
     9916        {  bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c32,      255,         RM_MEM64, T_SSE2,    8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9917        {  bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c32,      255,         RM_MEM64, T_SSE2,    8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9918        {  bs3CpuInstr3_movq_XMM1_XMM2_icebp_c32,       255,         RM_REG,   T_SSE2,    8, XMM1,  XMM2,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
     9919
     9920        {  bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c32,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9921        {  bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD }, /* VEX.W! */
     9922        {  bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c32,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9923        {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     }, /* VEX.W! */
     9924        {  bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c32,      255,         RM_REG,   T_AVX_128, 8, XMM1,  XMM2,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
    100059925    };
    100069926    static BS3CPUINSTR3_TEST2_T const s_aTests64[] =
    100079927    {
    10008         {  bs3CpuInstr3_movd_MM1_EDX_icebp_c64,         255,         RM_REG,   T_MMX,     4, 32, false, false,   2,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10009         {  bs3CpuInstr3_movd_MM1_R9D_icebp_c64,         255,         RM_REG,   T_MMX,     4, 32, false, false,   9,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10010         {  bs3CpuInstr3_movd_MM1_FSxBX_icebp_c64,       255,         RM_MEM32, T_MMX,     4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10011         {  bs3CpuInstr3_movd_EAX_MM1_icebp_c64,         255,         RM_REG,   T_MMX,     4, 32, false, true,    0,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10012         {  bs3CpuInstr3_movd_R10D_MM0_icebp_c64,        255,         RM_REG,   T_MMX,     4, 32, false, true,   10,  0, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10013         {  bs3CpuInstr3_movd_FSxBX_MM1_icebp_c64,       255,         RM_MEM32, T_MMX,     4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10014 
    10015         {  bs3CpuInstr3_movd_XMM1_EAX_icebp_c64,        255,         RM_REG,   T_SSE2,    4, 32, false, false,   0,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10016         {  bs3CpuInstr3_movd_XMM9_R8D_icebp_c64,        255,         RM_REG,   T_SSE2,    4, 32, false, false,   8,  9, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10017         {  bs3CpuInstr3_movd_XMM1_FSxBX_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10018         {  bs3CpuInstr3_movd_XMM9_FSxBX_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, 32, false, false, 255,  9, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10019         {  bs3CpuInstr3_movd_EAX_XMM1_icebp_c64,        255,         RM_REG,   T_SSE2,    4, 32, false, true,    0,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10020         {  bs3CpuInstr3_movd_R8D_XMM9_icebp_c64,        255,         RM_REG,   T_SSE2,    4, 32, false, true,    8,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10021         {  bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10022         {  bs3CpuInstr3_movd_FSxBX_XMM9_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, 32, false, true,  255,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10023 
    10024         {  bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, 32, false, false,   0,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10025         {  bs3CpuInstr3_vmovd_XMM9_R9D_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, 32, false, false,   9,  9, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10026         {  bs3CpuInstr3_vmovd_XMM1_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10027         {  bs3CpuInstr3_vmovd_XMM9_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, false, 255,  9, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
    10028         {  bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, 32, false, true,    2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10029         {  bs3CpuInstr3_vmovd_R8D_XMM9_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, 32, false, true,    8,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10030         {  bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10031         {  bs3CpuInstr3_vmovd_FSxBX_XMM9_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true,  255,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10032 
    10033         {  bs3CpuInstr3_movq_MM1_R9_icebp_c64,          255,         RM_REG,   T_MMX,     8, 64, false, false,   9,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10034         {  bs3CpuInstr3_movq_MM1_FSxBX_icebp_c64,       255,         RM_MEM64, T_MMX,     8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10035         {  bs3CpuInstr3_06e_movq_MM1_FSxBX_icebp_c64,   255,         RM_MEM64, T_MMX,     8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10036         {  bs3CpuInstr3_movq_R9_MM1_icebp_c64,          255,         RM_REG,   T_MMX,     8, 64, false, true,    9,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10037         {  bs3CpuInstr3_movq_FSxBX_MM1_icebp_c64,       255,         RM_MEM64, T_MMX,     8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10038         {  bs3CpuInstr3_07e_movq_FSxBX_MM1_icebp_c64,   255,         RM_MEM64, T_MMX,     8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10039         {  bs3CpuInstr3_movq_MM1_MM2_icebp_c64,         255,         RM_REG,   T_MMX,     8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
    10040 
    10041         {  bs3CpuInstr3_movq_XMM9_R8_icebp_c64,         255,         RM_REG,   T_SSE2,    8, 64, false, false,   8,  9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10042         {  bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10043         {  bs3CpuInstr3_06e_movq_XMM1_FSxBX_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10044         {  bs3CpuInstr3_movq_XMM9_FSxBX_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, 64, false, false, 255,  9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10045         {  bs3CpuInstr3_06e_movq_XMM9_FSxBX_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, 64, false, false, 255,  9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10046         {  bs3CpuInstr3_movq_R8_XMM9_icebp_c64,         255,         RM_REG,   T_SSE2,    8, 64, false, true,    8,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10047         {  bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10048         {  bs3CpuInstr3_07e_movq_FSxBX_XMM1_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10049         {  bs3CpuInstr3_movq_FSxBX_XMM9_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, 64, false, true,  255,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10050         {  bs3CpuInstr3_07e_movq_FSxBX_XMM9_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, 64, false, true,  255,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10051         {  bs3CpuInstr3_movq_XMM1_XMM2_icebp_c64,       255,         RM_REG,   T_SSE2,    8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
    10052 
    10053         {  bs3CpuInstr3_vmovq_XMM9_R8_icebp_c64,        255,         RM_REG,   T_AVX_128, 8, 64, false, false,   8,  9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10054         {  bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10055         {  bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255,  1, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10056         {  bs3CpuInstr3_vmovq_XMM9_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255,  9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10057         {  bs3CpuInstr3_06e_vmovq_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, false, 255,  9, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
    10058         {  bs3CpuInstr3_vmovq_R8_XMM9_icebp_c64,        255,         RM_REG,   T_AVX_128, 8, 64, false, true,    8,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10059         {  bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10060         {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true,  255,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10061         {  bs3CpuInstr3_vmovq_FSxBX_XMM9_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true,  255,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10062         {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM9_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true,  255,  9, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },
    10063         {  bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, 64, false, 2,       2,  1, RT_ELEMENTS(s_aValuesRm), s_aValuesRm },         /* MMx2 */
     9928        {  bs3CpuInstr3_movd_MM1_EDX_icebp_c64,         255,         RM_REG,   T_MMX,     4, MM1,   EDX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9929        {  bs3CpuInstr3_movd_MM1_R9D_icebp_c64,         255,         RM_REG,   T_MMX,     4, MM1,   R9D,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9930        {  bs3CpuInstr3_movd_MM1_FSxBX_icebp_c64,       255,         RM_MEM32, T_MMX,     4, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9931        {  bs3CpuInstr3_movd_EAX_MM1_icebp_c64,         255,         RM_REG,   T_MMX,     4, EAX,   MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9932        {  bs3CpuInstr3_movd_R10D_MM0_icebp_c64,        255,         RM_REG,   T_MMX,     4, R10D,  MM0,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9933        {  bs3CpuInstr3_movd_FSxBX_MM1_icebp_c64,       255,         RM_MEM32, T_MMX,     4, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9934
     9935        {  bs3CpuInstr3_movd_XMM1_EAX_icebp_c64,        255,         RM_REG,   T_SSE2,    4, XMM1,  EAX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9936        {  bs3CpuInstr3_movd_XMM9_R8D_icebp_c64,        255,         RM_REG,   T_SSE2,    4, XMM9,  R8D,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9937        {  bs3CpuInstr3_movd_XMM1_FSxBX_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9938        {  bs3CpuInstr3_movd_XMM9_FSxBX_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, XMM9,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9939        {  bs3CpuInstr3_movd_EAX_XMM1_icebp_c64,        255,         RM_REG,   T_SSE2,    4, EAX,   XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9940        {  bs3CpuInstr3_movd_R8D_XMM9_icebp_c64,        255,         RM_REG,   T_SSE2,    4, R8D,   XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9941        {  bs3CpuInstr3_movd_FSxBX_XMM1_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9942        {  bs3CpuInstr3_movd_FSxBX_XMM9_icebp_c64,      255,         RM_MEM32, T_SSE2,    4, FSxBX, XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9943
     9944        {  bs3CpuInstr3_vmovd_XMM1_EAX_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, XMM1,  EAX,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9945        {  bs3CpuInstr3_vmovd_XMM9_R9D_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, XMM9,  R9D,  RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9946        {  bs3CpuInstr3_vmovd_XMM1_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9947        {  bs3CpuInstr3_vmovd_XMM9_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, XMM9,  FSxBX, RT_ELEMENTS(s_aValuesMediaD), s_aValuesMediaD },
     9948        {  bs3CpuInstr3_vmovd_EDX_XMM1_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9949        {  bs3CpuInstr3_vmovd_R8D_XMM9_icebp_c64,       255,         RM_REG,   T_AVX_128, 4, R8D,   XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9950        {  bs3CpuInstr3_vmovd_FSxBX_XMM1_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9951        {  bs3CpuInstr3_vmovd_FSxBX_XMM9_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9952
     9953        {  bs3CpuInstr3_movq_MM1_R9_icebp_c64,          255,         RM_REG,   T_MMX,     8, MM1,   R9,    RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9954        {  bs3CpuInstr3_movq_MM1_FSxBX_icebp_c64,       255,         RM_MEM64, T_MMX,     8, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9955        {  bs3CpuInstr3_06e_movq_MM1_FSxBX_icebp_c64,   255,         RM_MEM64, T_MMX,     8, MM1,   FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9956        {  bs3CpuInstr3_movq_R9_MM1_icebp_c64,          255,         RM_REG,   T_MMX,     8, R9,    MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9957        {  bs3CpuInstr3_movq_FSxBX_MM1_icebp_c64,       255,         RM_MEM64, T_MMX,     8, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9958        {  bs3CpuInstr3_07e_movq_FSxBX_MM1_icebp_c64,   255,         RM_MEM64, T_MMX,     8, FSxBX, MM1,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9959        {  bs3CpuInstr3_movq_MM1_MM2_icebp_c64,         255,         RM_REG,   T_MMX,     8, MM1,   MM2,   RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
     9960
     9961        {  bs3CpuInstr3_movq_XMM9_R8_icebp_c64,         255,         RM_REG,   T_SSE2,    8, XMM9,  R8,    RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9962        {  bs3CpuInstr3_movq_XMM1_FSxBX_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9963        {  bs3CpuInstr3_06e_movq_XMM1_FSxBX_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9964        {  bs3CpuInstr3_movq_XMM9_FSxBX_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, XMM9,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9965        {  bs3CpuInstr3_06e_movq_XMM9_FSxBX_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, XMM9,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9966        {  bs3CpuInstr3_movq_R8_XMM9_icebp_c64,         255,         RM_REG,   T_SSE2,    8, R8,    XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9967        {  bs3CpuInstr3_movq_FSxBX_XMM1_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9968        {  bs3CpuInstr3_07e_movq_FSxBX_XMM1_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9969        {  bs3CpuInstr3_movq_FSxBX_XMM9_icebp_c64,      255,         RM_MEM64, T_SSE2,    8, FSxBX, XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9970        {  bs3CpuInstr3_07e_movq_FSxBX_XMM9_icebp_c64,  255,         RM_MEM64, T_SSE2,    8, FSxBX, XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9971        {  bs3CpuInstr3_movq_XMM1_XMM2_icebp_c64,       255,         RM_REG,   T_SSE2,    8, XMM1,  XMM2,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
     9972
     9973        {  bs3CpuInstr3_vmovq_XMM9_R8_icebp_c64,        255,         RM_REG,   T_AVX_128, 8, XMM9,  R8,    RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9974        {  bs3CpuInstr3_vmovq_XMM1_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9975        {  bs3CpuInstr3_06e_vmovq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, XMM1,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9976        {  bs3CpuInstr3_vmovq_XMM9_FSxBX_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, XMM9,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9977        {  bs3CpuInstr3_06e_vmovq_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, XMM9,  FSxBX, RT_ELEMENTS(s_aValuesMediaQ), s_aValuesMediaQ },
     9978        {  bs3CpuInstr3_vmovq_R8_XMM9_icebp_c64,        255,         RM_REG,   T_AVX_128, 8, R8,    XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9979        {  bs3CpuInstr3_vmovq_FSxBX_XMM1_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9980        {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM1_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM1,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9981        {  bs3CpuInstr3_vmovq_FSxBX_XMM9_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9982        {  bs3CpuInstr3_07e_vmovq_FSxBX_XMM9_icebp_c64, X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM9,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm    },
     9983        {  bs3CpuInstr3_vmovq_XMM1_XMM2_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, XMM1,  XMM2,  RT_ELEMENTS(s_aValuesRm),     s_aValuesRm     },
    100649984    };
    100659985    static BS3CPUINSTR3_TEST2_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST2_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1015910079    static BS3CPUINSTR3_TEST2_T const s_aTests16[] =
    1016010080    {
    10161         {  bs3CpuInstr3_pextrb_EDX_XMM1_0FFh_icebp_c16,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10162         {  bs3CpuInstr3_pextrb_EDX_XMM1_000h_icebp_c16,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10163         {  bs3CpuInstr3_pextrb_FSxBX_XMM1_0FFh_icebp_c16,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10164         {  bs3CpuInstr3_pextrb_FSxBX_XMM1_000h_icebp_c16,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10165         {  bs3CpuInstr3_vpextrb_EDX_XMM1_0FFh_icebp_c16,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10166         {  bs3CpuInstr3_vpextrb_EDX_XMM1_000h_icebp_c16,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10167         {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_0FFh_icebp_c16,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10168         {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_000h_icebp_c16,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10169         {  bs3CpuInstr3_vpextrb_w1b_EDX_XMM1_0FFh_icebp_c16, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10170         {  bs3CpuInstr3_vpextrb_l1_EDX_XMM1_0FFh_icebp_c16,  255,         RM_REG,   T_AVX_128, 4, 32, true,  true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10171 
    10172         {  bs3CpuInstr3_pextrw_EDX_MM1_000h_icebp_c16,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10173         {  bs3CpuInstr3_pextrw_EDX_XMM1_000h_icebp_c16,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10174         {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_000h_icebp_c16,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10175         {  bs3CpuInstr3_pextrw_FSxBX_XMM1_000h_icebp_c16,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10176         {  bs3CpuInstr3_vpextrw_EDX_XMM1_000h_icebp_c16,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10177         {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_000h_icebp_c16, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10178         {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_000h_icebp_c16,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10179 
    10180         {  bs3CpuInstr3_pextrw_EDX_MM1_0FFh_icebp_c16,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
    10181         {  bs3CpuInstr3_pextrw_EDX_XMM1_0FFh_icebp_c16,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10182         {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_0FFh_icebp_c16,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10183         {  bs3CpuInstr3_pextrw_FSxBX_XMM1_0FFh_icebp_c16,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10184         {  bs3CpuInstr3_vpextrw_EDX_XMM1_0FFh_icebp_c16,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10185         {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_0FFh_icebp_c16, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10186         {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_0FFh_icebp_c16,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10187 
    10188         {  bs3CpuInstr3_pextrd_EDX_XMM1_0FFh_icebp_c16,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10189         {  bs3CpuInstr3_pextrd_EDX_XMM1_000h_icebp_c16,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10190         {  bs3CpuInstr3_pextrd_FSxBX_XMM1_0FFh_icebp_c16,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10191         {  bs3CpuInstr3_pextrd_FSxBX_XMM1_000h_icebp_c16,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10192         {  bs3CpuInstr3_vpextrd_EDX_XMM1_0FFh_icebp_c16,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10193         {  bs3CpuInstr3_vpextrd_EDX_XMM1_000h_icebp_c16,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10194         {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_0FFh_icebp_c16,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10195         {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_000h_icebp_c16,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
     10081        {  bs3CpuInstr3_pextrb_EDX_XMM1_0FFh_icebp_c16,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10082        {  bs3CpuInstr3_pextrb_EDX_XMM1_000h_icebp_c16,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10083        {  bs3CpuInstr3_pextrb_FSxBX_XMM1_0FFh_icebp_c16,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10084        {  bs3CpuInstr3_pextrb_FSxBX_XMM1_000h_icebp_c16,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10085        {  bs3CpuInstr3_vpextrb_EDX_XMM1_0FFh_icebp_c16,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10086        {  bs3CpuInstr3_vpextrb_EDX_XMM1_000h_icebp_c16,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10087        {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_0FFh_icebp_c16,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10088        {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_000h_icebp_c16,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10089        {  bs3CpuInstr3_vpextrb_w0b0_EDX_XMM1_0FFh_icebp_c16, 255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    }, /* EDX despite forced VEX.B; VEX.W ignored */
     10090        {  bs3CpuInstr3_vpextrb_w1b0_EDX_XMM1_0FFh_icebp_c16, 255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    }, /* EDX despite forced VEX.B; VEX.W ignored */
     10091        {  bs3CpuInstr3_vpextrb_l1_EDX_XMM1_0FFh_icebp_c16,   BS3_XCPT_UD, RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10092
     10093        {  bs3CpuInstr3_pextrw_EDX_MM1_000h_icebp_c16,        255,         RM_REG,   T_MMX_SSE, 4, EDX,   MM1,  RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10094        {  bs3CpuInstr3_pextrw_EDX_XMM1_000h_icebp_c16,       255,         RM_REG,   T_SSE2,    4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10095        {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_000h_icebp_c16,   255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10096        {  bs3CpuInstr3_pextrw_FSxBX_XMM1_000h_icebp_c16,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10097        {  bs3CpuInstr3_vpextrw_EDX_XMM1_000h_icebp_c16,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10098        {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_000h_icebp_c16,  255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10099        {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_000h_icebp_c16,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10100
     10101        {  bs3CpuInstr3_pextrw_EDX_MM1_0FFh_icebp_c16,        255,         RM_REG,   T_MMX_SSE, 4, EDX,   MM1,  RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
     10102        {  bs3CpuInstr3_pextrw_EDX_XMM1_0FFh_icebp_c16,       255,         RM_REG,   T_SSE2,    4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10103        {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_0FFh_icebp_c16,   255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10104        {  bs3CpuInstr3_pextrw_FSxBX_XMM1_0FFh_icebp_c16,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10105        {  bs3CpuInstr3_vpextrw_EDX_XMM1_0FFh_icebp_c16,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10106        {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_0FFh_icebp_c16,  255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10107        {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_0FFh_icebp_c16,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10108
     10109        {  bs3CpuInstr3_pextrd_EDX_XMM1_0FFh_icebp_c16,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10110        {  bs3CpuInstr3_pextrd_EDX_XMM1_000h_icebp_c16,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10111        {  bs3CpuInstr3_pextrd_FSxBX_XMM1_0FFh_icebp_c16,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10112        {  bs3CpuInstr3_pextrd_FSxBX_XMM1_000h_icebp_c16,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10113        {  bs3CpuInstr3_vpextrd_EDX_XMM1_0FFh_icebp_c16,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10114        {  bs3CpuInstr3_vpextrd_EDX_XMM1_000h_icebp_c16,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10115        {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_0FFh_icebp_c16,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10116        {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_000h_icebp_c16,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
    1019610117    };
    1019710118    static BS3CPUINSTR3_TEST2_T const s_aTests32[] =
    1019810119    {
    10199         {  bs3CpuInstr3_pextrb_EDX_XMM1_0FFh_icebp_c32,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10200         {  bs3CpuInstr3_pextrb_EDX_XMM1_000h_icebp_c32,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10201         {  bs3CpuInstr3_pextrb_FSxBX_XMM1_0FFh_icebp_c32,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10202         {  bs3CpuInstr3_pextrb_FSxBX_XMM1_000h_icebp_c32,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10203         {  bs3CpuInstr3_vpextrb_EDX_XMM1_0FFh_icebp_c32,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10204         {  bs3CpuInstr3_vpextrb_EDX_XMM1_000h_icebp_c32,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10205         {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_0FFh_icebp_c32,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10206         {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_000h_icebp_c32,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10207         {  bs3CpuInstr3_vpextrb_w1b_EDX_XMM1_0FFh_icebp_c32, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10208         {  bs3CpuInstr3_vpextrb_l1_EDX_XMM1_0FFh_icebp_c32,  255,         RM_REG,   T_AVX_128, 4, 32, true,  true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10209 
    10210         {  bs3CpuInstr3_pextrw_EDX_MM1_000h_icebp_c32,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10211         {  bs3CpuInstr3_pextrw_EDX_XMM1_000h_icebp_c32,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10212         {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_000h_icebp_c32,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10213         {  bs3CpuInstr3_pextrw_FSxBX_XMM1_000h_icebp_c32,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10214         {  bs3CpuInstr3_vpextrw_EDX_XMM1_000h_icebp_c32,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10215         {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_000h_icebp_c32, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10216         {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_000h_icebp_c32,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10217 
    10218         {  bs3CpuInstr3_pextrw_EDX_MM1_0FFh_icebp_c32,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
    10219         {  bs3CpuInstr3_pextrw_EDX_XMM1_0FFh_icebp_c32,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10220         {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_0FFh_icebp_c32,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10221         {  bs3CpuInstr3_pextrw_FSxBX_XMM1_0FFh_icebp_c32,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10222         {  bs3CpuInstr3_vpextrw_EDX_XMM1_0FFh_icebp_c32,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10223         {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_0FFh_icebp_c32, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10224         {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_0FFh_icebp_c32,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10225 
    10226         {  bs3CpuInstr3_pextrd_EDX_XMM1_0FFh_icebp_c32,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10227         {  bs3CpuInstr3_pextrd_EDX_XMM1_000h_icebp_c32,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10228         {  bs3CpuInstr3_pextrd_FSxBX_XMM1_0FFh_icebp_c32,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10229         {  bs3CpuInstr3_pextrd_FSxBX_XMM1_000h_icebp_c32,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10230         {  bs3CpuInstr3_vpextrd_EDX_XMM1_0FFh_icebp_c32,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10231         {  bs3CpuInstr3_vpextrd_EDX_XMM1_000h_icebp_c32,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10232         {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_0FFh_icebp_c32,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10233         {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_000h_icebp_c32,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
     10120        {  bs3CpuInstr3_pextrb_EDX_XMM1_0FFh_icebp_c32,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10121        {  bs3CpuInstr3_pextrb_EDX_XMM1_000h_icebp_c32,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10122        {  bs3CpuInstr3_pextrb_FSxBX_XMM1_0FFh_icebp_c32,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10123        {  bs3CpuInstr3_pextrb_FSxBX_XMM1_000h_icebp_c32,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10124        {  bs3CpuInstr3_vpextrb_EDX_XMM1_0FFh_icebp_c32,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10125        {  bs3CpuInstr3_vpextrb_EDX_XMM1_000h_icebp_c32,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10126        {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_0FFh_icebp_c32,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10127        {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_000h_icebp_c32,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10128        {  bs3CpuInstr3_vpextrb_w0b0_EDX_XMM1_0FFh_icebp_c32, 255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    }, /* EDX despite forced VEX.B; VEX.W ignored */
     10129        {  bs3CpuInstr3_vpextrb_w1b0_EDX_XMM1_0FFh_icebp_c32, 255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    }, /* EDX despite forced VEX.B; VEX.W ignored */
     10130        {  bs3CpuInstr3_vpextrb_l1_EDX_XMM1_0FFh_icebp_c32,   BS3_XCPT_UD, RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10131
     10132        {  bs3CpuInstr3_pextrw_EDX_MM1_000h_icebp_c32,        255,         RM_REG,   T_MMX_SSE, 4, EDX,   MM1,  RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10133        {  bs3CpuInstr3_pextrw_EDX_XMM1_000h_icebp_c32,       255,         RM_REG,   T_SSE2,    4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10134        {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_000h_icebp_c32,   255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10135        {  bs3CpuInstr3_pextrw_FSxBX_XMM1_000h_icebp_c32,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10136        {  bs3CpuInstr3_vpextrw_EDX_XMM1_000h_icebp_c32,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10137        {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_000h_icebp_c32,  255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10138        {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_000h_icebp_c32,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10139
     10140        {  bs3CpuInstr3_pextrw_EDX_MM1_0FFh_icebp_c32,        255,         RM_REG,   T_MMX_SSE, 4, EDX,   MM1,  RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
     10141        {  bs3CpuInstr3_pextrw_EDX_XMM1_0FFh_icebp_c32,       255,         RM_REG,   T_SSE2,    4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10142        {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_0FFh_icebp_c32,   255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10143        {  bs3CpuInstr3_pextrw_FSxBX_XMM1_0FFh_icebp_c32,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10144        {  bs3CpuInstr3_vpextrw_EDX_XMM1_0FFh_icebp_c32,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10145        {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_0FFh_icebp_c32,  255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10146        {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_0FFh_icebp_c32,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10147
     10148        {  bs3CpuInstr3_pextrd_EDX_XMM1_0FFh_icebp_c32,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10149        {  bs3CpuInstr3_pextrd_EDX_XMM1_000h_icebp_c32,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10150        {  bs3CpuInstr3_pextrd_FSxBX_XMM1_0FFh_icebp_c32,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10151        {  bs3CpuInstr3_pextrd_FSxBX_XMM1_000h_icebp_c32,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10152        {  bs3CpuInstr3_vpextrd_EDX_XMM1_0FFh_icebp_c32,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10153        {  bs3CpuInstr3_vpextrd_EDX_XMM1_000h_icebp_c32,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10154        {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_0FFh_icebp_c32,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10155        {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_000h_icebp_c32,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
    1023410156    };
    1023510157    static BS3CPUINSTR3_TEST2_T const s_aTests64[] =
    1023610158    {
    10237         {  bs3CpuInstr3_pextrb_EDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10238         {  bs3CpuInstr3_pextrb_EDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10239         {  bs3CpuInstr3_pextrb_FSxBX_XMM1_0FFh_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10240         {  bs3CpuInstr3_pextrb_FSxBX_XMM1_000h_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10241         {  bs3CpuInstr3_pextrb_R9D_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10242         {  bs3CpuInstr3_pextrb_R9D_XMM8_000h_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10243         {  bs3CpuInstr3_pextrb_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10244         {  bs3CpuInstr3_pextrb_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1,  8, false, true, 255, 8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10245         {  bs3CpuInstr3_vpextrb_EDX_XMM1_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10246         {  bs3CpuInstr3_vpextrb_EDX_XMM1_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10247         {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_0FFh_icebp_c64,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10248         {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_000h_icebp_c64,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10249         {  bs3CpuInstr3_vpextrb_R9D_XMM8_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10250         {  bs3CpuInstr3_vpextrb_R9D_XMM8_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10251         {  bs3CpuInstr3_vpextrb_FSxBX_XMM8_0FFh_icebp_c64,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10252         {  bs3CpuInstr3_vpextrb_FSxBX_XMM8_000h_icebp_c64,   X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1,  8, false, true, 255, 8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b },
    10253         {  bs3CpuInstr3_vpextrb_w1b_EDX_XMM1_0FFh_icebp_c64, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 10,  1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b }, /* manually setting VEX.B=1 */
    10254         {  bs3CpuInstr3_vpextrb_l1_EDX_XMM1_0FFh_icebp_c64,  255,         RM_REG,   T_AVX_128, 4, 32, true,  true, 2,   1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b },
    10255 
    10256         {  bs3CpuInstr3_pextrw_EDX_MM1_000h_icebp_c64,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10257         {  bs3CpuInstr3_pextrw_EDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10258         {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_000h_icebp_c64,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10259         {  bs3CpuInstr3_pextrw_FSxBX_XMM1_000h_icebp_c64,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10260         {  bs3CpuInstr3_vpextrw_EDX_XMM1_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10261         {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_000h_icebp_c64, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10262         {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_000h_icebp_c64,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10263 
    10264         {  bs3CpuInstr3_pextrw_EDX_MM1_0FFh_icebp_c64,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
    10265         {  bs3CpuInstr3_pextrw_EDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10266         {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_0FFh_icebp_c64,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10267         {  bs3CpuInstr3_pextrw_FSxBX_XMM1_0FFh_icebp_c64,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10268         {  bs3CpuInstr3_vpextrw_EDX_XMM1_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10269         {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_0FFh_icebp_c64, 255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10270         {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_0FFh_icebp_c64,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10271 
    10272         {  bs3CpuInstr3_pextrw_R9D_MM1_000h_icebp_c64,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 9,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10273         {  bs3CpuInstr3_pextrw_R9D_XMM8_000h_icebp_c64,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10274         {  bs3CpuInstr3_pextrw_alt_R9D_XMM8_000h_icebp_c64,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10275         {  bs3CpuInstr3_pextrw_FSxBX_XMM8_000h_icebp_c64,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10276         {  bs3CpuInstr3_vpextrw_R9D_XMM8_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10277         {  bs3CpuInstr3_vpextrw_FSxBX_XMM8_000h_icebp_c64,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10278 
    10279         {  bs3CpuInstr3_pextrw_R9D_MM1_0FFh_icebp_c64,       255,         RM_REG,   T_MMX_SSE, 4, 32, false, true, 9,   1, RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
    10280         {  bs3CpuInstr3_pextrw_R9D_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_SSE2,    4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10281         {  bs3CpuInstr3_pextrw_alt_R9D_XMM8_0FFh_icebp_c64,  255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10282         {  bs3CpuInstr3_pextrw_FSxBX_XMM8_0FFh_icebp_c64,    255,         RM_MEM16, T_SSE4_1,  2, 16, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10283         {  bs3CpuInstr3_vpextrw_R9D_XMM8_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10284         {  bs3CpuInstr3_vpextrw_FSxBX_XMM8_0FFh_icebp_c64,   X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, 16, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10285 
    10286         {  bs3CpuInstr3_pextrw_R9_XMM8_000h_icebp_c64,       255,         RM_REG,   T_SSE2,    8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10287         {  bs3CpuInstr3_pextrw_alt_RDX_XMM1_000h_icebp_c64,  255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10288         {  bs3CpuInstr3_pextrw_alt_R9_XMM8_000h_icebp_c64,   255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10289         {  bs3CpuInstr3_vpextrw_RDX_XMM1_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w },
    10290 
    10291         {  bs3CpuInstr3_pextrw_R9_XMM8_0FFh_icebp_c64,       255,         RM_REG,   T_SSE2,    8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10292         {  bs3CpuInstr3_pextrw_alt_RDX_XMM1_0FFh_icebp_c64,  255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10293         {  bs3CpuInstr3_pextrw_alt_R9_XMM8_0FFh_icebp_c64,   255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10294         {  bs3CpuInstr3_vpextrw_RDX_XMM1_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w },
    10295 
    10296         {  bs3CpuInstr3_pextrd_EDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10297         {  bs3CpuInstr3_pextrd_EDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10298         {  bs3CpuInstr3_pextrd_FSxBX_XMM1_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10299         {  bs3CpuInstr3_pextrd_FSxBX_XMM1_000h_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10300         {  bs3CpuInstr3_pextrd_R9D_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10301         {  bs3CpuInstr3_pextrd_R9D_XMM8_000h_icebp_c64,      255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10302         {  bs3CpuInstr3_pextrd_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10303         {  bs3CpuInstr3_pextrd_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10304         {  bs3CpuInstr3_vpextrd_EDX_XMM1_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10305         {  bs3CpuInstr3_vpextrd_EDX_XMM1_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10306         {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_0FFh_icebp_c64,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10307         {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_000h_icebp_c64,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10308         {  bs3CpuInstr3_vpextrd_R9D_XMM8_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10309         {  bs3CpuInstr3_vpextrd_R9D_XMM8_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10310         {  bs3CpuInstr3_vpextrd_FSxBX_XMM8_0FFh_icebp_c64,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d },
    10311         {  bs3CpuInstr3_vpextrd_FSxBX_XMM8_000h_icebp_c64,   X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d },
    10312 
    10313         {  bs3CpuInstr3_pextrq_RDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q },
    10314         {  bs3CpuInstr3_pextrq_RDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q },
    10315         {  bs3CpuInstr3_pextrq_R9_XMM8_0FFh_icebp_c64,       255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q },
    10316         {  bs3CpuInstr3_pextrq_R9_XMM8_000h_icebp_c64,       255,         RM_REG,   T_SSE4_1,  8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q },
    10317         {  bs3CpuInstr3_pextrq_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM64, T_SSE4_1,  8, 64, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q },
    10318         {  bs3CpuInstr3_pextrq_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_AC, RM_MEM64, T_SSE4_1,  8, 64, false, true, 255, 8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q },
    10319         {  bs3CpuInstr3_vpextrq_RDX_XMM1_0FFh_icebp_c64,     255,         RM_REG,   T_AVX_128, 8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q },
    10320         {  bs3CpuInstr3_vpextrq_RDX_XMM1_000h_icebp_c64,     255,         RM_REG,   T_AVX_128, 8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q },
    10321         {  bs3CpuInstr3_vpextrq_R9_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q },
    10322         {  bs3CpuInstr3_vpextrq_R9_XMM8_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, 64, false, true, 9,   8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q },
    10323         {  bs3CpuInstr3_vpextrq_FSxBX_XMM8_0FFh_icebp_c64,   X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true, 255, 8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q },
    10324         {  bs3CpuInstr3_vpextrq_FSxBX_XMM8_000h_icebp_c64,   X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, 64, false, true, 255, 8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q },
     10159        {  bs3CpuInstr3_pextrb_EDX_XMM1_0FFh_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10160        {  bs3CpuInstr3_pextrb_EDX_XMM1_000h_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10161        {  bs3CpuInstr3_pextrb_FSxBX_XMM1_0FFh_icebp_c64,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10162        {  bs3CpuInstr3_pextrb_FSxBX_XMM1_000h_icebp_c64,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10163        {  bs3CpuInstr3_pextrb_R9D_XMM8_0FFh_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10164        {  bs3CpuInstr3_pextrb_R9D_XMM8_000h_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10165        {  bs3CpuInstr3_pextrb_FSxBX_XMM8_0FFh_icebp_c64,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10166        {  bs3CpuInstr3_pextrb_FSxBX_XMM8_000h_icebp_c64,     X86_XCPT_DB, RM_MEM8,  T_SSE4_1,  1, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10167        {  bs3CpuInstr3_vpextrb_EDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10168        {  bs3CpuInstr3_vpextrb_EDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10169        {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_0FFh_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10170        {  bs3CpuInstr3_vpextrb_FSxBX_XMM1_000h_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10171        {  bs3CpuInstr3_vpextrb_R9D_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10172        {  bs3CpuInstr3_vpextrb_R9D_XMM8_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10173        {  bs3CpuInstr3_vpextrb_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10174        {  bs3CpuInstr3_vpextrb_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_DB, RM_MEM8,  T_AVX_128, 1, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_b),    s_aValues00_b    },
     10175        {  bs3CpuInstr3_vpextrb_w0b0_EDX_XMM1_0FFh_icebp_c64, 255,         RM_REG,   T_AVX_128, 4, R10D,  XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    }, /* VEX.B forces EDX to R10D; VEX.W ignored */
     10176        {  bs3CpuInstr3_vpextrb_w1b0_EDX_XMM1_0FFh_icebp_c64, 255,         RM_REG,   T_AVX_128, 4, R10D,  XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    }, /* VEX.B forces EDX to R10D; VEX.W ignored */
     10177        {  bs3CpuInstr3_vpextrb_l1_EDX_XMM1_0FFh_icebp_c64,   BS3_XCPT_UD, RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_b),    s_aValuesFF_b    },
     10178
     10179        {  bs3CpuInstr3_pextrw_EDX_MM1_000h_icebp_c64,        255,         RM_REG,   T_MMX_SSE, 4, EDX,   MM1,  RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10180        {  bs3CpuInstr3_pextrw_EDX_XMM1_000h_icebp_c64,       255,         RM_REG,   T_SSE2,    4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10181        {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_000h_icebp_c64,   255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10182        {  bs3CpuInstr3_pextrw_FSxBX_XMM1_000h_icebp_c64,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10183        {  bs3CpuInstr3_vpextrw_EDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10184        {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_000h_icebp_c64,  255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10185        {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_000h_icebp_c64,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10186
     10187        {  bs3CpuInstr3_pextrw_EDX_MM1_0FFh_icebp_c64,        255,         RM_REG,   T_MMX_SSE, 4, EDX,   MM1,  RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
     10188        {  bs3CpuInstr3_pextrw_EDX_XMM1_0FFh_icebp_c64,       255,         RM_REG,   T_SSE2,    4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10189        {  bs3CpuInstr3_pextrw_alt_EDX_XMM1_0FFh_icebp_c64,   255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10190        {  bs3CpuInstr3_pextrw_FSxBX_XMM1_0FFh_icebp_c64,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10191        {  bs3CpuInstr3_vpextrw_EDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10192        {  bs3CpuInstr3_vpextrw_alt_EDX_XMM1_0FFh_icebp_c64,  255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10193        {  bs3CpuInstr3_vpextrw_FSxBX_XMM1_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10194
     10195        {  bs3CpuInstr3_pextrw_R9D_MM1_000h_icebp_c64,        255,         RM_REG,   T_MMX_SSE, 4, R9D,   MM1,  RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10196        {  bs3CpuInstr3_pextrw_R9D_XMM8_000h_icebp_c64,       255,         RM_REG,   T_SSE2,    4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10197        {  bs3CpuInstr3_pextrw_alt_R9D_XMM8_000h_icebp_c64,   255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10198        {  bs3CpuInstr3_pextrw_FSxBX_XMM8_000h_icebp_c64,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10199        {  bs3CpuInstr3_vpextrw_R9D_XMM8_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10200        {  bs3CpuInstr3_vpextrw_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10201
     10202        {  bs3CpuInstr3_pextrw_R9D_MM1_0FFh_icebp_c64,        255,         RM_REG,   T_MMX_SSE, 4, R9D,   MM1,  RT_ELEMENTS(s_aValuesFF_w_64), s_aValuesFF_w_64 },
     10203        {  bs3CpuInstr3_pextrw_R9D_XMM8_0FFh_icebp_c64,       255,         RM_REG,   T_SSE2,    4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10204        {  bs3CpuInstr3_pextrw_alt_R9D_XMM8_0FFh_icebp_c64,   255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10205        {  bs3CpuInstr3_pextrw_FSxBX_XMM8_0FFh_icebp_c64,     255,         RM_MEM16, T_SSE4_1,  2, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10206        {  bs3CpuInstr3_vpextrw_R9D_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10207        {  bs3CpuInstr3_vpextrw_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM16, T_AVX_128, 2, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10208
     10209        {  bs3CpuInstr3_pextrw_R9_XMM8_000h_icebp_c64,        255,         RM_REG,   T_SSE2,    8, R9,    XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10210        {  bs3CpuInstr3_pextrw_alt_RDX_XMM1_000h_icebp_c64,   255,         RM_REG,   T_SSE4_1,  8, RDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10211        {  bs3CpuInstr3_pextrw_alt_R9_XMM8_000h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  8, R9,    XMM8, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10212        {  bs3CpuInstr3_vpextrw_RDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, RDX,   XMM1, RT_ELEMENTS(s_aValues00_w),    s_aValues00_w    },
     10213
     10214        {  bs3CpuInstr3_pextrw_R9_XMM8_0FFh_icebp_c64,        255,         RM_REG,   T_SSE2,    8, R9,    XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10215        {  bs3CpuInstr3_pextrw_alt_RDX_XMM1_0FFh_icebp_c64,   255,         RM_REG,   T_SSE4_1,  8, RDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10216        {  bs3CpuInstr3_pextrw_alt_R9_XMM8_0FFh_icebp_c64,    255,         RM_REG,   T_SSE4_1,  8, R9,    XMM8, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10217        {  bs3CpuInstr3_vpextrw_RDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, RDX,   XMM1, RT_ELEMENTS(s_aValuesFF_w),    s_aValuesFF_w    },
     10218
     10219        {  bs3CpuInstr3_pextrd_EDX_XMM1_0FFh_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10220        {  bs3CpuInstr3_pextrd_EDX_XMM1_000h_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10221        {  bs3CpuInstr3_pextrd_FSxBX_XMM1_0FFh_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10222        {  bs3CpuInstr3_pextrd_FSxBX_XMM1_000h_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10223        {  bs3CpuInstr3_pextrd_R9D_XMM8_0FFh_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10224        {  bs3CpuInstr3_pextrd_R9D_XMM8_000h_icebp_c64,       255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10225        {  bs3CpuInstr3_pextrd_FSxBX_XMM8_0FFh_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10226        {  bs3CpuInstr3_pextrd_FSxBX_XMM8_000h_icebp_c64,     X86_XCPT_AC, RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10227        {  bs3CpuInstr3_vpextrd_EDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10228        {  bs3CpuInstr3_vpextrd_EDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10229        {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10230        {  bs3CpuInstr3_vpextrd_FSxBX_XMM1_000h_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10231        {  bs3CpuInstr3_vpextrd_R9D_XMM8_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10232        {  bs3CpuInstr3_vpextrd_R9D_XMM8_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10233        {  bs3CpuInstr3_vpextrd_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_d),    s_aValuesFF_d    },
     10234        {  bs3CpuInstr3_vpextrd_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_d),    s_aValues00_d    },
     10235
     10236        {  bs3CpuInstr3_pextrq_RDX_XMM1_0FFh_icebp_c64,       255,         RM_REG,   T_SSE4_1,  8, RDX,   XMM1, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q    },
     10237        {  bs3CpuInstr3_pextrq_RDX_XMM1_000h_icebp_c64,       255,         RM_REG,   T_SSE4_1,  8, RDX,   XMM1, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q    },
     10238        {  bs3CpuInstr3_pextrq_R9_XMM8_0FFh_icebp_c64,        255,         RM_REG,   T_SSE4_1,  8, R9,    XMM8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q    },
     10239        {  bs3CpuInstr3_pextrq_R9_XMM8_000h_icebp_c64,        255,         RM_REG,   T_SSE4_1,  8, R9,    XMM8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q    },
     10240        {  bs3CpuInstr3_pextrq_FSxBX_XMM8_0FFh_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_SSE4_1,  8, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q    },
     10241        {  bs3CpuInstr3_pextrq_FSxBX_XMM8_000h_icebp_c64,     X86_XCPT_AC, RM_MEM64, T_SSE4_1,  8, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q    },
     10242        {  bs3CpuInstr3_vpextrq_RDX_XMM1_0FFh_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, RDX,   XMM1, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q    },
     10243        {  bs3CpuInstr3_vpextrq_RDX_XMM1_000h_icebp_c64,      255,         RM_REG,   T_AVX_128, 8, RDX,   XMM1, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q    },
     10244        {  bs3CpuInstr3_vpextrq_R9_XMM8_0FFh_icebp_c64,       255,         RM_REG,   T_AVX_128, 8, R9,    XMM8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q    },
     10245        {  bs3CpuInstr3_vpextrq_R9_XMM8_000h_icebp_c64,       255,         RM_REG,   T_AVX_128, 8, R9,    XMM8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q    },
     10246        {  bs3CpuInstr3_vpextrq_FSxBX_XMM8_0FFh_icebp_c64,    X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM8, RT_ELEMENTS(s_aValuesFF_q),    s_aValuesFF_q    },
     10247        {  bs3CpuInstr3_vpextrq_FSxBX_XMM8_000h_icebp_c64,    X86_XCPT_AC, RM_MEM64, T_AVX_128, 8, FSxBX, XMM8, RT_ELEMENTS(s_aValues00_q),    s_aValues00_q    },
    1032510248    };
    1032610249    static BS3CPUINSTR3_TEST2_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST2_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1037810301    static BS3CPUINSTR3_TEST2_T const s_aTests16[] =
    1037910302    {
    10380         {  bs3CpuInstr3_movmskps_EDX_XMM1_icebp_c16,        255, RM_REG, T_SSE,          4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),  s_aValuesR32_128 },
    10381         {  bs3CpuInstr3_vmovmskps_EDX_XMM1_icebp_c16,       255, RM_REG, T_AVX_128,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),  s_aValuesR32_128 },
    10382         {  bs3CpuInstr3_vmovmskps_EDX_YMM1_icebp_c16,       255, RM_REG, T_AVX_256,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_256),  s_aValuesR32_256 },
    10383 
    10384         {  bs3CpuInstr3_movmskpd_EDX_XMM1_icebp_c16,        255, RM_REG, T_SSE2,         4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),  s_aValuesR64_128 },
    10385         {  bs3CpuInstr3_vmovmskpd_EDX_XMM1_icebp_c16,       255, RM_REG, T_AVX_128,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),  s_aValuesR64_128 },
    10386         {  bs3CpuInstr3_vmovmskpd_EDX_YMM1_icebp_c16,       255, RM_REG, T_AVX_256,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_256),  s_aValuesR64_256 },
     10303        {  bs3CpuInstr3_movmskps_EDX_XMM1_icebp_c16,  255, RM_REG, T_SSE,     4, EDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10304        {  bs3CpuInstr3_vmovmskps_EDX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, 4, EDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10305        {  bs3CpuInstr3_vmovmskps_EDX_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, 4, EDX, YMM1, RT_ELEMENTS(s_aValuesR32_256), s_aValuesR32_256 },
     10306
     10307        {  bs3CpuInstr3_movmskpd_EDX_XMM1_icebp_c16,  255, RM_REG, T_SSE2,    4, EDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10308        {  bs3CpuInstr3_vmovmskpd_EDX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, 4, EDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10309        {  bs3CpuInstr3_vmovmskpd_EDX_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, 4, EDX, YMM1, RT_ELEMENTS(s_aValuesR64_256), s_aValuesR64_256 },
    1038710310    };
    1038810311    static BS3CPUINSTR3_TEST2_T const s_aTests32[] =
    1038910312    {
    10390         {  bs3CpuInstr3_movmskps_EDX_XMM1_icebp_c32,        255, RM_REG, T_SSE,          4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10391         {  bs3CpuInstr3_vmovmskps_EDX_XMM1_icebp_c32,       255, RM_REG, T_AVX_128,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10392         {  bs3CpuInstr3_vmovmskps_EDX_YMM1_icebp_c32,       255, RM_REG, T_AVX_256,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_256),    s_aValuesR32_256 },
    10393 
    10394         {  bs3CpuInstr3_movmskpd_EDX_XMM1_icebp_c32,        255, RM_REG, T_SSE2,         4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10395         {  bs3CpuInstr3_vmovmskpd_EDX_XMM1_icebp_c32,       255, RM_REG, T_AVX_128,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10396         {  bs3CpuInstr3_vmovmskpd_EDX_YMM1_icebp_c32,       255, RM_REG, T_AVX_256,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_256),    s_aValuesR64_256 },
     10313        {  bs3CpuInstr3_movmskps_EDX_XMM1_icebp_c32,  255, RM_REG, T_SSE,     4, EDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10314        {  bs3CpuInstr3_vmovmskps_EDX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, 4, EDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10315        {  bs3CpuInstr3_vmovmskps_EDX_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, 4, EDX, YMM1, RT_ELEMENTS(s_aValuesR32_256), s_aValuesR32_256 },
     10316
     10317        {  bs3CpuInstr3_movmskpd_EDX_XMM1_icebp_c32,  255, RM_REG, T_SSE2,    4, EDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10318        {  bs3CpuInstr3_vmovmskpd_EDX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, 4, EDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10319        {  bs3CpuInstr3_vmovmskpd_EDX_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, 4, EDX, YMM1, RT_ELEMENTS(s_aValuesR64_256), s_aValuesR64_256 },
    1039710320    };
    1039810321    static BS3CPUINSTR3_TEST2_T const s_aTests64[] =
    1039910322    {
    10400         {  bs3CpuInstr3_movmskps_EDX_XMM1_icebp_c64,        255, RM_REG, T_SSE,          4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10401         {  bs3CpuInstr3_movmskps_R9D_XMM8_icebp_c64,        255, RM_REG, T_SSE,          4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10402         {  bs3CpuInstr3_movmskps_RDX_XMM1_icebp_c64,        255, RM_REG, T_SSE,          8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10403         {  bs3CpuInstr3_vmovmskps_EDX_XMM1_icebp_c64,       255, RM_REG, T_AVX_128,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10404         {  bs3CpuInstr3_vmovmskps_RDX_XMM1_icebp_c64,       255, RM_REG, T_AVX_128,      8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10405         {  bs3CpuInstr3_vmovmskps_R9D_XMM8_icebp_c64,       255, RM_REG, T_AVX_128,      4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesR32_128),    s_aValuesR32_128 },
    10406 
    10407         {  bs3CpuInstr3_vmovmskps_EDX_YMM1_icebp_c64,       255, RM_REG, T_AVX_256,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_256),    s_aValuesR32_256 },
    10408         {  bs3CpuInstr3_vmovmskps_RDX_YMM1_icebp_c64,       255, RM_REG, T_AVX_256,      8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesR32_256),    s_aValuesR32_256 },
    10409         {  bs3CpuInstr3_vmovmskps_R9D_YMM8_icebp_c64,       255, RM_REG, T_AVX_256,      4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesR32_256),    s_aValuesR32_256 },
    10410 
    10411         {  bs3CpuInstr3_movmskpd_EDX_XMM1_icebp_c64,        255, RM_REG, T_SSE2,         4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10412         {  bs3CpuInstr3_movmskpd_R9D_XMM8_icebp_c64,        255, RM_REG, T_SSE2,         4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10413         {  bs3CpuInstr3_movmskpd_RDX_XMM1_icebp_c64,        255, RM_REG, T_SSE2,         8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10414         {  bs3CpuInstr3_vmovmskpd_EDX_XMM1_icebp_c64,       255, RM_REG, T_AVX_128,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10415         {  bs3CpuInstr3_vmovmskpd_RDX_XMM1_icebp_c64,       255, RM_REG, T_AVX_128,      8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10416         {  bs3CpuInstr3_vmovmskpd_R9D_XMM8_icebp_c64,       255, RM_REG, T_AVX_128,      4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesR64_128),    s_aValuesR64_128 },
    10417 
    10418         {  bs3CpuInstr3_vmovmskpd_EDX_YMM1_icebp_c64,       255, RM_REG, T_AVX_256,      4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_256),    s_aValuesR64_256 },
    10419         {  bs3CpuInstr3_vmovmskpd_RDX_YMM1_icebp_c64,       255, RM_REG, T_AVX_256,      8, 64, false, true, 2,   1, RT_ELEMENTS(s_aValuesR64_256),    s_aValuesR64_256 },
    10420         {  bs3CpuInstr3_vmovmskpd_R9D_YMM8_icebp_c64,       255, RM_REG, T_AVX_256,      4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValuesR64_256),    s_aValuesR64_256 },
     10323        {  bs3CpuInstr3_movmskps_EDX_XMM1_icebp_c64,  255, RM_REG, T_SSE,     4, EDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10324        {  bs3CpuInstr3_movmskps_R9D_XMM8_icebp_c64,  255, RM_REG, T_SSE,     4, R9D, XMM8, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10325        {  bs3CpuInstr3_movmskps_RDX_XMM1_icebp_c64,  255, RM_REG, T_SSE,     8, RDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10326        {  bs3CpuInstr3_vmovmskps_EDX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, 4, EDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10327        {  bs3CpuInstr3_vmovmskps_RDX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, 8, RDX, XMM1, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10328        {  bs3CpuInstr3_vmovmskps_R9D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, 4, R9D, XMM8, RT_ELEMENTS(s_aValuesR32_128), s_aValuesR32_128 },
     10329
     10330        {  bs3CpuInstr3_vmovmskps_EDX_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, 4, EDX, YMM1, RT_ELEMENTS(s_aValuesR32_256), s_aValuesR32_256 },
     10331        {  bs3CpuInstr3_vmovmskps_RDX_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, 8, RDX, YMM1, RT_ELEMENTS(s_aValuesR32_256), s_aValuesR32_256 },
     10332        {  bs3CpuInstr3_vmovmskps_R9D_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, 4, R9D, YMM8, RT_ELEMENTS(s_aValuesR32_256), s_aValuesR32_256 },
     10333
     10334        {  bs3CpuInstr3_movmskpd_EDX_XMM1_icebp_c64,  255, RM_REG, T_SSE2,    4, EDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10335        {  bs3CpuInstr3_movmskpd_R9D_XMM8_icebp_c64,  255, RM_REG, T_SSE2,    4, R9D, XMM8, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10336        {  bs3CpuInstr3_movmskpd_RDX_XMM1_icebp_c64,  255, RM_REG, T_SSE2,    8, RDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10337        {  bs3CpuInstr3_vmovmskpd_EDX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, 4, EDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10338        {  bs3CpuInstr3_vmovmskpd_RDX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, 8, RDX, XMM1, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10339        {  bs3CpuInstr3_vmovmskpd_R9D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, 4, R9D, XMM8, RT_ELEMENTS(s_aValuesR64_128), s_aValuesR64_128 },
     10340
     10341        {  bs3CpuInstr3_vmovmskpd_EDX_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, 4, EDX, YMM1, RT_ELEMENTS(s_aValuesR64_256), s_aValuesR64_256 },
     10342        {  bs3CpuInstr3_vmovmskpd_RDX_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, 8, RDX, YMM1, RT_ELEMENTS(s_aValuesR64_256), s_aValuesR64_256 },
     10343        {  bs3CpuInstr3_vmovmskpd_R9D_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, 4, R9D, YMM8, RT_ELEMENTS(s_aValuesR64_256), s_aValuesR64_256 },
    1042110344    };
    1042210345    static BS3CPUINSTR3_TEST2_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST2_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1045910382    static BS3CPUINSTR3_TEST2_T const s_aTests16[] =
    1046010383    {
    10461         {  bs3CpuInstr3_extractps_EDX_XMM1_000h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10462         {  bs3CpuInstr3_extractps_EDX_XMM1_001h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10463         {  bs3CpuInstr3_extractps_EDX_XMM1_002h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10464         {  bs3CpuInstr3_extractps_EDX_XMM1_003h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10465         {  bs3CpuInstr3_extractps_EDX_XMM1_032h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10466         {  bs3CpuInstr3_extractps_EDX_XMM1_0FFh_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10467         {  bs3CpuInstr3_extractps_FSxBX_XMM1_000h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10468         {  bs3CpuInstr3_extractps_FSxBX_XMM1_001h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10469         {  bs3CpuInstr3_extractps_FSxBX_XMM1_002h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10470         {  bs3CpuInstr3_extractps_FSxBX_XMM1_003h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10471         {  bs3CpuInstr3_extractps_FSxBX_XMM1_032h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10472         {  bs3CpuInstr3_extractps_FSxBX_XMM1_0FFh_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10473 
    10474         {  bs3CpuInstr3_vextractps_EDX_XMM1_000h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10475         {  bs3CpuInstr3_vextractps_EDX_XMM1_001h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10476         {  bs3CpuInstr3_vextractps_EDX_XMM1_002h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10477         {  bs3CpuInstr3_vextractps_EDX_XMM1_003h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10478         {  bs3CpuInstr3_vextractps_EDX_XMM1_032h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10479         {  bs3CpuInstr3_vextractps_EDX_XMM1_0FFh_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10480         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_000h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10481         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_001h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10482         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_002h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10483         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_003h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10484         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_032h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10485         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_0FFh_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10384        {  bs3CpuInstr3_extractps_EDX_XMM1_000h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10385        {  bs3CpuInstr3_extractps_EDX_XMM1_001h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10386        {  bs3CpuInstr3_extractps_EDX_XMM1_002h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10387        {  bs3CpuInstr3_extractps_EDX_XMM1_003h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10388        {  bs3CpuInstr3_extractps_EDX_XMM1_032h_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10389        {  bs3CpuInstr3_extractps_EDX_XMM1_0FFh_icebp_c16,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10390        {  bs3CpuInstr3_extractps_FSxBX_XMM1_000h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10391        {  bs3CpuInstr3_extractps_FSxBX_XMM1_001h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10392        {  bs3CpuInstr3_extractps_FSxBX_XMM1_002h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10393        {  bs3CpuInstr3_extractps_FSxBX_XMM1_003h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10394        {  bs3CpuInstr3_extractps_FSxBX_XMM1_032h_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10395        {  bs3CpuInstr3_extractps_FSxBX_XMM1_0FFh_icebp_c16,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10396
     10397        {  bs3CpuInstr3_vextractps_EDX_XMM1_000h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10398        {  bs3CpuInstr3_vextractps_EDX_XMM1_001h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10399        {  bs3CpuInstr3_vextractps_EDX_XMM1_002h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10400        {  bs3CpuInstr3_vextractps_EDX_XMM1_003h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10401        {  bs3CpuInstr3_vextractps_EDX_XMM1_032h_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10402        {  bs3CpuInstr3_vextractps_EDX_XMM1_0FFh_icebp_c16,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10403        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_000h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10404        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_001h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10405        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_002h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10406        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_003h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10407        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_032h_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10408        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_0FFh_icebp_c16, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    1048610409    };
    1048710410    static BS3CPUINSTR3_TEST2_T const s_aTests32[] =
    1048810411    {
    10489         {  bs3CpuInstr3_extractps_EDX_XMM1_000h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10490         {  bs3CpuInstr3_extractps_EDX_XMM1_001h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10491         {  bs3CpuInstr3_extractps_EDX_XMM1_002h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10492         {  bs3CpuInstr3_extractps_EDX_XMM1_003h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10493         {  bs3CpuInstr3_extractps_EDX_XMM1_032h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10494         {  bs3CpuInstr3_extractps_EDX_XMM1_0FFh_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10495         {  bs3CpuInstr3_extractps_FSxBX_XMM1_000h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10496         {  bs3CpuInstr3_extractps_FSxBX_XMM1_001h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10497         {  bs3CpuInstr3_extractps_FSxBX_XMM1_002h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10498         {  bs3CpuInstr3_extractps_FSxBX_XMM1_003h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10499         {  bs3CpuInstr3_extractps_FSxBX_XMM1_032h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10500         {  bs3CpuInstr3_extractps_FSxBX_XMM1_0FFh_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10501 
    10502         {  bs3CpuInstr3_vextractps_EDX_XMM1_000h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10503         {  bs3CpuInstr3_vextractps_EDX_XMM1_001h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10504         {  bs3CpuInstr3_vextractps_EDX_XMM1_002h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10505         {  bs3CpuInstr3_vextractps_EDX_XMM1_003h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10506         {  bs3CpuInstr3_vextractps_EDX_XMM1_032h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10507         {  bs3CpuInstr3_vextractps_EDX_XMM1_0FFh_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10508         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_000h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10509         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_001h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10510         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_002h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10511         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_003h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10512         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_032h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10513         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_0FFh_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10412        {  bs3CpuInstr3_extractps_EDX_XMM1_000h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10413        {  bs3CpuInstr3_extractps_EDX_XMM1_001h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10414        {  bs3CpuInstr3_extractps_EDX_XMM1_002h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10415        {  bs3CpuInstr3_extractps_EDX_XMM1_003h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10416        {  bs3CpuInstr3_extractps_EDX_XMM1_032h_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10417        {  bs3CpuInstr3_extractps_EDX_XMM1_0FFh_icebp_c32,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10418        {  bs3CpuInstr3_extractps_FSxBX_XMM1_000h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10419        {  bs3CpuInstr3_extractps_FSxBX_XMM1_001h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10420        {  bs3CpuInstr3_extractps_FSxBX_XMM1_002h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10421        {  bs3CpuInstr3_extractps_FSxBX_XMM1_003h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10422        {  bs3CpuInstr3_extractps_FSxBX_XMM1_032h_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10423        {  bs3CpuInstr3_extractps_FSxBX_XMM1_0FFh_icebp_c32,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10424
     10425        {  bs3CpuInstr3_vextractps_EDX_XMM1_000h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10426        {  bs3CpuInstr3_vextractps_EDX_XMM1_001h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10427        {  bs3CpuInstr3_vextractps_EDX_XMM1_002h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10428        {  bs3CpuInstr3_vextractps_EDX_XMM1_003h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10429        {  bs3CpuInstr3_vextractps_EDX_XMM1_032h_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10430        {  bs3CpuInstr3_vextractps_EDX_XMM1_0FFh_icebp_c32,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10431        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_000h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10432        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_001h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10433        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_002h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10434        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_003h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10435        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_032h_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10436        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_0FFh_icebp_c32, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    1051410437    };
    1051510438    static BS3CPUINSTR3_TEST2_T const s_aTests64[] =
    1051610439    {
    10517         {  bs3CpuInstr3_extractps_EDX_XMM1_000h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10518         {  bs3CpuInstr3_extractps_EDX_XMM1_001h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10519         {  bs3CpuInstr3_extractps_EDX_XMM1_002h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10520         {  bs3CpuInstr3_extractps_EDX_XMM1_003h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10521         {  bs3CpuInstr3_extractps_EDX_XMM1_032h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10522         {  bs3CpuInstr3_extractps_EDX_XMM1_0FFh_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 2,   1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10523         {  bs3CpuInstr3_extractps_FSxBX_XMM1_000h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10524         {  bs3CpuInstr3_extractps_FSxBX_XMM1_001h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10525         {  bs3CpuInstr3_extractps_FSxBX_XMM1_002h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10526         {  bs3CpuInstr3_extractps_FSxBX_XMM1_003h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10527         {  bs3CpuInstr3_extractps_FSxBX_XMM1_032h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10528         {  bs3CpuInstr3_extractps_FSxBX_XMM1_0FFh_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10529 
    10530         {  bs3CpuInstr3_vextractps_EDX_XMM1_000h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10531         {  bs3CpuInstr3_vextractps_EDX_XMM1_001h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10532         {  bs3CpuInstr3_vextractps_EDX_XMM1_002h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10533         {  bs3CpuInstr3_vextractps_EDX_XMM1_003h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10534         {  bs3CpuInstr3_vextractps_EDX_XMM1_032h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10535         {  bs3CpuInstr3_vextractps_EDX_XMM1_0FFh_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true,   2, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10536         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10537         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_001h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10538         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_002h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10539         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_003h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10540         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_032h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10541         {  bs3CpuInstr3_vextractps_FSxBX_XMM1_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 1, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10542 
    10543         {  bs3CpuInstr3_extractps_R9D_XMM8_000h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10544         {  bs3CpuInstr3_extractps_R9D_XMM8_001h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10545         {  bs3CpuInstr3_extractps_R9D_XMM8_002h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10546         {  bs3CpuInstr3_extractps_R9D_XMM8_003h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10547         {  bs3CpuInstr3_extractps_R9D_XMM8_032h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10548         {  bs3CpuInstr3_extractps_R9D_XMM8_0FFh_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10549         {  bs3CpuInstr3_extractps_FSxBX_XMM8_000h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10550         {  bs3CpuInstr3_extractps_FSxBX_XMM8_001h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10551         {  bs3CpuInstr3_extractps_FSxBX_XMM8_002h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10552         {  bs3CpuInstr3_extractps_FSxBX_XMM8_003h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10553         {  bs3CpuInstr3_extractps_FSxBX_XMM8_032h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10554         {  bs3CpuInstr3_extractps_FSxBX_XMM8_0FFh_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10555 
    10556         {  bs3CpuInstr3_vextractps_R9D_XMM8_000h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10557         {  bs3CpuInstr3_vextractps_R9D_XMM8_001h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10558         {  bs3CpuInstr3_vextractps_R9D_XMM8_002h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10559         {  bs3CpuInstr3_vextractps_R9D_XMM8_003h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10560         {  bs3CpuInstr3_vextractps_R9D_XMM8_032h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10561         {  bs3CpuInstr3_vextractps_R9D_XMM8_0FFh_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, 32, false, true, 9,   8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10562         {  bs3CpuInstr3_vextractps_FSxBX_XMM8_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues00), s_aValues00 },
    10563         {  bs3CpuInstr3_vextractps_FSxBX_XMM8_001h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues01), s_aValues01 },
    10564         {  bs3CpuInstr3_vextractps_FSxBX_XMM8_002h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10565         {  bs3CpuInstr3_vextractps_FSxBX_XMM8_003h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    10566         {  bs3CpuInstr3_vextractps_FSxBX_XMM8_032h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues02), s_aValues02 },
    10567         {  bs3CpuInstr3_vextractps_FSxBX_XMM8_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, 32, false, true, 255, 8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10440        {  bs3CpuInstr3_extractps_EDX_XMM1_000h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10441        {  bs3CpuInstr3_extractps_EDX_XMM1_001h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10442        {  bs3CpuInstr3_extractps_EDX_XMM1_002h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10443        {  bs3CpuInstr3_extractps_EDX_XMM1_003h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10444        {  bs3CpuInstr3_extractps_EDX_XMM1_032h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10445        {  bs3CpuInstr3_extractps_EDX_XMM1_0FFh_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10446        {  bs3CpuInstr3_extractps_FSxBX_XMM1_000h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10447        {  bs3CpuInstr3_extractps_FSxBX_XMM1_001h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10448        {  bs3CpuInstr3_extractps_FSxBX_XMM1_002h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10449        {  bs3CpuInstr3_extractps_FSxBX_XMM1_003h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10450        {  bs3CpuInstr3_extractps_FSxBX_XMM1_032h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10451        {  bs3CpuInstr3_extractps_FSxBX_XMM1_0FFh_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10452
     10453        {  bs3CpuInstr3_vextractps_EDX_XMM1_000h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10454        {  bs3CpuInstr3_vextractps_EDX_XMM1_001h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10455        {  bs3CpuInstr3_vextractps_EDX_XMM1_002h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10456        {  bs3CpuInstr3_vextractps_EDX_XMM1_003h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10457        {  bs3CpuInstr3_vextractps_EDX_XMM1_032h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10458        {  bs3CpuInstr3_vextractps_EDX_XMM1_0FFh_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, EDX,   XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10459        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10460        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_001h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10461        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_002h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10462        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_003h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10463        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_032h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10464        {  bs3CpuInstr3_vextractps_FSxBX_XMM1_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM1, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10465
     10466        {  bs3CpuInstr3_extractps_R9D_XMM8_000h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10467        {  bs3CpuInstr3_extractps_R9D_XMM8_001h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10468        {  bs3CpuInstr3_extractps_R9D_XMM8_002h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10469        {  bs3CpuInstr3_extractps_R9D_XMM8_003h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10470        {  bs3CpuInstr3_extractps_R9D_XMM8_032h_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10471        {  bs3CpuInstr3_extractps_R9D_XMM8_0FFh_icebp_c64,    255,         RM_REG,   T_SSE4_1,  4, R9D,   XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10472        {  bs3CpuInstr3_extractps_FSxBX_XMM8_000h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10473        {  bs3CpuInstr3_extractps_FSxBX_XMM8_001h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10474        {  bs3CpuInstr3_extractps_FSxBX_XMM8_002h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10475        {  bs3CpuInstr3_extractps_FSxBX_XMM8_003h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10476        {  bs3CpuInstr3_extractps_FSxBX_XMM8_032h_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10477        {  bs3CpuInstr3_extractps_FSxBX_XMM8_0FFh_icebp_c64,  255,         RM_MEM32, T_SSE4_1,  4, FSxBX, XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10478
     10479        {  bs3CpuInstr3_vextractps_R9D_XMM8_000h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10480        {  bs3CpuInstr3_vextractps_R9D_XMM8_001h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10481        {  bs3CpuInstr3_vextractps_R9D_XMM8_002h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10482        {  bs3CpuInstr3_vextractps_R9D_XMM8_003h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10483        {  bs3CpuInstr3_vextractps_R9D_XMM8_032h_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10484        {  bs3CpuInstr3_vextractps_R9D_XMM8_0FFh_icebp_c64,   255,         RM_REG,   T_AVX_128, 4, R9D,   XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10485        {  bs3CpuInstr3_vextractps_FSxBX_XMM8_000h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues00), s_aValues00 },
     10486        {  bs3CpuInstr3_vextractps_FSxBX_XMM8_001h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues01), s_aValues01 },
     10487        {  bs3CpuInstr3_vextractps_FSxBX_XMM8_002h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10488        {  bs3CpuInstr3_vextractps_FSxBX_XMM8_003h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
     10489        {  bs3CpuInstr3_vextractps_FSxBX_XMM8_032h_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues02), s_aValues02 },
     10490        {  bs3CpuInstr3_vextractps_FSxBX_XMM8_0FFh_icebp_c64, X86_XCPT_AC, RM_MEM32, T_AVX_128, 4, FSxBX, XMM8, RT_ELEMENTS(s_aValues03), s_aValues03 },
    1056810491    };
    1056910492    static BS3CPUINSTR3_TEST2_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST2_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-x-regs.c32

    r106736 r106864  
    3434 * SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
    3535 */
    36 
    37 /** Simple unadorned x86 family register names to be used in instruction test value tables. */
    3836
    3937/**
     
    4341 *  (R16..31) extended x86 general purpose registers -- which VirtualBox
    4442 *  does not yet support and Intel are not yet shipping.
     43 *
     44 *  8-bit 'hi' register support not yet implemented (no clients).
     45 *
     46 *  GPR register sizes returned by the size functions and set by the set
     47 *  function are 8 bytes in long mode, 4 bytes in other modes.
     48 *
     49 *  Setting an 8, 16, or 32-bit GPR zeros out the higher bits.
     50 *
     51 *  Setting a 128-bit XMM register zeros out the higher bits only if the
     52 *  fZeroYMMHi flag is set.
    4553 */
     54
     55/** Simple unadorned x86 family register names to be used in instruction test value tables. */
    4656
    4757/**                     x0     x1     x2     x3     x4     x5     x6     x7     x8     x9     xA     xB     xC     xD     xE     xF
     
    7989
    8090#define          BS3_REGISTER_FAMILY_8BIT_L      0x00
    81 #define          BS3_REGISTER_FAMILY_8BIT_L_LOW (0x00 | BS3_REGISTER_FAMILY_OTHER_TODO)
    82 #define AL      (BS3_REGISTER_FAMILY_8BIT_L_LOW | 0)
    83 #define CL      (BS3_REGISTER_FAMILY_8BIT_L_LOW | 1)
    84 #define DL      (BS3_REGISTER_FAMILY_8BIT_L_LOW | 2)
    85 #define BL      (BS3_REGISTER_FAMILY_8BIT_L_LOW | 3)
    86 #define SPL     (BS3_REGISTER_FAMILY_8BIT_L_LOW | 4)
    87 #define BPL     (BS3_REGISTER_FAMILY_8BIT_L_LOW | 5)
    88 #define SIL     (BS3_REGISTER_FAMILY_8BIT_L_LOW | 6)
    89 #define DIL     (BS3_REGISTER_FAMILY_8BIT_L_LOW | 7)
    90 #define R8B     (BS3_REGISTER_FAMILY_8BIT_L_LOW | 8)
    91 #define R9B     (BS3_REGISTER_FAMILY_8BIT_L_LOW | 9)
    92 #define R10B    (BS3_REGISTER_FAMILY_8BIT_L_LOW | 10)
    93 #define R11B    (BS3_REGISTER_FAMILY_8BIT_L_LOW | 11)
    94 #define R12B    (BS3_REGISTER_FAMILY_8BIT_L_LOW | 12)
    95 #define R13B    (BS3_REGISTER_FAMILY_8BIT_L_LOW | 13)
    96 #define R14B    (BS3_REGISTER_FAMILY_8BIT_L_LOW | 14)
    97 #define R15B    (BS3_REGISTER_FAMILY_8BIT_L_LOW | 15)
     91#define AL      (BS3_REGISTER_FAMILY_8BIT_L     | 0)
     92#define CL      (BS3_REGISTER_FAMILY_8BIT_L     | 1)
     93#define DL      (BS3_REGISTER_FAMILY_8BIT_L     | 2)
     94#define BL      (BS3_REGISTER_FAMILY_8BIT_L     | 3)
     95#define SPL     (BS3_REGISTER_FAMILY_8BIT_L     | 4)
     96#define BPL     (BS3_REGISTER_FAMILY_8BIT_L     | 5)
     97#define SIL     (BS3_REGISTER_FAMILY_8BIT_L     | 6)
     98#define DIL     (BS3_REGISTER_FAMILY_8BIT_L     | 7)
     99#define R8B     (BS3_REGISTER_FAMILY_8BIT_L     | 8)
     100#define R9B     (BS3_REGISTER_FAMILY_8BIT_L     | 9)
     101#define R10B    (BS3_REGISTER_FAMILY_8BIT_L     | 10)
     102#define R11B    (BS3_REGISTER_FAMILY_8BIT_L     | 11)
     103#define R12B    (BS3_REGISTER_FAMILY_8BIT_L     | 12)
     104#define R13B    (BS3_REGISTER_FAMILY_8BIT_L     | 13)
     105#define R14B    (BS3_REGISTER_FAMILY_8BIT_L     | 14)
     106#define R15B    (BS3_REGISTER_FAMILY_8BIT_L     | 15)
    98107#define          BS3_REGISTER_FAMILY_8BIT_L_APX (0x10 | BS3_REGISTER_FAMILY_APX_TODO)
    99108#define R16B    (BS3_REGISTER_FAMILY_8BIT_L_APX | 16)
     
    218227#define R30     (BS3_REGISTER_FAMILY_64BIT_APX  | 30)
    219228#define R31     (BS3_REGISTER_FAMILY_64BIT_APX  | 31)
     229
     230#define          BS3_REGISTER_IS_GPR(reg)        (((reg) & BS3_REGISTER_FAMILY_MASK) <= BS3_REGISTER_FAMILY_64BIT)
    220231
    221232#define          BS3_REGISTER_FAMILY_XMM         0x80
     
    449460}
    450461
    451 /**
    452  * Set a register within a testing context.  Intended to support a broad
    453  * range of register types; currently supports MMX, XMM, YMM, and general
    454  * purpose registers (except 8-bit sub-registers); and setting up FS:xGPR
    455  * for memory reference operations.
    456  *
    457  * Other regs known to this subsystem are either so far unused by
    458  * VirtualBox (ZMM, k[0-7], GPRs >15); or not used by tests which call
    459  * this (8-bit sub-registers, segment registers, xIP, xFL).
    460  *
    461  * @param    pSetRegCtx  Arguments to this function (see below).
    462  * @param    uReg        The register identity value to modify within that context.
    463  * @param    pu256Val    Pointer to the data to store there.
    464  * @returns  bool        Whether the store succeeded (currently ignored by callers).
    465  */
    466 
    467462typedef struct BS3SETREGCTX
    468463{
     
    478473typedef BS3SETREGCTX BS3_FAR *PBS3SETREGCTX;
    479474
     475/**
     476 * Get the size of a register from its identity value used in instruction test value tables.
     477 * This returns the size of sub-registers, e.g. AL = 1.
     478 *
     479 * @returns  Size of register in bytes.  Returns 0 for currently unsupported registers.
     480 */
     481static size_t bs3CpuInstrXGetRegisterSize(PBS3SETREGCTX pSetRegCtx, uint16_t uReg)
     482{
     483    switch (uReg & BS3_REGISTER_FAMILY_MASK)
     484    {
     485        case BS3_REGISTER_FAMILY_8BIT_L:
     486            return 1;
     487        case BS3_REGISTER_FAMILY_16BIT:
     488            return 2;
     489        case BS3_REGISTER_FAMILY_32BIT:
     490            return 4;
     491        case BS3_REGISTER_FAMILY_64BIT:
     492            return 8;
     493        case BS3_REGISTER_FAMILY_XMM:
     494            return 16;
     495        case BS3_REGISTER_FAMILY_YMM:
     496            return 32;
     497        case BS3_REGISTER_FAMILY_OTHER:
     498            if (BS3_REGISTER_IS_MMX(uReg))
     499                return 8;
     500    }
     501    return 0;
     502}
     503
     504/**
     505 * Get the full size of a register from its identity value used in instruction test value tables.
     506 * This returns the full size of the register containing a sub-register, e.g. AL = 4 or 8.
     507 *
     508 * @returns  Size of register in bytes.  Returns 0 for currently unsupported registers.
     509 */
     510static size_t bs3CpuInstrXGetRegisterFullSize(PBS3SETREGCTX pSetRegCtx, uint16_t uReg)
     511{
     512    if (BS3_REGISTER_IS_GPR(uReg))
     513        return BS3_MODE_IS_64BIT_CODE(pSetRegCtx->bMode) ? 8 : 4;
     514    return bs3CpuInstrXGetRegisterSize(pSetRegCtx, uReg);
     515}
     516
     517/**
     518 * Set a register within a testing context.  Intended to support a broad
     519 * range of register types; currently supports MMX, XMM, YMM, and general
     520 * purpose registers (except 8-bit sub-registers); and setting up FS:xGPR
     521 * for memory reference operations.
     522 *
     523 * Other regs known to this subsystem are either so far unused by
     524 * VirtualBox (ZMM, k[0-7], GPRs >15); or not used by tests which call
     525 * this (8-bit sub-registers, segment registers, xIP, xFL).
     526 *
     527 * @param    pSetRegCtx  Arguments to this function (see below).
     528 * @param    uReg        The register identity value to modify within that context.
     529 * @param    pu256Val    Pointer to the data to store there.
     530 * @returns  bool        Whether the store succeeded (currently ignored by callers).
     531 */
     532
    480533static bool Bs3ExtCtxSetReg_int(PBS3SETREGCTX pSetRegCtx, uint16_t uReg, PCRTUINT256U pu256Val)
    481534{
     
    497550        switch (uRegSet)
    498551        {
     552            case BS3_REGISTER_FAMILY_8BIT_L:
     553                return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au8[0], bs3CpuInstrXGetRegisterFullSize(pSetRegCtx, uReg));
    499554            case BS3_REGISTER_FAMILY_16BIT:
    500                 return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au16[0], 2);
     555                return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au16[0], bs3CpuInstrXGetRegisterFullSize(pSetRegCtx, uReg));
    501556            case BS3_REGISTER_FAMILY_32BIT:
    502                 return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au32[0], 4);
     557                return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au32[0], bs3CpuInstrXGetRegisterFullSize(pSetRegCtx, uReg));
    503558            case BS3_REGISTER_FAMILY_64BIT:
    504                 return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au64[0], BS3_MODE_IS_64BIT_CODE(pSetRegCtx->bMode) ? 8 : 4);
     559                return Bs3RegCtxSetGpr(pSetRegCtx->pCtx, uRegNum, pu256Val->au64[0], bs3CpuInstrXGetRegisterFullSize(pSetRegCtx, uReg));
    505560            case BS3_REGISTER_FAMILY_XMM:
    506561                if (pSetRegCtx->fZeroYMMHi)
     
    517572                    return Bs3ExtCtxSetMm(pSetRegCtx->pExtCtx, uRegNum, pu256Val->au64[0], BS3EXTCTXTOPMM_SET);
    518573                break;
    519             case BS3_REGISTER_FAMILY_8BIT_L:
    520574            case BS3_REGISTER_FAMILY_ZMM:
    521575            default:
     
    544598        switch (uReg & BS3_REGISTER_FAMILY_MASK)
    545599        {
     600            case BS3_REGISTER_FAMILY_8BIT_L:
     601                Bs3StrPrintf(pszValBuf, 80, "%#04RX8", pu256Val->au8[0]);
     602                break;
    546603            case BS3_REGISTER_FAMILY_16BIT:
    547604                Bs3StrPrintf(pszValBuf, 80, "%#06RX16", pu256Val->au16[0]);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette