Changeset 100574 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- Jul 14, 2023 9:38:18 AM (17 months ago)
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3-template.mac
r100570 r100574 2632 2632 2633 2633 ; 2634 ; VPBROADCASTB 2635 ; 2636 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM1, XMM2 2637 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM1, FSxBX 2638 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM1, XMM2 2639 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM1, FSxBX 2640 %if TMPL_BITS == 64 2641 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM9, XMM8 2642 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM9, FSxBX 2643 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM9, XMM8 2644 EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM9, FSxBX 2645 %endif 2646 2647 ; 2648 ; VPBROADCASTW 2649 ; 2650 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM1, XMM2 2651 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM1, FSxBX 2652 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM1, XMM2 2653 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM1, FSxBX 2654 %if TMPL_BITS == 64 2655 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM9, XMM8 2656 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM9, FSxBX 2657 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM9, XMM8 2658 EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM9, FSxBX 2659 %endif 2660 2661 ; 2662 ; VPBROADCASTD 2663 ; 2664 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM1, XMM2 2665 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM1, FSxBX 2666 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM1, XMM2 2667 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM1, FSxBX 2668 %if TMPL_BITS == 64 2669 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM9, XMM8 2670 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM9, FSxBX 2671 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM9, XMM8 2672 EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM9, FSxBX 2673 %endif 2674 2675 ; 2676 ; VPBROADCASTQ 2677 ; 2678 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM1, XMM2 2679 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM1, FSxBX 2680 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM1, XMM2 2681 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM1, FSxBX 2682 %if TMPL_BITS == 64 2683 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM9, XMM8 2684 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM9, FSxBX 2685 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM9, XMM8 2686 EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM9, FSxBX 2687 %endif 2688 2689 ; 2690 ; VPBROADCASTI128 2691 ; 2692 EMIT_INSTR_PLUS_ICEBP vbroadcasti128, YMM1, FSxBX 2693 %if TMPL_BITS == 64 2694 EMIT_INSTR_PLUS_ICEBP vbroadcasti128, YMM9, FSxBX 2695 %endif 2696 2697 ; 2634 2698 ; SHA1NEXTE 2635 2699 ; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r100570 r100574 8827 8827 Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iRegDst, &paValues[iVal].uDstOut, cbOperand); 8828 8828 } 8829 8829 8830 Bs3TestCheckExtCtx(pExtCtxOut, pExtCtx, 0 /*fFlags*/, pszMode, idTestStep); 8830 8831 … … 11172 11173 { bs3CpuInstr3_vbroadcastf128_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 9, 255, RT_ELEMENTS(s_aValues128), s_aValues128 }, 11173 11174 11175 }; 11176 static BS3CPUINSTR3_TEST3_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST3_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11177 unsigned const iTest = BS3CPUINSTR3_TEST_MODES_INDEX(bMode); 11178 return bs3CpuInstr3_WorkerTestType3(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11179 g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4), X86_EFL_STATUS_BITS); 11180 } 11181 11182 11183 /* 11184 * VPBROADCASTB/VPBROADCASTW/VPBROADCASTD/VPBROADCASTQ/VPBROADCASTI128 11185 */ 11186 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp); 11187 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp); 11188 extern FNBS3FAR bs3CpuInstr3_vpbroadcastb_XMM9_XMM8_icebp_c64; 11189 extern FNBS3FAR bs3CpuInstr3_vpbroadcastb_XMM9_FSxBX_icebp_c64; 11190 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp); 11191 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp); 11192 extern FNBS3FAR bs3CpuInstr3_vpbroadcastb_YMM9_XMM8_icebp_c64; 11193 extern FNBS3FAR bs3CpuInstr3_vpbroadcastb_YMM9_FSxBX_icebp_c64; 11194 11195 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp); 11196 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp); 11197 extern FNBS3FAR bs3CpuInstr3_vpbroadcastw_XMM9_XMM8_icebp_c64; 11198 extern FNBS3FAR bs3CpuInstr3_vpbroadcastw_XMM9_FSxBX_icebp_c64; 11199 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp); 11200 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp); 11201 extern FNBS3FAR bs3CpuInstr3_vpbroadcastw_YMM9_XMM8_icebp_c64; 11202 extern FNBS3FAR bs3CpuInstr3_vpbroadcastw_YMM9_FSxBX_icebp_c64; 11203 11204 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp); 11205 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp); 11206 extern FNBS3FAR bs3CpuInstr3_vpbroadcastd_XMM9_XMM8_icebp_c64; 11207 extern FNBS3FAR bs3CpuInstr3_vpbroadcastd_XMM9_FSxBX_icebp_c64; 11208 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp); 11209 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp); 11210 extern FNBS3FAR bs3CpuInstr3_vpbroadcastd_YMM9_XMM8_icebp_c64; 11211 extern FNBS3FAR bs3CpuInstr3_vpbroadcastd_YMM9_FSxBX_icebp_c64; 11212 11213 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp); 11214 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp); 11215 extern FNBS3FAR bs3CpuInstr3_vpbroadcastq_XMM9_XMM8_icebp_c64; 11216 extern FNBS3FAR bs3CpuInstr3_vpbroadcastq_XMM9_FSxBX_icebp_c64; 11217 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp); 11218 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp); 11219 extern FNBS3FAR bs3CpuInstr3_vpbroadcastq_YMM9_XMM8_icebp_c64; 11220 extern FNBS3FAR bs3CpuInstr3_vpbroadcastq_YMM9_FSxBX_icebp_c64; 11221 11222 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp); 11223 extern FNBS3FAR bs3CpuInstr3_vbroadcasti128_YMM9_FSxBX_icebp_c64; 11224 11225 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_vpbroadcastb_vpbroadcastw_vpbroadcastd_vpbroadcastq_vbroadcasti128(uint8_t bMode) 11226 { 11227 static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues8[] = 11228 { 11229 { RTUINT256_INIT_C(0, 0, 0, 0), 11230 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 11231 { RTUINT256_INIT_C(0x99aabbccddeeff00, 0x8877665544332200, 0x00ffeeddccbbaa99, 0x8877665544332211), 11232 /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) }, 11233 }; 11234 11235 static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues16[] = 11236 { 11237 { RTUINT256_INIT_C(0, 0, 0, 0), 11238 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 11239 { RTUINT256_INIT_C(0x0000ffffeeeedddd, 0xccccbbbbaaaa9999, 0x8888777766665555, 0x4444333322221111), 11240 /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) }, 11241 }; 11242 11243 static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues32[] = 11244 { 11245 { RTUINT256_INIT_C(0, 0, 0, 0), 11246 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 11247 { RTUINT256_INIT_C(0x8888888877777777, 0x6666666655555555, 0x4444444433333333, 0x2222222211111111), 11248 /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) }, 11249 }; 11250 11251 static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues64[] = 11252 { 11253 { RTUINT256_INIT_C(0, 0, 0, 0), 11254 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 11255 { RTUINT256_INIT_C(0x4444444444444444, 0x3333333333333333, 0x2222222222222222, 0x1111111111111111), 11256 /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) }, 11257 }; 11258 11259 static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues128[] = 11260 { 11261 { RTUINT256_INIT_C(0, 0, 0, 0), 11262 /* => */ RTUINT256_INIT_C(0, 0, 0, 0) }, 11263 { RTUINT256_INIT_C(0x4444444444444444, 0x3333333333333333, 0x2222222222222222, 0x1111111111111111), 11264 /* => */ RTUINT256_INIT_C(0x2222222222222222, 0x1111111111111111, 0x2222222222222222, 0x1111111111111111) }, 11265 }; 11266 11267 static BS3CPUINSTR3_TEST3_T const s_aTests16[] = 11268 { 11269 { bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11270 { bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11271 { bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11272 { bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11273 11274 { bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11275 { bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11276 { bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11277 { bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11278 11279 { bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11280 { bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11281 { bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11282 { bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11283 11284 { bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11285 { bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11286 { bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11287 { bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11288 11289 { bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 255, RT_ELEMENTS(s_aValues128), s_aValues128 }, 11290 }; 11291 static BS3CPUINSTR3_TEST3_T const s_aTests32[] = 11292 { 11293 { bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11294 { bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11295 { bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11296 { bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11297 11298 { bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11299 { bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11300 { bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11301 { bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11302 11303 { bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11304 { bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11305 { bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11306 { bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11307 11308 { bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11309 { bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11310 { bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11311 { bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11312 11313 { bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 255, RT_ELEMENTS(s_aValues128), s_aValues128 }, 11314 }; 11315 static BS3CPUINSTR3_TEST3_T const s_aTests64[] = 11316 { 11317 { bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11318 { bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11319 { bs3CpuInstr3_vpbroadcastb_XMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_128, 9, 8, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11320 { bs3CpuInstr3_vpbroadcastb_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_128, 9, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11321 { bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11322 { bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11323 { bs3CpuInstr3_vpbroadcastb_YMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_256, 9, 8, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11324 { bs3CpuInstr3_vpbroadcastb_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 9, 255, RT_ELEMENTS(s_aValues8), s_aValues8 }, 11325 11326 { bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11327 { bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11328 { bs3CpuInstr3_vpbroadcastw_XMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_128, 9, 8, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11329 { bs3CpuInstr3_vpbroadcastw_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_128, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11330 { bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11331 { bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11332 { bs3CpuInstr3_vpbroadcastw_YMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_256, 9, 8, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11333 { bs3CpuInstr3_vpbroadcastw_YMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_256, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 }, 11334 11335 { bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11336 { bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11337 { bs3CpuInstr3_vpbroadcastd_XMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_128, 9, 8, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11338 { bs3CpuInstr3_vpbroadcastd_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_128, 9, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11339 { bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11340 { bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11341 { bs3CpuInstr3_vpbroadcastd_YMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_256, 9, 8, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11342 { bs3CpuInstr3_vpbroadcastd_YMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_256, 9, 255, RT_ELEMENTS(s_aValues32), s_aValues32 }, 11343 11344 { bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_128, 1, 2, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11345 { bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_128, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11346 { bs3CpuInstr3_vpbroadcastq_XMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_128, 9, 8, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11347 { bs3CpuInstr3_vpbroadcastq_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_128, 9, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11348 { bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11349 { bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11350 { bs3CpuInstr3_vpbroadcastq_YMM9_XMM8_icebp_c64, 255, RM_REG, T_AVX2_256, 9, 8, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11351 { bs3CpuInstr3_vpbroadcastq_YMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX2_256, 9, 255, RT_ELEMENTS(s_aValues64), s_aValues64 }, 11352 11353 { bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 255, RT_ELEMENTS(s_aValues128), s_aValues128 }, 11354 { bs3CpuInstr3_vbroadcasti128_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 9, 255, RT_ELEMENTS(s_aValues128), s_aValues128 }, 11174 11355 }; 11175 11356 static BS3CPUINSTR3_TEST3_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST3_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 12651 12832 #endif 12652 12833 #if defined(ALL_TESTS) 12653 { "vbroadcastss/vbroadcastsd/vbroadcastf128", bs3CpuInstr3_vbroadcastss_vbroadcastsd_vbroadcastf128, 0 } 12834 { "vbroadcastss/vbroadcastsd/vbroadcastf128", bs3CpuInstr3_vbroadcastss_vbroadcastsd_vbroadcastf128, 0 }, 12835 { "vpbroadcastb/vpbroadcastw/vpbroadcastd/vpbroadcastq/vbroadcasti128", 12836 bs3CpuInstr3_vpbroadcastb_vpbroadcastw_vpbroadcastd_vpbroadcastq_vbroadcasti128, 0 } 12654 12837 #endif 12655 12838 };
Note:
See TracChangeset
for help on using the changeset viewer.