Changeset 107021 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- Nov 18, 2024 6:54:02 AM (6 months ago)
- svn:sync-xref-src-repo-rev:
- 165963
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r106974 r107021 50 50 * Defined Constants And Macros * 51 51 *********************************************************************************************************************************/ 52 /** Converts an execution mode (BS3_MODE_XXX) into an index into an array53 * initialized by BS3CPUINSTR4_TEST1_MODES_INIT etc. */54 #define BS3CPUINSTR4_TEST_MODES_INDEX(a_bMode) (BS3_MODE_IS_16BIT_CODE(bMode) ? 0 : BS3_MODE_IS_32BIT_CODE(bMode) ? 1 : 2)55 56 52 /** Maximum length for the names of all SIMD FP exception flags combined. */ 57 53 #define FP_XCPT_FLAGS_NAMES_MAXLEN sizeof(" IE DE ZE OE UE PE ") 58 54 /** Maximum length for the names of all SIMD FP exception masks combined. */ 59 #define FP_XCPT_MASKS_NAMES_MAXLEN sizeof(" I E DE ZE OE UE PE")55 #define FP_XCPT_MASKS_NAMES_MAXLEN sizeof(" IM DM ZM OM UM PM ") 60 56 /** Maximum length for the names of all SIMD FP exception other bits combined. */ 61 57 #define FP_XCPT_OTHERS_NAMES_MAXLEN sizeof(" DAZ FZ MM RC=NEAREST ") … … 2442 2438 2443 2439 2440 /** Utility macro for generally passing an array along with its length. */ 2441 #define PASS_ARRAY(s_aArray) RT_ELEMENTS(s_aArray), s_aArray 2442 2443 /** Utility macro for inserting value table references into test arrays. */ 2444 #define PASS_TEST_ARRAY(s_aArray) RT_ELEMENTS(s_aArray), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aArray 2445 2446 /** Table-building macros for inserting instruction-test functions into test arrays. */ 2447 #define BS3_INSTR4_ONE(instr_stuff, bits) bs3CpuInstr4_ ## instr_stuff ## _icebp_c ## bits 2448 #define BS3_INSTR4_ALL(instr_stuff) BS3_INSTR4_ONE(instr_stuff, 16), BS3_INSTR4_ONE(instr_stuff, 32), BS3_INSTR4_ONE(instr_stuff, 64) 2449 #define BS3_INSTR4_386(instr_stuff) BS3_INSTR4_ONE(instr_stuff, 16), BS3_INSTR4_ONE(instr_stuff, 32), NULL 2450 #define BS3_INSTR4_C64(instr_stuff) NULL, NULL, BS3_INSTR4_ONE(instr_stuff, 64) 2451 2452 2444 2453 /* 2445 2454 * Test type #1. … … 2591 2600 typedef struct BS3CPUINSTR4_TEST1_T 2592 2601 { 2593 FPFNBS3FAR pfnWorker; /**< Test function worker. */ 2602 FPFNBS3FAR pfnWorker_16; /**< Test function worker for 16-bit execution modes. */ 2603 FPFNBS3FAR pfnWorker_32; /**< Test function worker for 32-bit execution modes. */ 2604 FPFNBS3FAR pfnWorker_64; /**< Test function worker for 64-bit execution modes. */ 2594 2605 uint8_t bAltXcpt; /**< AVX misalignment exception, or always-expected exception. */ 2595 2606 uint8_t enmRm; /**< R/M type. */ … … 2613 2624 unsigned cTests; 2614 2625 } BS3CPUINSTR4_TEST1_MODE_T; 2615 2616 /** Initializer for a BS3CPUINSTR4_TEST1_MODE_T array (three entries). */2617 #define BS3CPUINSTR4_TEST1_MODES_INIT(a_aTests16, a_aTests32, a_aTests64) \2618 { { a_aTests16, RT_ELEMENTS(a_aTests16) }, { a_aTests32, RT_ELEMENTS(a_aTests32) }, { a_aTests64, RT_ELEMENTS(a_aTests64) } }2619 2620 /** Utility macro for inserting value table references into test arrays. */2621 #define PASS_ELEMENTS(s_aArray) RT_ELEMENTS(s_aArray), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aArray2622 2626 2623 2627 typedef struct BS3CPUINSTR4_TEST1_CTX_T … … 2692 2696 uint8_t BS3_FAR *puMemOpAlias = pTestCtx->puMemOpAlias; 2693 2697 uint8_t cbMemOp = pTestCtx->cbMemOp; 2694 uint8_t const cbInstr = ((uint8_t const BS3_FAR *)(uintptr_t)pTestCtx->pTest->pfnWorker)[-1];2695 2698 uint8_t bXcptExpect = pTestCtx->bXcptExpect; 2696 2699 bool const fNonFpOK = bXcptExpect == X86_XCPT_DB; … … 2920 2923 * Prepare globals and execute. 2921 2924 */ 2922 cbBytesExecuted = (fNonFpOK && !fFpXcptExpected) ? cbInstr + 1 : 0;2925 cbBytesExecuted = (fNonFpOK && !fFpXcptExpected) ? pTestCtx->cbInstr + 1 : 0; 2923 2926 g_uBs3TrapEipHint = pCtx->rip.u32 + cbBytesExecuted; 2924 2927 Bs3TrapSetJmpAndRestoreWithExtCtxAndRm(pCtx, pExtCtx, pTrapFrame, pExtCtxOut); … … 3037 3040 * Test type #1 worker. 3038 3041 */ 3039 static uint8_t bs3CpuInstr4_WorkerTestType1(uint8_t bMode, BS3CPUINSTR4_TEST1_T const BS3_FAR *paTests, unsigned cTests,3040 PCBS3CPUINSTR4_CONFIG_T paConfigs, unsigned cConfigs)3042 static uint8_t bs3CpuInstr4_WorkerTestType1(uint8_t bMode, unsigned cTests, BS3CPUINSTR4_TEST1_T const BS3_FAR *paTests, 3043 unsigned cConfigs, PCBS3CPUINSTR4_CONFIG_T paConfigs) 3041 3044 { 3042 3045 BS3REGCTX Ctx; … … 3094 3097 { 3095 3098 BS3CPUINSTR4_TEST1_T const BS3_FAR *pTest = &paTests[iTest]; 3099 FPFNBS3FAR const pfnWorker = BS3_MODE_IS_16BIT_CODE(bMode) ? pTest->pfnWorker_16 3100 : BS3_MODE_IS_32BIT_CODE(bMode) ? pTest->pfnWorker_32 3101 : pTest->pfnWorker_64; 3096 3102 unsigned const cValues = pTest->cValues; 3097 3103 bool const fSseInstr = bs3CpuInstr4IsSse(pTest->enmType); … … 3115 3121 unsigned iVal; 3116 3122 3123 /* Some tests are for specific modes only. */ 3124 if (!pfnWorker) 3125 continue; 3126 3117 3127 /* If testing unaligned memory accesses (or #PF), skip register-only tests. This 3118 3128 allows setting bXcptSse and bXcptAvx to reflect the misaligned exceptions. */ … … 3136 3146 bXcptExpect = X86_XCPT_PF; 3137 3147 3138 Bs3RegCtxSetRipCsFromCurPtr(&Ctx, p Test->pfnWorker);3148 Bs3RegCtxSetRipCsFromCurPtr(&Ctx, pfnWorker); 3139 3149 3140 3150 /* … … 3175 3185 TestCtx.bXcptExpect = bXcptExpect; 3176 3186 TestCtx.idTestStep = idTestStep; 3187 TestCtx.cbInstr = ((uint8_t const BS3_FAR *)(uintptr_t)pfnWorker)[-1]; 3177 3188 Bs3StrPrintf(szTestIdStr, TESTID_MAXSIZE, "%s: ring-%d/%u:%s/tst#%u/val#%u", 3178 3189 pszMode, bRing, iCfg, paConfigs[iCfg].pszCfgName, iTest, iVal); … … 3533 3544 }; 3534 3545 3535 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =3546 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 3536 3547 { 3537 { bs3CpuInstr4_addps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 3538 { bs3CpuInstr4_addps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 3539 3540 { bs3CpuInstr4_vaddps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 3541 { bs3CpuInstr4_vaddps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3542 3543 { bs3CpuInstr4_vaddps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 3544 { bs3CpuInstr4_vaddps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3545 3546 { bs3CpuInstr4_addps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 3547 { bs3CpuInstr4_vaddps_YMM1_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 3548 { bs3CpuInstr4_vaddps_YMM1_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 3549 { bs3CpuInstr4_vaddps_YMM1_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 3548 { BS3_INSTR4_ALL(addps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 3549 { BS3_INSTR4_ALL(addps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3550 3551 { BS3_INSTR4_ALL(vaddps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 3552 { BS3_INSTR4_ALL(vaddps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3553 3554 { BS3_INSTR4_ALL(vaddps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 3555 { BS3_INSTR4_ALL(vaddps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3556 3557 { BS3_INSTR4_C64(addps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 3558 { BS3_INSTR4_C64(addps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3559 3560 { BS3_INSTR4_C64(vaddps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 3561 { BS3_INSTR4_C64(vaddps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3562 { BS3_INSTR4_C64(vaddps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 3563 { BS3_INSTR4_C64(vaddps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3564 3565 { BS3_INSTR4_ALL(addps_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 3566 { BS3_INSTR4_C64(addps_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 3567 { BS3_INSTR4_ALL(vaddps_YMM1_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 3568 { BS3_INSTR4_C64(vaddps_YMM8_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 3569 { BS3_INSTR4_ALL(vaddps_YMM1_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 3570 { BS3_INSTR4_ALL(vaddps_YMM1_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 3550 3571 }; 3551 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 3552 { 3553 { bs3CpuInstr4_addps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 3554 { bs3CpuInstr4_addps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 3555 3556 { bs3CpuInstr4_vaddps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 3557 { bs3CpuInstr4_vaddps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3558 3559 { bs3CpuInstr4_vaddps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 3560 { bs3CpuInstr4_vaddps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3561 3562 { bs3CpuInstr4_addps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 3563 { bs3CpuInstr4_vaddps_YMM1_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 3564 { bs3CpuInstr4_vaddps_YMM1_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 3565 { bs3CpuInstr4_vaddps_YMM1_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 3566 }; 3567 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 3568 { 3569 { bs3CpuInstr4_addps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 3570 { bs3CpuInstr4_addps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 3571 3572 { bs3CpuInstr4_vaddps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 3573 { bs3CpuInstr4_vaddps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3574 3575 { bs3CpuInstr4_vaddps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 3576 { bs3CpuInstr4_vaddps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3577 3578 { bs3CpuInstr4_addps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 3579 { bs3CpuInstr4_addps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 3580 3581 { bs3CpuInstr4_vaddps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 3582 { bs3CpuInstr4_vaddps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 3583 { bs3CpuInstr4_vaddps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 3584 { bs3CpuInstr4_vaddps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 3585 3586 { bs3CpuInstr4_addps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 3587 { bs3CpuInstr4_addps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 3588 { bs3CpuInstr4_vaddps_YMM1_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 3589 { bs3CpuInstr4_vaddps_YMM8_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValuesSR) }, 3590 { bs3CpuInstr4_vaddps_YMM1_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 3591 { bs3CpuInstr4_vaddps_YMM1_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 3592 }; 3593 3594 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 3595 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 3596 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 3597 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 3572 3573 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 3598 3574 } 3599 3575 … … 3836 3812 }; 3837 3813 3838 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =3814 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 3839 3815 { 3840 { bs3CpuInstr4_addpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 3841 { bs3CpuInstr4_addpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 3842 3843 { bs3CpuInstr4_vaddpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 3844 { bs3CpuInstr4_vaddpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3845 3846 { bs3CpuInstr4_vaddpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 3847 { bs3CpuInstr4_vaddpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3848 3849 { bs3CpuInstr4_addpd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 3850 { bs3CpuInstr4_vaddpd_YMM1_YMM1_YMM1_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 3851 { bs3CpuInstr4_vaddpd_YMM1_YMM1_YMM2_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 3852 { bs3CpuInstr4_vaddpd_YMM1_YMM1_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 3816 { BS3_INSTR4_ALL(addpd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 3817 { BS3_INSTR4_ALL(addpd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3818 3819 { BS3_INSTR4_ALL(vaddpd_XMM1_XMM2_XMM3), X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 3820 { BS3_INSTR4_ALL(vaddpd_XMM1_XMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3821 3822 { BS3_INSTR4_ALL(vaddpd_YMM1_YMM2_YMM3), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 3823 { BS3_INSTR4_ALL(vaddpd_YMM1_YMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3824 3825 { BS3_INSTR4_C64(addpd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 3826 { BS3_INSTR4_C64(addpd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3827 3828 { BS3_INSTR4_C64(vaddpd_XMM8_XMM9_XMM10), X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 3829 { BS3_INSTR4_C64(vaddpd_XMM8_XMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3830 { BS3_INSTR4_C64(vaddpd_YMM8_YMM9_YMM10), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 3831 { BS3_INSTR4_C64(vaddpd_YMM8_YMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 3832 3833 { BS3_INSTR4_ALL(addpd_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 3834 { BS3_INSTR4_C64(addpd_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 3835 { BS3_INSTR4_ALL(vaddpd_YMM1_YMM1_YMM1), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 3836 { BS3_INSTR4_C64(vaddpd_YMM8_YMM8_YMM8), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 3837 { BS3_INSTR4_ALL(vaddpd_YMM1_YMM1_YMM2), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 3838 { BS3_INSTR4_ALL(vaddpd_YMM1_YMM1_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 3853 3839 }; 3854 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 3855 { 3856 { bs3CpuInstr4_addpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 3857 { bs3CpuInstr4_addpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 3858 3859 { bs3CpuInstr4_vaddpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 3860 { bs3CpuInstr4_vaddpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3861 3862 { bs3CpuInstr4_vaddpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 3863 { bs3CpuInstr4_vaddpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3864 3865 { bs3CpuInstr4_addpd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 3866 { bs3CpuInstr4_vaddpd_YMM1_YMM1_YMM1_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 3867 { bs3CpuInstr4_vaddpd_YMM1_YMM1_YMM2_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 3868 { bs3CpuInstr4_vaddpd_YMM1_YMM1_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 3869 }; 3870 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 3871 { 3872 { bs3CpuInstr4_addpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 3873 { bs3CpuInstr4_addpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 3874 3875 { bs3CpuInstr4_vaddpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 3876 { bs3CpuInstr4_vaddpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3877 3878 { bs3CpuInstr4_vaddpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 3879 { bs3CpuInstr4_vaddpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 3880 3881 { bs3CpuInstr4_addpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 3882 { bs3CpuInstr4_addpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 3883 3884 { bs3CpuInstr4_vaddpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 3885 { bs3CpuInstr4_vaddpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 3886 { bs3CpuInstr4_vaddpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 3887 { bs3CpuInstr4_vaddpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 3888 3889 { bs3CpuInstr4_addpd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 3890 { bs3CpuInstr4_addpd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 3891 { bs3CpuInstr4_vaddpd_YMM1_YMM1_YMM1_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 3892 { bs3CpuInstr4_vaddpd_YMM8_YMM8_YMM8_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValuesSR) }, 3893 { bs3CpuInstr4_vaddpd_YMM1_YMM1_YMM2_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 3894 { bs3CpuInstr4_vaddpd_YMM1_YMM1_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 3895 }; 3896 3897 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 3898 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 3899 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 3900 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 3840 3841 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 3901 3842 } 3902 3843 … … 4186 4127 }; 4187 4128 4188 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =4129 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 4189 4130 { 4190 { bs3CpuInstr4_addss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4191 { bs3CpuInstr4_addss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4192 4193 { bs3CpuInstr4_vaddss_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4194 { bs3CpuInstr4_vaddss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4195 4196 { bs3CpuInstr4_addss_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4197 { bs3CpuInstr4_vaddss_XMM1_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4198 { bs3CpuInstr4_vaddss_XMM1_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 4199 { bs3CpuInstr4_vaddss_XMM1_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4131 { BS3_INSTR4_ALL(addss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 4132 { BS3_INSTR4_ALL(addss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4133 4134 { BS3_INSTR4_ALL(vaddss_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 4135 { BS3_INSTR4_ALL(vaddss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4136 4137 { BS3_INSTR4_C64(addss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 4138 { BS3_INSTR4_C64(addss_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4139 4140 { BS3_INSTR4_C64(vaddss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 4141 { BS3_INSTR4_C64(vaddss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4142 4143 { BS3_INSTR4_ALL(addss_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 4144 { BS3_INSTR4_C64(addss_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 4145 { BS3_INSTR4_ALL(vaddss_XMM1_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 4146 { BS3_INSTR4_C64(vaddss_XMM8_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 4147 { BS3_INSTR4_ALL(vaddss_XMM1_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 4148 { BS3_INSTR4_ALL(vaddss_XMM1_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 4200 4149 }; 4201 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 4202 { 4203 { bs3CpuInstr4_addss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4204 { bs3CpuInstr4_addss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4205 4206 { bs3CpuInstr4_vaddss_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4207 { bs3CpuInstr4_vaddss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4208 4209 { bs3CpuInstr4_addss_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4210 { bs3CpuInstr4_vaddss_XMM1_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4211 { bs3CpuInstr4_vaddss_XMM1_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 4212 { bs3CpuInstr4_vaddss_XMM1_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4213 }; 4214 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 4215 { 4216 { bs3CpuInstr4_addss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4217 { bs3CpuInstr4_addss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4218 4219 { bs3CpuInstr4_vaddss_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4220 { bs3CpuInstr4_vaddss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4221 4222 { bs3CpuInstr4_addss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 4223 { bs3CpuInstr4_addss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 4224 4225 { bs3CpuInstr4_vaddss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 4226 { bs3CpuInstr4_vaddss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 4227 4228 { bs3CpuInstr4_addss_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4229 { bs3CpuInstr4_addss_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 4230 { bs3CpuInstr4_vaddss_XMM1_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4231 { bs3CpuInstr4_vaddss_XMM8_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 4232 { bs3CpuInstr4_vaddss_XMM1_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 4233 { bs3CpuInstr4_vaddss_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4234 }; 4235 4236 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 4237 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 4238 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 4239 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 4150 4151 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 4240 4152 } 4241 4153 … … 4539 4451 }; 4540 4452 4541 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =4453 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 4542 4454 { 4543 { bs3CpuInstr4_addsd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4544 { bs3CpuInstr4_addsd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4545 4546 { bs3CpuInstr4_vaddsd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4547 { bs3CpuInstr4_vaddsd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4548 4549 { bs3CpuInstr4_addsd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4550 { bs3CpuInstr4_vaddsd_XMM1_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4551 { bs3CpuInstr4_vaddsd_XMM1_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 4552 { bs3CpuInstr4_vaddsd_XMM1_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4455 { BS3_INSTR4_ALL(addsd_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 4456 { BS3_INSTR4_ALL(addsd_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4457 4458 { BS3_INSTR4_ALL(vaddsd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 4459 { BS3_INSTR4_ALL(vaddsd_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4460 4461 { BS3_INSTR4_C64(addsd_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 4462 { BS3_INSTR4_C64(addsd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4463 4464 { BS3_INSTR4_C64(vaddsd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 4465 { BS3_INSTR4_C64(vaddsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4466 4467 { BS3_INSTR4_ALL(addsd_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 4468 { BS3_INSTR4_C64(addsd_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 4469 { BS3_INSTR4_ALL(vaddsd_XMM1_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 4470 { BS3_INSTR4_C64(vaddsd_XMM8_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 4471 { BS3_INSTR4_ALL(vaddsd_XMM1_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 4472 { BS3_INSTR4_ALL(vaddsd_XMM1_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 4553 4473 }; 4554 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 4555 { 4556 { bs3CpuInstr4_addsd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4557 { bs3CpuInstr4_addsd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4558 4559 { bs3CpuInstr4_vaddsd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4560 { bs3CpuInstr4_vaddsd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4561 4562 { bs3CpuInstr4_addsd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4563 { bs3CpuInstr4_vaddsd_XMM1_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4564 { bs3CpuInstr4_vaddsd_XMM1_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 4565 { bs3CpuInstr4_vaddsd_XMM1_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4566 }; 4567 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 4568 { 4569 { bs3CpuInstr4_addsd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4570 { bs3CpuInstr4_addsd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4571 4572 { bs3CpuInstr4_vaddsd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4573 { bs3CpuInstr4_vaddsd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4574 4575 { bs3CpuInstr4_addsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 4576 { bs3CpuInstr4_addsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 4577 4578 { bs3CpuInstr4_vaddsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 4579 { bs3CpuInstr4_vaddsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 4580 4581 { bs3CpuInstr4_addsd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4582 { bs3CpuInstr4_addsd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 4583 { bs3CpuInstr4_vaddsd_XMM1_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4584 { bs3CpuInstr4_vaddsd_XMM8_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 4585 { bs3CpuInstr4_vaddsd_XMM1_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 4586 { bs3CpuInstr4_vaddsd_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4587 }; 4588 4589 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 4590 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 4591 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 4592 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 4474 4475 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 4593 4476 } 4594 4477 … … 4893 4776 }; 4894 4777 4895 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =4778 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 4896 4779 { 4897 { bs3CpuInstr4_haddps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4898 { bs3CpuInstr4_haddps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4899 4900 { bs3CpuInstr4_vhaddps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4901 { bs3CpuInstr4_vhaddps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4902 4903 { bs3CpuInstr4_vhaddps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 4904 { bs3CpuInstr4_vhaddps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4905 4906 { bs3CpuInstr4_haddps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4907 { bs3CpuInstr4_vhaddps_YMM1_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 4908 { bs3CpuInstr4_vhaddps_YMM1_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 4909 { bs3CpuInstr4_vhaddps_YMM1_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4780 { BS3_INSTR4_ALL(haddps_XMM1_XMM2), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 4781 { BS3_INSTR4_ALL(haddps_XMM1_FSxBX), 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4782 4783 { BS3_INSTR4_ALL(vhaddps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 4784 { BS3_INSTR4_ALL(vhaddps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4785 4786 { BS3_INSTR4_ALL(vhaddps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 4787 { BS3_INSTR4_ALL(vhaddps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4788 4789 { BS3_INSTR4_C64(haddps_XMM8_XMM9), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 4790 { BS3_INSTR4_C64(haddps_XMM8_FSxBX), 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4791 4792 { BS3_INSTR4_C64(vhaddps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 4793 { BS3_INSTR4_C64(vhaddps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4794 { BS3_INSTR4_C64(vhaddps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 4795 { BS3_INSTR4_C64(vhaddps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 4796 4797 { BS3_INSTR4_ALL(haddps_XMM1_XMM1), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 4798 { BS3_INSTR4_C64(haddps_XMM8_XMM8), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 4799 { BS3_INSTR4_ALL(vhaddps_YMM1_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 4800 { BS3_INSTR4_C64(vhaddps_YMM8_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 4801 { BS3_INSTR4_ALL(vhaddps_YMM1_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 4802 { BS3_INSTR4_ALL(vhaddps_YMM1_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 4910 4803 }; 4911 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 4912 { 4913 { bs3CpuInstr4_haddps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4914 { bs3CpuInstr4_haddps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4915 4916 { bs3CpuInstr4_vhaddps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4917 { bs3CpuInstr4_vhaddps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4918 4919 { bs3CpuInstr4_vhaddps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 4920 { bs3CpuInstr4_vhaddps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4921 4922 { bs3CpuInstr4_haddps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4923 { bs3CpuInstr4_vhaddps_YMM1_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 4924 { bs3CpuInstr4_vhaddps_YMM1_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 4925 { bs3CpuInstr4_vhaddps_YMM1_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4926 }; 4927 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 4928 { 4929 { bs3CpuInstr4_haddps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 4930 { bs3CpuInstr4_haddps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 4931 4932 { bs3CpuInstr4_vhaddps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 4933 { bs3CpuInstr4_vhaddps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4934 4935 { bs3CpuInstr4_vhaddps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 4936 { bs3CpuInstr4_vhaddps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 4937 4938 { bs3CpuInstr4_haddps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 4939 { bs3CpuInstr4_haddps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 4940 4941 { bs3CpuInstr4_vhaddps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 4942 { bs3CpuInstr4_vhaddps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 4943 { bs3CpuInstr4_vhaddps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 4944 { bs3CpuInstr4_vhaddps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 4945 4946 { bs3CpuInstr4_haddps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 4947 { bs3CpuInstr4_haddps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 4948 { bs3CpuInstr4_vhaddps_YMM1_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 4949 { bs3CpuInstr4_vhaddps_YMM8_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValuesSR) }, 4950 { bs3CpuInstr4_vhaddps_YMM1_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 4951 { bs3CpuInstr4_vhaddps_YMM1_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 4952 }; 4953 4954 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 4955 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 4956 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 4957 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 4804 4805 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 4958 4806 } 4959 4807 … … 5228 5076 }; 5229 5077 5230 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =5078 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 5231 5079 { 5232 { bs3CpuInstr4_haddpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5233 { bs3CpuInstr4_haddpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5234 5235 { bs3CpuInstr4_vhaddpd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5236 { bs3CpuInstr4_vhaddpd_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5237 5238 { bs3CpuInstr4_vhaddpd_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5239 { bs3CpuInstr4_vhaddpd_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5240 5241 { bs3CpuInstr4_haddpd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 5242 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 5243 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 5244 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 5080 { BS3_INSTR4_ALL(haddpd_XMM1_XMM2), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 5081 { BS3_INSTR4_ALL(haddpd_XMM1_FSxBX), 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5082 5083 { BS3_INSTR4_ALL(vhaddpd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 5084 { BS3_INSTR4_ALL(vhaddpd_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5085 5086 { BS3_INSTR4_ALL(vhaddpd_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 5087 { BS3_INSTR4_ALL(vhaddpd_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5088 5089 { BS3_INSTR4_C64(haddpd_XMM8_XMM9), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 5090 { BS3_INSTR4_C64(haddpd_XMM8_FSxBX), 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5091 5092 { BS3_INSTR4_C64(vhaddpd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 5093 { BS3_INSTR4_C64(vhaddpd_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5094 { BS3_INSTR4_C64(vhaddpd_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 5095 { BS3_INSTR4_C64(vhaddpd_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5096 5097 { BS3_INSTR4_ALL(haddpd_XMM1_XMM1), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 5098 { BS3_INSTR4_C64(haddpd_XMM8_XMM8), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 5099 { BS3_INSTR4_ALL(vhaddpd_YMM1_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 5100 { BS3_INSTR4_C64(vhaddpd_YMM8_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 5101 { BS3_INSTR4_ALL(vhaddpd_YMM1_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 5102 { BS3_INSTR4_ALL(vhaddpd_YMM1_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 5245 5103 }; 5246 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 5247 { 5248 { bs3CpuInstr4_haddpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5249 { bs3CpuInstr4_haddpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5250 5251 { bs3CpuInstr4_vhaddpd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5252 { bs3CpuInstr4_vhaddpd_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5253 5254 { bs3CpuInstr4_vhaddpd_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5255 { bs3CpuInstr4_vhaddpd_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5256 5257 { bs3CpuInstr4_haddpd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 5258 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 5259 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 5260 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 5261 }; 5262 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 5263 { 5264 { bs3CpuInstr4_haddpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5265 { bs3CpuInstr4_haddpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5266 5267 { bs3CpuInstr4_vhaddpd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5268 { bs3CpuInstr4_vhaddpd_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5269 5270 { bs3CpuInstr4_vhaddpd_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5271 { bs3CpuInstr4_vhaddpd_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5272 5273 { bs3CpuInstr4_haddpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 5274 { bs3CpuInstr4_haddpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 5275 5276 { bs3CpuInstr4_vhaddpd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 5277 { bs3CpuInstr4_vhaddpd_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 5278 { bs3CpuInstr4_vhaddpd_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 5279 { bs3CpuInstr4_vhaddpd_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 5280 5281 { bs3CpuInstr4_haddpd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 5282 { bs3CpuInstr4_haddpd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 5283 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValuesSR) }, 5284 { bs3CpuInstr4_vhaddpd_YMM8_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValuesSR) }, 5285 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesSR) }, 5286 { bs3CpuInstr4_vhaddpd_YMM1_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 5287 }; 5288 5289 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 5290 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 5291 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 5292 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 5104 5105 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 5293 5106 } 5294 5107 … … 5620 5433 }; 5621 5434 5622 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =5435 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 5623 5436 { 5624 { bs3CpuInstr4_subps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5625 { bs3CpuInstr4_subps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5626 5627 { bs3CpuInstr4_vsubps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5628 { bs3CpuInstr4_vsubps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5629 5630 { bs3CpuInstr4_vsubps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5631 { bs3CpuInstr4_vsubps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5437 { BS3_INSTR4_ALL(subps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 5438 { BS3_INSTR4_ALL(subps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5439 5440 { BS3_INSTR4_ALL(vsubps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 5441 { BS3_INSTR4_ALL(vsubps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5442 5443 { BS3_INSTR4_ALL(vsubps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 5444 { BS3_INSTR4_ALL(vsubps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5445 5446 { BS3_INSTR4_C64(subps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 5447 { BS3_INSTR4_C64(subps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5448 5449 { BS3_INSTR4_C64(vsubps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 5450 { BS3_INSTR4_C64(vsubps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5451 { BS3_INSTR4_C64(vsubps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 5452 { BS3_INSTR4_C64(vsubps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5632 5453 }; 5633 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 5634 { 5635 { bs3CpuInstr4_subps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5636 { bs3CpuInstr4_subps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5637 5638 { bs3CpuInstr4_vsubps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5639 { bs3CpuInstr4_vsubps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5640 5641 { bs3CpuInstr4_vsubps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5642 { bs3CpuInstr4_vsubps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5643 }; 5644 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 5645 { 5646 { bs3CpuInstr4_subps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5647 { bs3CpuInstr4_subps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5648 5649 { bs3CpuInstr4_vsubps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5650 { bs3CpuInstr4_vsubps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5651 5652 { bs3CpuInstr4_vsubps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5653 { bs3CpuInstr4_vsubps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5654 5655 { bs3CpuInstr4_subps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 5656 { bs3CpuInstr4_subps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 5657 5658 { bs3CpuInstr4_vsubps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 5659 { bs3CpuInstr4_vsubps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 5660 { bs3CpuInstr4_vsubps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 5661 { bs3CpuInstr4_vsubps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 5662 }; 5663 5664 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 5665 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 5666 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 5667 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 5454 5455 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 5668 5456 } 5669 5457 … … 5905 5693 }; 5906 5694 5907 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =5695 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 5908 5696 { 5909 { bs3CpuInstr4_subpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5910 { bs3CpuInstr4_subpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5911 5912 { bs3CpuInstr4_vsubpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5913 { bs3CpuInstr4_vsubpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5914 5915 { bs3CpuInstr4_vsubpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5916 { bs3CpuInstr4_vsubpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5697 { BS3_INSTR4_ALL(subpd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 5698 { BS3_INSTR4_ALL(subpd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5699 5700 { BS3_INSTR4_ALL(vsubpd_XMM1_XMM2_XMM3), X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 5701 { BS3_INSTR4_ALL(vsubpd_XMM1_XMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5702 5703 { BS3_INSTR4_ALL(vsubpd_YMM1_YMM2_YMM3), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 5704 { BS3_INSTR4_ALL(vsubpd_YMM1_YMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5705 5706 { BS3_INSTR4_C64(subpd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 5707 { BS3_INSTR4_C64(subpd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5708 5709 { BS3_INSTR4_C64(vsubpd_XMM8_XMM9_XMM10), X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 5710 { BS3_INSTR4_C64(vsubpd_XMM8_XMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5711 { BS3_INSTR4_C64(vsubpd_YMM8_YMM9_YMM10), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 5712 { BS3_INSTR4_C64(vsubpd_YMM8_YMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5917 5713 }; 5918 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 5919 { 5920 { bs3CpuInstr4_subpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5921 { bs3CpuInstr4_subpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5922 5923 { bs3CpuInstr4_vsubpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5924 { bs3CpuInstr4_vsubpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5925 5926 { bs3CpuInstr4_vsubpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5927 { bs3CpuInstr4_vsubpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5928 }; 5929 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 5930 { 5931 { bs3CpuInstr4_subpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 5932 { bs3CpuInstr4_subpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 5933 5934 { bs3CpuInstr4_vsubpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 5935 { bs3CpuInstr4_vsubpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5936 5937 { bs3CpuInstr4_vsubpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 5938 { bs3CpuInstr4_vsubpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5939 5940 { bs3CpuInstr4_subpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 5941 { bs3CpuInstr4_subpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 5942 5943 { bs3CpuInstr4_vsubpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 5944 { bs3CpuInstr4_vsubpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 5945 { bs3CpuInstr4_vsubpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 5946 { bs3CpuInstr4_vsubpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 5947 }; 5948 5949 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 5950 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 5951 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 5952 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 5714 5715 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 5953 5716 } 5954 5717 … … 6183 5946 /*--|34*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_x7_V2 } }, 6184 5947 { /*src1 */ { FP32_0(0), FP32_RAND_x7_V3 } }, 6185 { /* => */ { FP32_0(0), FP32_RAND_x7_V3 } } /* result on HW (i7-10700) */,6186 // IEM: { /* => */ { FP32_DENORM_MAX(1), FP32_RAND_x7_V3 } } /* result on IEM */,5948 { /* => */ { FP32_0(0), FP32_RAND_x7_V3 } } /* result on HW (i7-10700) */, 5949 // IEM: { /* => */ { FP32_DENORM_MAX(1), FP32_RAND_x7_V3 } } /* result on IEM */, 6187 5950 /*mxcsr:in */ X86_MXCSR_DM, 6188 5951 /*128:out */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED, … … 6215 5978 }; 6216 5979 6217 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =5980 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 6218 5981 { 6219 { bs3CpuInstr4_subss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6220 { bs3CpuInstr4_subss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6221 6222 { bs3CpuInstr4_vsubss_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6223 { bs3CpuInstr4_vsubss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 5982 { BS3_INSTR4_ALL(subss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 5983 { BS3_INSTR4_ALL(subss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5984 5985 { BS3_INSTR4_ALL(vsubss_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 5986 { BS3_INSTR4_ALL(vsubss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5987 5988 { BS3_INSTR4_C64(subss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 5989 { BS3_INSTR4_C64(subss_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 5990 5991 { BS3_INSTR4_C64(vsubss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 5992 { BS3_INSTR4_C64(vsubss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6224 5993 }; 6225 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 6226 { 6227 { bs3CpuInstr4_subss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6228 { bs3CpuInstr4_subss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6229 6230 { bs3CpuInstr4_vsubss_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6231 { bs3CpuInstr4_vsubss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6232 }; 6233 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 6234 { 6235 { bs3CpuInstr4_subss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6236 { bs3CpuInstr4_subss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6237 6238 { bs3CpuInstr4_vsubss_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6239 { bs3CpuInstr4_vsubss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6240 6241 { bs3CpuInstr4_subss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 6242 { bs3CpuInstr4_subss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 6243 6244 { bs3CpuInstr4_vsubss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 6245 { bs3CpuInstr4_vsubss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 6246 }; 6247 6248 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 6249 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 6250 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 6251 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 5994 5995 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 6252 5996 } 6253 5997 … … 6543 6287 }; 6544 6288 6545 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =6289 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 6546 6290 { 6547 { bs3CpuInstr4_subsd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6548 { bs3CpuInstr4_subsd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6549 6550 { bs3CpuInstr4_vsubsd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6551 { bs3CpuInstr4_vsubsd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6291 { BS3_INSTR4_ALL(subsd_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 6292 { BS3_INSTR4_ALL(subsd_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6293 6294 { BS3_INSTR4_ALL(vsubsd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 6295 { BS3_INSTR4_ALL(vsubsd_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6296 6297 { BS3_INSTR4_C64(subsd_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 6298 { BS3_INSTR4_C64(subsd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6299 6300 { BS3_INSTR4_C64(vsubsd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 6301 { BS3_INSTR4_C64(vsubsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6552 6302 }; 6553 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 6554 { 6555 { bs3CpuInstr4_subsd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6556 { bs3CpuInstr4_subsd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6557 6558 { bs3CpuInstr4_vsubsd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6559 { bs3CpuInstr4_vsubsd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6560 }; 6561 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 6562 { 6563 { bs3CpuInstr4_subsd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6564 { bs3CpuInstr4_subsd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6565 6566 { bs3CpuInstr4_vsubsd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6567 { bs3CpuInstr4_vsubsd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6568 6569 { bs3CpuInstr4_subsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 6570 { bs3CpuInstr4_subsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 6571 6572 { bs3CpuInstr4_vsubsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 6573 { bs3CpuInstr4_vsubsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 6574 }; 6575 6576 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 6577 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 6578 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 6579 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 6303 6304 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 6580 6305 } 6581 6306 … … 6863 6588 }; 6864 6589 6865 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =6590 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 6866 6591 { 6867 { bs3CpuInstr4_hsubps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6868 { bs3CpuInstr4_hsubps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6869 6870 { bs3CpuInstr4_vhsubps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6871 { bs3CpuInstr4_vhsubps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6872 6873 { bs3CpuInstr4_vhsubps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 6874 { bs3CpuInstr4_vhsubps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6592 { BS3_INSTR4_ALL(hsubps_XMM1_XMM2), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 6593 { BS3_INSTR4_ALL(hsubps_XMM1_FSxBX), 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6594 6595 { BS3_INSTR4_ALL(vhsubps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 6596 { BS3_INSTR4_ALL(vhsubps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6597 6598 { BS3_INSTR4_ALL(vhsubps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 6599 { BS3_INSTR4_ALL(vhsubps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6600 6601 { BS3_INSTR4_C64(hsubps_XMM8_XMM9), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 6602 { BS3_INSTR4_C64(hsubps_XMM8_FSxBX), 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6603 6604 { BS3_INSTR4_C64(vhsubps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 6605 { BS3_INSTR4_C64(vhsubps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6606 { BS3_INSTR4_C64(vhsubps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 6607 { BS3_INSTR4_C64(vhsubps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6875 6608 }; 6876 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 6877 { 6878 { bs3CpuInstr4_hsubps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6879 { bs3CpuInstr4_hsubps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6880 6881 { bs3CpuInstr4_vhsubps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6882 { bs3CpuInstr4_vhsubps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6883 6884 { bs3CpuInstr4_vhsubps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 6885 { bs3CpuInstr4_vhsubps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6886 }; 6887 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 6888 { 6889 { bs3CpuInstr4_hsubps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 6890 { bs3CpuInstr4_hsubps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 6891 6892 { bs3CpuInstr4_vhsubps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 6893 { bs3CpuInstr4_vhsubps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6894 6895 { bs3CpuInstr4_vhsubps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 6896 { bs3CpuInstr4_vhsubps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6897 6898 { bs3CpuInstr4_hsubps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 6899 { bs3CpuInstr4_hsubps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 6900 6901 { bs3CpuInstr4_vhsubps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 6902 { bs3CpuInstr4_vhsubps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 6903 { bs3CpuInstr4_vhsubps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 6904 { bs3CpuInstr4_vhsubps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 6905 }; 6906 6907 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 6908 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 6909 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 6910 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 6609 6610 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 6911 6611 } 6912 6612 … … 7136 6836 }; 7137 6837 7138 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =6838 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 7139 6839 { 7140 { bs3CpuInstr4_hsubpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7141 { bs3CpuInstr4_hsubpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7142 7143 { bs3CpuInstr4_vhsubpd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7144 { bs3CpuInstr4_vhsubpd_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7145 7146 { bs3CpuInstr4_vhsubpd_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7147 { bs3CpuInstr4_vhsubpd_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 6840 { BS3_INSTR4_ALL(hsubpd_XMM1_XMM2), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 6841 { BS3_INSTR4_ALL(hsubpd_XMM1_FSxBX), 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6842 6843 { BS3_INSTR4_ALL(vhsubpd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 6844 { BS3_INSTR4_ALL(vhsubpd_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6845 6846 { BS3_INSTR4_ALL(vhsubpd_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 6847 { BS3_INSTR4_ALL(vhsubpd_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6848 6849 { BS3_INSTR4_C64(hsubpd_XMM8_XMM9), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 6850 { BS3_INSTR4_C64(hsubpd_XMM8_FSxBX), 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6851 6852 { BS3_INSTR4_C64(vhsubpd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 6853 { BS3_INSTR4_C64(vhsubpd_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 6854 { BS3_INSTR4_C64(vhsubpd_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 6855 { BS3_INSTR4_C64(vhsubpd_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7148 6856 }; 7149 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 7150 { 7151 { bs3CpuInstr4_hsubpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7152 { bs3CpuInstr4_hsubpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7153 7154 { bs3CpuInstr4_vhsubpd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7155 { bs3CpuInstr4_vhsubpd_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7156 7157 { bs3CpuInstr4_vhsubpd_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7158 { bs3CpuInstr4_vhsubpd_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7159 }; 7160 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 7161 { 7162 { bs3CpuInstr4_hsubpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7163 { bs3CpuInstr4_hsubpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7164 7165 { bs3CpuInstr4_vhsubpd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7166 { bs3CpuInstr4_vhsubpd_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7167 7168 { bs3CpuInstr4_vhsubpd_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7169 { bs3CpuInstr4_vhsubpd_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7170 7171 { bs3CpuInstr4_hsubpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 7172 { bs3CpuInstr4_hsubpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 7173 7174 { bs3CpuInstr4_vhsubpd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 7175 { bs3CpuInstr4_vhsubpd_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 7176 { bs3CpuInstr4_vhsubpd_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 7177 { bs3CpuInstr4_vhsubpd_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 7178 }; 7179 7180 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 7181 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 7182 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 7183 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 6857 6858 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 7184 6859 } 7185 6860 … … 7535 7210 }; 7536 7211 7537 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =7212 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 7538 7213 { 7539 { bs3CpuInstr4_mulps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7540 { bs3CpuInstr4_mulps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7541 7542 { bs3CpuInstr4_vmulps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7543 { bs3CpuInstr4_vmulps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7544 7545 { bs3CpuInstr4_vmulps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7546 { bs3CpuInstr4_vmulps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7214 { BS3_INSTR4_ALL(mulps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 7215 { BS3_INSTR4_ALL(mulps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7216 7217 { BS3_INSTR4_ALL(vmulps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 7218 { BS3_INSTR4_ALL(vmulps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7219 7220 { BS3_INSTR4_ALL(vmulps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 7221 { BS3_INSTR4_ALL(vmulps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7222 7223 { BS3_INSTR4_C64(mulps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 7224 { BS3_INSTR4_C64(mulps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7225 7226 { BS3_INSTR4_C64(vmulps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 7227 { BS3_INSTR4_C64(vmulps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7228 { BS3_INSTR4_C64(vmulps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 7229 { BS3_INSTR4_C64(vmulps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7547 7230 }; 7548 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 7549 { 7550 { bs3CpuInstr4_mulps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7551 { bs3CpuInstr4_mulps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7552 7553 { bs3CpuInstr4_vmulps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7554 { bs3CpuInstr4_vmulps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7555 7556 { bs3CpuInstr4_vmulps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7557 { bs3CpuInstr4_vmulps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7558 }; 7559 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 7560 { 7561 { bs3CpuInstr4_mulps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7562 { bs3CpuInstr4_mulps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7563 7564 { bs3CpuInstr4_vmulps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7565 { bs3CpuInstr4_vmulps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7566 7567 { bs3CpuInstr4_vmulps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7568 { bs3CpuInstr4_vmulps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7569 7570 { bs3CpuInstr4_mulps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 7571 { bs3CpuInstr4_mulps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 7572 7573 { bs3CpuInstr4_vmulps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 7574 { bs3CpuInstr4_vmulps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 7575 { bs3CpuInstr4_vmulps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 7576 { bs3CpuInstr4_vmulps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 7577 }; 7578 7579 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 7580 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 7581 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 7582 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 7231 7232 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 7583 7233 } 7584 7234 … … 7812 7462 }; 7813 7463 7814 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =7464 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 7815 7465 { 7816 { bs3CpuInstr4_mulpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7817 { bs3CpuInstr4_mulpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7818 7819 { bs3CpuInstr4_vmulpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7820 { bs3CpuInstr4_vmulpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7821 7822 { bs3CpuInstr4_vmulpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7823 { bs3CpuInstr4_vmulpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7466 { BS3_INSTR4_ALL(mulpd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 7467 { BS3_INSTR4_ALL(mulpd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7468 7469 { BS3_INSTR4_ALL(vmulpd_XMM1_XMM2_XMM3), X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 7470 { BS3_INSTR4_ALL(vmulpd_XMM1_XMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7471 7472 { BS3_INSTR4_ALL(vmulpd_YMM1_YMM2_YMM3), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 7473 { BS3_INSTR4_ALL(vmulpd_YMM1_YMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7474 7475 { BS3_INSTR4_C64(mulpd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 7476 { BS3_INSTR4_C64(mulpd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7477 7478 { BS3_INSTR4_C64(vmulpd_XMM8_XMM9_XMM10), X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 7479 { BS3_INSTR4_C64(vmulpd_XMM8_XMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7480 { BS3_INSTR4_C64(vmulpd_YMM8_YMM9_YMM10), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 7481 { BS3_INSTR4_C64(vmulpd_YMM8_YMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7824 7482 }; 7825 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 7826 { 7827 { bs3CpuInstr4_mulpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7828 { bs3CpuInstr4_mulpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7829 7830 { bs3CpuInstr4_vmulpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7831 { bs3CpuInstr4_vmulpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7832 7833 { bs3CpuInstr4_vmulpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7834 { bs3CpuInstr4_vmulpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7835 }; 7836 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 7837 { 7838 { bs3CpuInstr4_mulpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 7839 { bs3CpuInstr4_mulpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 7840 7841 { bs3CpuInstr4_vmulpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 7842 { bs3CpuInstr4_vmulpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7843 7844 { bs3CpuInstr4_vmulpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 7845 { bs3CpuInstr4_vmulpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7846 7847 { bs3CpuInstr4_mulpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 7848 { bs3CpuInstr4_mulpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 7849 7850 { bs3CpuInstr4_vmulpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 7851 { bs3CpuInstr4_vmulpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 7852 { bs3CpuInstr4_vmulpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 7853 { bs3CpuInstr4_vmulpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 7854 }; 7855 7856 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 7857 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 7858 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 7859 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 7483 7484 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 7860 7485 } 7861 7486 … … 8051 7676 }; 8052 7677 8053 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =7678 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 8054 7679 { 8055 { bs3CpuInstr4_mulss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8056 { bs3CpuInstr4_mulss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8057 8058 { bs3CpuInstr4_vmulss_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8059 { bs3CpuInstr4_vmulss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7680 { BS3_INSTR4_ALL(mulss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 7681 { BS3_INSTR4_ALL(mulss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7682 7683 { BS3_INSTR4_ALL(vmulss_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 7684 { BS3_INSTR4_ALL(vmulss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7685 7686 { BS3_INSTR4_C64(mulss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 7687 { BS3_INSTR4_C64(mulss_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7688 7689 { BS3_INSTR4_C64(vmulss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 7690 { BS3_INSTR4_C64(vmulss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8060 7691 }; 8061 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 8062 { 8063 { bs3CpuInstr4_mulss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8064 { bs3CpuInstr4_mulss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8065 8066 { bs3CpuInstr4_vmulss_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8067 { bs3CpuInstr4_vmulss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8068 }; 8069 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 8070 { 8071 { bs3CpuInstr4_mulss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8072 { bs3CpuInstr4_mulss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8073 8074 { bs3CpuInstr4_vmulss_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8075 { bs3CpuInstr4_vmulss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8076 8077 { bs3CpuInstr4_mulss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 8078 { bs3CpuInstr4_mulss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 8079 8080 { bs3CpuInstr4_vmulss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 8081 { bs3CpuInstr4_vmulss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 8082 }; 8083 8084 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 8085 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 8086 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 8087 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 7692 7693 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 8088 7694 } 8089 7695 … … 8345 7951 }; 8346 7952 8347 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =7953 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 8348 7954 { 8349 { bs3CpuInstr4_mulsd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8350 { bs3CpuInstr4_mulsd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8351 8352 { bs3CpuInstr4_vmulsd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8353 { bs3CpuInstr4_vmulsd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 7955 { BS3_INSTR4_ALL(mulsd_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 7956 { BS3_INSTR4_ALL(mulsd_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7957 7958 { BS3_INSTR4_ALL(vmulsd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 7959 { BS3_INSTR4_ALL(vmulsd_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7960 7961 { BS3_INSTR4_C64(mulsd_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 7962 { BS3_INSTR4_C64(mulsd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 7963 7964 { BS3_INSTR4_C64(vmulsd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 7965 { BS3_INSTR4_C64(vmulsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8354 7966 }; 8355 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 8356 { 8357 { bs3CpuInstr4_mulsd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8358 { bs3CpuInstr4_mulsd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8359 8360 { bs3CpuInstr4_vmulsd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8361 { bs3CpuInstr4_vmulsd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8362 }; 8363 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 8364 { 8365 { bs3CpuInstr4_mulsd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8366 { bs3CpuInstr4_mulsd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8367 8368 { bs3CpuInstr4_vmulsd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8369 { bs3CpuInstr4_vmulsd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8370 8371 { bs3CpuInstr4_mulsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 8372 { bs3CpuInstr4_mulsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 8373 8374 { bs3CpuInstr4_vmulsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 8375 { bs3CpuInstr4_vmulsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 8376 }; 8377 8378 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 8379 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 8380 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 8381 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 7967 7968 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 8382 7969 } 8383 7970 … … 8690 8277 }; 8691 8278 8692 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =8279 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 8693 8280 { 8694 { bs3CpuInstr4_divps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8695 { bs3CpuInstr4_divps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8696 8697 { bs3CpuInstr4_vdivps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8698 { bs3CpuInstr4_vdivps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8699 8700 { bs3CpuInstr4_vdivps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 8701 { bs3CpuInstr4_vdivps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8281 { BS3_INSTR4_ALL(divps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 8282 { BS3_INSTR4_ALL(divps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8283 8284 { BS3_INSTR4_ALL(vdivps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 8285 { BS3_INSTR4_ALL(vdivps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8286 8287 { BS3_INSTR4_ALL(vdivps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 8288 { BS3_INSTR4_ALL(vdivps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8289 8290 { BS3_INSTR4_C64(divps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 8291 { BS3_INSTR4_C64(divps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8292 8293 { BS3_INSTR4_C64(vdivps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 8294 { BS3_INSTR4_C64(vdivps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8295 { BS3_INSTR4_C64(vdivps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 8296 { BS3_INSTR4_C64(vdivps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8702 8297 }; 8703 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 8704 { 8705 { bs3CpuInstr4_divps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8706 { bs3CpuInstr4_divps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8707 8708 { bs3CpuInstr4_vdivps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8709 { bs3CpuInstr4_vdivps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8710 8711 { bs3CpuInstr4_vdivps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 8712 { bs3CpuInstr4_vdivps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8713 }; 8714 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 8715 { 8716 { bs3CpuInstr4_divps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 8717 { bs3CpuInstr4_divps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 8718 8719 { bs3CpuInstr4_vdivps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 8720 { bs3CpuInstr4_vdivps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8721 8722 { bs3CpuInstr4_vdivps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 8723 { bs3CpuInstr4_vdivps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8724 8725 { bs3CpuInstr4_divps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 8726 { bs3CpuInstr4_divps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 8727 8728 { bs3CpuInstr4_vdivps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 8729 { bs3CpuInstr4_vdivps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 8730 { bs3CpuInstr4_vdivps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 8731 { bs3CpuInstr4_vdivps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 8732 }; 8733 8734 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 8735 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 8736 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 8737 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 8298 8299 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 8738 8300 } 8739 8301 … … 9025 8587 }; 9026 8588 9027 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =8589 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 9028 8590 { 9029 { bs3CpuInstr4_divpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9030 { bs3CpuInstr4_divpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9031 9032 { bs3CpuInstr4_vdivpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9033 { bs3CpuInstr4_vdivpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9034 9035 { bs3CpuInstr4_vdivpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 9036 { bs3CpuInstr4_vdivpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8591 { BS3_INSTR4_ALL(divpd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 8592 { BS3_INSTR4_ALL(divpd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8593 8594 { BS3_INSTR4_ALL(vdivpd_XMM1_XMM2_XMM3), X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 8595 { BS3_INSTR4_ALL(vdivpd_XMM1_XMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8596 8597 { BS3_INSTR4_ALL(vdivpd_YMM1_YMM2_YMM3), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 8598 { BS3_INSTR4_ALL(vdivpd_YMM1_YMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8599 8600 { BS3_INSTR4_C64(divpd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 8601 { BS3_INSTR4_C64(divpd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8602 8603 { BS3_INSTR4_C64(vdivpd_XMM8_XMM9_XMM10), X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 8604 { BS3_INSTR4_C64(vdivpd_XMM8_XMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8605 { BS3_INSTR4_C64(vdivpd_YMM8_YMM9_YMM10), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 8606 { BS3_INSTR4_C64(vdivpd_YMM8_YMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9037 8607 }; 9038 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 9039 { 9040 { bs3CpuInstr4_divpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9041 { bs3CpuInstr4_divpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9042 9043 { bs3CpuInstr4_vdivpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9044 { bs3CpuInstr4_vdivpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9045 9046 { bs3CpuInstr4_vdivpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 9047 { bs3CpuInstr4_vdivpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9048 }; 9049 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 9050 { 9051 { bs3CpuInstr4_divpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9052 { bs3CpuInstr4_divpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9053 9054 { bs3CpuInstr4_vdivpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9055 { bs3CpuInstr4_vdivpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9056 9057 { bs3CpuInstr4_vdivpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 9058 { bs3CpuInstr4_vdivpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9059 9060 { bs3CpuInstr4_divpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 9061 { bs3CpuInstr4_divpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 9062 9063 { bs3CpuInstr4_vdivpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 9064 { bs3CpuInstr4_vdivpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 9065 { bs3CpuInstr4_vdivpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 9066 { bs3CpuInstr4_vdivpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 9067 }; 9068 9069 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 9070 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 9071 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 9072 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 8608 8609 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 9073 8610 } 9074 8611 … … 9264 8801 }; 9265 8802 9266 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =8803 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 9267 8804 { 9268 { bs3CpuInstr4_divss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9269 { bs3CpuInstr4_divss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9270 9271 { bs3CpuInstr4_vdivss_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9272 { bs3CpuInstr4_vdivss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 8805 { BS3_INSTR4_ALL(divss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 8806 { BS3_INSTR4_ALL(divss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8807 8808 { BS3_INSTR4_ALL(vdivss_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 8809 { BS3_INSTR4_ALL(vdivss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8810 8811 { BS3_INSTR4_C64(divss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 8812 { BS3_INSTR4_C64(divss_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 8813 8814 { BS3_INSTR4_C64(vdivss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 8815 { BS3_INSTR4_C64(vdivss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9273 8816 }; 9274 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 9275 { 9276 { bs3CpuInstr4_divss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9277 { bs3CpuInstr4_divss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9278 9279 { bs3CpuInstr4_vdivss_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9280 { bs3CpuInstr4_vdivss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9281 }; 9282 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 9283 { 9284 { bs3CpuInstr4_divss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9285 { bs3CpuInstr4_divss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9286 9287 { bs3CpuInstr4_vdivss_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9288 { bs3CpuInstr4_vdivss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9289 9290 { bs3CpuInstr4_divss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 9291 { bs3CpuInstr4_divss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 9292 9293 { bs3CpuInstr4_vdivss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 9294 { bs3CpuInstr4_vdivss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 9295 }; 9296 9297 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 9298 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 9299 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 9300 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 8817 8818 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 9301 8819 } 9302 8820 … … 9638 9156 }; 9639 9157 9640 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =9158 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 9641 9159 { 9642 { bs3CpuInstr4_divsd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9643 { bs3CpuInstr4_divsd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9644 9645 { bs3CpuInstr4_vdivsd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9646 { bs3CpuInstr4_vdivsd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9160 { BS3_INSTR4_ALL(divsd_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 9161 { BS3_INSTR4_ALL(divsd_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9162 9163 { BS3_INSTR4_ALL(vdivsd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 9164 { BS3_INSTR4_ALL(vdivsd_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9165 9166 { BS3_INSTR4_C64(divsd_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 9167 { BS3_INSTR4_C64(divsd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9168 9169 { BS3_INSTR4_C64(vdivsd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 9170 { BS3_INSTR4_C64(vdivsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9647 9171 }; 9648 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 9649 { 9650 { bs3CpuInstr4_divsd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9651 { bs3CpuInstr4_divsd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9652 9653 { bs3CpuInstr4_vdivsd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9654 { bs3CpuInstr4_vdivsd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9655 }; 9656 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 9657 { 9658 { bs3CpuInstr4_divsd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9659 { bs3CpuInstr4_divsd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9660 9661 { bs3CpuInstr4_vdivsd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 9662 { bs3CpuInstr4_vdivsd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9663 9664 { bs3CpuInstr4_divsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 9665 { bs3CpuInstr4_divsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 9666 9667 { bs3CpuInstr4_vdivsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 9668 { bs3CpuInstr4_vdivsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 9669 }; 9670 9671 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 9672 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 9673 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 9674 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 9172 9173 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 9675 9174 } 9676 9175 … … 9993 9492 }; 9994 9493 9995 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =9494 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 9996 9495 { 9997 { bs3CpuInstr4_addsubps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 9998 { bs3CpuInstr4_addsubps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 9999 10000 { bs3CpuInstr4_vaddsubps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10001 { bs3CpuInstr4_vaddsubps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10002 10003 { bs3CpuInstr4_vaddsubps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10004 { bs3CpuInstr4_vaddsubps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9496 { BS3_INSTR4_ALL(addsubps_XMM1_XMM2), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 9497 { BS3_INSTR4_ALL(addsubps_XMM1_FSxBX), 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9498 9499 { BS3_INSTR4_ALL(vaddsubps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 9500 { BS3_INSTR4_ALL(vaddsubps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9501 9502 { BS3_INSTR4_ALL(vaddsubps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 9503 { BS3_INSTR4_ALL(vaddsubps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9504 9505 { BS3_INSTR4_C64(addsubps_XMM8_XMM9), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 9506 { BS3_INSTR4_C64(addsubps_XMM8_FSxBX), 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9507 9508 { BS3_INSTR4_C64(vaddsubps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 9509 { BS3_INSTR4_C64(vaddsubps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9510 { BS3_INSTR4_C64(vaddsubps_YMM13_YMM14_YMM15), 255, RM_REG, T_AVX_256, YMM13, YMM14, YMM15, PASS_TEST_ARRAY(s_aValues) }, 9511 { BS3_INSTR4_C64(vaddsubps_YMM13_YMM14_FSxBX), 255, RM_MEM, T_AVX_256, YMM13, YMM14, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10005 9512 }; 10006 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 10007 { 10008 { bs3CpuInstr4_addsubps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10009 { bs3CpuInstr4_addsubps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10010 10011 { bs3CpuInstr4_vaddsubps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10012 { bs3CpuInstr4_vaddsubps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10013 10014 { bs3CpuInstr4_vaddsubps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10015 { bs3CpuInstr4_vaddsubps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10016 }; 10017 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 10018 { 10019 { bs3CpuInstr4_addsubps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10020 { bs3CpuInstr4_addsubps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10021 10022 { bs3CpuInstr4_vaddsubps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10023 { bs3CpuInstr4_vaddsubps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10024 10025 { bs3CpuInstr4_vaddsubps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10026 { bs3CpuInstr4_vaddsubps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10027 10028 { bs3CpuInstr4_addsubps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 10029 { bs3CpuInstr4_addsubps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 10030 10031 { bs3CpuInstr4_vaddsubps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 10032 { bs3CpuInstr4_vaddsubps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 10033 { bs3CpuInstr4_vaddsubps_YMM13_YMM14_YMM15_icebp_c64, 255, RM_REG, T_AVX_256, YMM13, YMM14, YMM15, PASS_ELEMENTS(s_aValues) }, 10034 { bs3CpuInstr4_vaddsubps_YMM13_YMM14_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM13, YMM14, FSxBX, PASS_ELEMENTS(s_aValues) }, 10035 }; 10036 10037 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 10038 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 10039 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 10040 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 9513 9514 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 10041 9515 } 10042 9516 … … 10441 9915 }; 10442 9916 10443 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =9917 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 10444 9918 { 10445 { bs3CpuInstr4_addsubpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10446 { bs3CpuInstr4_addsubpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10447 10448 { bs3CpuInstr4_vaddsubpd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10449 { bs3CpuInstr4_vaddsubpd_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10450 10451 { bs3CpuInstr4_vaddsubpd_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10452 { bs3CpuInstr4_vaddsubpd_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 9919 { BS3_INSTR4_ALL(addsubpd_XMM1_XMM2), 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 9920 { BS3_INSTR4_ALL(addsubpd_XMM1_FSxBX), 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9921 9922 { BS3_INSTR4_ALL(vaddsubpd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 9923 { BS3_INSTR4_ALL(vaddsubpd_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9924 9925 { BS3_INSTR4_ALL(vaddsubpd_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 9926 { BS3_INSTR4_ALL(vaddsubpd_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9927 9928 { BS3_INSTR4_C64(addsubpd_XMM8_XMM9), 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 9929 { BS3_INSTR4_C64(addsubpd_XMM8_FSxBX), 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9930 9931 { BS3_INSTR4_C64(vaddsubpd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 9932 { BS3_INSTR4_C64(vaddsubpd_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 9933 { BS3_INSTR4_C64(vaddsubpd_YMM13_YMM14_YMM15), 255, RM_REG, T_AVX_256, YMM13, YMM14, YMM15, PASS_TEST_ARRAY(s_aValues) }, 9934 { BS3_INSTR4_C64(vaddsubpd_YMM13_YMM14_FSxBX), 255, RM_MEM, T_AVX_256, YMM13, YMM14, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10453 9935 }; 10454 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 10455 { 10456 { bs3CpuInstr4_addsubpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10457 { bs3CpuInstr4_addsubpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10458 10459 { bs3CpuInstr4_vaddsubpd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10460 { bs3CpuInstr4_vaddsubpd_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10461 10462 { bs3CpuInstr4_vaddsubpd_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10463 { bs3CpuInstr4_vaddsubpd_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10464 }; 10465 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 10466 { 10467 { bs3CpuInstr4_addsubpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE3, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10468 { bs3CpuInstr4_addsubpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10469 10470 { bs3CpuInstr4_vaddsubpd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10471 { bs3CpuInstr4_vaddsubpd_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10472 10473 { bs3CpuInstr4_vaddsubpd_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10474 { bs3CpuInstr4_vaddsubpd_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10475 10476 { bs3CpuInstr4_addsubpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE3, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 10477 { bs3CpuInstr4_addsubpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE3, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 10478 10479 { bs3CpuInstr4_vaddsubpd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 10480 { bs3CpuInstr4_vaddsubpd_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 10481 { bs3CpuInstr4_vaddsubpd_YMM13_YMM14_YMM15_icebp_c64, 255, RM_REG, T_AVX_256, YMM13, YMM14, YMM15, PASS_ELEMENTS(s_aValues) }, 10482 { bs3CpuInstr4_vaddsubpd_YMM13_YMM14_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM13, YMM14, FSxBX, PASS_ELEMENTS(s_aValues) }, 10483 }; 10484 10485 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 10486 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 10487 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 10488 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 9936 9937 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 10489 9938 } 10490 9939 … … 10724 10173 }; 10725 10174 10726 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =10175 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 10727 10176 { 10728 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10729 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10730 10731 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10732 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10733 10734 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10735 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10177 { BS3_INSTR4_ALL(maxps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 10178 { BS3_INSTR4_ALL(maxps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10179 10180 { BS3_INSTR4_ALL(vmaxps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 10181 { BS3_INSTR4_ALL(vmaxps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10182 10183 { BS3_INSTR4_ALL(vmaxps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 10184 { BS3_INSTR4_ALL(vmaxps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10185 10186 { BS3_INSTR4_C64(maxps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 10187 { BS3_INSTR4_C64(maxps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10188 10189 { BS3_INSTR4_C64(vmaxps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 10190 { BS3_INSTR4_C64(vmaxps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10191 { BS3_INSTR4_C64(vmaxps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 10192 { BS3_INSTR4_C64(vmaxps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10736 10193 }; 10737 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 10738 { 10739 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10740 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10741 10742 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10743 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10744 10745 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10746 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10747 }; 10748 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 10749 { 10750 { bs3CpuInstr4_maxps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 10751 { bs3CpuInstr4_maxps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 10752 10753 { bs3CpuInstr4_vmaxps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 10754 { bs3CpuInstr4_vmaxps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10755 10756 { bs3CpuInstr4_vmaxps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 10757 { bs3CpuInstr4_vmaxps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10758 10759 { bs3CpuInstr4_maxps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 10760 { bs3CpuInstr4_maxps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 10761 10762 { bs3CpuInstr4_vmaxps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 10763 { bs3CpuInstr4_vmaxps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 10764 { bs3CpuInstr4_vmaxps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 10765 { bs3CpuInstr4_vmaxps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 10766 }; 10767 10768 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 10769 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 10770 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 10771 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 10194 10195 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 10772 10196 } 10773 10197 … … 11009 10433 }; 11010 10434 11011 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =10435 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 11012 10436 { 11013 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 11014 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 11015 11016 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 11017 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11018 11019 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 11020 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 10437 { BS3_INSTR4_ALL(maxpd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 10438 { BS3_INSTR4_ALL(maxpd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10439 10440 { BS3_INSTR4_ALL(vmaxpd_XMM1_XMM2_XMM3), X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 10441 { BS3_INSTR4_ALL(vmaxpd_XMM1_XMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10442 10443 { BS3_INSTR4_ALL(vmaxpd_YMM1_YMM2_YMM3), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 10444 { BS3_INSTR4_ALL(vmaxpd_YMM1_YMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10445 10446 { BS3_INSTR4_C64(maxpd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 10447 { BS3_INSTR4_C64(maxpd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10448 10449 { BS3_INSTR4_C64(vmaxpd_XMM8_XMM9_XMM10), X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 10450 { BS3_INSTR4_C64(vmaxpd_XMM8_XMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10451 { BS3_INSTR4_C64(vmaxpd_YMM8_YMM9_YMM10), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 10452 { BS3_INSTR4_C64(vmaxpd_YMM8_YMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11021 10453 }; 11022 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11023 { 11024 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 11025 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 11026 11027 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 11028 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11029 11030 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 11031 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11032 }; 11033 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11034 { 11035 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 11036 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 11037 11038 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 11039 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11040 11041 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 11042 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11043 11044 { bs3CpuInstr4_maxpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 11045 { bs3CpuInstr4_maxpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 11046 11047 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 11048 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 11049 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 11050 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 11051 }; 11052 11053 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11054 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11055 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11056 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 10454 10455 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 11057 10456 } 11058 10457 … … 11419 10818 }; 11420 10819 11421 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =10820 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 11422 10821 { 11423 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 11424 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 11425 11426 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 11427 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 10822 { BS3_INSTR4_ALL(maxss_XMM3_XMM4), 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_TEST_ARRAY(s_aValues) }, 10823 { BS3_INSTR4_ALL(maxss_XMM3_FSxBX), 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10824 10825 { BS3_INSTR4_ALL(vmaxss_XMM1_XMM6_XMM7), 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_TEST_ARRAY(s_aValues) }, 10826 { BS3_INSTR4_ALL(vmaxss_XMM1_XMM6_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10827 10828 { BS3_INSTR4_C64(maxss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 10829 { BS3_INSTR4_C64(maxss_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 10830 10831 { BS3_INSTR4_C64(vmaxss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 10832 { BS3_INSTR4_C64(vmaxss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11428 10833 }; 11429 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11430 { 11431 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 11432 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 11433 11434 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 11435 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 11436 }; 11437 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11438 { 11439 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 11440 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 11441 11442 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 11443 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 11444 11445 { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 11446 { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 11447 11448 { bs3CpuInstr4_vmaxss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 11449 { bs3CpuInstr4_vmaxss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 11450 }; 11451 11452 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11453 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11454 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11455 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 10834 10835 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 11456 10836 } 11457 10837 … … 11820 11200 }; 11821 11201 11822 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =11202 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 11823 11203 { 11824 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 11825 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 11826 11827 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 11828 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 11204 { BS3_INSTR4_ALL(maxsd_XMM3_XMM4), 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_TEST_ARRAY(s_aValues) }, 11205 { BS3_INSTR4_ALL(maxsd_XMM3_FSxBX), 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11206 11207 { BS3_INSTR4_ALL(vmaxsd_XMM1_XMM6_XMM7), 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_TEST_ARRAY(s_aValues) }, 11208 { BS3_INSTR4_ALL(vmaxsd_XMM1_XMM6_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11209 11210 { BS3_INSTR4_C64(maxsd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 11211 { BS3_INSTR4_C64(maxsd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11212 11213 { BS3_INSTR4_C64(vmaxsd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 11214 { BS3_INSTR4_C64(vmaxsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11829 11215 }; 11830 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11831 { 11832 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 11833 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 11834 11835 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 11836 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 11837 }; 11838 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11839 { 11840 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 11841 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 11842 11843 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 11844 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 11845 11846 { bs3CpuInstr4_maxsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 11847 { bs3CpuInstr4_maxsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 11848 11849 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 11850 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 11851 }; 11852 11853 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11854 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11855 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11856 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 11216 11217 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 11857 11218 } 11858 11219 … … 12092 11453 }; 12093 11454 12094 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =11455 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 12095 11456 { 12096 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 12097 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12098 12099 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 12100 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12101 12102 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 12103 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11457 { BS3_INSTR4_ALL(minps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 11458 { BS3_INSTR4_ALL(minps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11459 11460 { BS3_INSTR4_ALL(vminps_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 11461 { BS3_INSTR4_ALL(vminps_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11462 11463 { BS3_INSTR4_ALL(vminps_YMM1_YMM2_YMM3), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 11464 { BS3_INSTR4_ALL(vminps_YMM1_YMM2_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11465 11466 { BS3_INSTR4_C64(minps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 11467 { BS3_INSTR4_C64(minps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11468 11469 { BS3_INSTR4_C64(vminps_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 11470 { BS3_INSTR4_C64(vminps_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11471 { BS3_INSTR4_C64(vminps_YMM8_YMM9_YMM10), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 11472 { BS3_INSTR4_C64(vminps_YMM8_YMM9_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12104 11473 }; 12105 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 12106 { 12107 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 12108 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12109 12110 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 12111 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12112 12113 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 12114 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12115 }; 12116 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 12117 { 12118 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 12119 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12120 12121 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 12122 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12123 12124 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 12125 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12126 12127 { bs3CpuInstr4_minps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 12128 { bs3CpuInstr4_minps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 12129 12130 { bs3CpuInstr4_vminps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 12131 { bs3CpuInstr4_vminps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 12132 { bs3CpuInstr4_vminps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 12133 { bs3CpuInstr4_vminps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 12134 }; 12135 12136 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12137 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12138 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12139 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 11474 11475 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 12140 11476 } 12141 11477 … … 12377 11713 }; 12378 11714 12379 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =11715 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 12380 11716 { 12381 { bs3CpuInstr4_minpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 12382 { bs3CpuInstr4_minpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12383 12384 { bs3CpuInstr4_vminpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 12385 { bs3CpuInstr4_vminpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12386 12387 { bs3CpuInstr4_vminpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 12388 { bs3CpuInstr4_vminpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 11717 { BS3_INSTR4_ALL(minpd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 11718 { BS3_INSTR4_ALL(minpd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11719 11720 { BS3_INSTR4_ALL(vminpd_XMM1_XMM2_XMM3), X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 11721 { BS3_INSTR4_ALL(vminpd_XMM1_XMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11722 11723 { BS3_INSTR4_ALL(vminpd_YMM1_YMM2_YMM3), X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues) }, 11724 { BS3_INSTR4_ALL(vminpd_YMM1_YMM2_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11725 11726 { BS3_INSTR4_C64(minpd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 11727 { BS3_INSTR4_C64(minpd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11728 11729 { BS3_INSTR4_C64(vminpd_XMM8_XMM9_XMM10), X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 11730 { BS3_INSTR4_C64(vminpd_XMM8_XMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 11731 { BS3_INSTR4_C64(vminpd_YMM8_YMM9_YMM10), X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValues) }, 11732 { BS3_INSTR4_C64(vminpd_YMM8_YMM9_FSxBX), X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12389 11733 }; 12390 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 12391 { 12392 { bs3CpuInstr4_minpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 12393 { bs3CpuInstr4_minpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12394 12395 { bs3CpuInstr4_vminpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 12396 { bs3CpuInstr4_vminpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12397 12398 { bs3CpuInstr4_vminpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 12399 { bs3CpuInstr4_vminpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12400 }; 12401 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 12402 { 12403 { bs3CpuInstr4_minpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 12404 { bs3CpuInstr4_minpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12405 12406 { bs3CpuInstr4_vminpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 12407 { bs3CpuInstr4_vminpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12408 12409 { bs3CpuInstr4_vminpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues) }, 12410 { bs3CpuInstr4_vminpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 12411 12412 { bs3CpuInstr4_minpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 12413 { bs3CpuInstr4_minpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 12414 12415 { bs3CpuInstr4_vminpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 12416 { bs3CpuInstr4_vminpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 12417 { bs3CpuInstr4_vminpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValues) }, 12418 { bs3CpuInstr4_vminpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 12419 }; 12420 12421 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12422 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12423 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12424 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 11734 11735 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 12425 11736 } 12426 11737 … … 12787 12098 }; 12788 12099 12789 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =12100 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 12790 12101 { 12791 { bs3CpuInstr4_minss_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 12792 { bs3CpuInstr4_minss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 12793 12794 { bs3CpuInstr4_vminss_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 12795 { bs3CpuInstr4_vminss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 12102 { BS3_INSTR4_ALL(minss_XMM3_XMM4), 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_TEST_ARRAY(s_aValues) }, 12103 { BS3_INSTR4_ALL(minss_XMM3_FSxBX), 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12104 12105 { BS3_INSTR4_ALL(vminss_XMM1_XMM6_XMM7), 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_TEST_ARRAY(s_aValues) }, 12106 { BS3_INSTR4_ALL(vminss_XMM1_XMM6_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12107 12108 { BS3_INSTR4_C64(minss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 12109 { BS3_INSTR4_C64(minss_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12110 12111 { BS3_INSTR4_C64(vminss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 12112 { BS3_INSTR4_C64(vminss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12796 12113 }; 12797 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 12798 { 12799 { bs3CpuInstr4_minss_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 12800 { bs3CpuInstr4_minss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 12801 12802 { bs3CpuInstr4_vminss_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 12803 { bs3CpuInstr4_vminss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 12804 }; 12805 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 12806 { 12807 { bs3CpuInstr4_minss_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 12808 { bs3CpuInstr4_minss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 12809 12810 { bs3CpuInstr4_vminss_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 12811 { bs3CpuInstr4_vminss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 12812 12813 { bs3CpuInstr4_minss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 12814 { bs3CpuInstr4_minss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 12815 12816 { bs3CpuInstr4_vminss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 12817 { bs3CpuInstr4_vminss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 12818 }; 12819 12820 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12821 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12114 12822 12115 /** Note: Intel 64 & IA-32 Architecture SDM Vol 2B says Table 2-19, "Type 2 Class Exception Conditions."; testing says Type 3 */ 12823 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12824 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 12116 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 12825 12117 } 12826 12118 … … 13189 12481 }; 13190 12482 13191 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =12483 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 13192 12484 { 13193 { bs3CpuInstr4_minsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 13194 { bs3CpuInstr4_minsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 13195 13196 { bs3CpuInstr4_vminsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 13197 { bs3CpuInstr4_vminsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 12485 { BS3_INSTR4_ALL(minsd_XMM3_XMM4), 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_TEST_ARRAY(s_aValues) }, 12486 { BS3_INSTR4_ALL(minsd_XMM3_FSxBX), 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12487 12488 { BS3_INSTR4_ALL(vminsd_XMM1_XMM6_XMM7), 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_TEST_ARRAY(s_aValues) }, 12489 { BS3_INSTR4_ALL(vminsd_XMM1_XMM6_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12490 12491 { BS3_INSTR4_C64(minsd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 12492 { BS3_INSTR4_C64(minsd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12493 12494 { BS3_INSTR4_C64(vminsd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 12495 { BS3_INSTR4_C64(vminsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13198 12496 }; 13199 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 13200 { 13201 { bs3CpuInstr4_minsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 13202 { bs3CpuInstr4_minsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 13203 13204 { bs3CpuInstr4_vminsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 13205 { bs3CpuInstr4_vminsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 13206 }; 13207 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 13208 { 13209 { bs3CpuInstr4_minsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, XMM3, XMM3, XMM4, PASS_ELEMENTS(s_aValues) }, 13210 { bs3CpuInstr4_minsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM3, XMM3, FSxBX, PASS_ELEMENTS(s_aValues) }, 13211 13212 { bs3CpuInstr4_vminsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM6, XMM7, PASS_ELEMENTS(s_aValues) }, 13213 { bs3CpuInstr4_vminsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM6, FSxBX, PASS_ELEMENTS(s_aValues) }, 13214 13215 { bs3CpuInstr4_minsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 13216 { bs3CpuInstr4_minsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 13217 13218 { bs3CpuInstr4_vminsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 13219 { bs3CpuInstr4_vminsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 13220 }; 13221 13222 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 13223 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 13224 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 13225 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 12497 12498 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 13226 12499 } 13227 12500 … … 13509 12782 }; 13510 12783 13511 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =12784 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 13512 12785 { 13513 { bs3CpuInstr4_rcpps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 13514 { bs3CpuInstr4_rcpps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13515 13516 { bs3CpuInstr4_vrcpps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 13517 { bs3CpuInstr4_vrcpps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13518 13519 { bs3CpuInstr4_vrcpps_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 13520 { bs3CpuInstr4_vrcpps_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 12786 { BS3_INSTR4_ALL(rcpps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 12787 { BS3_INSTR4_ALL(rcpps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12788 12789 { BS3_INSTR4_ALL(vrcpps_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 12790 { BS3_INSTR4_ALL(vrcpps_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12791 12792 { BS3_INSTR4_ALL(vrcpps_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValues) }, 12793 { BS3_INSTR4_ALL(vrcpps_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12794 12795 { BS3_INSTR4_C64(rcpps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 12796 { BS3_INSTR4_C64(rcpps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12797 12798 { BS3_INSTR4_C64(vrcpps_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 12799 { BS3_INSTR4_C64(vrcpps_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 12800 { BS3_INSTR4_C64(vrcpps_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_TEST_ARRAY(s_aValues) }, 12801 { BS3_INSTR4_C64(vrcpps_YMM8_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13521 12802 }; 13522 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 13523 { 13524 { bs3CpuInstr4_rcpps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 13525 { bs3CpuInstr4_rcpps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13526 13527 { bs3CpuInstr4_vrcpps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 13528 { bs3CpuInstr4_vrcpps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13529 13530 { bs3CpuInstr4_vrcpps_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 13531 { bs3CpuInstr4_vrcpps_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13532 }; 13533 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 13534 { 13535 { bs3CpuInstr4_rcpps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 13536 { bs3CpuInstr4_rcpps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13537 13538 { bs3CpuInstr4_vrcpps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 13539 { bs3CpuInstr4_vrcpps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13540 13541 { bs3CpuInstr4_vrcpps_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 13542 { bs3CpuInstr4_vrcpps_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13543 13544 { bs3CpuInstr4_rcpps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 13545 { bs3CpuInstr4_rcpps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 13546 13547 { bs3CpuInstr4_vrcpps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 13548 { bs3CpuInstr4_vrcpps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 13549 { bs3CpuInstr4_vrcpps_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_ELEMENTS(s_aValues) }, 13550 { bs3CpuInstr4_vrcpps_YMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 13551 }; 13552 13553 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 13554 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 13555 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 13556 g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4)); 12803 12804 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig4)); 13557 12805 } 13558 12806 … … 14371 13619 }; 14372 13620 14373 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =13621 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 14374 13622 { 14375 { bs3CpuInstr4_rcpss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14376 { bs3CpuInstr4_rcpss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14377 14378 { bs3CpuInstr4_vrcpss_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 14379 { bs3CpuInstr4_vrcpss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 14380 14381 { bs3CpuInstr4_rcpss_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14382 { bs3CpuInstr4_vrcpss_XMM1_XMM1_XMM1_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14383 { bs3CpuInstr4_vrcpss_XMM1_XMM1_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14384 { bs3CpuInstr4_vrcpss_XMM1_XMM2_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 14385 { bs3CpuInstr4_vrcpss_XMM1_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 13623 { BS3_INSTR4_ALL(rcpss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 13624 { BS3_INSTR4_ALL(rcpss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13625 13626 { BS3_INSTR4_C64(rcpss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 13627 { BS3_INSTR4_C64(rcpss_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13628 13629 { BS3_INSTR4_ALL(vrcpss_XMM1_XMM2_XMM3), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 13630 { BS3_INSTR4_ALL(vrcpss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13631 13632 { BS3_INSTR4_C64(vrcpss_XMM13_XMM14_XMM15), X86_XCPT_AC, RM_REG, T_AVX_128, XMM13, XMM14, XMM15, PASS_TEST_ARRAY(s_aValues) }, 13633 { BS3_INSTR4_C64(vrcpss_XMM13_XMM14_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM13, XMM14, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13634 13635 { BS3_INSTR4_ALL(rcpss_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 13636 { BS3_INSTR4_ALL(vrcpss_XMM1_XMM1_XMM1), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 13637 { BS3_INSTR4_ALL(vrcpss_XMM1_XMM1_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 13638 { BS3_INSTR4_ALL(vrcpss_XMM1_XMM2_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 13639 { BS3_INSTR4_ALL(vrcpss_XMM1_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13640 { BS3_INSTR4_C64(vrcpss_XMM15_XMM15_XMM15), X86_XCPT_AC, RM_REG, T_AVX_128, XMM15, XMM15, XMM15, PASS_TEST_ARRAY(s_aValuesSR) }, 13641 { BS3_INSTR4_C64(vrcpss_XMM15_XMM15_XMM13), X86_XCPT_AC, RM_REG, T_AVX_128, XMM15, XMM15, XMM13, PASS_TEST_ARRAY(s_aValues) }, 13642 { BS3_INSTR4_C64(vrcpss_XMM13_XMM14_XMM14), X86_XCPT_AC, RM_REG, T_AVX_128, XMM13, XMM14, XMM14, PASS_TEST_ARRAY(s_aValuesSR) }, 14386 13643 }; 14387 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 14388 { 14389 { bs3CpuInstr4_rcpss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14390 { bs3CpuInstr4_rcpss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14391 14392 { bs3CpuInstr4_vrcpss_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 14393 { bs3CpuInstr4_vrcpss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 14394 14395 { bs3CpuInstr4_rcpss_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14396 { bs3CpuInstr4_vrcpss_XMM1_XMM1_XMM1_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14397 { bs3CpuInstr4_vrcpss_XMM1_XMM1_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14398 { bs3CpuInstr4_vrcpss_XMM1_XMM2_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 14399 { bs3CpuInstr4_vrcpss_XMM1_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14400 }; 14401 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 14402 { 14403 { bs3CpuInstr4_rcpss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14404 { bs3CpuInstr4_rcpss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14405 14406 { bs3CpuInstr4_rcpss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 14407 { bs3CpuInstr4_rcpss_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14408 14409 { bs3CpuInstr4_rcpss_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14410 14411 { bs3CpuInstr4_vrcpss_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 14412 { bs3CpuInstr4_vrcpss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 14413 14414 { bs3CpuInstr4_vrcpss_XMM13_XMM14_XMM15_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM13, XMM14, XMM15, PASS_ELEMENTS(s_aValues) }, 14415 { bs3CpuInstr4_vrcpss_XMM13_XMM14_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM13, XMM14, FSxBX, PASS_ELEMENTS(s_aValues) }, 14416 14417 { bs3CpuInstr4_rcpss_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14418 { bs3CpuInstr4_vrcpss_XMM1_XMM1_XMM1_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 14419 { bs3CpuInstr4_vrcpss_XMM1_XMM1_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14420 { bs3CpuInstr4_vrcpss_XMM1_XMM2_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 14421 { bs3CpuInstr4_vrcpss_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14422 { bs3CpuInstr4_vrcpss_XMM15_XMM15_XMM15_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM15, XMM15, XMM15, PASS_ELEMENTS(s_aValuesSR) }, 14423 { bs3CpuInstr4_vrcpss_XMM15_XMM15_XMM13_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM15, XMM15, XMM13, PASS_ELEMENTS(s_aValues) }, 14424 { bs3CpuInstr4_vrcpss_XMM13_XMM14_XMM14_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM13, XMM14, XMM14, PASS_ELEMENTS(s_aValuesSR) }, 14425 }; 14426 14427 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 14428 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 14429 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 14430 g_aXcptConfig5, RT_ELEMENTS(g_aXcptConfig5)); 13644 13645 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig5)); 14431 13646 } 14432 13647 … … 14679 13894 }; 14680 13895 14681 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =13896 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 14682 13897 { 14683 { bs3CpuInstr4_sqrtps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14684 { bs3CpuInstr4_sqrtps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14685 14686 { bs3CpuInstr4_vsqrtps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14687 { bs3CpuInstr4_vsqrtps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14688 14689 { bs3CpuInstr4_vsqrtps_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 14690 { bs3CpuInstr4_vsqrtps_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14691 14692 { bs3CpuInstr4_sqrtps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14693 { bs3CpuInstr4_vsqrtps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14694 { bs3CpuInstr4_vsqrtps_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 13898 { BS3_INSTR4_ALL(sqrtps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 13899 { BS3_INSTR4_ALL(sqrtps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13900 13901 { BS3_INSTR4_ALL(vsqrtps_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 13902 { BS3_INSTR4_ALL(vsqrtps_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13903 13904 { BS3_INSTR4_ALL(vsqrtps_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValues) }, 13905 { BS3_INSTR4_ALL(vsqrtps_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13906 13907 { BS3_INSTR4_C64(sqrtps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 13908 { BS3_INSTR4_C64(sqrtps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13909 13910 { BS3_INSTR4_C64(vsqrtps_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 13911 { BS3_INSTR4_C64(vsqrtps_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13912 { BS3_INSTR4_C64(vsqrtps_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_TEST_ARRAY(s_aValues) }, 13913 { BS3_INSTR4_C64(vsqrtps_YMM8_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 13914 13915 { BS3_INSTR4_ALL(sqrtps_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 13916 { BS3_INSTR4_C64(sqrtps_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValues) }, 13917 { BS3_INSTR4_ALL(vsqrtps_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 13918 { BS3_INSTR4_ALL(vsqrtps_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValues) }, 13919 { BS3_INSTR4_C64(vsqrtps_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValues) }, 14695 13920 }; 14696 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 14697 { 14698 { bs3CpuInstr4_sqrtps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14699 { bs3CpuInstr4_sqrtps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14700 14701 { bs3CpuInstr4_vsqrtps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14702 { bs3CpuInstr4_vsqrtps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14703 14704 { bs3CpuInstr4_vsqrtps_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 14705 { bs3CpuInstr4_vsqrtps_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14706 14707 { bs3CpuInstr4_sqrtps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14708 { bs3CpuInstr4_vsqrtps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14709 { bs3CpuInstr4_vsqrtps_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 14710 }; 14711 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 14712 { 14713 { bs3CpuInstr4_sqrtps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14714 { bs3CpuInstr4_sqrtps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14715 14716 { bs3CpuInstr4_vsqrtps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14717 { bs3CpuInstr4_vsqrtps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14718 14719 { bs3CpuInstr4_vsqrtps_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 14720 { bs3CpuInstr4_vsqrtps_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14721 14722 { bs3CpuInstr4_sqrtps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 14723 { bs3CpuInstr4_sqrtps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14724 14725 { bs3CpuInstr4_vsqrtps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 14726 { bs3CpuInstr4_vsqrtps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14727 { bs3CpuInstr4_vsqrtps_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_ELEMENTS(s_aValues) }, 14728 { bs3CpuInstr4_vsqrtps_YMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14729 14730 { bs3CpuInstr4_sqrtps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14731 { bs3CpuInstr4_sqrtps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValues) }, 14732 { bs3CpuInstr4_vsqrtps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14733 { bs3CpuInstr4_vsqrtps_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 14734 { bs3CpuInstr4_vsqrtps_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValues) }, 14735 }; 14736 14737 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 14738 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 14739 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 14740 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 13921 13922 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 14741 13923 } 14742 13924 … … 14945 14127 }; 14946 14128 14947 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =14129 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 14948 14130 { 14949 { bs3CpuInstr4_sqrtpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14950 { bs3CpuInstr4_sqrtpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14951 14952 { bs3CpuInstr4_vsqrtpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14953 { bs3CpuInstr4_vsqrtpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14954 14955 { bs3CpuInstr4_vsqrtpd_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 14956 { bs3CpuInstr4_vsqrtpd_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14957 14958 { bs3CpuInstr4_sqrtpd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14959 { bs3CpuInstr4_vsqrtpd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14960 { bs3CpuInstr4_vsqrtpd_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 14131 { BS3_INSTR4_ALL(sqrtpd_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 14132 { BS3_INSTR4_ALL(sqrtpd_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14133 14134 { BS3_INSTR4_ALL(vsqrtpd_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 14135 { BS3_INSTR4_ALL(vsqrtpd_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14136 14137 { BS3_INSTR4_ALL(vsqrtpd_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValues) }, 14138 { BS3_INSTR4_ALL(vsqrtpd_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14139 14140 { BS3_INSTR4_C64(sqrtpd_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 14141 { BS3_INSTR4_C64(sqrtpd_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14142 14143 { BS3_INSTR4_C64(vsqrtpd_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 14144 { BS3_INSTR4_C64(vsqrtpd_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14145 { BS3_INSTR4_C64(vsqrtpd_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_TEST_ARRAY(s_aValues) }, 14146 { BS3_INSTR4_C64(vsqrtpd_YMM8_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14147 14148 { BS3_INSTR4_ALL(sqrtpd_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 14149 { BS3_INSTR4_C64(sqrtpd_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValues) }, 14150 { BS3_INSTR4_ALL(vsqrtpd_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 14151 { BS3_INSTR4_ALL(vsqrtpd_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValues) }, 14152 { BS3_INSTR4_C64(vsqrtpd_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValues) }, 14961 14153 }; 14962 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 14963 { 14964 { bs3CpuInstr4_sqrtpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14965 { bs3CpuInstr4_sqrtpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14966 14967 { bs3CpuInstr4_vsqrtpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14968 { bs3CpuInstr4_vsqrtpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14969 14970 { bs3CpuInstr4_vsqrtpd_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 14971 { bs3CpuInstr4_vsqrtpd_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14972 14973 { bs3CpuInstr4_sqrtpd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14974 { bs3CpuInstr4_vsqrtpd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14975 { bs3CpuInstr4_vsqrtpd_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 14976 }; 14977 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 14978 { 14979 { bs3CpuInstr4_sqrtpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14980 { bs3CpuInstr4_sqrtpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14981 14982 { bs3CpuInstr4_vsqrtpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 14983 { bs3CpuInstr4_vsqrtpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14984 14985 { bs3CpuInstr4_vsqrtpd_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 14986 { bs3CpuInstr4_vsqrtpd_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14987 14988 { bs3CpuInstr4_sqrtpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 14989 { bs3CpuInstr4_sqrtpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14990 14991 { bs3CpuInstr4_vsqrtpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 14992 { bs3CpuInstr4_vsqrtpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14993 { bs3CpuInstr4_vsqrtpd_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_ELEMENTS(s_aValues) }, 14994 { bs3CpuInstr4_vsqrtpd_YMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 14995 14996 { bs3CpuInstr4_sqrtpd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14997 { bs3CpuInstr4_sqrtpd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValues) }, 14998 { bs3CpuInstr4_vsqrtpd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 14999 { bs3CpuInstr4_vsqrtpd_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 15000 { bs3CpuInstr4_vsqrtpd_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValues) }, 15001 }; 15002 15003 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 15004 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 15005 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 15006 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 14154 14155 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 15007 14156 } 15008 14157 … … 15380 14529 }; 15381 14530 15382 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =14531 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 15383 14532 { 15384 { bs3CpuInstr4_sqrtss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15385 { bs3CpuInstr4_sqrtss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15386 15387 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 15388 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 15389 15390 { bs3CpuInstr4_sqrtss_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15391 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM1_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15392 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15393 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 15394 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14533 { BS3_INSTR4_ALL(sqrtss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 14534 { BS3_INSTR4_ALL(sqrtss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14535 14536 { BS3_INSTR4_C64(sqrtss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 14537 { BS3_INSTR4_C64(sqrtss_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14538 14539 { BS3_INSTR4_ALL(vsqrtss_XMM1_XMM2_XMM3), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 14540 { BS3_INSTR4_ALL(vsqrtss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14541 14542 { BS3_INSTR4_C64(vsqrtss_XMM8_XMM9_XMM10), X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 14543 { BS3_INSTR4_C64(vsqrtss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14544 14545 { BS3_INSTR4_ALL(sqrtss_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 14546 { BS3_INSTR4_C64(sqrtss_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 14547 { BS3_INSTR4_ALL(vsqrtss_XMM1_XMM1_XMM1), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 14548 { BS3_INSTR4_ALL(vsqrtss_XMM1_XMM1_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 14549 { BS3_INSTR4_ALL(vsqrtss_XMM1_XMM2_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 14550 { BS3_INSTR4_C64(vsqrtss_XMM8_XMM8_XMM8), X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 14551 { BS3_INSTR4_ALL(vsqrtss_XMM1_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15395 14552 }; 15396 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 15397 { 15398 { bs3CpuInstr4_sqrtss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15399 { bs3CpuInstr4_sqrtss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15400 15401 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 15402 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 15403 15404 { bs3CpuInstr4_sqrtss_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15405 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM1_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15406 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15407 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 15408 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15409 }; 15410 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 15411 { 15412 { bs3CpuInstr4_sqrtss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15413 { bs3CpuInstr4_sqrtss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15414 15415 { bs3CpuInstr4_sqrtss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 15416 { bs3CpuInstr4_sqrtss_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 15417 15418 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 15419 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 15420 15421 { bs3CpuInstr4_vsqrtss_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 15422 { bs3CpuInstr4_vsqrtss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 15423 15424 { bs3CpuInstr4_sqrtss_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15425 { bs3CpuInstr4_sqrtss_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 15426 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM1_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15427 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15428 { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 15429 { bs3CpuInstr4_vsqrtss_XMM8_XMM8_XMM8_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 15430 { bs3CpuInstr4_vsqrtss_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15431 }; 15432 15433 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 15434 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 15435 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 15436 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 14553 14554 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 15437 14555 } 15438 14556 … … 15810 14928 }; 15811 14929 15812 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =14930 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 15813 14931 { 15814 { bs3CpuInstr4_sqrtsd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15815 { bs3CpuInstr4_sqrtsd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15816 15817 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 15818 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 15819 15820 { bs3CpuInstr4_sqrtsd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15821 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM1_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15822 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15823 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 15824 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 14932 { BS3_INSTR4_ALL(sqrtsd_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 14933 { BS3_INSTR4_ALL(sqrtsd_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14934 14935 { BS3_INSTR4_C64(sqrtsd_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 14936 { BS3_INSTR4_C64(sqrtsd_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14937 14938 { BS3_INSTR4_ALL(vsqrtsd_XMM1_XMM2_XMM3), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 14939 { BS3_INSTR4_ALL(vsqrtsd_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14940 14941 { BS3_INSTR4_C64(vsqrtsd_XMM8_XMM9_XMM10), X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 14942 { BS3_INSTR4_C64(vsqrtsd_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 14943 14944 { BS3_INSTR4_ALL(sqrtsd_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 14945 { BS3_INSTR4_C64(sqrtsd_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 14946 { BS3_INSTR4_ALL(vsqrtsd_XMM1_XMM1_XMM1), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 14947 { BS3_INSTR4_ALL(vsqrtsd_XMM1_XMM1_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 14948 { BS3_INSTR4_ALL(vsqrtsd_XMM1_XMM2_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 14949 { BS3_INSTR4_C64(vsqrtsd_XMM8_XMM8_XMM8), X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 14950 { BS3_INSTR4_ALL(vsqrtsd_XMM1_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15825 14951 }; 15826 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 15827 { 15828 { bs3CpuInstr4_sqrtsd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15829 { bs3CpuInstr4_sqrtsd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15830 15831 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 15832 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 15833 15834 { bs3CpuInstr4_sqrtsd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15835 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM1_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15836 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15837 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 15838 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15839 }; 15840 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 15841 { 15842 { bs3CpuInstr4_sqrtsd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15843 { bs3CpuInstr4_sqrtsd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15844 15845 { bs3CpuInstr4_sqrtsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 15846 { bs3CpuInstr4_sqrtsd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 15847 15848 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 15849 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 15850 15851 { bs3CpuInstr4_vsqrtsd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 15852 { bs3CpuInstr4_vsqrtsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 15853 15854 { bs3CpuInstr4_sqrtsd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15855 { bs3CpuInstr4_sqrtsd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 15856 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM1_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 15857 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 15858 { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 15859 { bs3CpuInstr4_vsqrtsd_XMM8_XMM8_XMM8_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 15860 { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 15861 }; 15862 15863 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 15864 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 15865 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 15866 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 14952 14953 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 15867 14954 } 15868 14955 … … 16060 15147 }; 16061 15148 16062 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =15149 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 16063 15150 { 16064 { bs3CpuInstr4_rsqrtps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16065 { bs3CpuInstr4_rsqrtps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16066 16067 { bs3CpuInstr4_vrsqrtps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16068 { bs3CpuInstr4_vrsqrtps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16069 16070 { bs3CpuInstr4_vrsqrtps_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 16071 { bs3CpuInstr4_vrsqrtps_YMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16072 16073 { bs3CpuInstr4_rsqrtps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 16074 { bs3CpuInstr4_vrsqrtps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 16075 { bs3CpuInstr4_vrsqrtps_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 15151 { BS3_INSTR4_ALL(rsqrtps_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 15152 { BS3_INSTR4_ALL(rsqrtps_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15153 15154 { BS3_INSTR4_ALL(vrsqrtps_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 15155 { BS3_INSTR4_ALL(vrsqrtps_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15156 15157 { BS3_INSTR4_ALL(vrsqrtps_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValues) }, 15158 { BS3_INSTR4_ALL(vrsqrtps_YMM1_FSxBX), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15159 15160 { BS3_INSTR4_C64(rsqrtps_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 15161 { BS3_INSTR4_C64(rsqrtps_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15162 15163 { BS3_INSTR4_C64(vrsqrtps_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 15164 { BS3_INSTR4_C64(vrsqrtps_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15165 { BS3_INSTR4_C64(vrsqrtps_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_TEST_ARRAY(s_aValues) }, 15166 { BS3_INSTR4_C64(vrsqrtps_YMM8_FSxBX), 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15167 15168 { BS3_INSTR4_ALL(rsqrtps_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 15169 { BS3_INSTR4_C64(rsqrtps_XMM8_XMM8), 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValues) }, 15170 { BS3_INSTR4_ALL(vrsqrtps_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 15171 { BS3_INSTR4_ALL(vrsqrtps_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_TEST_ARRAY(s_aValues) }, 15172 { BS3_INSTR4_C64(vrsqrtps_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_TEST_ARRAY(s_aValues) }, 16076 15173 }; 16077 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 16078 { 16079 { bs3CpuInstr4_rsqrtps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16080 { bs3CpuInstr4_rsqrtps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16081 16082 { bs3CpuInstr4_vrsqrtps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16083 { bs3CpuInstr4_vrsqrtps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16084 16085 { bs3CpuInstr4_vrsqrtps_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 16086 { bs3CpuInstr4_vrsqrtps_YMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16087 16088 { bs3CpuInstr4_rsqrtps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 16089 { bs3CpuInstr4_vrsqrtps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 16090 { bs3CpuInstr4_vrsqrtps_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 16091 }; 16092 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 16093 { 16094 { bs3CpuInstr4_rsqrtps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16095 { bs3CpuInstr4_rsqrtps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16096 16097 { bs3CpuInstr4_vrsqrtps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16098 { bs3CpuInstr4_vrsqrtps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16099 16100 { bs3CpuInstr4_vrsqrtps_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValues) }, 16101 { bs3CpuInstr4_vrsqrtps_YMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16102 16103 { bs3CpuInstr4_rsqrtps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 16104 { bs3CpuInstr4_rsqrtps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 16105 16106 { bs3CpuInstr4_vrsqrtps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 16107 { bs3CpuInstr4_vrsqrtps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 16108 { bs3CpuInstr4_vrsqrtps_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM9, PASS_ELEMENTS(s_aValues) }, 16109 { bs3CpuInstr4_vrsqrtps_YMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 16110 16111 { bs3CpuInstr4_rsqrtps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 16112 { bs3CpuInstr4_rsqrtps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValues) }, 16113 { bs3CpuInstr4_vrsqrtps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValues) }, 16114 { bs3CpuInstr4_vrsqrtps_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM1, PASS_ELEMENTS(s_aValues) }, 16115 { bs3CpuInstr4_vrsqrtps_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, YMM8, PASS_ELEMENTS(s_aValues) }, 16116 }; 16117 16118 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 16119 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 16120 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 16121 g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4)); 15174 15175 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig4)); 16122 15176 } 16123 15177 … … 16320 15374 /*256:out */ -1 }, 16321 15375 }; 16322 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =15376 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 16323 15377 { 16324 { bs3CpuInstr4_rsqrtss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16325 { bs3CpuInstr4_rsqrtss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16326 16327 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 16328 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 16329 16330 { bs3CpuInstr4_rsqrtss_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 16331 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_XMM1_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 16332 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16333 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_XMM2_icebp_c16, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 16334 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 15378 { BS3_INSTR4_ALL(rsqrtss_XMM1_XMM2), 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 15379 { BS3_INSTR4_ALL(rsqrtss_XMM1_FSxBX), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15380 15381 { BS3_INSTR4_C64(rsqrtss_XMM8_XMM9), 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 15382 { BS3_INSTR4_C64(rsqrtss_XMM8_FSxBX), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15383 15384 { BS3_INSTR4_ALL(vrsqrtss_XMM1_XMM2_XMM3), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 15385 { BS3_INSTR4_ALL(vrsqrtss_XMM1_XMM2_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15386 15387 { BS3_INSTR4_C64(vrsqrtss_XMM8_XMM9_XMM10), X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 15388 { BS3_INSTR4_C64(vrsqrtss_XMM8_XMM9_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 15389 15390 { BS3_INSTR4_ALL(rsqrtss_XMM1_XMM1), 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 15391 { BS3_INSTR4_ALL(vrsqrtss_XMM1_XMM1_XMM1), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 15392 { BS3_INSTR4_ALL(vrsqrtss_XMM1_XMM1_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 15393 { BS3_INSTR4_ALL(vrsqrtss_XMM1_XMM2_XMM2), X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 15394 { BS3_INSTR4_ALL(vrsqrtss_XMM1_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesSR) }, 15395 { BS3_INSTR4_C64(vrsqrtss_XMM8_XMM8_XMM8), X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 16335 15396 }; 16336 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 16337 { 16338 { bs3CpuInstr4_rsqrtss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16339 { bs3CpuInstr4_rsqrtss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16340 16341 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 16342 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 16343 16344 { bs3CpuInstr4_rsqrtss_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 16345 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_XMM1_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 16346 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16347 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_XMM2_icebp_c32, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 16348 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 16349 }; 16350 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 16351 { 16352 { bs3CpuInstr4_rsqrtss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16353 { bs3CpuInstr4_rsqrtss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 16354 16355 { bs3CpuInstr4_rsqrtss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 16356 { bs3CpuInstr4_rsqrtss_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 16357 16358 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 16359 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 16360 16361 { bs3CpuInstr4_vrsqrtss_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 16362 { bs3CpuInstr4_vrsqrtss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 16363 16364 { bs3CpuInstr4_rsqrtss_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 16365 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_XMM1_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 16366 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 16367 { bs3CpuInstr4_vrsqrtss_XMM1_XMM2_XMM2_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM1, XMM2, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 16368 { bs3CpuInstr4_vrsqrtss_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesSR) }, 16369 { bs3CpuInstr4_vrsqrtss_XMM8_XMM8_XMM8_icebp_c64, X86_XCPT_AC, RM_REG, T_AVX_128, XMM8, XMM8, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 16370 }; 16371 16372 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 16373 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 16374 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 16375 g_aXcptConfig5, RT_ELEMENTS(g_aXcptConfig5)); 15397 15398 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig5)); 16376 15399 } 16377 15400 … … 16832 15855 }; 16833 15856 16834 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =15857 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 16835 15858 { 16836 { bs3CpuInstr4_dpps_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues00) }, 16837 { bs3CpuInstr4_dpps_XMM1_XMM2_0E1h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesE1) }, 16838 { bs3CpuInstr4_dpps_XMM1_XMM2_0FFh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesFF) }, 16839 { bs3CpuInstr4_dpps_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16840 { bs3CpuInstr4_dpps_XMM1_FSxBX_0E1h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16841 { bs3CpuInstr4_dpps_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16842 16843 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_000h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues00) }, 16844 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_0E1h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesE1) }, 16845 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesFF) }, 16846 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_000h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16847 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_0E1h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16848 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_0FFh_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16849 16850 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_000h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues00) }, 16851 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_0E1h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValuesE1) }, 16852 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValuesFF) }, 16853 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_000h_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16854 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_0E1h_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16855 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_0FFh_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16856 16857 { bs3CpuInstr4_dpps_XMM1_XMM1_0E1h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16858 16859 { bs3CpuInstr4_vdpps_XMM1_XMM1_XMM1_0E1h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16860 { bs3CpuInstr4_vdpps_XMM1_XMM1_XMM2_0E1h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesE1) }, 16861 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM1_0E1h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesE1) }, 16862 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM2_0E1h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16863 { bs3CpuInstr4_vdpps_XMM1_XMM1_FSxBX_0E1h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16864 16865 { bs3CpuInstr4_vdpps_YMM1_YMM1_YMM1_0E1h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16866 { bs3CpuInstr4_vdpps_YMM1_YMM1_YMM2_0E1h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesE1) }, 16867 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM1_0E1h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM1, PASS_ELEMENTS(s_aValuesE1) }, 16868 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM2_0E1h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16869 { bs3CpuInstr4_vdpps_YMM1_YMM1_FSxBX_0E1h_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 15859 { BS3_INSTR4_ALL(dpps_XMM1_XMM2_000h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues00) }, 15860 { BS3_INSTR4_ALL(dpps_XMM1_XMM2_0E1h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesE1) }, 15861 { BS3_INSTR4_ALL(dpps_XMM1_XMM2_0FFh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesFF) }, 15862 { BS3_INSTR4_ALL(dpps_XMM1_FSxBX_000h), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues00) }, 15863 { BS3_INSTR4_ALL(dpps_XMM1_FSxBX_0E1h), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15864 { BS3_INSTR4_ALL(dpps_XMM1_FSxBX_0FFh), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesFF) }, 15865 { BS3_INSTR4_C64(dpps_XMM8_XMM9_0E1h), 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValuesE1) }, 15866 { BS3_INSTR4_C64(dpps_XMM8_FSxBX_0E1h), 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15867 15868 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_XMM3_000h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues00) }, 15869 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_XMM3_0E1h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesE1) }, 15870 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_XMM3_0FFh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesFF) }, 15871 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_FSxBX_000h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues00) }, 15872 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_FSxBX_0E1h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15873 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_FSxBX_0FFh), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesFF) }, 15874 { BS3_INSTR4_C64(vdpps_XMM8_XMM9_XMM10_0E1h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValuesE1) }, 15875 { BS3_INSTR4_C64(vdpps_XMM8_XMM9_FSxBX_0E1h), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15876 15877 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_YMM3_000h), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValues00) }, 15878 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_YMM3_0E1h), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValuesE1) }, 15879 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_YMM3_0FFh), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_TEST_ARRAY(s_aValuesFF) }, 15880 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_FSxBX_000h), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValues00) }, 15881 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_FSxBX_0E1h), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15882 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_FSxBX_0FFh), 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesFF) }, 15883 { BS3_INSTR4_C64(vdpps_YMM8_YMM9_YMM10_0E1h), 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_TEST_ARRAY(s_aValuesE1) }, 15884 { BS3_INSTR4_C64(vdpps_YMM8_YMM9_FSxBX_0E1h), 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15885 15886 { BS3_INSTR4_ALL(dpps_XMM1_XMM1_0E1h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15887 { BS3_INSTR4_C64(dpps_XMM8_XMM8_0E1h), 255, RM_REG, T_SSE4_1, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15888 15889 { BS3_INSTR4_ALL(vdpps_XMM1_XMM1_XMM1_0E1h), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15890 { BS3_INSTR4_ALL(vdpps_XMM1_XMM1_XMM2_0E1h), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesE1) }, 15891 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_XMM1_0E1h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_TEST_ARRAY(s_aValuesE1) }, 15892 { BS3_INSTR4_ALL(vdpps_XMM1_XMM2_XMM2_0E1h), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15893 { BS3_INSTR4_ALL(vdpps_XMM1_XMM1_FSxBX_0E1h), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15894 { BS3_INSTR4_C64(vdpps_XMM8_XMM8_XMM8_0E1h), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15895 { BS3_INSTR4_C64(vdpps_XMM8_XMM8_FSxBX_0E1h), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15896 15897 { BS3_INSTR4_ALL(vdpps_YMM1_YMM1_YMM1_0E1h), 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15898 { BS3_INSTR4_ALL(vdpps_YMM1_YMM1_YMM2_0E1h), 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_TEST_ARRAY(s_aValuesE1) }, 15899 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_YMM1_0E1h), 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM1, PASS_TEST_ARRAY(s_aValuesE1) }, 15900 { BS3_INSTR4_ALL(vdpps_YMM1_YMM2_YMM2_0E1h), 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15901 { BS3_INSTR4_ALL(vdpps_YMM1_YMM1_FSxBX_0E1h), 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 15902 { BS3_INSTR4_C64(vdpps_YMM8_YMM8_YMM8_0E1h), 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 15903 { BS3_INSTR4_C64(vdpps_YMM8_YMM8_FSxBX_0E1h), 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesE1) }, 16870 15904 }; 16871 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 16872 { 16873 { bs3CpuInstr4_dpps_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues00) }, 16874 { bs3CpuInstr4_dpps_XMM1_XMM2_0E1h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesE1) }, 16875 { bs3CpuInstr4_dpps_XMM1_XMM2_0FFh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesFF) }, 16876 { bs3CpuInstr4_dpps_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16877 { bs3CpuInstr4_dpps_XMM1_FSxBX_0E1h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16878 { bs3CpuInstr4_dpps_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16879 16880 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_000h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues00) }, 16881 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_0E1h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesE1) }, 16882 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesFF) }, 16883 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_000h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16884 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_0E1h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16885 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_0FFh_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16886 16887 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_000h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues00) }, 16888 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_0E1h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValuesE1) }, 16889 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValuesFF) }, 16890 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_000h_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16891 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_0E1h_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16892 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_0FFh_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16893 16894 { bs3CpuInstr4_dpps_XMM1_XMM1_0E1h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16895 16896 { bs3CpuInstr4_vdpps_XMM1_XMM1_XMM1_0E1h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16897 { bs3CpuInstr4_vdpps_XMM1_XMM1_XMM2_0E1h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesE1) }, 16898 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM1_0E1h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesE1) }, 16899 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM2_0E1h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16900 { bs3CpuInstr4_vdpps_XMM1_XMM1_FSxBX_0E1h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16901 16902 { bs3CpuInstr4_vdpps_YMM1_YMM1_YMM1_0E1h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16903 { bs3CpuInstr4_vdpps_YMM1_YMM1_YMM2_0E1h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesE1) }, 16904 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM1_0E1h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM1, PASS_ELEMENTS(s_aValuesE1) }, 16905 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM2_0E1h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16906 { bs3CpuInstr4_vdpps_YMM1_YMM1_FSxBX_0E1h_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16907 }; 16908 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 16909 { 16910 { bs3CpuInstr4_dpps_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues00) }, 16911 { bs3CpuInstr4_dpps_XMM1_XMM2_0E1h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesE1) }, 16912 { bs3CpuInstr4_dpps_XMM1_XMM2_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesFF) }, 16913 { bs3CpuInstr4_dpps_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16914 { bs3CpuInstr4_dpps_XMM1_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16915 { bs3CpuInstr4_dpps_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16916 { bs3CpuInstr4_dpps_XMM8_XMM9_0E1h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValuesE1) }, 16917 { bs3CpuInstr4_dpps_XMM8_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16918 16919 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_000h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues00) }, 16920 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesE1) }, 16921 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesFF) }, 16922 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_000h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16923 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16924 { bs3CpuInstr4_vdpps_XMM1_XMM2_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16925 { bs3CpuInstr4_vdpps_XMM8_XMM9_XMM10_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValuesE1) }, 16926 { bs3CpuInstr4_vdpps_XMM8_XMM9_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16927 16928 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_000h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValues00) }, 16929 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValuesE1) }, 16930 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM3, PASS_ELEMENTS(s_aValuesFF) }, 16931 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_000h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 16932 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16933 { bs3CpuInstr4_vdpps_YMM1_YMM2_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 16934 { bs3CpuInstr4_vdpps_YMM8_YMM9_YMM10_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, YMM10, PASS_ELEMENTS(s_aValuesE1) }, 16935 { bs3CpuInstr4_vdpps_YMM8_YMM9_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM9, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16936 16937 { bs3CpuInstr4_dpps_XMM1_XMM1_0E1h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16938 { bs3CpuInstr4_dpps_XMM8_XMM8_0E1h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16939 16940 { bs3CpuInstr4_vdpps_XMM1_XMM1_XMM1_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16941 { bs3CpuInstr4_vdpps_XMM1_XMM1_XMM2_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesE1) }, 16942 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM1_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesE1) }, 16943 { bs3CpuInstr4_vdpps_XMM1_XMM2_XMM2_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16944 { bs3CpuInstr4_vdpps_XMM1_XMM1_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16945 { bs3CpuInstr4_vdpps_XMM8_XMM8_XMM8_0E1h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16946 { bs3CpuInstr4_vdpps_XMM8_XMM8_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16947 16948 { bs3CpuInstr4_vdpps_YMM1_YMM1_YMM1_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16949 { bs3CpuInstr4_vdpps_YMM1_YMM1_YMM2_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, YMM2, PASS_ELEMENTS(s_aValuesE1) }, 16950 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM1_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, YMM1, PASS_ELEMENTS(s_aValuesE1) }, 16951 { bs3CpuInstr4_vdpps_YMM1_YMM2_YMM2_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16952 { bs3CpuInstr4_vdpps_YMM1_YMM1_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, YMM1, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16953 { bs3CpuInstr4_vdpps_YMM8_YMM8_YMM8_0E1h_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 16954 { bs3CpuInstr4_vdpps_YMM8_YMM8_FSxBX_0E1h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, YMM8, FSxBX, PASS_ELEMENTS(s_aValuesE1) }, 16955 }; 16956 16957 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16,s_aTests32,s_aTests64); 16958 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 16959 return bs3CpuInstr4_WorkerTestType1(bMode,s_aTests[iTest].paTests,s_aTests[iTest].cTests, 16960 g_aXcptConfig4,RT_ELEMENTS(g_aXcptConfig4)); 15905 15906 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig4)); 16961 15907 } 16962 15908 … … 17486 16432 }; 17487 16433 17488 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =16434 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 17489 16435 { 17490 { bs3CpuInstr4_dppd_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues00) }, 17491 { bs3CpuInstr4_dppd_XMM1_XMM2_022h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues22) }, 17492 { bs3CpuInstr4_dppd_XMM1_XMM2_0FFh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesFF) }, 17493 { bs3CpuInstr4_dppd_XMM1_FSxBX_000h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues00) }, 17494 { bs3CpuInstr4_dppd_XMM1_FSxBX_022h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17495 { bs3CpuInstr4_dppd_XMM1_FSxBX_0FFh_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 17496 17497 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_000h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues00) }, 17498 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_022h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues22) }, 17499 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesFF) }, 17500 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_000h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 17501 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_022h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17502 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_0FFh_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 17503 17504 { bs3CpuInstr4_dppd_XMM1_XMM1_022h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17505 17506 { bs3CpuInstr4_vdppd_XMM1_XMM1_XMM1_022h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17507 { bs3CpuInstr4_vdppd_XMM1_XMM1_XMM2_022h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues22) }, 17508 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM1_022h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues22) }, 17509 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM2_022h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17510 { bs3CpuInstr4_vdppd_XMM1_XMM1_FSxBX_022h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues22) }, 16436 { BS3_INSTR4_ALL(dppd_XMM1_XMM2_000h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues00) }, 16437 { BS3_INSTR4_ALL(dppd_XMM1_XMM2_022h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues22) }, 16438 { BS3_INSTR4_ALL(dppd_XMM1_XMM2_0FFh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesFF) }, 16439 { BS3_INSTR4_ALL(dppd_XMM1_FSxBX_000h), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues00) }, 16440 { BS3_INSTR4_ALL(dppd_XMM1_FSxBX_022h), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues22) }, 16441 { BS3_INSTR4_ALL(dppd_XMM1_FSxBX_0FFh), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesFF) }, 16442 { BS3_INSTR4_C64(dppd_XMM8_XMM9_022h), 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues22) }, 16443 { BS3_INSTR4_C64(dppd_XMM8_FSxBX_022h), 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues22) }, 16444 16445 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_XMM3_000h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues00) }, 16446 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_XMM3_022h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues22) }, 16447 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_XMM3_0FFh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesFF) }, 16448 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_FSxBX_000h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues00) }, 16449 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_FSxBX_022h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues22) }, 16450 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_FSxBX_0FFh), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesFF) }, 16451 { BS3_INSTR4_C64(vdppd_XMM8_XMM9_XMM10_022h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues22) }, 16452 { BS3_INSTR4_C64(vdppd_XMM8_XMM9_FSxBX_022h), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues22) }, 16453 16454 { BS3_INSTR4_ALL(dppd_XMM1_XMM1_022h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 16455 { BS3_INSTR4_C64(dppd_XMM8_XMM8_022h), 255, RM_REG, T_SSE4_1, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 16456 16457 { BS3_INSTR4_ALL(vdppd_XMM1_XMM1_XMM1_022h), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 16458 { BS3_INSTR4_ALL(vdppd_XMM1_XMM1_XMM2_022h), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues22) }, 16459 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_XMM1_022h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_TEST_ARRAY(s_aValues22) }, 16460 { BS3_INSTR4_ALL(vdppd_XMM1_XMM2_XMM2_022h), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 16461 { BS3_INSTR4_ALL(vdppd_XMM1_XMM1_FSxBX_022h), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues22) }, 16462 { BS3_INSTR4_C64(vdppd_XMM8_XMM8_XMM8_022h), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesSR) }, 16463 { BS3_INSTR4_C64(vdppd_XMM8_XMM8_FSxBX_022h), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues22) }, 17511 16464 }; 17512 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 17513 { 17514 { bs3CpuInstr4_dppd_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues00) }, 17515 { bs3CpuInstr4_dppd_XMM1_XMM2_022h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues22) }, 17516 { bs3CpuInstr4_dppd_XMM1_XMM2_0FFh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesFF) }, 17517 { bs3CpuInstr4_dppd_XMM1_FSxBX_000h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues00) }, 17518 { bs3CpuInstr4_dppd_XMM1_FSxBX_022h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17519 { bs3CpuInstr4_dppd_XMM1_FSxBX_0FFh_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 17520 17521 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_000h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues00) }, 17522 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_022h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues22) }, 17523 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesFF) }, 17524 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_000h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 17525 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_022h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17526 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_0FFh_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 17527 17528 { bs3CpuInstr4_dppd_XMM1_XMM1_022h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17529 17530 { bs3CpuInstr4_vdppd_XMM1_XMM1_XMM1_022h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17531 { bs3CpuInstr4_vdppd_XMM1_XMM1_XMM2_022h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues22) }, 17532 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM1_022h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues22) }, 17533 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM2_022h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17534 { bs3CpuInstr4_vdppd_XMM1_XMM1_FSxBX_022h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17535 }; 17536 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 17537 { 17538 { bs3CpuInstr4_dppd_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues00) }, 17539 { bs3CpuInstr4_dppd_XMM1_XMM2_022h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues22) }, 17540 { bs3CpuInstr4_dppd_XMM1_XMM2_0FFh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesFF) }, 17541 { bs3CpuInstr4_dppd_XMM1_FSxBX_000h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues00) }, 17542 { bs3CpuInstr4_dppd_XMM1_FSxBX_022h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17543 { bs3CpuInstr4_dppd_XMM1_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 17544 { bs3CpuInstr4_dppd_XMM8_XMM9_022h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues22) }, 17545 { bs3CpuInstr4_dppd_XMM8_FSxBX_022h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17546 17547 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_000h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues00) }, 17548 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues22) }, 17549 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesFF) }, 17550 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_000h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues00) }, 17551 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_022h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17552 { bs3CpuInstr4_vdppd_XMM1_XMM2_FSxBX_0FFh_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesFF) }, 17553 { bs3CpuInstr4_vdppd_XMM8_XMM9_XMM10_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues22) }, 17554 { bs3CpuInstr4_vdppd_XMM8_XMM9_FSxBX_022h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17555 17556 { bs3CpuInstr4_dppd_XMM1_XMM1_022h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17557 { bs3CpuInstr4_dppd_XMM8_XMM8_022h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17558 17559 { bs3CpuInstr4_vdppd_XMM1_XMM1_XMM1_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17560 { bs3CpuInstr4_vdppd_XMM1_XMM1_XMM2_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues22) }, 17561 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM1_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues22) }, 17562 { bs3CpuInstr4_vdppd_XMM1_XMM2_XMM2_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17563 { bs3CpuInstr4_vdppd_XMM1_XMM1_FSxBX_022h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17564 { bs3CpuInstr4_vdppd_XMM8_XMM8_XMM8_022h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesSR) }, 17565 { bs3CpuInstr4_vdppd_XMM8_XMM8_FSxBX_022h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues22) }, 17566 }; 17567 17568 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16,s_aTests32,s_aTests64); 17569 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 17570 return bs3CpuInstr4_WorkerTestType1(bMode,s_aTests[iTest].paTests,s_aTests[iTest].cTests, 17571 g_aXcptConfig4,RT_ELEMENTS(g_aXcptConfig4)); 16465 16466 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig4)); 17572 16467 } 17573 16468 … … 17649 16544 }; 17650 16545 17651 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =16546 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 17652 16547 { 17653 { bs3CpuInstr4_roundps_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17654 { bs3CpuInstr4_roundps_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17655 { bs3CpuInstr4_roundps_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17656 { bs3CpuInstr4_roundps_XMM1_XMM2_009h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17657 { bs3CpuInstr4_roundps_XMM1_XMM2_00ah_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17658 { bs3CpuInstr4_roundps_XMM1_XMM2_00bh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17659 { bs3CpuInstr4_roundps_XMM1_XMM2_00ch_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17660 { bs3CpuInstr4_roundps_XMM1_XMM2_00dh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17661 { bs3CpuInstr4_roundps_XMM1_XMM2_00eh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17662 { bs3CpuInstr4_roundps_XMM1_XMM2_00fh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17663 { bs3CpuInstr4_roundps_XMM1_XMM2_0ffh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17664 { bs3CpuInstr4_roundps_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17665 17666 { bs3CpuInstr4_vroundps_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17667 { bs3CpuInstr4_vroundps_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17668 { bs3CpuInstr4_vroundps_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17669 { bs3CpuInstr4_vroundps_XMM1_XMM2_009h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17670 { bs3CpuInstr4_vroundps_XMM1_XMM2_00ah_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17671 { bs3CpuInstr4_vroundps_XMM1_XMM2_00bh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17672 { bs3CpuInstr4_vroundps_XMM1_XMM2_00ch_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17673 { bs3CpuInstr4_vroundps_XMM1_XMM2_00dh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17674 { bs3CpuInstr4_vroundps_XMM1_XMM2_00eh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17675 { bs3CpuInstr4_vroundps_XMM1_XMM2_00fh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17676 { bs3CpuInstr4_vroundps_XMM1_XMM2_0ffh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17677 { bs3CpuInstr4_vroundps_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17678 17679 { bs3CpuInstr4_vroundps_YMM1_YMM1_008h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesNE) }, 17680 { bs3CpuInstr4_vroundps_YMM1_YMM2_000h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPE) }, 17681 { bs3CpuInstr4_vroundps_YMM1_YMM2_008h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNE) }, 17682 { bs3CpuInstr4_vroundps_YMM1_YMM2_009h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNI) }, 17683 { bs3CpuInstr4_vroundps_YMM1_YMM2_00ah_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPI) }, 17684 { bs3CpuInstr4_vroundps_YMM1_YMM2_00bh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesZR) }, 17685 { bs3CpuInstr4_vroundps_YMM1_YMM2_00ch_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17686 { bs3CpuInstr4_vroundps_YMM1_YMM2_00dh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17687 { bs3CpuInstr4_vroundps_YMM1_YMM2_00eh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17688 { bs3CpuInstr4_vroundps_YMM1_YMM2_00fh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17689 { bs3CpuInstr4_vroundps_YMM1_YMM2_0ffh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNV) }, 17690 { bs3CpuInstr4_vroundps_YMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 16548 { BS3_INSTR4_ALL(roundps_XMM1_XMM1_008h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16549 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_000h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16550 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_008h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16551 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_009h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16552 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_00ah), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16553 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_00bh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16554 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_00ch), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16555 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_00dh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16556 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_00eh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16557 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_00fh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16558 { BS3_INSTR4_ALL(roundps_XMM1_XMM2_0ffh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16559 { BS3_INSTR4_ALL(roundps_XMM1_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16560 { BS3_INSTR4_C64(roundps_XMM8_XMM8_008h), 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesNE) }, 16561 { BS3_INSTR4_C64(roundps_XMM8_XMM9_008h), 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16562 { BS3_INSTR4_C64(roundps_XMM8_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16563 16564 { BS3_INSTR4_ALL(vroundps_XMM1_XMM1_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16565 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_000h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16566 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16567 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_009h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16568 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_00ah), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16569 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_00bh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16570 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_00ch), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16571 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_00dh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16572 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_00eh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16573 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_00fh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16574 { BS3_INSTR4_ALL(vroundps_XMM1_XMM2_0ffh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16575 { BS3_INSTR4_ALL(vroundps_XMM1_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16576 { BS3_INSTR4_C64(vroundps_XMM8_XMM8_008h), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesNE) }, 16577 { BS3_INSTR4_C64(vroundps_XMM8_XMM9_008h), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16578 { BS3_INSTR4_C64(vroundps_XMM8_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16579 16580 { BS3_INSTR4_ALL(vroundps_YMM1_YMM1_008h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16581 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_000h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16582 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_008h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16583 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_009h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16584 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_00ah), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16585 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_00bh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16586 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_00ch), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16587 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_00dh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16588 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_00eh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16589 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_00fh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16590 { BS3_INSTR4_ALL(vroundps_YMM1_YMM2_0ffh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16591 { BS3_INSTR4_ALL(vroundps_YMM1_FSxBX_008h), 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16592 { BS3_INSTR4_C64(vroundps_YMM8_YMM8_008h), 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM8, PASS_TEST_ARRAY(s_aValuesNE) }, 16593 { BS3_INSTR4_C64(vroundps_YMM8_YMM9_008h), 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16594 { BS3_INSTR4_C64(vroundps_YMM8_FSxBX_008h), 255, RM_MEM, T_AVX_256, YMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 17691 16595 }; 17692 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 17693 { 17694 { bs3CpuInstr4_roundps_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17695 { bs3CpuInstr4_roundps_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17696 { bs3CpuInstr4_roundps_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17697 { bs3CpuInstr4_roundps_XMM1_XMM2_009h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17698 { bs3CpuInstr4_roundps_XMM1_XMM2_00ah_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17699 { bs3CpuInstr4_roundps_XMM1_XMM2_00bh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17700 { bs3CpuInstr4_roundps_XMM1_XMM2_00ch_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17701 { bs3CpuInstr4_roundps_XMM1_XMM2_00dh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17702 { bs3CpuInstr4_roundps_XMM1_XMM2_00eh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17703 { bs3CpuInstr4_roundps_XMM1_XMM2_00fh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17704 { bs3CpuInstr4_roundps_XMM1_XMM2_0ffh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17705 { bs3CpuInstr4_roundps_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17706 17707 { bs3CpuInstr4_vroundps_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17708 { bs3CpuInstr4_vroundps_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17709 { bs3CpuInstr4_vroundps_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17710 { bs3CpuInstr4_vroundps_XMM1_XMM2_009h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17711 { bs3CpuInstr4_vroundps_XMM1_XMM2_00ah_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17712 { bs3CpuInstr4_vroundps_XMM1_XMM2_00bh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17713 { bs3CpuInstr4_vroundps_XMM1_XMM2_00ch_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17714 { bs3CpuInstr4_vroundps_XMM1_XMM2_00dh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17715 { bs3CpuInstr4_vroundps_XMM1_XMM2_00eh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17716 { bs3CpuInstr4_vroundps_XMM1_XMM2_00fh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17717 { bs3CpuInstr4_vroundps_XMM1_XMM2_0ffh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17718 { bs3CpuInstr4_vroundps_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17719 17720 { bs3CpuInstr4_vroundps_YMM1_YMM1_008h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesNE) }, 17721 { bs3CpuInstr4_vroundps_YMM1_YMM2_000h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPE) }, 17722 { bs3CpuInstr4_vroundps_YMM1_YMM2_008h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNE) }, 17723 { bs3CpuInstr4_vroundps_YMM1_YMM2_009h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNI) }, 17724 { bs3CpuInstr4_vroundps_YMM1_YMM2_00ah_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPI) }, 17725 { bs3CpuInstr4_vroundps_YMM1_YMM2_00bh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesZR) }, 17726 { bs3CpuInstr4_vroundps_YMM1_YMM2_00ch_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17727 { bs3CpuInstr4_vroundps_YMM1_YMM2_00dh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17728 { bs3CpuInstr4_vroundps_YMM1_YMM2_00eh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17729 { bs3CpuInstr4_vroundps_YMM1_YMM2_00fh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17730 { bs3CpuInstr4_vroundps_YMM1_YMM2_0ffh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNV) }, 17731 { bs3CpuInstr4_vroundps_YMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17732 }; 17733 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 17734 { 17735 { bs3CpuInstr4_roundps_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17736 { bs3CpuInstr4_roundps_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17737 { bs3CpuInstr4_roundps_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17738 { bs3CpuInstr4_roundps_XMM1_XMM2_009h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17739 { bs3CpuInstr4_roundps_XMM1_XMM2_00ah_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17740 { bs3CpuInstr4_roundps_XMM1_XMM2_00bh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17741 { bs3CpuInstr4_roundps_XMM1_XMM2_00ch_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17742 { bs3CpuInstr4_roundps_XMM1_XMM2_00dh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17743 { bs3CpuInstr4_roundps_XMM1_XMM2_00eh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17744 { bs3CpuInstr4_roundps_XMM1_XMM2_00fh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17745 { bs3CpuInstr4_roundps_XMM1_XMM2_0ffh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17746 { bs3CpuInstr4_roundps_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17747 { bs3CpuInstr4_roundps_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesNE) }, 17748 { bs3CpuInstr4_roundps_XMM8_XMM9_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesNE) }, 17749 { bs3CpuInstr4_roundps_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17750 17751 { bs3CpuInstr4_vroundps_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17752 { bs3CpuInstr4_vroundps_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17753 { bs3CpuInstr4_vroundps_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17754 { bs3CpuInstr4_vroundps_XMM1_XMM2_009h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17755 { bs3CpuInstr4_vroundps_XMM1_XMM2_00ah_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17756 { bs3CpuInstr4_vroundps_XMM1_XMM2_00bh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17757 { bs3CpuInstr4_vroundps_XMM1_XMM2_00ch_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17758 { bs3CpuInstr4_vroundps_XMM1_XMM2_00dh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17759 { bs3CpuInstr4_vroundps_XMM1_XMM2_00eh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17760 { bs3CpuInstr4_vroundps_XMM1_XMM2_00fh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17761 { bs3CpuInstr4_vroundps_XMM1_XMM2_0ffh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17762 { bs3CpuInstr4_vroundps_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17763 { bs3CpuInstr4_vroundps_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesNE) }, 17764 { bs3CpuInstr4_vroundps_XMM8_XMM9_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesNE) }, 17765 { bs3CpuInstr4_vroundps_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17766 17767 { bs3CpuInstr4_vroundps_YMM1_YMM1_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesNE) }, 17768 { bs3CpuInstr4_vroundps_YMM1_YMM2_000h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPE) }, 17769 { bs3CpuInstr4_vroundps_YMM1_YMM2_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNE) }, 17770 { bs3CpuInstr4_vroundps_YMM1_YMM2_009h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNI) }, 17771 { bs3CpuInstr4_vroundps_YMM1_YMM2_00ah_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPI) }, 17772 { bs3CpuInstr4_vroundps_YMM1_YMM2_00bh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesZR) }, 17773 { bs3CpuInstr4_vroundps_YMM1_YMM2_00ch_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17774 { bs3CpuInstr4_vroundps_YMM1_YMM2_00dh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17775 { bs3CpuInstr4_vroundps_YMM1_YMM2_00eh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17776 { bs3CpuInstr4_vroundps_YMM1_YMM2_00fh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17777 { bs3CpuInstr4_vroundps_YMM1_YMM2_0ffh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNV) }, 17778 { bs3CpuInstr4_vroundps_YMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17779 { bs3CpuInstr4_vroundps_YMM8_YMM8_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM8, PASS_ELEMENTS(s_aValuesNE) }, 17780 { bs3CpuInstr4_vroundps_YMM8_YMM9_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM9, PASS_ELEMENTS(s_aValuesNE) }, 17781 { bs3CpuInstr4_vroundps_YMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17782 }; 17783 17784 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16,s_aTests32,s_aTests64); 17785 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 17786 return bs3CpuInstr4_WorkerTestType1(bMode,s_aTests[iTest].paTests,s_aTests[iTest].cTests, 17787 g_aXcptConfig2,RT_ELEMENTS(g_aXcptConfig2)); 16596 16597 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 17788 16598 } 17789 16599 … … 17865 16675 }; 17866 16676 17867 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =16677 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 17868 16678 { 17869 { bs3CpuInstr4_roundpd_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17870 { bs3CpuInstr4_roundpd_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17871 { bs3CpuInstr4_roundpd_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17872 { bs3CpuInstr4_roundpd_XMM1_XMM2_009h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17873 { bs3CpuInstr4_roundpd_XMM1_XMM2_00ah_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17874 { bs3CpuInstr4_roundpd_XMM1_XMM2_00bh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17875 { bs3CpuInstr4_roundpd_XMM1_XMM2_00ch_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17876 { bs3CpuInstr4_roundpd_XMM1_XMM2_00dh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17877 { bs3CpuInstr4_roundpd_XMM1_XMM2_00eh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17878 { bs3CpuInstr4_roundpd_XMM1_XMM2_00fh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17879 { bs3CpuInstr4_roundpd_XMM1_XMM2_0ffh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17880 { bs3CpuInstr4_roundpd_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17881 17882 { bs3CpuInstr4_vroundpd_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17883 { bs3CpuInstr4_vroundpd_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17884 { bs3CpuInstr4_vroundpd_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17885 { bs3CpuInstr4_vroundpd_XMM1_XMM2_009h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17886 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00ah_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17887 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00bh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17888 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00ch_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17889 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00dh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17890 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00eh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17891 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00fh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17892 { bs3CpuInstr4_vroundpd_XMM1_XMM2_0ffh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17893 { bs3CpuInstr4_vroundpd_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17894 17895 { bs3CpuInstr4_vroundpd_YMM1_YMM1_008h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesNE) }, 17896 { bs3CpuInstr4_vroundpd_YMM1_YMM2_000h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPE) }, 17897 { bs3CpuInstr4_vroundpd_YMM1_YMM2_008h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNE) }, 17898 { bs3CpuInstr4_vroundpd_YMM1_YMM2_009h_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNI) }, 17899 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00ah_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPI) }, 17900 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00bh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesZR) }, 17901 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00ch_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17902 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00dh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17903 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00eh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17904 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00fh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17905 { bs3CpuInstr4_vroundpd_YMM1_YMM2_0ffh_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNV) }, 17906 { bs3CpuInstr4_vroundpd_YMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 16679 { BS3_INSTR4_ALL(roundpd_XMM1_XMM1_008h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16680 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_000h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16681 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_008h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16682 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_009h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16683 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_00ah), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16684 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_00bh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16685 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_00ch), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16686 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_00dh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16687 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_00eh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16688 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_00fh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16689 { BS3_INSTR4_ALL(roundpd_XMM1_XMM2_0ffh), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16690 { BS3_INSTR4_ALL(roundpd_XMM1_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16691 { BS3_INSTR4_C64(roundpd_XMM8_XMM8_008h), 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesNE) }, 16692 { BS3_INSTR4_C64(roundpd_XMM8_XMM9_008h), 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16693 { BS3_INSTR4_C64(roundpd_XMM8_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16694 16695 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM1_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16696 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_000h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16697 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16698 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_009h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16699 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_00ah), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16700 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_00bh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16701 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_00ch), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16702 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_00dh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16703 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_00eh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16704 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_00fh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16705 { BS3_INSTR4_ALL(vroundpd_XMM1_XMM2_0ffh), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16706 { BS3_INSTR4_ALL(vroundpd_XMM1_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16707 { BS3_INSTR4_C64(vroundpd_XMM8_XMM8_008h), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesNE) }, 16708 { BS3_INSTR4_C64(vroundpd_XMM8_XMM9_008h), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16709 { BS3_INSTR4_C64(vroundpd_XMM8_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16710 16711 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM1_008h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16712 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_000h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16713 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_008h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16714 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_009h), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16715 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_00ah), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16716 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_00bh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16717 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_00ch), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16718 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_00dh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16719 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_00eh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16720 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_00fh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16721 { BS3_INSTR4_ALL(vroundpd_YMM1_YMM2_0ffh), 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16722 { BS3_INSTR4_ALL(vroundpd_YMM1_FSxBX_008h), 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16723 { BS3_INSTR4_C64(vroundpd_YMM8_YMM8_008h), 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM8, PASS_TEST_ARRAY(s_aValuesNE) }, 16724 { BS3_INSTR4_C64(vroundpd_YMM8_YMM9_008h), 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16725 { BS3_INSTR4_C64(vroundpd_YMM8_FSxBX_008h), 255, RM_MEM, T_AVX_256, YMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 17907 16726 }; 17908 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 17909 { 17910 { bs3CpuInstr4_roundpd_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17911 { bs3CpuInstr4_roundpd_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17912 { bs3CpuInstr4_roundpd_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17913 { bs3CpuInstr4_roundpd_XMM1_XMM2_009h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17914 { bs3CpuInstr4_roundpd_XMM1_XMM2_00ah_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17915 { bs3CpuInstr4_roundpd_XMM1_XMM2_00bh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17916 { bs3CpuInstr4_roundpd_XMM1_XMM2_00ch_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17917 { bs3CpuInstr4_roundpd_XMM1_XMM2_00dh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17918 { bs3CpuInstr4_roundpd_XMM1_XMM2_00eh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17919 { bs3CpuInstr4_roundpd_XMM1_XMM2_00fh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17920 { bs3CpuInstr4_roundpd_XMM1_XMM2_0ffh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17921 { bs3CpuInstr4_roundpd_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17922 17923 { bs3CpuInstr4_vroundpd_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17924 { bs3CpuInstr4_vroundpd_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17925 { bs3CpuInstr4_vroundpd_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17926 { bs3CpuInstr4_vroundpd_XMM1_XMM2_009h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17927 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00ah_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17928 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00bh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17929 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00ch_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17930 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00dh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17931 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00eh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17932 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00fh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17933 { bs3CpuInstr4_vroundpd_XMM1_XMM2_0ffh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17934 { bs3CpuInstr4_vroundpd_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17935 17936 { bs3CpuInstr4_vroundpd_YMM1_YMM1_008h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesNE) }, 17937 { bs3CpuInstr4_vroundpd_YMM1_YMM2_000h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPE) }, 17938 { bs3CpuInstr4_vroundpd_YMM1_YMM2_008h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNE) }, 17939 { bs3CpuInstr4_vroundpd_YMM1_YMM2_009h_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNI) }, 17940 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00ah_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPI) }, 17941 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00bh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesZR) }, 17942 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00ch_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17943 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00dh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17944 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00eh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17945 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00fh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17946 { bs3CpuInstr4_vroundpd_YMM1_YMM2_0ffh_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNV) }, 17947 { bs3CpuInstr4_vroundpd_YMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17948 }; 17949 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 17950 { 17951 { bs3CpuInstr4_roundpd_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17952 { bs3CpuInstr4_roundpd_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17953 { bs3CpuInstr4_roundpd_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17954 { bs3CpuInstr4_roundpd_XMM1_XMM2_009h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17955 { bs3CpuInstr4_roundpd_XMM1_XMM2_00ah_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17956 { bs3CpuInstr4_roundpd_XMM1_XMM2_00bh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17957 { bs3CpuInstr4_roundpd_XMM1_XMM2_00ch_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17958 { bs3CpuInstr4_roundpd_XMM1_XMM2_00dh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17959 { bs3CpuInstr4_roundpd_XMM1_XMM2_00eh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17960 { bs3CpuInstr4_roundpd_XMM1_XMM2_00fh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17961 { bs3CpuInstr4_roundpd_XMM1_XMM2_0ffh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17962 { bs3CpuInstr4_roundpd_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17963 { bs3CpuInstr4_roundpd_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesNE) }, 17964 { bs3CpuInstr4_roundpd_XMM8_XMM9_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesNE) }, 17965 { bs3CpuInstr4_roundpd_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17966 17967 { bs3CpuInstr4_vroundpd_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 17968 { bs3CpuInstr4_vroundpd_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 17969 { bs3CpuInstr4_vroundpd_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 17970 { bs3CpuInstr4_vroundpd_XMM1_XMM2_009h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 17971 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00ah_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 17972 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00bh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 17973 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00ch_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17974 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00dh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17975 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00eh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17976 { bs3CpuInstr4_vroundpd_XMM1_XMM2_00fh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 17977 { bs3CpuInstr4_vroundpd_XMM1_XMM2_0ffh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 17978 { bs3CpuInstr4_vroundpd_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17979 { bs3CpuInstr4_vroundpd_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesNE) }, 17980 { bs3CpuInstr4_vroundpd_XMM8_XMM9_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesNE) }, 17981 { bs3CpuInstr4_vroundpd_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17982 17983 { bs3CpuInstr4_vroundpd_YMM1_YMM1_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesNE) }, 17984 { bs3CpuInstr4_vroundpd_YMM1_YMM2_000h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPE) }, 17985 { bs3CpuInstr4_vroundpd_YMM1_YMM2_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNE) }, 17986 { bs3CpuInstr4_vroundpd_YMM1_YMM2_009h_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNI) }, 17987 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00ah_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesPI) }, 17988 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00bh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesZR) }, 17989 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00ch_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17990 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00dh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17991 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00eh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17992 { bs3CpuInstr4_vroundpd_YMM1_YMM2_00fh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesMX) }, 17993 { bs3CpuInstr4_vroundpd_YMM1_YMM2_0ffh_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesNV) }, 17994 { bs3CpuInstr4_vroundpd_YMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17995 { bs3CpuInstr4_vroundpd_YMM8_YMM8_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM8, PASS_ELEMENTS(s_aValuesNE) }, 17996 { bs3CpuInstr4_vroundpd_YMM8_YMM9_008h_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, NOREG, YMM9, PASS_ELEMENTS(s_aValuesNE) }, 17997 { bs3CpuInstr4_vroundpd_YMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_256, YMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 17998 }; 17999 18000 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16,s_aTests32,s_aTests64); 18001 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 18002 return bs3CpuInstr4_WorkerTestType1(bMode,s_aTests[iTest].paTests,s_aTests[iTest].cTests, 18003 g_aXcptConfig2,RT_ELEMENTS(g_aXcptConfig2)); 16727 16728 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 18004 16729 } 18005 16730 … … 18097 16822 }; 18098 16823 18099 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =16824 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 18100 16825 { 18101 { bs3CpuInstr4_roundss_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 18102 { bs3CpuInstr4_roundss_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18103 { bs3CpuInstr4_roundss_XMM1_XMM2_009h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 18104 { bs3CpuInstr4_roundss_XMM1_XMM2_00ah_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 18105 { bs3CpuInstr4_roundss_XMM1_XMM2_00bh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 18106 { bs3CpuInstr4_roundss_XMM1_XMM2_00ch_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18107 { bs3CpuInstr4_roundss_XMM1_XMM2_00dh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18108 { bs3CpuInstr4_roundss_XMM1_XMM2_00eh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18109 { bs3CpuInstr4_roundss_XMM1_XMM2_00fh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18110 { bs3CpuInstr4_roundss_XMM1_XMM2_0ffh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 18111 { bs3CpuInstr4_roundss_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18112 18113 { bs3CpuInstr4_vroundss_XMM1_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18114 { bs3CpuInstr4_vroundss_XMM1_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18115 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM1_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 18116 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_000h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPE) }, 18117 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNE) }, 18118 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_009h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNI) }, 18119 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00ah_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPI) }, 18120 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00bh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesZR) }, 18121 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00ch_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18122 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00dh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18123 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00eh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18124 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00fh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18125 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_0ffh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNV) }, 18126 { bs3CpuInstr4_vroundss_XMM1_XMM2_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18127 18128 { bs3CpuInstr4_roundss_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18129 { bs3CpuInstr4_vroundss_XMM1_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18130 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM2_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 16826 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_000h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16827 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_008h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16828 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_009h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16829 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_00ah), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16830 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_00bh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16831 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_00ch), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16832 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_00dh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16833 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_00eh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16834 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_00fh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16835 { BS3_INSTR4_ALL(roundss_XMM1_XMM2_0ffh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16836 { BS3_INSTR4_ALL(roundss_XMM1_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16837 { BS3_INSTR4_C64(roundss_XMM8_XMM9_008h), 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16838 { BS3_INSTR4_C64(roundss_XMM8_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16839 16840 { BS3_INSTR4_ALL(vroundss_XMM1_XMM1_XMM2_008h), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16841 { BS3_INSTR4_ALL(vroundss_XMM1_XMM1_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16842 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM1_008h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16843 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_000h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesPE) }, 16844 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_008h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesNE) }, 16845 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_009h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesNI) }, 16846 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_00ah), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesPI) }, 16847 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_00bh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesZR) }, 16848 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_00ch), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16849 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_00dh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16850 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_00eh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16851 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_00fh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16852 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM3_0ffh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesNV) }, 16853 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16854 { BS3_INSTR4_C64(vroundss_XMM8_XMM8_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16855 { BS3_INSTR4_C64(vroundss_XMM8_XMM9_XMM10_008h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValuesNE) }, 16856 { BS3_INSTR4_C64(vroundss_XMM8_XMM9_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16857 16858 { BS3_INSTR4_ALL(roundss_XMM1_XMM1_008h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 16859 { BS3_INSTR4_C64(roundss_XMM8_XMM8_008h), 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 16860 { BS3_INSTR4_ALL(vroundss_XMM1_XMM1_XMM1_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 16861 { BS3_INSTR4_ALL(vroundss_XMM1_XMM2_XMM2_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 16862 { BS3_INSTR4_C64(vroundss_XMM8_XMM8_XMM8_008h), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 18131 16863 }; 18132 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 18133 { 18134 { bs3CpuInstr4_roundss_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 18135 { bs3CpuInstr4_roundss_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18136 { bs3CpuInstr4_roundss_XMM1_XMM2_009h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 18137 { bs3CpuInstr4_roundss_XMM1_XMM2_00ah_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 18138 { bs3CpuInstr4_roundss_XMM1_XMM2_00bh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 18139 { bs3CpuInstr4_roundss_XMM1_XMM2_00ch_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18140 { bs3CpuInstr4_roundss_XMM1_XMM2_00dh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18141 { bs3CpuInstr4_roundss_XMM1_XMM2_00eh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18142 { bs3CpuInstr4_roundss_XMM1_XMM2_00fh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18143 { bs3CpuInstr4_roundss_XMM1_XMM2_0ffh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 18144 { bs3CpuInstr4_roundss_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18145 18146 { bs3CpuInstr4_vroundss_XMM1_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18147 { bs3CpuInstr4_vroundss_XMM1_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18148 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM1_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 18149 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_000h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPE) }, 18150 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNE) }, 18151 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_009h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNI) }, 18152 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00ah_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPI) }, 18153 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00bh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesZR) }, 18154 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00ch_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18155 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00dh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18156 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00eh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18157 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00fh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18158 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_0ffh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNV) }, 18159 { bs3CpuInstr4_vroundss_XMM1_XMM2_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18160 18161 { bs3CpuInstr4_roundss_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18162 { bs3CpuInstr4_vroundss_XMM1_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18163 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM2_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 18164 }; 18165 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 18166 { 18167 { bs3CpuInstr4_roundss_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 18168 { bs3CpuInstr4_roundss_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18169 { bs3CpuInstr4_roundss_XMM1_XMM2_009h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 18170 { bs3CpuInstr4_roundss_XMM1_XMM2_00ah_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 18171 { bs3CpuInstr4_roundss_XMM1_XMM2_00bh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 18172 { bs3CpuInstr4_roundss_XMM1_XMM2_00ch_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18173 { bs3CpuInstr4_roundss_XMM1_XMM2_00dh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18174 { bs3CpuInstr4_roundss_XMM1_XMM2_00eh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18175 { bs3CpuInstr4_roundss_XMM1_XMM2_00fh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18176 { bs3CpuInstr4_roundss_XMM1_XMM2_0ffh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 18177 { bs3CpuInstr4_roundss_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18178 { bs3CpuInstr4_roundss_XMM8_XMM9_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValuesNE) }, 18179 { bs3CpuInstr4_roundss_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18180 18181 { bs3CpuInstr4_vroundss_XMM1_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18182 { bs3CpuInstr4_vroundss_XMM1_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18183 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM1_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 18184 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_000h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPE) }, 18185 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNE) }, 18186 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_009h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNI) }, 18187 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00ah_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPI) }, 18188 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00bh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesZR) }, 18189 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00ch_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18190 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00dh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18191 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00eh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18192 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_00fh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18193 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM3_0ffh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNV) }, 18194 { bs3CpuInstr4_vroundss_XMM1_XMM2_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18195 { bs3CpuInstr4_vroundss_XMM8_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18196 { bs3CpuInstr4_vroundss_XMM8_XMM9_XMM10_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValuesNE) }, 18197 { bs3CpuInstr4_vroundss_XMM8_XMM9_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18198 18199 { bs3CpuInstr4_roundss_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18200 { bs3CpuInstr4_roundss_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 18201 { bs3CpuInstr4_vroundss_XMM1_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18202 { bs3CpuInstr4_vroundss_XMM1_XMM2_XMM2_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 18203 { bs3CpuInstr4_vroundss_XMM8_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 18204 }; 18205 18206 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16,s_aTests32,s_aTests64); 18207 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 18208 return bs3CpuInstr4_WorkerTestType1(bMode,s_aTests[iTest].paTests,s_aTests[iTest].cTests, 18209 g_aXcptConfig3,RT_ELEMENTS(g_aXcptConfig3)); 16864 16865 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 18210 16866 } 18211 16867 … … 18303 16959 }; 18304 16960 18305 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =16961 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 18306 16962 { 18307 { bs3CpuInstr4_roundsd_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 18308 { bs3CpuInstr4_roundsd_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18309 { bs3CpuInstr4_roundsd_XMM1_XMM2_009h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 18310 { bs3CpuInstr4_roundsd_XMM1_XMM2_00ah_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 18311 { bs3CpuInstr4_roundsd_XMM1_XMM2_00bh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 18312 { bs3CpuInstr4_roundsd_XMM1_XMM2_00ch_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18313 { bs3CpuInstr4_roundsd_XMM1_XMM2_00dh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18314 { bs3CpuInstr4_roundsd_XMM1_XMM2_00eh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18315 { bs3CpuInstr4_roundsd_XMM1_XMM2_00fh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18316 { bs3CpuInstr4_roundsd_XMM1_XMM2_0ffh_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 18317 { bs3CpuInstr4_roundsd_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18318 18319 { bs3CpuInstr4_vroundsd_XMM1_XMM1_XMM2_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18320 { bs3CpuInstr4_vroundsd_XMM1_XMM1_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18321 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM1_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 18322 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_000h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPE) }, 18323 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNE) }, 18324 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_009h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNI) }, 18325 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00ah_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPI) }, 18326 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00bh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesZR) }, 18327 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00ch_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18328 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00dh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18329 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00eh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18330 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00fh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18331 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_0ffh_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNV) }, 18332 { bs3CpuInstr4_vroundsd_XMM1_XMM2_FSxBX_008h_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18333 18334 { bs3CpuInstr4_roundsd_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18335 { bs3CpuInstr4_vroundsd_XMM1_XMM1_XMM1_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18336 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM2_008h_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 16963 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_000h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesPE) }, 16964 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_008h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16965 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_009h), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNI) }, 16966 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_00ah), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesPI) }, 16967 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_00bh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesZR) }, 16968 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_00ch), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16969 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_00dh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16970 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_00eh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16971 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_00fh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesMX) }, 16972 { BS3_INSTR4_ALL(roundsd_XMM1_XMM2_0ffh), 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNV) }, 16973 { BS3_INSTR4_ALL(roundsd_XMM1_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16974 { BS3_INSTR4_C64(roundsd_XMM8_XMM9_008h), 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValuesNE) }, 16975 { BS3_INSTR4_C64(roundsd_XMM8_FSxBX_008h), 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16976 16977 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM1_XMM2_008h), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValuesNE) }, 16978 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM1_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16979 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM1_008h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_TEST_ARRAY(s_aValuesNE) }, 16980 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_000h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesPE) }, 16981 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_008h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesNE) }, 16982 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_009h), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesNI) }, 16983 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_00ah), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesPI) }, 16984 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_00bh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesZR) }, 16985 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_00ch), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16986 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_00dh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16987 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_00eh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16988 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_00fh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesMX) }, 16989 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM3_0ffh), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValuesNV) }, 16990 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16991 { BS3_INSTR4_C64(vroundsd_XMM8_XMM8_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16992 { BS3_INSTR4_C64(vroundsd_XMM8_XMM9_XMM10_008h), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValuesNE) }, 16993 { BS3_INSTR4_C64(vroundsd_XMM8_XMM9_FSxBX_008h), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValuesNE) }, 16994 16995 { BS3_INSTR4_ALL(roundsd_XMM1_XMM1_008h), 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 16996 { BS3_INSTR4_C64(roundsd_XMM8_XMM8_008h), 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 16997 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM1_XMM1_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 16998 { BS3_INSTR4_ALL(vroundsd_XMM1_XMM2_XMM2_008h), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 16999 { BS3_INSTR4_C64(vroundsd_XMM8_XMM8_XMM8_008h), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 18337 17000 }; 18338 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 18339 { 18340 { bs3CpuInstr4_roundsd_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 18341 { bs3CpuInstr4_roundsd_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18342 { bs3CpuInstr4_roundsd_XMM1_XMM2_009h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 18343 { bs3CpuInstr4_roundsd_XMM1_XMM2_00ah_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 18344 { bs3CpuInstr4_roundsd_XMM1_XMM2_00bh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 18345 { bs3CpuInstr4_roundsd_XMM1_XMM2_00ch_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18346 { bs3CpuInstr4_roundsd_XMM1_XMM2_00dh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18347 { bs3CpuInstr4_roundsd_XMM1_XMM2_00eh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18348 { bs3CpuInstr4_roundsd_XMM1_XMM2_00fh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18349 { bs3CpuInstr4_roundsd_XMM1_XMM2_0ffh_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 18350 { bs3CpuInstr4_roundsd_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18351 18352 { bs3CpuInstr4_vroundsd_XMM1_XMM1_XMM2_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18353 { bs3CpuInstr4_vroundsd_XMM1_XMM1_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18354 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM1_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 18355 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_000h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPE) }, 18356 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNE) }, 18357 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_009h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNI) }, 18358 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00ah_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPI) }, 18359 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00bh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesZR) }, 18360 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00ch_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18361 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00dh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18362 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00eh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18363 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00fh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18364 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_0ffh_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNV) }, 18365 { bs3CpuInstr4_vroundsd_XMM1_XMM2_FSxBX_008h_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18366 18367 { bs3CpuInstr4_roundsd_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18368 { bs3CpuInstr4_vroundsd_XMM1_XMM1_XMM1_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18369 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM2_008h_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 18370 }; 18371 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 18372 { 18373 { bs3CpuInstr4_roundsd_XMM1_XMM2_000h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPE) }, 18374 { bs3CpuInstr4_roundsd_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18375 { bs3CpuInstr4_roundsd_XMM1_XMM2_009h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNI) }, 18376 { bs3CpuInstr4_roundsd_XMM1_XMM2_00ah_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesPI) }, 18377 { bs3CpuInstr4_roundsd_XMM1_XMM2_00bh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesZR) }, 18378 { bs3CpuInstr4_roundsd_XMM1_XMM2_00ch_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18379 { bs3CpuInstr4_roundsd_XMM1_XMM2_00dh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18380 { bs3CpuInstr4_roundsd_XMM1_XMM2_00eh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18381 { bs3CpuInstr4_roundsd_XMM1_XMM2_00fh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesMX) }, 18382 { bs3CpuInstr4_roundsd_XMM1_XMM2_0ffh_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNV) }, 18383 { bs3CpuInstr4_roundsd_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18384 { bs3CpuInstr4_roundsd_XMM8_XMM9_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValuesNE) }, 18385 { bs3CpuInstr4_roundsd_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_SSE4_1, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18386 18387 { bs3CpuInstr4_vroundsd_XMM1_XMM1_XMM2_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesNE) }, 18388 { bs3CpuInstr4_vroundsd_XMM1_XMM1_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18389 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM1_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValuesNE) }, 18390 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_000h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPE) }, 18391 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNE) }, 18392 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_009h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNI) }, 18393 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00ah_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesPI) }, 18394 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00bh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesZR) }, 18395 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00ch_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18396 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00dh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18397 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00eh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18398 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_00fh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesMX) }, 18399 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM3_0ffh_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValuesNV) }, 18400 { bs3CpuInstr4_vroundsd_XMM1_XMM2_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18401 { bs3CpuInstr4_vroundsd_XMM8_XMM8_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18402 { bs3CpuInstr4_vroundsd_XMM8_XMM9_XMM10_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValuesNE) }, 18403 { bs3CpuInstr4_vroundsd_XMM8_XMM9_FSxBX_008h_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValuesNE) }, 18404 18405 { bs3CpuInstr4_roundsd_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18406 { bs3CpuInstr4_roundsd_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_SSE4_1, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 18407 { bs3CpuInstr4_vroundsd_XMM1_XMM1_XMM1_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 18408 { bs3CpuInstr4_vroundsd_XMM1_XMM2_XMM2_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 18409 { bs3CpuInstr4_vroundsd_XMM8_XMM8_XMM8_008h_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 18410 }; 18411 18412 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16,s_aTests32,s_aTests64); 18413 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 18414 return bs3CpuInstr4_WorkerTestType1(bMode,s_aTests[iTest].paTests,s_aTests[iTest].cTests, 18415 g_aXcptConfig3,RT_ELEMENTS(g_aXcptConfig3)); 17001 17002 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 18416 17003 } 18417 17004 … … 18499 17086 */ 18500 17087 18501 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =17088 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 18502 17089 { 18503 { bs3CpuInstr4_cvtpi2ps_XMM1_MM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, MM1, XMM1, PASS_ELEMENTS(s_aValues) }, 18504 { bs3CpuInstr4_cvtpi2ps_XMM1_FSxBX_icebp_c16, BS3_XCPT_NOT_MF, RM_MEM, T_SSE2, XMM1, FSxBX, XMM1, PASS_ELEMENTS(s_aValues) }, 17090 { BS3_INSTR4_ALL(cvtpi2ps_XMM1_MM1), 255, RM_REG, T_SSE2, XMM1, MM1, XMM1, PASS_TEST_ARRAY(s_aValues) }, 17091 { BS3_INSTR4_ALL(cvtpi2ps_XMM1_FSxBX), BS3_XCPT_NOT_MF, RM_MEM, T_SSE2, XMM1, FSxBX, XMM1, PASS_TEST_ARRAY(s_aValues) }, 17092 { BS3_INSTR4_C64(cvtpi2ps_XMM8_MM1), 255, RM_REG, T_SSE2, XMM8, MM1, XMM8, PASS_TEST_ARRAY(s_aValues) }, 17093 { BS3_INSTR4_C64(cvtpi2ps_XMM8_FSxBX), BS3_XCPT_NOT_MF, RM_MEM, T_SSE2, XMM8, FSxBX, XMM8, PASS_TEST_ARRAY(s_aValues) }, 18505 17094 }; 18506 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 18507 { 18508 { bs3CpuInstr4_cvtpi2ps_XMM1_MM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, MM1, XMM1, PASS_ELEMENTS(s_aValues) }, 18509 { bs3CpuInstr4_cvtpi2ps_XMM1_FSxBX_icebp_c32, BS3_XCPT_NOT_MF, RM_MEM, T_SSE2, XMM1, FSxBX, XMM1, PASS_ELEMENTS(s_aValues) }, 18510 }; 18511 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 18512 { 18513 { bs3CpuInstr4_cvtpi2ps_XMM1_MM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, MM1, XMM1, PASS_ELEMENTS(s_aValues) }, 18514 { bs3CpuInstr4_cvtpi2ps_XMM1_FSxBX_icebp_c64, BS3_XCPT_NOT_MF, RM_MEM, T_SSE2, XMM1, FSxBX, XMM1, PASS_ELEMENTS(s_aValues) }, 18515 { bs3CpuInstr4_cvtpi2ps_XMM8_MM1_icebp_c64, 255, RM_REG, T_SSE2, XMM8, MM1, XMM8, PASS_ELEMENTS(s_aValues) }, 18516 { bs3CpuInstr4_cvtpi2ps_XMM8_FSxBX_icebp_c64, BS3_XCPT_NOT_MF, RM_MEM, T_SSE2, XMM8, FSxBX, XMM8, PASS_ELEMENTS(s_aValues) }, 18517 }; 18518 18519 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 18520 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 18521 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 18522 g_aXcptConfig23_5, RT_ELEMENTS(g_aXcptConfig23_5)); 17095 17096 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig23_5)); 18523 17097 } 18524 17098 … … 18640 17214 }; 18641 17215 18642 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 17216 17217 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 18643 17218 { 18644 { bs3CpuInstr4_cvtps2pi_MM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 18645 { bs3CpuInstr4_cvtps2pi_MM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 17219 { BS3_INSTR4_ALL(cvtps2pi_MM1_XMM1), 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 17220 { BS3_INSTR4_ALL(cvtps2pi_MM1_FSxBX), 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 17221 { BS3_INSTR4_C64(cvtps2pi_MM1_XMM8), 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18646 17222 }; 18647 17223 18648 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 18649 { 18650 { bs3CpuInstr4_cvtps2pi_MM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 18651 { bs3CpuInstr4_cvtps2pi_MM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18652 }; 18653 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 18654 { 18655 { bs3CpuInstr4_cvtps2pi_MM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 18656 { bs3CpuInstr4_cvtps2pi_MM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18657 { bs3CpuInstr4_cvtps2pi_MM1_XMM8_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 18658 }; 18659 18660 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 18661 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 18662 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 18663 g_aXcptConfig23_5, RT_ELEMENTS(g_aXcptConfig23_5)); 17224 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig23_5)); 18664 17225 } 18665 17226 … … 18781 17342 }; 18782 17343 18783 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 17344 17345 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 18784 17346 { 18785 { bs3CpuInstr4_cvttps2pi_MM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18786 { bs3CpuInstr4_cvttps2pi_MM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 17347 { BS3_INSTR4_ALL(cvttps2pi_MM1_FSxBX), 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 17348 { BS3_INSTR4_ALL(cvttps2pi_MM1_XMM1), 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 17349 { BS3_INSTR4_C64(cvttps2pi_MM1_XMM8), 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18787 17350 }; 18788 17351 18789 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 18790 { 18791 { bs3CpuInstr4_cvttps2pi_MM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18792 { bs3CpuInstr4_cvttps2pi_MM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 18793 }; 18794 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 18795 { 18796 { bs3CpuInstr4_cvttps2pi_MM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18797 { bs3CpuInstr4_cvttps2pi_MM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 18798 { bs3CpuInstr4_cvttps2pi_MM1_XMM8_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 18799 }; 18800 18801 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 18802 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 18803 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 18804 g_aXcptConfig23_5, RT_ELEMENTS(g_aXcptConfig23_5)); 17352 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig23_5)); 18805 17353 } 18806 17354 … … 19038 17586 */ 19039 17587 19040 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =17588 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 19041 17589 { 19042 { bs3CpuInstr4_cvtsi2ss_XMM1_EAX_icebp_c16, 255, RM_REG, T_SSE, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 19043 { bs3CpuInstr4_cvtsi2ss_XMM1_FSxBX_D_icebp_c16, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19044 19045 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_EAX_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_ELEMENTS(s_aValues32) }, 19046 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_FSxBX_D_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19047 19048 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_RAX_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_ELEMENTS(s_aValues64) }, 19049 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_FSxBX_Q_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19050 19051 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_EAX_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 19052 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_FSxBX_D_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19053 19054 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_RAX_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 19055 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_FSxBX_Q_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 17590 { BS3_INSTR4_ALL(cvtsi2ss_XMM1_EAX), 255, RM_REG, T_SSE, XMM1, XMM1, EAX, PASS_TEST_ARRAY(s_aValues32) }, 17591 { BS3_INSTR4_ALL(cvtsi2ss_XMM1_FSxBX_D), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 17592 { BS3_INSTR4_C64(cvtsi2ss_XMM8_R8D), 255, RM_REG, T_SSE, XMM8, XMM8, R8D, PASS_TEST_ARRAY(s_aValues32) }, 17593 { BS3_INSTR4_C64(cvtsi2ss_XMM8_FSxBX_D), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 17594 17595 { BS3_INSTR4_C64(cvtsi2ss_XMM1_RAX), 255, RM_REG, T_SSE, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 17596 { BS3_INSTR4_C64(cvtsi2ss_XMM1_FSxBX_Q), 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17597 { BS3_INSTR4_C64(cvtsi2ss_XMM8_R8), 255, RM_REG, T_SSE, XMM8, XMM8, R8, PASS_TEST_ARRAY(s_aValues64) }, 17598 { BS3_INSTR4_C64(cvtsi2ss_XMM8_FSxBX_Q), 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17599 17600 { BS3_INSTR4_ALL(vcvtsi2ss_XMM1_XMM2_EAX), 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_TEST_ARRAY(s_aValues32) }, 17601 { BS3_INSTR4_ALL(vcvtsi2ss_XMM1_XMM2_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 17602 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM9_R8D), 255, RM_REG, T_AVX_128, XMM8, XMM9, R8D, PASS_TEST_ARRAY(s_aValues32) }, 17603 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM9_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 17604 17605 { BS3_INSTR4_386(vcvtsi2ss_XMM1_XMM2_RAX), BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_TEST_ARRAY(s_aValues64) }, 17606 { BS3_INSTR4_C64(vcvtsi2ss_XMM1_XMM2_RAX), 255, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_TEST_ARRAY(s_aValues64) }, 17607 { BS3_INSTR4_386(vcvtsi2ss_XMM1_XMM2_FSxBX_Q), BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17608 { BS3_INSTR4_C64(vcvtsi2ss_XMM1_XMM2_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17609 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM9_R8), 255, RM_REG, T_AVX_128, XMM8, XMM9, R8, PASS_TEST_ARRAY(s_aValues64) }, 17610 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM9_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17611 17612 { BS3_INSTR4_ALL(vcvtsi2ss_XMM1_XMM1_EAX), 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_TEST_ARRAY(s_aValues32) }, 17613 { BS3_INSTR4_ALL(vcvtsi2ss_XMM1_XMM1_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 17614 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM8_R8D), 255, RM_REG, T_AVX_128, XMM8, XMM8, R8D, PASS_TEST_ARRAY(s_aValues32) }, 17615 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM8_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 17616 17617 { BS3_INSTR4_386(vcvtsi2ss_XMM1_XMM1_RAX), BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 17618 { BS3_INSTR4_C64(vcvtsi2ss_XMM1_XMM1_RAX), 255, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 17619 { BS3_INSTR4_386(vcvtsi2ss_XMM1_XMM1_FSxBX_Q), BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17620 { BS3_INSTR4_C64(vcvtsi2ss_XMM1_XMM1_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 17621 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM8_R8), 255, RM_REG, T_AVX_128, XMM8, XMM8, R8, PASS_TEST_ARRAY(s_aValues64) }, 17622 { BS3_INSTR4_C64(vcvtsi2ss_XMM8_XMM8_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19056 17623 }; 19057 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 19058 { 19059 { bs3CpuInstr4_cvtsi2ss_XMM1_EAX_icebp_c32, 255, RM_REG, T_SSE, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 19060 { bs3CpuInstr4_cvtsi2ss_XMM1_FSxBX_D_icebp_c32, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19061 19062 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_EAX_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_ELEMENTS(s_aValues32) }, 19063 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_FSxBX_D_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19064 19065 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_RAX_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_ELEMENTS(s_aValues64) }, 19066 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_FSxBX_Q_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19067 19068 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_EAX_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 19069 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_FSxBX_D_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19070 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_RAX_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 19071 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_FSxBX_Q_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19072 }; 19073 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 19074 { 19075 { bs3CpuInstr4_cvtsi2ss_XMM1_EAX_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 19076 { bs3CpuInstr4_cvtsi2ss_XMM1_FSxBX_D_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19077 { bs3CpuInstr4_cvtsi2ss_XMM8_R8D_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, R8D, PASS_ELEMENTS(s_aValues32) }, 19078 { bs3CpuInstr4_cvtsi2ss_XMM8_FSxBX_D_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19079 19080 { bs3CpuInstr4_cvtsi2ss_XMM1_RAX_icebp_c64, 255, RM_REG, T_SSE, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 19081 { bs3CpuInstr4_cvtsi2ss_XMM1_FSxBX_Q_icebp_c64, 255, RM_MEM, T_SSE, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19082 { bs3CpuInstr4_cvtsi2ss_XMM8_R8_icebp_c64, 255, RM_REG, T_SSE, XMM8, XMM8, R8, PASS_ELEMENTS(s_aValues64) }, 19083 { bs3CpuInstr4_cvtsi2ss_XMM8_FSxBX_Q_icebp_c64, 255, RM_MEM, T_SSE, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19084 19085 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_EAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_ELEMENTS(s_aValues32) }, 19086 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19087 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM9_R8D_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, R8D, PASS_ELEMENTS(s_aValues32) }, 19088 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM9_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19089 19090 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_RAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_ELEMENTS(s_aValues64) }, 19091 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM2_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19092 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM9_R8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, R8, PASS_ELEMENTS(s_aValues64) }, 19093 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM9_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19094 19095 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_EAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 19096 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19097 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM8_R8D_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, R8D, PASS_ELEMENTS(s_aValues32) }, 19098 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM8_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues32) }, 19099 19100 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_RAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 19101 { bs3CpuInstr4_vcvtsi2ss_XMM1_XMM1_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19102 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM8_R8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, R8, PASS_ELEMENTS(s_aValues64) }, 19103 { bs3CpuInstr4_vcvtsi2ss_XMM8_XMM8_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19104 }; 19105 19106 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 19107 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 19108 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 19109 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 17624 17625 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 19110 17626 } 19111 17627 … … 19495 18011 }; 19496 18012 19497 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 18013 18014 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 19498 18015 { 19499 { bs3CpuInstr4_cvtss2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19500 { bs3CpuInstr4_cvtss2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19501 19502 { bs3CpuInstr4_vcvtss2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19503 { bs3CpuInstr4_vcvtss2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19504 19505 { bs3CpuInstr4_vcvtss2si_RAX_XMM1_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19506 { bs3CpuInstr4_vcvtss2si_RAX_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 18016 { BS3_INSTR4_ALL(cvtss2si_EAX_XMM1), 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18017 { BS3_INSTR4_ALL(cvtss2si_EAX_FSxBX), 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18018 18019 { BS3_INSTR4_C64(cvtss2si_R8D_XMM8), 255, RM_REG, T_SSE, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18020 { BS3_INSTR4_C64(cvtss2si_R8D_FSxBX), 255, RM_MEM, T_SSE, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18021 18022 { BS3_INSTR4_ALL(vcvtss2si_EAX_XMM1), 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18023 { BS3_INSTR4_ALL(vcvtss2si_EAX_FSxBX), 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18024 18025 { BS3_INSTR4_C64(vcvtss2si_R8D_XMM8), 255, RM_REG, T_AVX_128, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18026 { BS3_INSTR4_C64(vcvtss2si_R8D_FSxBX), 255, RM_MEM, T_AVX_128, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18027 18028 { BS3_INSTR4_C64(cvtss2si_RAX_XMM1), 255, RM_REG, T_SSE, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18029 { BS3_INSTR4_C64(cvtss2si_RAX_FSxBX), 255, RM_MEM, T_SSE, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18030 18031 { BS3_INSTR4_C64(cvtss2si_R8_XMM8), 255, RM_REG, T_SSE, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18032 { BS3_INSTR4_C64(cvtss2si_R8_FSxBX), 255, RM_MEM, T_SSE, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18033 18034 { BS3_INSTR4_386(vcvtss2si_RAX_XMM1), BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18035 { BS3_INSTR4_C64(vcvtss2si_RAX_XMM1), 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18036 { BS3_INSTR4_386(vcvtss2si_RAX_FSxBX), BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18037 { BS3_INSTR4_C64(vcvtss2si_RAX_FSxBX), 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18038 18039 { BS3_INSTR4_C64(vcvtss2si_R8_XMM8), 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18040 { BS3_INSTR4_C64(vcvtss2si_R8_FSxBX), 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19507 18041 }; 19508 18042 19509 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 19510 { 19511 { bs3CpuInstr4_cvtss2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19512 { bs3CpuInstr4_cvtss2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19513 19514 { bs3CpuInstr4_vcvtss2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19515 { bs3CpuInstr4_vcvtss2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19516 19517 { bs3CpuInstr4_vcvtss2si_RAX_XMM1_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19518 { bs3CpuInstr4_vcvtss2si_RAX_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19519 }; 19520 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 19521 { 19522 { bs3CpuInstr4_cvtss2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_SSE, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 19523 { bs3CpuInstr4_cvtss2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 19524 19525 { bs3CpuInstr4_cvtss2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_SSE, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 19526 { bs3CpuInstr4_cvtss2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 19527 19528 { bs3CpuInstr4_vcvtss2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 19529 { bs3CpuInstr4_vcvtss2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 19530 19531 { bs3CpuInstr4_vcvtss2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 19532 { bs3CpuInstr4_vcvtss2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 19533 19534 { bs3CpuInstr4_cvtss2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_SSE, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19535 { bs3CpuInstr4_cvtss2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19536 19537 { bs3CpuInstr4_cvtss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_SSE, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 19538 { bs3CpuInstr4_cvtss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19539 19540 { bs3CpuInstr4_vcvtss2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19541 { bs3CpuInstr4_vcvtss2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19542 19543 { bs3CpuInstr4_vcvtss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 19544 { bs3CpuInstr4_vcvtss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19545 }; 19546 19547 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 19548 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 19549 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 19550 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 18043 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 19551 18044 } 19552 18045 … … 19936 18429 }; 19937 18430 19938 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 18431 18432 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 19939 18433 { 19940 { bs3CpuInstr4_cvttss2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19941 { bs3CpuInstr4_cvttss2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19942 19943 { bs3CpuInstr4_vcvttss2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19944 { bs3CpuInstr4_vcvttss2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19945 19946 { bs3CpuInstr4_vcvttss2si_RAX_XMM1_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19947 { bs3CpuInstr4_vcvttss2si_RAX_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 18434 { BS3_INSTR4_ALL(cvttss2si_EAX_XMM1), 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18435 { BS3_INSTR4_ALL(cvttss2si_EAX_FSxBX), 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18436 18437 { BS3_INSTR4_C64(cvttss2si_R8D_XMM8), 255, RM_REG, T_SSE, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18438 { BS3_INSTR4_C64(cvttss2si_R8D_FSxBX), 255, RM_MEM, T_SSE, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18439 18440 { BS3_INSTR4_ALL(vcvttss2si_EAX_XMM1), 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18441 { BS3_INSTR4_ALL(vcvttss2si_EAX_FSxBX), 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18442 18443 { BS3_INSTR4_C64(vcvttss2si_R8D_XMM8), 255, RM_REG, T_AVX_128, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18444 { BS3_INSTR4_C64(vcvttss2si_R8D_FSxBX), 255, RM_MEM, T_AVX_128, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 18445 18446 { BS3_INSTR4_C64(cvttss2si_RAX_XMM1), 255, RM_REG, T_SSE, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18447 { BS3_INSTR4_C64(cvttss2si_RAX_FSxBX), 255, RM_MEM, T_SSE, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18448 18449 { BS3_INSTR4_C64(cvttss2si_R8_XMM8), 255, RM_REG, T_SSE, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18450 { BS3_INSTR4_C64(cvttss2si_R8_FSxBX), 255, RM_MEM, T_SSE, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18451 18452 { BS3_INSTR4_386(vcvttss2si_RAX_XMM1), BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18453 { BS3_INSTR4_C64(vcvttss2si_RAX_XMM1), 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18454 { BS3_INSTR4_386(vcvttss2si_RAX_FSxBX), BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18455 { BS3_INSTR4_C64(vcvttss2si_RAX_FSxBX), 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18456 18457 { BS3_INSTR4_C64(vcvttss2si_R8_XMM8), 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 18458 { BS3_INSTR4_C64(vcvttss2si_R8_FSxBX), 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19948 18459 }; 19949 18460 19950 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 19951 { 19952 { bs3CpuInstr4_cvttss2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_SSE, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19953 { bs3CpuInstr4_cvttss2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19954 19955 { bs3CpuInstr4_vcvttss2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 19956 { bs3CpuInstr4_vcvttss2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 19957 19958 { bs3CpuInstr4_vcvttss2si_RAX_XMM1_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19959 { bs3CpuInstr4_vcvttss2si_RAX_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19960 }; 19961 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 19962 { 19963 { bs3CpuInstr4_cvttss2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_SSE, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 19964 { bs3CpuInstr4_cvttss2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 19965 19966 { bs3CpuInstr4_cvttss2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_SSE, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 19967 { bs3CpuInstr4_cvttss2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 19968 19969 { bs3CpuInstr4_vcvttss2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 19970 { bs3CpuInstr4_vcvttss2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 19971 19972 { bs3CpuInstr4_vcvttss2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 19973 { bs3CpuInstr4_vcvttss2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 19974 19975 { bs3CpuInstr4_cvttss2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_SSE, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19976 { bs3CpuInstr4_cvttss2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19977 19978 { bs3CpuInstr4_cvttss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_SSE, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 19979 { bs3CpuInstr4_cvttss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19980 19981 { bs3CpuInstr4_vcvttss2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 19982 { bs3CpuInstr4_vcvttss2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19983 19984 { bs3CpuInstr4_vcvttss2si_R8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 19985 { bs3CpuInstr4_vcvttss2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19986 }; 19987 19988 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 19989 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 19990 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 19991 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 18461 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 19992 18462 } 19993 18463 … … 20075 18545 }; 20076 18546 20077 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =18547 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 20078 18548 { 20079 { bs3CpuInstr4_cvtpi2pd_XMM1_MM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, MM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20080 { bs3CpuInstr4_cvtpi2pd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18549 { BS3_INSTR4_ALL(cvtpi2pd_XMM1_MM1), 255, RM_REG, T_SSE2, XMM1, MM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18550 { BS3_INSTR4_ALL(cvtpi2pd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18551 { BS3_INSTR4_C64(cvtpi2pd_XMM8_MM1), 255, RM_REG, T_SSE2, XMM8, MM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18552 { BS3_INSTR4_C64(cvtpi2pd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20081 18553 }; 20082 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 20083 { 20084 { bs3CpuInstr4_cvtpi2pd_XMM1_MM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, MM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20085 { bs3CpuInstr4_cvtpi2pd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20086 }; 20087 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 20088 { 20089 { bs3CpuInstr4_cvtpi2pd_XMM1_MM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, MM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20090 { bs3CpuInstr4_cvtpi2pd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20091 { bs3CpuInstr4_cvtpi2pd_XMM8_MM1_icebp_c64, 255, RM_REG, T_SSE2, XMM8, MM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20092 { bs3CpuInstr4_cvtpi2pd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20093 }; 20094 20095 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 20096 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 20097 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 20098 g_aXcptConfig23_6, RT_ELEMENTS(g_aXcptConfig23_6)); 18554 18555 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig23_6)); 20099 18556 } 20100 18557 … … 20216 18673 }; 20217 18674 20218 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 18675 18676 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 20219 18677 { 20220 { bs3CpuInstr4_cvtpd2pi_MM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20221 { bs3CpuInstr4_cvtpd2pi_MM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18678 { BS3_INSTR4_ALL(cvtpd2pi_MM1_XMM1), 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18679 { BS3_INSTR4_ALL(cvtpd2pi_MM1_FSxBX), 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18680 { BS3_INSTR4_C64(cvtpd2pi_MM1_XMM8), 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20222 18681 }; 20223 18682 20224 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 20225 { 20226 { bs3CpuInstr4_cvtpd2pi_MM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20227 { bs3CpuInstr4_cvtpd2pi_MM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20228 }; 20229 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 20230 { 20231 { bs3CpuInstr4_cvtpd2pi_MM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20232 { bs3CpuInstr4_cvtpd2pi_MM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20233 { bs3CpuInstr4_cvtpd2pi_MM1_XMM8_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 20234 }; 20235 20236 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 20237 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 20238 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 20239 g_aXcptConfig23_4, RT_ELEMENTS(g_aXcptConfig23_4)); 18683 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig23_4)); 20240 18684 } 20241 18685 … … 20357 18801 }; 20358 18802 20359 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 18803 18804 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 20360 18805 { 20361 { bs3CpuInstr4_cvttpd2pi_MM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20362 { bs3CpuInstr4_cvttpd2pi_MM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 18806 { BS3_INSTR4_ALL(cvttpd2pi_MM1_XMM1), 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18807 { BS3_INSTR4_ALL(cvttpd2pi_MM1_FSxBX), 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 18808 { BS3_INSTR4_C64(cvttpd2pi_MM1_XMM8), 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20363 18809 }; 20364 18810 20365 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 20366 { 20367 { bs3CpuInstr4_cvttpd2pi_MM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20368 { bs3CpuInstr4_cvttpd2pi_MM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20369 }; 20370 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 20371 { 20372 { bs3CpuInstr4_cvttpd2pi_MM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20373 { bs3CpuInstr4_cvttpd2pi_MM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, MM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 20374 { bs3CpuInstr4_cvttpd2pi_MM1_XMM8_icebp_c64, 255, RM_REG, T_SSE2, MM1, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 20375 }; 20376 20377 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 20378 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 20379 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 20380 g_aXcptConfig23_4, RT_ELEMENTS(g_aXcptConfig23_4)); 18811 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig23_4)); 20381 18812 } 20382 18813 … … 20603 19034 */ 20604 19035 20605 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =19036 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 20606 19037 { 20607 { bs3CpuInstr4_cvtsi2sd_XMM1_EAX_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 20608 { bs3CpuInstr4_cvtsi2sd_XMM1_FSxBX_D_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20609 20610 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_EAX_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_ELEMENTS(s_aValues32) }, 20611 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_FSxBX_D_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20612 20613 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_RAX_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 20614 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_FSxBX_Q_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20615 20616 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_EAX_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 20617 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_FSxBX_D_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20618 20619 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_RAX_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 20620 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_FSxBX_Q_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 19038 { BS3_INSTR4_ALL(cvtsi2sd_XMM1_EAX), 255, RM_REG, T_SSE2, XMM1, XMM1, EAX, PASS_TEST_ARRAY(s_aValues32) }, 19039 { BS3_INSTR4_ALL(cvtsi2sd_XMM1_FSxBX_D), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 19040 { BS3_INSTR4_C64(cvtsi2sd_XMM8_R8D), 255, RM_REG, T_SSE2, XMM8, XMM8, R8D, PASS_TEST_ARRAY(s_aValues32) }, 19041 { BS3_INSTR4_C64(cvtsi2sd_XMM8_FSxBX_D), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 19042 19043 { BS3_INSTR4_C64(cvtsi2sd_XMM1_RAX), 255, RM_REG, T_SSE2, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 19044 { BS3_INSTR4_C64(cvtsi2sd_XMM1_FSxBX_Q), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19045 { BS3_INSTR4_C64(cvtsi2sd_XMM8_R8), 255, RM_REG, T_SSE2, XMM8, XMM8, R8, PASS_TEST_ARRAY(s_aValues64) }, 19046 { BS3_INSTR4_C64(cvtsi2sd_XMM8_FSxBX_Q), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19047 19048 { BS3_INSTR4_ALL(vcvtsi2sd_XMM1_XMM2_EAX), 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_TEST_ARRAY(s_aValues32) }, 19049 { BS3_INSTR4_ALL(vcvtsi2sd_XMM1_XMM2_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 19050 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM9_R8D), 255, RM_REG, T_AVX_128, XMM8, XMM9, R8D, PASS_TEST_ARRAY(s_aValues32) }, 19051 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM9_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 19052 19053 { BS3_INSTR4_386(vcvtsi2sd_XMM1_XMM2_RAX), BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 19054 { BS3_INSTR4_C64(vcvtsi2sd_XMM1_XMM2_RAX), 255, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_TEST_ARRAY(s_aValues64) }, 19055 { BS3_INSTR4_386(vcvtsi2sd_XMM1_XMM2_FSxBX_Q), BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19056 { BS3_INSTR4_C64(vcvtsi2sd_XMM1_XMM2_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19057 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM9_R8), 255, RM_REG, T_AVX_128, XMM8, XMM9, R8, PASS_TEST_ARRAY(s_aValues64) }, 19058 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM9_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19059 19060 { BS3_INSTR4_ALL(vcvtsi2sd_XMM1_XMM1_EAX), 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_TEST_ARRAY(s_aValues32) }, 19061 { BS3_INSTR4_ALL(vcvtsi2sd_XMM1_XMM1_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 19062 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM8_R8D), 255, RM_REG, T_AVX_128, XMM8, XMM8, R8D, PASS_TEST_ARRAY(s_aValues32) }, 19063 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM8_FSxBX_D), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues32) }, 19064 19065 { BS3_INSTR4_386(vcvtsi2sd_XMM1_XMM1_RAX), BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 19066 { BS3_INSTR4_C64(vcvtsi2sd_XMM1_XMM1_RAX), 255, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_TEST_ARRAY(s_aValues64) }, 19067 { BS3_INSTR4_386(vcvtsi2sd_XMM1_XMM1_FSxBX_Q), BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19068 { BS3_INSTR4_C64(vcvtsi2sd_XMM1_XMM1_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 19069 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM8_R8), 255, RM_REG, T_AVX_128, XMM8, XMM8, R8, PASS_TEST_ARRAY(s_aValues64) }, 19070 { BS3_INSTR4_C64(vcvtsi2sd_XMM8_XMM8_FSxBX_Q), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues64) }, 20621 19071 }; 20622 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 20623 { 20624 { bs3CpuInstr4_cvtsi2sd_XMM1_EAX_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 20625 { bs3CpuInstr4_cvtsi2sd_XMM1_FSxBX_D_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20626 20627 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_EAX_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_ELEMENTS(s_aValues32) }, 20628 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_FSxBX_D_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20629 20630 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_RAX_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 20631 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_FSxBX_Q_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20632 20633 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_EAX_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 20634 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_FSxBX_D_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20635 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_RAX_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 20636 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_FSxBX_Q_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20637 }; 20638 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 20639 { 20640 { bs3CpuInstr4_cvtsi2sd_XMM1_EAX_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 20641 { bs3CpuInstr4_cvtsi2sd_XMM1_FSxBX_D_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20642 { bs3CpuInstr4_cvtsi2sd_XMM8_R8D_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, R8D, PASS_ELEMENTS(s_aValues32) }, 20643 { bs3CpuInstr4_cvtsi2sd_XMM8_FSxBX_D_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20644 20645 { bs3CpuInstr4_cvtsi2sd_XMM1_RAX_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 20646 { bs3CpuInstr4_cvtsi2sd_XMM1_FSxBX_Q_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20647 { bs3CpuInstr4_cvtsi2sd_XMM8_R8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, R8, PASS_ELEMENTS(s_aValues64) }, 20648 { bs3CpuInstr4_cvtsi2sd_XMM8_FSxBX_Q_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20649 20650 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_EAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, EAX, PASS_ELEMENTS(s_aValues32) }, 20651 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20652 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM9_R8D_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, R8D, PASS_ELEMENTS(s_aValues32) }, 20653 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM9_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20654 20655 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_RAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, RAX, PASS_ELEMENTS(s_aValues64) }, 20656 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM2_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20657 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM9_R8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, R8, PASS_ELEMENTS(s_aValues64) }, 20658 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM9_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20659 20660 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_EAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, EAX, PASS_ELEMENTS(s_aValues32) }, 20661 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20662 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM8_R8D_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, R8D, PASS_ELEMENTS(s_aValues32) }, 20663 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM8_FSxBX_D_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues32) }, 20664 20665 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_RAX_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, RAX, PASS_ELEMENTS(s_aValues64) }, 20666 { bs3CpuInstr4_vcvtsi2sd_XMM1_XMM1_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20667 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM8_R8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, R8, PASS_ELEMENTS(s_aValues64) }, 20668 { bs3CpuInstr4_vcvtsi2sd_XMM8_XMM8_FSxBX_Q_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues64) }, 20669 }; 20670 20671 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 20672 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 20673 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 20674 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 19072 19073 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 20675 19074 } 20676 19075 … … 21060 19459 }; 21061 19460 21062 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 19461 19462 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 21063 19463 { 21064 { bs3CpuInstr4_cvtsd2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_SSE2, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21065 { bs3CpuInstr4_cvtsd2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21066 21067 { bs3CpuInstr4_vcvtsd2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21068 { bs3CpuInstr4_vcvtsd2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21069 21070 { bs3CpuInstr4_vcvtsd2si_RAX_XMM1_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21071 { bs3CpuInstr4_vcvtsd2si_RAX_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19464 { BS3_INSTR4_ALL(cvtsd2si_EAX_XMM1), 255, RM_REG, T_SSE2, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19465 { BS3_INSTR4_ALL(cvtsd2si_EAX_FSxBX), 255, RM_MEM, T_SSE2, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19466 19467 { BS3_INSTR4_C64(cvtsd2si_R8D_XMM8), 255, RM_REG, T_SSE2, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19468 { BS3_INSTR4_C64(cvtsd2si_R8D_FSxBX), 255, RM_MEM, T_SSE2, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19469 19470 { BS3_INSTR4_ALL(vcvtsd2si_EAX_XMM1), 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19471 { BS3_INSTR4_ALL(vcvtsd2si_EAX_FSxBX), 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19472 19473 { BS3_INSTR4_C64(vcvtsd2si_R8D_XMM8), 255, RM_REG, T_AVX_128, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19474 { BS3_INSTR4_C64(vcvtsd2si_R8D_FSxBX), 255, RM_MEM, T_AVX_128, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19475 19476 { BS3_INSTR4_C64(cvtsd2si_RAX_XMM1), 255, RM_REG, T_SSE2, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19477 { BS3_INSTR4_C64(cvtsd2si_RAX_FSxBX), 255, RM_MEM, T_SSE2, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19478 19479 { BS3_INSTR4_C64(cvtsd2si_R8_XMM8), 255, RM_REG, T_SSE2, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19480 { BS3_INSTR4_C64(cvtsd2si_R8_FSxBX), 255, RM_MEM, T_SSE2, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19481 19482 { BS3_INSTR4_386(vcvtsd2si_RAX_XMM1), BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19483 { BS3_INSTR4_C64(vcvtsd2si_RAX_XMM1), 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19484 { BS3_INSTR4_386(vcvtsd2si_RAX_FSxBX), BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19485 { BS3_INSTR4_C64(vcvtsd2si_RAX_FSxBX), 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19486 19487 { BS3_INSTR4_C64(vcvtsd2si_R8_XMM8), 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19488 { BS3_INSTR4_C64(vcvtsd2si_R8_FSxBX), 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 21072 19489 }; 21073 19490 21074 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 21075 { 21076 { bs3CpuInstr4_cvtsd2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_SSE2, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21077 { bs3CpuInstr4_cvtsd2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21078 21079 { bs3CpuInstr4_vcvtsd2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21080 { bs3CpuInstr4_vcvtsd2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21081 21082 { bs3CpuInstr4_vcvtsd2si_RAX_XMM1_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21083 { bs3CpuInstr4_vcvtsd2si_RAX_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21084 }; 21085 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 21086 { 21087 { bs3CpuInstr4_cvtsd2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_SSE2, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 21088 { bs3CpuInstr4_cvtsd2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 21089 21090 { bs3CpuInstr4_cvtsd2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_SSE2, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 21091 { bs3CpuInstr4_cvtsd2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 21092 21093 { bs3CpuInstr4_vcvtsd2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 21094 { bs3CpuInstr4_vcvtsd2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 21095 21096 { bs3CpuInstr4_vcvtsd2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 21097 { bs3CpuInstr4_vcvtsd2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 21098 21099 { bs3CpuInstr4_cvtsd2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_SSE2, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21100 { bs3CpuInstr4_cvtsd2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21101 21102 { bs3CpuInstr4_cvtsd2si_R8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 21103 { bs3CpuInstr4_cvtsd2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21104 21105 { bs3CpuInstr4_vcvtsd2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21106 { bs3CpuInstr4_vcvtsd2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21107 21108 { bs3CpuInstr4_vcvtsd2si_R8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 21109 { bs3CpuInstr4_vcvtsd2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21110 }; 21111 21112 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 21113 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 21114 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 21115 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 19491 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 21116 19492 } 21117 19493 … … 21501 19877 }; 21502 19878 21503 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 19879 19880 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 21504 19881 { 21505 { bs3CpuInstr4_cvttsd2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_SSE2, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21506 { bs3CpuInstr4_cvttsd2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21507 21508 { bs3CpuInstr4_vcvttsd2si_EAX_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21509 { bs3CpuInstr4_vcvttsd2si_EAX_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21510 21511 { bs3CpuInstr4_vcvttsd2si_RAX_XMM1_icebp_c16, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21512 { bs3CpuInstr4_vcvttsd2si_RAX_FSxBX_icebp_c16, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 19882 { BS3_INSTR4_ALL(cvttsd2si_EAX_XMM1), 255, RM_REG, T_SSE2, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19883 { BS3_INSTR4_ALL(cvttsd2si_EAX_FSxBX), 255, RM_MEM, T_SSE2, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19884 19885 { BS3_INSTR4_C64(cvttsd2si_R8D_XMM8), 255, RM_REG, T_SSE2, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19886 { BS3_INSTR4_C64(cvttsd2si_R8D_FSxBX), 255, RM_MEM, T_SSE2, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19887 19888 { BS3_INSTR4_ALL(vcvttsd2si_EAX_XMM1), 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19889 { BS3_INSTR4_ALL(vcvttsd2si_EAX_FSxBX), 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19890 19891 { BS3_INSTR4_C64(vcvttsd2si_R8D_XMM8), 255, RM_REG, T_AVX_128, R8D, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19892 { BS3_INSTR4_C64(vcvttsd2si_R8D_FSxBX), 255, RM_MEM, T_AVX_128, R8D, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues32) }, 19893 19894 { BS3_INSTR4_C64(cvttsd2si_RAX_XMM1), 255, RM_REG, T_SSE2, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19895 { BS3_INSTR4_C64(cvttsd2si_RAX_FSxBX), 255, RM_MEM, T_SSE2, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19896 19897 { BS3_INSTR4_C64(cvttsd2si_R8_XMM8), 255, RM_REG, T_SSE2, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19898 { BS3_INSTR4_C64(cvttsd2si_R8_FSxBX), 255, RM_MEM, T_SSE2, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19899 19900 { BS3_INSTR4_386(vcvttsd2si_RAX_XMM1), BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19901 { BS3_INSTR4_C64(vcvttsd2si_RAX_XMM1), 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19902 { BS3_INSTR4_386(vcvttsd2si_RAX_FSxBX), BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19903 { BS3_INSTR4_C64(vcvttsd2si_RAX_FSxBX), 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19904 19905 { BS3_INSTR4_C64(vcvttsd2si_R8_XMM8), 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 19906 { BS3_INSTR4_C64(vcvttsd2si_R8_FSxBX), 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues64) }, 21513 19907 }; 21514 19908 21515 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 21516 { 21517 { bs3CpuInstr4_cvttsd2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_SSE2, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21518 { bs3CpuInstr4_cvttsd2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21519 21520 { bs3CpuInstr4_vcvttsd2si_EAX_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, EAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues32) }, 21521 { bs3CpuInstr4_vcvttsd2si_EAX_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, EAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues32) }, 21522 21523 { bs3CpuInstr4_vcvttsd2si_RAX_XMM1_icebp_c32, BS3_XCPT_UD, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21524 { bs3CpuInstr4_vcvttsd2si_RAX_FSxBX_icebp_c32, BS3_XCPT_UD, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21525 }; 21526 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 21527 { 21528 { bs3CpuInstr4_cvttsd2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_SSE2, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 21529 { bs3CpuInstr4_cvttsd2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 21530 21531 { bs3CpuInstr4_cvttsd2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_SSE2, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 21532 { bs3CpuInstr4_cvttsd2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 21533 21534 { bs3CpuInstr4_vcvttsd2si_EAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, EAX, XMM1, RAX, PASS_ELEMENTS(s_aValues32) }, 21535 { bs3CpuInstr4_vcvttsd2si_EAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, EAX, FSxBX, RAX, PASS_ELEMENTS(s_aValues32) }, 21536 21537 { bs3CpuInstr4_vcvttsd2si_R8D_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8D, XMM8, R8, PASS_ELEMENTS(s_aValues32) }, 21538 { bs3CpuInstr4_vcvttsd2si_R8D_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8D, FSxBX, R8, PASS_ELEMENTS(s_aValues32) }, 21539 21540 { bs3CpuInstr4_cvttsd2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_SSE2, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21541 { bs3CpuInstr4_cvttsd2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21542 21543 { bs3CpuInstr4_cvttsd2si_R8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 21544 { bs3CpuInstr4_cvttsd2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21545 21546 { bs3CpuInstr4_vcvttsd2si_RAX_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, RAX, XMM1, NOREG, PASS_ELEMENTS(s_aValues64) }, 21547 { bs3CpuInstr4_vcvttsd2si_RAX_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, RAX, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21548 21549 { bs3CpuInstr4_vcvttsd2si_R8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, R8, XMM8, NOREG, PASS_ELEMENTS(s_aValues64) }, 21550 { bs3CpuInstr4_vcvttsd2si_R8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, R8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues64) }, 21551 }; 21552 21553 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 21554 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 21555 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 21556 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 19909 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 21557 19910 } 21558 19911 … … 21630 19983 }; 21631 19984 21632 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 19985 19986 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 21633 19987 { 21634 { bs3CpuInstr4_cvtdq2ps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21635 { bs3CpuInstr4_cvtdq2ps_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21636 21637 { bs3CpuInstr4_vcvtdq2ps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21638 { bs3CpuInstr4_vcvtdq2ps_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21639 21640 { bs3CpuInstr4_vcvtdq2ps_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21641 { bs3CpuInstr4_vcvtdq2ps_YMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21642 21643 { bs3CpuInstr4_cvtdq2ps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21644 { bs3CpuInstr4_vcvtdq2ps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21645 { bs3CpuInstr4_vcvtdq2ps_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 19988 { BS3_INSTR4_ALL(cvtdq2ps_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19989 { BS3_INSTR4_ALL(cvtdq2ps_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19990 19991 { BS3_INSTR4_ALL(vcvtdq2ps_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19992 { BS3_INSTR4_ALL(vcvtdq2ps_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19993 19994 { BS3_INSTR4_ALL(vcvtdq2ps_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19995 { BS3_INSTR4_ALL(vcvtdq2ps_YMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19996 19997 { BS3_INSTR4_ALL(cvtdq2ps_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19998 { BS3_INSTR4_ALL(vcvtdq2ps_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 19999 { BS3_INSTR4_ALL(vcvtdq2ps_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20000 20001 { BS3_INSTR4_C64(cvtdq2ps_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20002 { BS3_INSTR4_C64(cvtdq2ps_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20003 20004 { BS3_INSTR4_C64(vcvtdq2ps_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20005 { BS3_INSTR4_C64(vcvtdq2ps_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20006 20007 { BS3_INSTR4_C64(vcvtdq2ps_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20008 { BS3_INSTR4_C64(vcvtdq2ps_YMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_256, YMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20009 20010 { BS3_INSTR4_C64(cvtdq2ps_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20011 { BS3_INSTR4_C64(vcvtdq2ps_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20012 { BS3_INSTR4_C64(vcvtdq2ps_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 21646 20013 }; 21647 20014 21648 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 21649 { 21650 { bs3CpuInstr4_cvtdq2ps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21651 { bs3CpuInstr4_cvtdq2ps_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21652 21653 { bs3CpuInstr4_vcvtdq2ps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21654 { bs3CpuInstr4_vcvtdq2ps_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21655 21656 { bs3CpuInstr4_vcvtdq2ps_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21657 { bs3CpuInstr4_vcvtdq2ps_YMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21658 21659 { bs3CpuInstr4_cvtdq2ps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21660 { bs3CpuInstr4_vcvtdq2ps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21661 { bs3CpuInstr4_vcvtdq2ps_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21662 }; 21663 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 21664 { 21665 { bs3CpuInstr4_cvtdq2ps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21666 { bs3CpuInstr4_cvtdq2ps_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21667 21668 { bs3CpuInstr4_vcvtdq2ps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21669 { bs3CpuInstr4_vcvtdq2ps_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21670 21671 { bs3CpuInstr4_vcvtdq2ps_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21672 { bs3CpuInstr4_vcvtdq2ps_YMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21673 21674 { bs3CpuInstr4_cvtdq2ps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21675 { bs3CpuInstr4_vcvtdq2ps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21676 { bs3CpuInstr4_vcvtdq2ps_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21677 21678 { bs3CpuInstr4_cvtdq2ps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 21679 { bs3CpuInstr4_cvtdq2ps_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21680 21681 { bs3CpuInstr4_vcvtdq2ps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 21682 { bs3CpuInstr4_vcvtdq2ps_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21683 21684 { bs3CpuInstr4_vcvtdq2ps_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 21685 { bs3CpuInstr4_vcvtdq2ps_YMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21686 21687 { bs3CpuInstr4_cvtdq2ps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 21688 { bs3CpuInstr4_vcvtdq2ps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 21689 { bs3CpuInstr4_vcvtdq2ps_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 21690 }; 21691 21692 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 21693 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 21694 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 21695 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 20015 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 21696 20016 } 21697 20017 … … 21796 20116 }; 21797 20117 21798 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 20118 20119 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 21799 20120 { 21800 { bs3CpuInstr4_cvtps2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21801 { bs3CpuInstr4_cvtps2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21802 21803 { bs3CpuInstr4_vcvtps2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21804 { bs3CpuInstr4_vcvtps2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21805 21806 { bs3CpuInstr4_vcvtps2dq_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21807 { bs3CpuInstr4_vcvtps2dq_YMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21808 21809 { bs3CpuInstr4_cvtps2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21810 { bs3CpuInstr4_vcvtps2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21811 { bs3CpuInstr4_vcvtps2dq_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20121 { BS3_INSTR4_ALL(cvtps2dq_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20122 { BS3_INSTR4_ALL(cvtps2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20123 20124 { BS3_INSTR4_ALL(vcvtps2dq_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20125 { BS3_INSTR4_ALL(vcvtps2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20126 20127 { BS3_INSTR4_ALL(vcvtps2dq_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20128 { BS3_INSTR4_ALL(vcvtps2dq_YMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20129 20130 { BS3_INSTR4_ALL(cvtps2dq_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20131 { BS3_INSTR4_ALL(vcvtps2dq_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20132 { BS3_INSTR4_ALL(vcvtps2dq_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20133 20134 { BS3_INSTR4_C64(cvtps2dq_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20135 { BS3_INSTR4_C64(cvtps2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20136 20137 { BS3_INSTR4_C64(vcvtps2dq_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20138 { BS3_INSTR4_C64(vcvtps2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20139 20140 { BS3_INSTR4_C64(vcvtps2dq_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20141 { BS3_INSTR4_C64(vcvtps2dq_YMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_256, YMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20142 20143 { BS3_INSTR4_C64(cvtps2dq_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20144 { BS3_INSTR4_C64(vcvtps2dq_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20145 { BS3_INSTR4_C64(vcvtps2dq_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 21812 20146 }; 21813 20147 21814 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 21815 { 21816 { bs3CpuInstr4_cvtps2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21817 { bs3CpuInstr4_cvtps2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21818 21819 { bs3CpuInstr4_vcvtps2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21820 { bs3CpuInstr4_vcvtps2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21821 21822 { bs3CpuInstr4_vcvtps2dq_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21823 { bs3CpuInstr4_vcvtps2dq_YMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21824 21825 { bs3CpuInstr4_cvtps2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21826 { bs3CpuInstr4_vcvtps2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21827 { bs3CpuInstr4_vcvtps2dq_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21828 }; 21829 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 21830 { 21831 { bs3CpuInstr4_cvtps2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21832 { bs3CpuInstr4_cvtps2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21833 21834 { bs3CpuInstr4_vcvtps2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21835 { bs3CpuInstr4_vcvtps2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21836 21837 { bs3CpuInstr4_vcvtps2dq_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21838 { bs3CpuInstr4_vcvtps2dq_YMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21839 21840 { bs3CpuInstr4_cvtps2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21841 { bs3CpuInstr4_vcvtps2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21842 { bs3CpuInstr4_vcvtps2dq_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21843 21844 { bs3CpuInstr4_cvtps2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 21845 { bs3CpuInstr4_cvtps2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21846 21847 { bs3CpuInstr4_vcvtps2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 21848 { bs3CpuInstr4_vcvtps2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21849 21850 { bs3CpuInstr4_vcvtps2dq_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 21851 { bs3CpuInstr4_vcvtps2dq_YMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21852 21853 { bs3CpuInstr4_cvtps2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 21854 { bs3CpuInstr4_vcvtps2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 21855 { bs3CpuInstr4_vcvtps2dq_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 21856 }; 21857 21858 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 21859 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 21860 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 21861 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 20148 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 21862 20149 } 21863 20150 … … 21962 20249 }; 21963 20250 21964 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 20251 20252 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 21965 20253 { 21966 { bs3CpuInstr4_cvttps2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21967 { bs3CpuInstr4_cvttps2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21968 21969 { bs3CpuInstr4_vcvttps2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21970 { bs3CpuInstr4_vcvttps2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21971 21972 { bs3CpuInstr4_vcvttps2dq_YMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21973 { bs3CpuInstr4_vcvttps2dq_YMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21974 21975 { bs3CpuInstr4_cvttps2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21976 { bs3CpuInstr4_vcvttps2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21977 { bs3CpuInstr4_vcvttps2dq_YMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20254 { BS3_INSTR4_ALL(cvttps2dq_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20255 { BS3_INSTR4_ALL(cvttps2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20256 20257 { BS3_INSTR4_ALL(vcvttps2dq_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20258 { BS3_INSTR4_ALL(vcvttps2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20259 20260 { BS3_INSTR4_ALL(vcvttps2dq_YMM1_YMM2), 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20261 { BS3_INSTR4_ALL(vcvttps2dq_YMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20262 20263 { BS3_INSTR4_ALL(cvttps2dq_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20264 { BS3_INSTR4_ALL(vcvttps2dq_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20265 { BS3_INSTR4_ALL(vcvttps2dq_YMM1_YMM1), 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20266 20267 { BS3_INSTR4_C64(cvttps2dq_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20268 { BS3_INSTR4_C64(cvttps2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20269 20270 { BS3_INSTR4_C64(vcvttps2dq_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20271 { BS3_INSTR4_C64(vcvttps2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20272 20273 { BS3_INSTR4_C64(vcvttps2dq_YMM8_YMM9), 255, RM_REG, T_AVX_256, YMM8, YMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20274 { BS3_INSTR4_C64(vcvttps2dq_YMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_256, YMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20275 20276 { BS3_INSTR4_C64(cvttps2dq_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20277 { BS3_INSTR4_C64(vcvttps2dq_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20278 { BS3_INSTR4_C64(vcvttps2dq_YMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 21978 20279 }; 21979 20280 21980 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 21981 { 21982 { bs3CpuInstr4_cvttps2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21983 { bs3CpuInstr4_cvttps2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21984 21985 { bs3CpuInstr4_vcvttps2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21986 { bs3CpuInstr4_vcvttps2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21987 21988 { bs3CpuInstr4_vcvttps2dq_YMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21989 { bs3CpuInstr4_vcvttps2dq_YMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21990 21991 { bs3CpuInstr4_cvttps2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21992 { bs3CpuInstr4_vcvttps2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21993 { bs3CpuInstr4_vcvttps2dq_YMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 21994 }; 21995 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 21996 { 21997 { bs3CpuInstr4_cvttps2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 21998 { bs3CpuInstr4_cvttps2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 21999 22000 { bs3CpuInstr4_vcvttps2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22001 { bs3CpuInstr4_vcvttps2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22002 22003 { bs3CpuInstr4_vcvttps2dq_YMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22004 { bs3CpuInstr4_vcvttps2dq_YMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22005 22006 { bs3CpuInstr4_cvttps2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22007 { bs3CpuInstr4_vcvttps2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22008 { bs3CpuInstr4_vcvttps2dq_YMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22009 22010 { bs3CpuInstr4_cvttps2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 22011 { bs3CpuInstr4_cvttps2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22012 22013 { bs3CpuInstr4_vcvttps2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 22014 { bs3CpuInstr4_vcvttps2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22015 22016 { bs3CpuInstr4_vcvttps2dq_YMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 22017 { bs3CpuInstr4_vcvttps2dq_YMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, YMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22018 22019 { bs3CpuInstr4_cvttps2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 22020 { bs3CpuInstr4_vcvttps2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 22021 { bs3CpuInstr4_vcvttps2dq_YMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 22022 }; 22023 22024 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 22025 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 22026 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 22027 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 20281 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 22028 20282 } 22029 20283 … … 22097 20351 }; 22098 20352 22099 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =20353 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 22100 20354 { 22101 { bs3CpuInstr4_cvtdq2pd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) },20355 { BS3_INSTR4_ALL(cvtdq2pd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 22102 20356 #ifdef TODO_CVTDQ2PD_M64_IEM /** @todo THIS FAILS ON IEM: unexpected #GP */ 22103 { bs3CpuInstr4_cvtdq2pd_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) },20357 { BS3_INSTR4_ALL(cvtdq2pd_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 22104 20358 #endif /* TODO_CVTDQ2PD_M64_IEM */ 22105 20359 22106 { bs3CpuInstr4_vcvtdq2pd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22107 { bs3CpuInstr4_vcvtdq2pd_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22108 22109 { bs3CpuInstr4_vcvtdq2pd_YMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22110 { bs3CpuInstr4_vcvtdq2pd_YMM1_FSxBX_icebp_c16, BS3_XCPT_NOT_AC, RM_MEM128, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22111 22112 { bs3CpuInstr4_cvtdq2pd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22113 { bs3CpuInstr4_vcvtdq2pd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22114 { bs3CpuInstr4_vcvtdq2pd_YMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 20360 { BS3_INSTR4_ALL(vcvtdq2pd_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20361 { BS3_INSTR4_ALL(vcvtdq2pd_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20362 20363 { BS3_INSTR4_ALL(vcvtdq2pd_YMM1_XMM2), 255, RM_REG, T_AVX_256, YMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20364 { BS3_INSTR4_ALL(vcvtdq2pd_YMM1_FSxBX), BS3_XCPT_NOT_AC, RM_MEM128, T_AVX_256, YMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20365 20366 { BS3_INSTR4_ALL(cvtdq2pd_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20367 { BS3_INSTR4_ALL(vcvtdq2pd_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20368 { BS3_INSTR4_ALL(vcvtdq2pd_YMM1_XMM1), 255, RM_REG, T_AVX_256, YMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20369 20370 { BS3_INSTR4_C64(cvtdq2pd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20371 #ifdef TODO_CVTDQ2PD_M64_IEM /** @todo THIS FAILS ON IEM: unexpected #GP */ 20372 { BS3_INSTR4_C64(cvtdq2pd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20373 #endif /* TODO_CVTDQ2PD_M64_IEM */ 20374 20375 { BS3_INSTR4_C64(vcvtdq2pd_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20376 { BS3_INSTR4_C64(vcvtdq2pd_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20377 20378 { BS3_INSTR4_C64(vcvtdq2pd_YMM8_XMM9), 255, RM_REG, T_AVX_256, YMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20379 { BS3_INSTR4_C64(vcvtdq2pd_YMM8_FSxBX), BS3_XCPT_NOT_AC, RM_MEM128, T_AVX_128, YMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20380 20381 { BS3_INSTR4_C64(cvtdq2pd_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20382 { BS3_INSTR4_C64(vcvtdq2pd_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 20383 { BS3_INSTR4_C64(vcvtdq2pd_YMM8_XMM8), 255, RM_REG, T_AVX_256, YMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValues) }, 22115 20384 }; 22116 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 22117 { 22118 { bs3CpuInstr4_cvtdq2pd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22119 #ifdef TODO_CVTDQ2PD_M64_IEM /** @todo THIS FAILS ON IEM: unexpected #GP */ 22120 { bs3CpuInstr4_cvtdq2pd_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22121 #endif /* TODO_CVTDQ2PD_M64_IEM */ 22122 22123 { bs3CpuInstr4_vcvtdq2pd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22124 { bs3CpuInstr4_vcvtdq2pd_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22125 22126 { bs3CpuInstr4_vcvtdq2pd_YMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22127 { bs3CpuInstr4_vcvtdq2pd_YMM1_FSxBX_icebp_c32, BS3_XCPT_NOT_AC, RM_MEM128, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22128 22129 { bs3CpuInstr4_cvtdq2pd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22130 { bs3CpuInstr4_vcvtdq2pd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22131 { bs3CpuInstr4_vcvtdq2pd_YMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22132 }; 22133 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 22134 { 22135 { bs3CpuInstr4_cvtdq2pd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22136 #ifdef TODO_CVTDQ2PD_M64_IEM /** @todo THIS FAILS ON IEM: unexpected #GP */ 22137 { bs3CpuInstr4_cvtdq2pd_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22138 #endif /* TODO_CVTDQ2PD_M64_IEM */ 22139 22140 { bs3CpuInstr4_vcvtdq2pd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22141 { bs3CpuInstr4_vcvtdq2pd_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22142 22143 { bs3CpuInstr4_vcvtdq2pd_YMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValues) }, 22144 { bs3CpuInstr4_vcvtdq2pd_YMM1_FSxBX_icebp_c64, BS3_XCPT_NOT_AC, RM_MEM128, T_AVX_256, YMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22145 22146 { bs3CpuInstr4_cvtdq2pd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22147 { bs3CpuInstr4_vcvtdq2pd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22148 { bs3CpuInstr4_vcvtdq2pd_YMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValues) }, 22149 22150 { bs3CpuInstr4_cvtdq2pd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 22151 #ifdef TODO_CVTDQ2PD_M64_IEM /** @todo THIS FAILS ON IEM: unexpected #GP */ 22152 { bs3CpuInstr4_cvtdq2pd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22153 #endif /* TODO_CVTDQ2PD_M64_IEM */ 22154 22155 { bs3CpuInstr4_vcvtdq2pd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 22156 { bs3CpuInstr4_vcvtdq2pd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22157 22158 { bs3CpuInstr4_vcvtdq2pd_YMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValues) }, 22159 { bs3CpuInstr4_vcvtdq2pd_YMM8_FSxBX_icebp_c64, BS3_XCPT_NOT_AC, RM_MEM128, T_AVX_128, YMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValues) }, 22160 22161 { bs3CpuInstr4_cvtdq2pd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 22162 { bs3CpuInstr4_vcvtdq2pd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 22163 { bs3CpuInstr4_vcvtdq2pd_YMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValues) }, 22164 }; 22165 22166 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 22167 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 22168 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 22169 g_aXcptConfig5, RT_ELEMENTS(g_aXcptConfig5)); 20385 20386 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig5)); 22170 20387 } 22171 20388 … … 22381 20598 }; 22382 20599 22383 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =20600 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 22384 20601 { 22385 { bs3CpuInstr4_cvtpd2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22386 { bs3CpuInstr4_cvtpd2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22387 22388 { bs3CpuInstr4_vcvtpd2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22389 { bs3CpuInstr4_vcvtpd2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22390 22391 { bs3CpuInstr4_vcvtpd2dq_XMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22392 { bs3CpuInstr4_vcvtpd2dq_XMM1_FSxBX_Y_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22393 22394 { bs3CpuInstr4_cvtpd2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22395 { bs3CpuInstr4_vcvtpd2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22396 { bs3CpuInstr4_vcvtpd2dq_XMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesY) }, 20602 { BS3_INSTR4_ALL(cvtpd2dq_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20603 { BS3_INSTR4_ALL(cvtpd2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20604 20605 { BS3_INSTR4_ALL(vcvtpd2dq_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20606 { BS3_INSTR4_ALL(vcvtpd2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20607 20608 { BS3_INSTR4_ALL(vcvtpd2dq_XMM1_YMM2), 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20609 { BS3_INSTR4_ALL(vcvtpd2dq_XMM1_FSxBX_Y), X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20610 20611 { BS3_INSTR4_ALL(cvtpd2dq_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20612 { BS3_INSTR4_ALL(vcvtpd2dq_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20613 { BS3_INSTR4_ALL(vcvtpd2dq_XMM1_YMM1), 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20614 20615 { BS3_INSTR4_C64(cvtpd2dq_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20616 { BS3_INSTR4_C64(cvtpd2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20617 20618 { BS3_INSTR4_C64(vcvtpd2dq_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20619 { BS3_INSTR4_C64(vcvtpd2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20620 20621 { BS3_INSTR4_C64(vcvtpd2dq_XMM8_YMM9), 255, RM_REG, T_AVX_256, XMM8, YMM9, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20622 { BS3_INSTR4_C64(vcvtpd2dq_XMM8_FSxBX_Y), X86_XCPT_AC, RM_MEM, T_AVX_256, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20623 20624 { BS3_INSTR4_C64(cvtpd2dq_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20625 { BS3_INSTR4_C64(vcvtpd2dq_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20626 { BS3_INSTR4_C64(vcvtpd2dq_XMM8_YMM8), 255, RM_REG, T_AVX_256, XMM8, YMM8, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 22397 20627 }; 22398 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 22399 { 22400 { bs3CpuInstr4_cvtpd2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22401 { bs3CpuInstr4_cvtpd2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22402 22403 { bs3CpuInstr4_vcvtpd2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22404 { bs3CpuInstr4_vcvtpd2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22405 22406 { bs3CpuInstr4_vcvtpd2dq_XMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22407 { bs3CpuInstr4_vcvtpd2dq_XMM1_FSxBX_Y_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22408 22409 { bs3CpuInstr4_cvtpd2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22410 { bs3CpuInstr4_vcvtpd2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22411 { bs3CpuInstr4_vcvtpd2dq_XMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22412 }; 22413 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 22414 { 22415 { bs3CpuInstr4_cvtpd2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22416 { bs3CpuInstr4_cvtpd2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22417 22418 { bs3CpuInstr4_vcvtpd2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22419 { bs3CpuInstr4_vcvtpd2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22420 22421 { bs3CpuInstr4_vcvtpd2dq_XMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22422 { bs3CpuInstr4_vcvtpd2dq_XMM1_FSxBX_Y_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22423 22424 { bs3CpuInstr4_cvtpd2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22425 { bs3CpuInstr4_vcvtpd2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22426 { bs3CpuInstr4_vcvtpd2dq_XMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22427 22428 { bs3CpuInstr4_cvtpd2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22429 { bs3CpuInstr4_cvtpd2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22430 22431 { bs3CpuInstr4_vcvtpd2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22432 { bs3CpuInstr4_vcvtpd2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22433 22434 { bs3CpuInstr4_vcvtpd2dq_XMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, XMM8, YMM9, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22435 { bs3CpuInstr4_vcvtpd2dq_XMM8_FSxBX_Y_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22436 22437 { bs3CpuInstr4_cvtpd2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22438 { bs3CpuInstr4_vcvtpd2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22439 { bs3CpuInstr4_vcvtpd2dq_XMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, XMM8, YMM8, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22440 }; 22441 22442 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 22443 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 22444 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 22445 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 20628 20629 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 22446 20630 } 22447 20631 … … 22657 20841 }; 22658 20842 22659 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =20843 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 22660 20844 { 22661 { bs3CpuInstr4_cvttpd2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22662 { bs3CpuInstr4_cvttpd2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22663 22664 { bs3CpuInstr4_vcvttpd2dq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22665 { bs3CpuInstr4_vcvttpd2dq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, // need to tag with RM_MEM_16? 22666 22667 { bs3CpuInstr4_vcvttpd2dq_XMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22668 { bs3CpuInstr4_vcvttpd2dq_XMM1_FSxBX_Y_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, // need to tag with RM_MEM_32? 22669 22670 { bs3CpuInstr4_cvttpd2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22671 { bs3CpuInstr4_vcvttpd2dq_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22672 { bs3CpuInstr4_vcvttpd2dq_XMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesY) }, 20845 { BS3_INSTR4_ALL(cvttpd2dq_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20846 { BS3_INSTR4_ALL(cvttpd2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20847 20848 { BS3_INSTR4_ALL(vcvttpd2dq_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20849 { BS3_INSTR4_ALL(vcvttpd2dq_XMM1_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20850 20851 { BS3_INSTR4_ALL(vcvttpd2dq_XMM1_YMM2), 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20852 { BS3_INSTR4_ALL(vcvttpd2dq_XMM1_FSxBX_Y), X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20853 20854 { BS3_INSTR4_ALL(cvttpd2dq_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20855 { BS3_INSTR4_ALL(vcvttpd2dq_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20856 { BS3_INSTR4_ALL(vcvttpd2dq_XMM1_YMM1), 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20857 20858 { BS3_INSTR4_C64(cvttpd2dq_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20859 { BS3_INSTR4_C64(cvttpd2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20860 20861 { BS3_INSTR4_C64(vcvttpd2dq_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20862 { BS3_INSTR4_C64(vcvttpd2dq_XMM8_FSxBX), X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20863 20864 { BS3_INSTR4_C64(vcvttpd2dq_XMM8_YMM9), 255, RM_REG, T_AVX_256, XMM8, YMM9, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20865 { BS3_INSTR4_C64(vcvttpd2dq_XMM8_FSxBX_Y), X86_XCPT_AC, RM_MEM, T_AVX_256, XMM8, FSxBX, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 20866 20867 { BS3_INSTR4_C64(cvttpd2dq_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20868 { BS3_INSTR4_C64(vcvttpd2dq_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_TEST_ARRAY(s_aValuesX) }, 20869 { BS3_INSTR4_C64(vcvttpd2dq_XMM8_YMM8), 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_TEST_ARRAY(s_aValuesY) }, 22673 20870 }; 22674 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 22675 { 22676 { bs3CpuInstr4_cvttpd2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22677 { bs3CpuInstr4_cvttpd2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22678 22679 { bs3CpuInstr4_vcvttpd2dq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22680 { bs3CpuInstr4_vcvttpd2dq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, // need to tag with RM_MEM_16? 22681 22682 { bs3CpuInstr4_vcvttpd2dq_XMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22683 { bs3CpuInstr4_vcvttpd2dq_XMM1_FSxBX_Y_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, // need to tag with RM_MEM_32? 22684 22685 { bs3CpuInstr4_cvttpd2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22686 { bs3CpuInstr4_vcvttpd2dq_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22687 { bs3CpuInstr4_vcvttpd2dq_XMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22688 }; 22689 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 22690 { 22691 { bs3CpuInstr4_cvttpd2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22692 { bs3CpuInstr4_cvttpd2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22693 22694 { bs3CpuInstr4_vcvttpd2dq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22695 { bs3CpuInstr4_vcvttpd2dq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, // need to tag with RM_MEM_16? 22696 22697 { bs3CpuInstr4_vcvttpd2dq_XMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, XMM1, YMM2, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22698 { bs3CpuInstr4_vcvttpd2dq_XMM1_FSxBX_Y_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM1, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, // need to tag with RM_MEM_32? 22699 22700 { bs3CpuInstr4_cvttpd2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22701 { bs3CpuInstr4_vcvttpd2dq_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22702 { bs3CpuInstr4_vcvttpd2dq_XMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, XMM1, YMM1, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22703 22704 { bs3CpuInstr4_cvttpd2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22705 { bs3CpuInstr4_cvttpd2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22706 22707 { bs3CpuInstr4_vcvttpd2dq_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22708 { bs3CpuInstr4_vcvttpd2dq_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesX) }, // need to tag with RM_MEM_16? 22709 22710 { bs3CpuInstr4_vcvttpd2dq_XMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, XMM8, YMM9, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22711 { bs3CpuInstr4_vcvttpd2dq_XMM8_FSxBX_Y_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_256, XMM8, FSxBX, NOREG, PASS_ELEMENTS(s_aValuesY) }, // need to tag with RM_MEM_32? 22712 22713 { bs3CpuInstr4_cvttpd2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22714 { bs3CpuInstr4_vcvttpd2dq_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, NOREG, PASS_ELEMENTS(s_aValuesX) }, 22715 { bs3CpuInstr4_vcvttpd2dq_XMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, YMM8, NOREG, PASS_ELEMENTS(s_aValuesY) }, 22716 }; 22717 22718 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 22719 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 22720 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 22721 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 20871 20872 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 22722 20873 } 22723 20874 … … 22965 21116 }; 22966 21117 22967 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =21118 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 22968 21119 { 22969 { bs3CpuInstr4_cvtpd2ps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValuesX) }, 22970 { bs3CpuInstr4_cvtpd2ps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 22971 22972 { bs3CpuInstr4_vcvtpd2ps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesX) }, 22973 { bs3CpuInstr4_vcvtpd2ps_XMM1_FSxBX_O_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 22974 22975 { bs3CpuInstr4_vcvtpd2ps_XMM1_YMM2_icebp_c16, 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesY) }, 22976 { bs3CpuInstr4_vcvtpd2ps_XMM1_FSxBX_Y_icebp_c16, 255, RM_MEM, T_AVX_256, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesY) }, 22977 22978 { bs3CpuInstr4_cvtpd2ps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesX) }, 22979 { bs3CpuInstr4_vcvtpd2ps_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesX) }, 22980 { bs3CpuInstr4_vcvtpd2ps_XMM1_YMM1_icebp_c16, 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesY) }, 21120 { BS3_INSTR4_ALL(cvtpd2ps_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesX) }, 21121 { BS3_INSTR4_ALL(cvtpd2ps_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesX) }, 21122 21123 { BS3_INSTR4_ALL(vcvtpd2ps_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesX) }, 21124 { BS3_INSTR4_ALL(vcvtpd2ps_XMM1_FSxBX_O), 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesX) }, 21125 21126 { BS3_INSTR4_ALL(vcvtpd2ps_XMM1_YMM2), 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM2, PASS_TEST_ARRAY(s_aValuesY) }, 21127 { BS3_INSTR4_ALL(vcvtpd2ps_XMM1_FSxBX_Y), 255, RM_MEM, T_AVX_256, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesY) }, 21128 21129 { BS3_INSTR4_ALL(cvtpd2ps_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesX) }, 21130 { BS3_INSTR4_ALL(vcvtpd2ps_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesX) }, 21131 { BS3_INSTR4_ALL(vcvtpd2ps_XMM1_YMM1), 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM1, PASS_TEST_ARRAY(s_aValuesY) }, 21132 21133 { BS3_INSTR4_C64(cvtpd2ps_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesX) }, 21134 { BS3_INSTR4_C64(cvtpd2ps_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesX) }, 21135 21136 { BS3_INSTR4_C64(vcvtpd2ps_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesX) }, 21137 { BS3_INSTR4_C64(vcvtpd2ps_XMM8_FSxBX_O), 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesX) }, 21138 21139 { BS3_INSTR4_C64(vcvtpd2ps_XMM8_YMM9), 255, RM_REG, T_AVX_256, XMM8, NOREG, YMM9, PASS_TEST_ARRAY(s_aValuesY) }, 21140 { BS3_INSTR4_C64(vcvtpd2ps_XMM8_FSxBX_Y), 255, RM_MEM, T_AVX_256, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValuesY) }, 21141 21142 { BS3_INSTR4_C64(cvtpd2ps_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesX) }, 21143 { BS3_INSTR4_C64(vcvtpd2ps_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesX) }, 21144 { BS3_INSTR4_C64(vcvtpd2ps_XMM8_YMM8), 255, RM_REG, T_AVX_256, XMM8, NOREG, YMM8, PASS_TEST_ARRAY(s_aValuesY) }, 22981 21145 }; 22982 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 22983 { 22984 { bs3CpuInstr4_cvtpd2ps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesX) }, 22985 { bs3CpuInstr4_cvtpd2ps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 22986 22987 { bs3CpuInstr4_vcvtpd2ps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesX) }, 22988 { bs3CpuInstr4_vcvtpd2ps_XMM1_FSxBX_O_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 22989 22990 { bs3CpuInstr4_vcvtpd2ps_XMM1_YMM2_icebp_c32, 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesY) }, 22991 { bs3CpuInstr4_vcvtpd2ps_XMM1_FSxBX_Y_icebp_c32, 255, RM_MEM, T_AVX_256, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesY) }, 22992 22993 { bs3CpuInstr4_cvtpd2ps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesX) }, 22994 { bs3CpuInstr4_vcvtpd2ps_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesX) }, 22995 { bs3CpuInstr4_vcvtpd2ps_XMM1_YMM1_icebp_c32, 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesY) }, 22996 }; 22997 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 22998 { 22999 { bs3CpuInstr4_cvtpd2ps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesX) }, 23000 { bs3CpuInstr4_cvtpd2ps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 23001 23002 { bs3CpuInstr4_vcvtpd2ps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesX) }, 23003 { bs3CpuInstr4_vcvtpd2ps_XMM1_FSxBX_O_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 23004 23005 { bs3CpuInstr4_vcvtpd2ps_XMM1_YMM2_icebp_c64, 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM2, PASS_ELEMENTS(s_aValuesY) }, 23006 { bs3CpuInstr4_vcvtpd2ps_XMM1_FSxBX_Y_icebp_c64, 255, RM_MEM, T_AVX_256, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesY) }, 23007 23008 { bs3CpuInstr4_cvtpd2ps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesX) }, 23009 { bs3CpuInstr4_vcvtpd2ps_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesX) }, 23010 { bs3CpuInstr4_vcvtpd2ps_XMM1_YMM1_icebp_c64, 255, RM_REG, T_AVX_256, XMM1, NOREG, YMM1, PASS_ELEMENTS(s_aValuesY) }, 23011 23012 { bs3CpuInstr4_cvtpd2ps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesX) }, 23013 { bs3CpuInstr4_cvtpd2ps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 23014 23015 { bs3CpuInstr4_vcvtpd2ps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesX) }, 23016 { bs3CpuInstr4_vcvtpd2ps_XMM8_FSxBX_O_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesX) }, 23017 23018 { bs3CpuInstr4_vcvtpd2ps_XMM8_YMM9_icebp_c64, 255, RM_REG, T_AVX_256, XMM8, NOREG, YMM9, PASS_ELEMENTS(s_aValuesY) }, 23019 { bs3CpuInstr4_vcvtpd2ps_XMM8_FSxBX_Y_icebp_c64, 255, RM_MEM, T_AVX_256, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValuesY) }, 23020 23021 { bs3CpuInstr4_cvtpd2ps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesX) }, 23022 { bs3CpuInstr4_vcvtpd2ps_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesX) }, 23023 { bs3CpuInstr4_vcvtpd2ps_XMM8_YMM8_icebp_c64, 255, RM_REG, T_AVX_256, XMM8, NOREG, YMM8, PASS_ELEMENTS(s_aValuesY) }, 23024 }; 23025 23026 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 23027 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 23028 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 23029 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 21146 21147 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig2)); 23030 21148 } 23031 21149 … … 23137 21255 }; 23138 21256 23139 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 21257 21258 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 23140 21259 { 23141 { bs3CpuInstr4_cvtps2pd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23142 { bs3CpuInstr4_cvtps2pd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23143 23144 { bs3CpuInstr4_vcvtps2pd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23145 { bs3CpuInstr4_vcvtps2pd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23146 23147 { bs3CpuInstr4_vcvtps2pd_YMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23148 { bs3CpuInstr4_vcvtps2pd_YMM1_FSxBX_icebp_c16, BS3_XCPT_NOT_AC, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23149 23150 { bs3CpuInstr4_cvtps2pd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23151 { bs3CpuInstr4_vcvtps2pd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23152 { bs3CpuInstr4_vcvtps2pd_YMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 21260 { BS3_INSTR4_ALL(cvtps2pd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21261 { BS3_INSTR4_ALL(cvtps2pd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21262 21263 { BS3_INSTR4_C64(cvtps2pd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21264 { BS3_INSTR4_C64(cvtps2pd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21265 21266 { BS3_INSTR4_ALL(vcvtps2pd_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21267 { BS3_INSTR4_ALL(vcvtps2pd_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21268 21269 { BS3_INSTR4_C64(vcvtps2pd_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21270 { BS3_INSTR4_C64(vcvtps2pd_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21271 21272 { BS3_INSTR4_ALL(vcvtps2pd_YMM1_XMM2), 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21273 { BS3_INSTR4_ALL(vcvtps2pd_YMM1_FSxBX), BS3_XCPT_NOT_AC, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21274 21275 { BS3_INSTR4_C64(vcvtps2pd_YMM8_XMM9), 255, RM_REG, T_AVX_256, YMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21276 { BS3_INSTR4_C64(vcvtps2pd_YMM8_FSxBX), BS3_XCPT_NOT_AC, RM_MEM, T_AVX_256, YMM8, NOREG, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21277 21278 { BS3_INSTR4_ALL(cvtps2pd_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21279 { BS3_INSTR4_C64(cvtps2pd_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValues) }, 21280 { BS3_INSTR4_ALL(vcvtps2pd_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21281 { BS3_INSTR4_C64(vcvtps2pd_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValues) }, 21282 { BS3_INSTR4_ALL(vcvtps2pd_YMM1_XMM1), 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21283 { BS3_INSTR4_C64(vcvtps2pd_YMM8_XMM8), 255, RM_REG, T_AVX_256, YMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValues) }, 23153 21284 }; 23154 21285 23155 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 23156 { 23157 { bs3CpuInstr4_cvtps2pd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23158 { bs3CpuInstr4_cvtps2pd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23159 23160 { bs3CpuInstr4_vcvtps2pd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23161 { bs3CpuInstr4_vcvtps2pd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23162 23163 { bs3CpuInstr4_vcvtps2pd_YMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23164 { bs3CpuInstr4_vcvtps2pd_YMM1_FSxBX_icebp_c32, BS3_XCPT_NOT_AC, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23165 23166 { bs3CpuInstr4_cvtps2pd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23167 { bs3CpuInstr4_vcvtps2pd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23168 { bs3CpuInstr4_vcvtps2pd_YMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23169 }; 23170 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 23171 { 23172 { bs3CpuInstr4_cvtps2pd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23173 { bs3CpuInstr4_cvtps2pd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23174 23175 { bs3CpuInstr4_cvtps2pd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValues) }, 23176 { bs3CpuInstr4_cvtps2pd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23177 23178 { bs3CpuInstr4_vcvtps2pd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23179 { bs3CpuInstr4_vcvtps2pd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23180 23181 { bs3CpuInstr4_vcvtps2pd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValues) }, 23182 { bs3CpuInstr4_vcvtps2pd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23183 23184 { bs3CpuInstr4_vcvtps2pd_YMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23185 { bs3CpuInstr4_vcvtps2pd_YMM1_FSxBX_icebp_c64, BS3_XCPT_NOT_AC, RM_MEM, T_AVX_256, YMM1, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23186 23187 { bs3CpuInstr4_vcvtps2pd_YMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValues) }, 23188 { bs3CpuInstr4_vcvtps2pd_YMM8_FSxBX_icebp_c64, BS3_XCPT_NOT_AC, RM_MEM, T_AVX_256, YMM8, NOREG, FSxBX, PASS_ELEMENTS(s_aValues) }, 23189 23190 { bs3CpuInstr4_cvtps2pd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23191 { bs3CpuInstr4_cvtps2pd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValues) }, 23192 { bs3CpuInstr4_vcvtps2pd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23193 { bs3CpuInstr4_vcvtps2pd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValues) }, 23194 { bs3CpuInstr4_vcvtps2pd_YMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_256, YMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23195 { bs3CpuInstr4_vcvtps2pd_YMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_256, YMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValues) }, 23196 }; 23197 23198 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 23199 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 23200 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 23201 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 21286 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 23202 21287 } 23203 21288 … … 23406 21491 }; 23407 21492 23408 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =21493 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 23409 21494 { 23410 { bs3CpuInstr4_cvtsd2ss_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23411 { bs3CpuInstr4_cvtsd2ss_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23412 23413 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 23414 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 23415 23416 { bs3CpuInstr4_cvtsd2ss_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 23417 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 23418 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23419 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues) }, 23420 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 23421 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 21495 { BS3_INSTR4_ALL(cvtsd2ss_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21496 { BS3_INSTR4_ALL(cvtsd2ss_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21497 21498 { BS3_INSTR4_C64(cvtsd2ss_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21499 { BS3_INSTR4_C64(cvtsd2ss_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21500 21501 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 21502 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21503 21504 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 21505 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21506 21507 { BS3_INSTR4_ALL(cvtsd2ss_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 21508 { BS3_INSTR4_C64(cvtsd2ss_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 21509 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValuesSR) }, 21510 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21511 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM2_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21512 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM2_XMM2), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValuesSR) }, 21513 { BS3_INSTR4_ALL(vcvtsd2ss_XMM1_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21514 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValuesSR) }, 21515 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21516 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM9_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM8, PASS_TEST_ARRAY(s_aValues) }, 21517 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM9_XMM9), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValuesSR) }, 21518 { BS3_INSTR4_C64(vcvtsd2ss_XMM8_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 23422 21519 }; 23423 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 23424 { 23425 { bs3CpuInstr4_cvtsd2ss_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23426 { bs3CpuInstr4_cvtsd2ss_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23427 23428 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 23429 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 23430 23431 { bs3CpuInstr4_cvtsd2ss_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 23432 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 23433 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23434 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues) }, 23435 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 23436 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23437 }; 23438 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 23439 { 23440 { bs3CpuInstr4_cvtsd2ss_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23441 { bs3CpuInstr4_cvtsd2ss_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23442 23443 { bs3CpuInstr4_cvtsd2ss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 23444 { bs3CpuInstr4_cvtsd2ss_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 23445 23446 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 23447 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 23448 23449 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 23450 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 23451 23452 { bs3CpuInstr4_cvtsd2ss_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 23453 { bs3CpuInstr4_cvtsd2ss_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 23454 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValuesSR) }, 23455 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23456 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues) }, 23457 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM2_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValuesSR) }, 23458 { bs3CpuInstr4_vcvtsd2ss_XMM1_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23459 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValuesSR) }, 23460 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 23461 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM8, PASS_ELEMENTS(s_aValues) }, 23462 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM9_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValuesSR) }, 23463 { bs3CpuInstr4_vcvtsd2ss_XMM8_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 23464 }; 23465 23466 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 23467 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 23468 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 23469 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 21520 21521 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 23470 21522 } 23471 21523 … … 23628 21680 }; 23629 21681 23630 static BS3CPUINSTR4_TEST1_T const s_aTests 16[] =21682 static BS3CPUINSTR4_TEST1_T const s_aTests[] = 23631 21683 { 23632 { bs3CpuInstr4_cvtss2sd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23633 { bs3CpuInstr4_cvtss2sd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23634 23635 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 23636 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 23637 23638 { bs3CpuInstr4_cvtss2sd_XMM1_XMM1_icebp_c16, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23639 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23640 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23641 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM1_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues) }, 23642 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM2_icebp_c16, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23643 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 21684 { BS3_INSTR4_ALL(cvtss2sd_XMM1_XMM2), 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21685 { BS3_INSTR4_ALL(cvtss2sd_XMM1_FSxBX), 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21686 21687 { BS3_INSTR4_C64(cvtss2sd_XMM8_XMM9), 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21688 { BS3_INSTR4_C64(cvtss2sd_XMM8_FSxBX), 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21689 21690 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM2_XMM3), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_TEST_ARRAY(s_aValues) }, 21691 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM2_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21692 21693 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM9_XMM10), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_TEST_ARRAY(s_aValues) }, 21694 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM9_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21695 21696 { BS3_INSTR4_ALL(cvtss2sd_XMM1_XMM1), 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21697 { BS3_INSTR4_C64(cvtss2sd_XMM8_XMM8), 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValues) }, 21698 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM1_XMM1), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21699 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM1_XMM2), 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21700 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM2_XMM1), 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_TEST_ARRAY(s_aValues) }, 21701 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM2_XMM2), 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_TEST_ARRAY(s_aValues) }, 21702 { BS3_INSTR4_ALL(vcvtss2sd_XMM1_XMM1_FSxBX), 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 21703 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM8_XMM8), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_TEST_ARRAY(s_aValues) }, 21704 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM8_XMM9), 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21705 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM9_XMM8), 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM8, PASS_TEST_ARRAY(s_aValues) }, 21706 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM9_XMM9), 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_TEST_ARRAY(s_aValues) }, 21707 { BS3_INSTR4_C64(vcvtss2sd_XMM8_XMM8_FSxBX), 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_TEST_ARRAY(s_aValues) }, 23644 21708 }; 23645 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 23646 { 23647 { bs3CpuInstr4_cvtss2sd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23648 { bs3CpuInstr4_cvtss2sd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23649 23650 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 23651 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 23652 23653 { bs3CpuInstr4_cvtss2sd_XMM1_XMM1_icebp_c32, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23654 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23655 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23656 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM1_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues) }, 23657 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM2_icebp_c32, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23658 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23659 }; 23660 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 23661 { 23662 { bs3CpuInstr4_cvtss2sd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23663 { bs3CpuInstr4_cvtss2sd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23664 23665 { bs3CpuInstr4_cvtss2sd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 23666 { bs3CpuInstr4_cvtss2sd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 23667 23668 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM3, PASS_ELEMENTS(s_aValues) }, 23669 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM2, FSxBX, PASS_ELEMENTS(s_aValues) }, 23670 23671 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM10, PASS_ELEMENTS(s_aValues) }, 23672 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM9, FSxBX, PASS_ELEMENTS(s_aValues) }, 23673 23674 { bs3CpuInstr4_cvtss2sd_XMM1_XMM1_icebp_c64, 255, RM_REG, T_SSE2, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23675 { bs3CpuInstr4_cvtss2sd_XMM8_XMM8_icebp_c64, 255, RM_REG, T_SSE2, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValues) }, 23676 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM1, PASS_ELEMENTS(s_aValues) }, 23677 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM1, XMM2, PASS_ELEMENTS(s_aValues) }, 23678 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM1_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, XMM2, XMM1, PASS_ELEMENTS(s_aValues) }, 23679 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM2_XMM2_icebp_c64, 255, RM_REG, T_AVX_128, XMM1, NOREG, XMM2, PASS_ELEMENTS(s_aValues) }, 23680 { bs3CpuInstr4_vcvtss2sd_XMM1_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM1, XMM1, FSxBX, PASS_ELEMENTS(s_aValues) }, 23681 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM8_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM8, PASS_ELEMENTS(s_aValues) }, 23682 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM8_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM8, XMM9, PASS_ELEMENTS(s_aValues) }, 23683 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, XMM9, XMM8, PASS_ELEMENTS(s_aValues) }, 23684 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM9_XMM9_icebp_c64, 255, RM_REG, T_AVX_128, XMM8, NOREG, XMM9, PASS_ELEMENTS(s_aValues) }, 23685 { bs3CpuInstr4_vcvtss2sd_XMM8_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, XMM8, XMM8, FSxBX, PASS_ELEMENTS(s_aValues) }, 23686 }; 23687 23688 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 23689 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 23690 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 23691 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 21709 21710 return bs3CpuInstr4_WorkerTestType1(bMode, PASS_ARRAY(s_aTests), PASS_ARRAY(g_aXcptConfig3)); 23692 21711 } 23693 21712
Note:
See TracChangeset
for help on using the changeset viewer.