Changeset 100608 in vbox
- Timestamp:
- Jul 17, 2023 4:39:46 PM (18 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
r100603 r100608 3341 3341 %endif 3342 3342 3343 ; 3344 ; VPERM2I128 3345 ; 3346 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 0FFh 3347 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 0FFh 3348 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 000h 3349 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 000h 3350 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 001h 3351 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 001h 3352 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 002h 3353 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 002h 3354 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 003h 3355 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 003h 3356 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 008h 3357 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 008h 3358 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 010h 3359 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 010h 3360 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 020h 3361 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 020h 3362 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 030h 3363 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 030h 3364 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, YMM3, 080h 3365 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM1, YMM2, FSxBX, 080h 3366 %if TMPL_BITS == 64 3367 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 0FFh 3368 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 0FFh 3369 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 000h 3370 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 000h 3371 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 001h 3372 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 001h 3373 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 002h 3374 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 002h 3375 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 003h 3376 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 003h 3377 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 008h 3378 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 008h 3379 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 010h 3380 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 010h 3381 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 020h 3382 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 020h 3383 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 030h 3384 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 030h 3385 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, YMM10, 080h 3386 EMIT_INSTR_PLUS_ICEBP vperm2i128, YMM8, YMM9, FSxBX, 080h 3387 %endif 3388 3389 ; 3390 ; VPERM2F128 3391 ; 3392 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 0FFh 3393 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 0FFh 3394 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 000h 3395 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 000h 3396 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 001h 3397 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 001h 3398 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 002h 3399 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 002h 3400 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 003h 3401 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 003h 3402 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 008h 3403 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 008h 3404 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 010h 3405 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 010h 3406 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 020h 3407 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 020h 3408 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 030h 3409 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 030h 3410 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, YMM3, 080h 3411 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM1, YMM2, FSxBX, 080h 3412 %if TMPL_BITS == 64 3413 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 0FFh 3414 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 0FFh 3415 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 000h 3416 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 000h 3417 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 001h 3418 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 001h 3419 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 002h 3420 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 002h 3421 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 003h 3422 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 003h 3423 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 008h 3424 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 008h 3425 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 010h 3426 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 010h 3427 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 020h 3428 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 020h 3429 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 030h 3430 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 030h 3431 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, YMM10, 080h 3432 EMIT_INSTR_PLUS_ICEBP vperm2f128, YMM8, YMM9, FSxBX, 080h 3433 %endif 3434 3343 3435 %endif ; BS3_INSTANTIATING_CMN 3344 3436 -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r100603 r100608 258 258 }; 259 259 260 /** Exception type \#6 test configurations, VEX encoded instructions without legacy SSE analogues. */ 261 static const BS3CPUINSTR3_CONFIG_T g_aXcptConfig6[] = 262 { 263 /* 264 * X87 SSE SSE SSE AVX AVX AVX MMX MMX+SSE MMX+AVX AMD/SSE <-- applies to 265 * +AVX +AMD/SSE 266 * CR0 CR0 CR0 CR4 CR4 XCR0 XCR0 FCW MXCSR 267 * MP, EM, TS, OSFXSR, OSXSAVE, SSE, AVX, ES+, fAligned, AC/AM, MM, bXcptMmx, bXcptSse, bXcptAvx */ 268 { 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #0 */ 269 { 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #1 */ 270 { 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #2 */ 271 { 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_NM }, /* #3 */ 272 { 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_NM }, /* #4 */ 273 { 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #5 */ 274 { 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_UD }, /* #6 */ 275 { 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_UD }, /* #7 */ 276 { 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_UD }, /* #8 */ 277 { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #9 - pending x87 exception */ 278 /* Memory misalignment and alignment checks: */ 279 { 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #10 */ 280 { 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_AC }, /* #11 */ 281 { 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #12 */ 282 /* AMD only: */ 283 { 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_DB }, /* #13 */ 284 { 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, X86_XCPT_UD, X86_XCPT_UD, X86_XCPT_AC }, /* #14 */ 285 }; 260 286 261 287 … … 8489 8515 return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 8490 8516 g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4)); 8517 } 8518 8519 8520 /* 8521 * VPERM2I128/VPERM2F128 - Permute Packed Integer/Fp Values. 8522 */ 8523 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_0FFh_icebp); 8524 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_0FFh_icebp); 8525 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_000h_icebp); 8526 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_000h_icebp); 8527 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_001h_icebp); 8528 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_001h_icebp); 8529 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_002h_icebp); 8530 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_002h_icebp); 8531 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_003h_icebp); 8532 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_003h_icebp); 8533 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_008h_icebp); 8534 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_008h_icebp); 8535 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_010h_icebp); 8536 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_010h_icebp); 8537 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_020h_icebp); 8538 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_020h_icebp); 8539 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_030h_icebp); 8540 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_030h_icebp); 8541 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_080h_icebp); 8542 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_080h_icebp); 8543 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_0FFh_icebp_c64; 8544 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_0FFh_icebp_c64; 8545 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_000h_icebp_c64; 8546 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_000h_icebp_c64; 8547 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_001h_icebp_c64; 8548 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_001h_icebp_c64; 8549 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_002h_icebp_c64; 8550 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_002h_icebp_c64; 8551 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_003h_icebp_c64; 8552 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_003h_icebp_c64; 8553 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_008h_icebp_c64; 8554 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_008h_icebp_c64; 8555 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_010h_icebp_c64; 8556 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_010h_icebp_c64; 8557 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_020h_icebp_c64; 8558 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_020h_icebp_c64; 8559 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_030h_icebp_c64; 8560 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_030h_icebp_c64; 8561 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_080h_icebp_c64; 8562 extern FNBS3FAR bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_080h_icebp_c64; 8563 8564 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_0FFh_icebp); 8565 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_0FFh_icebp); 8566 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_000h_icebp); 8567 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_000h_icebp); 8568 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_001h_icebp); 8569 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_001h_icebp); 8570 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_002h_icebp); 8571 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_002h_icebp); 8572 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_003h_icebp); 8573 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_003h_icebp); 8574 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_008h_icebp); 8575 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_008h_icebp); 8576 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_010h_icebp); 8577 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_010h_icebp); 8578 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_020h_icebp); 8579 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_020h_icebp); 8580 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_030h_icebp); 8581 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_030h_icebp); 8582 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_080h_icebp); 8583 BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_080h_icebp); 8584 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_0FFh_icebp_c64; 8585 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_0FFh_icebp_c64; 8586 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_000h_icebp_c64; 8587 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_000h_icebp_c64; 8588 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_001h_icebp_c64; 8589 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_001h_icebp_c64; 8590 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_002h_icebp_c64; 8591 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_002h_icebp_c64; 8592 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_003h_icebp_c64; 8593 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_003h_icebp_c64; 8594 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_008h_icebp_c64; 8595 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_008h_icebp_c64; 8596 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_010h_icebp_c64; 8597 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_010h_icebp_c64; 8598 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_020h_icebp_c64; 8599 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_020h_icebp_c64; 8600 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_030h_icebp_c64; 8601 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_030h_icebp_c64; 8602 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_080h_icebp_c64; 8603 extern FNBS3FAR bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_080h_icebp_c64; 8604 8605 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_vperm2i128_vperm2f128(uint8_t bMode) 8606 { 8607 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesFF[] = 8608 { 8609 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8610 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8611 /* => */ RTUINT256_INIT_C(0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000) }, 8612 }; 8613 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues00[] = 8614 { 8615 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8616 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8617 /* => */ RTUINT256_INIT_C(0x9192939495969798, 0x8182838485868788, 0x9192939495969798, 0x8182838485868788) }, 8618 }; 8619 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues01[] = 8620 { 8621 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8622 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8623 /* => */ RTUINT256_INIT_C(0x9192939495969798, 0x8182838485868788, 0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8) }, 8624 }; 8625 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues02[] = 8626 { 8627 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8628 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8629 /* => */ RTUINT256_INIT_C(0x9192939495969798, 0x8182838485868788, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8) }, 8630 }; 8631 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues03[] = 8632 { 8633 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8634 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8635 /* => */ RTUINT256_INIT_C(0x9192939495969798, 0x8182838485868788, 0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8) }, 8636 }; 8637 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues08[] = 8638 { 8639 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8640 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8641 /* => */ RTUINT256_INIT_C(0x9192939495969798, 0x8182838485868788, 0x0000000000000000, 0x0000000000000000) }, 8642 }; 8643 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues10[] = 8644 { 8645 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8646 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8647 /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) }, 8648 }; 8649 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues20[] = 8650 { 8651 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8652 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8653 /* => */ RTUINT256_INIT_C(0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8, 0x9192939495969798, 0x8182838485868788) }, 8654 }; 8655 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues30[] = 8656 { 8657 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8658 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8659 /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0x9192939495969798, 0x8182838485868788) }, 8660 }; 8661 static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues80[] = 8662 { 8663 { /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8), 8664 /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788), 8665 /* => */ RTUINT256_INIT_C(0x0000000000000000, 0x0000000000000000, 0x9192939495969798, 0x8182838485868788) }, 8666 }; 8667 8668 static BS3CPUINSTR3_TEST1_T const s_aTests16[] = 8669 { 8670 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8671 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8672 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_000h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8673 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8674 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_001h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8675 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_001h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8676 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_002h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8677 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_002h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8678 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_003h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8679 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_003h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8680 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_008h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8681 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_008h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8682 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_010h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8683 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_010h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8684 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_020h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8685 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_020h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8686 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_030h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8687 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_030h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8688 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_080h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8689 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_080h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8690 8691 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8692 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8693 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_000h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8694 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8695 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_001h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8696 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_001h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8697 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_002h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8698 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_002h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8699 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_003h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8700 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_003h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8701 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_008h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8702 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_008h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8703 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_010h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8704 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_010h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8705 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_020h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8706 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_020h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8707 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_030h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8708 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_030h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8709 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_080h_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8710 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_080h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8711 }; 8712 static BS3CPUINSTR3_TEST1_T const s_aTests32[] = 8713 { 8714 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8715 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8716 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_000h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8717 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8718 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_001h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8719 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_001h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8720 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_002h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8721 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_002h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8722 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_003h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8723 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_003h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8724 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_008h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8725 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_008h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8726 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_010h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8727 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_010h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8728 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_020h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8729 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_020h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8730 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_030h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8731 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_030h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8732 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_080h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8733 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_080h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8734 8735 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8736 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8737 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_000h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8738 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8739 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_001h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8740 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_001h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8741 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_002h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8742 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_002h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8743 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_003h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8744 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_003h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8745 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_008h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8746 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_008h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8747 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_010h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8748 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_010h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8749 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_020h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8750 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_020h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8751 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_030h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8752 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_030h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8753 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_080h_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8754 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_080h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8755 }; 8756 static BS3CPUINSTR3_TEST1_T const s_aTests64[] = 8757 { 8758 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8759 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8760 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_0FFh_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8761 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8762 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_000h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8763 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8764 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_000h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8765 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8766 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_001h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8767 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_001h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8768 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_001h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8769 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_001h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8770 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_002h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8771 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_002h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8772 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_002h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8773 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_002h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8774 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_003h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8775 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_003h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8776 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_003h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8777 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_003h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8778 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_008h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8779 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_008h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8780 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_008h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8781 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_008h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8782 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_010h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8783 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_010h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8784 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_010h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8785 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_010h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8786 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_020h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8787 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_020h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8788 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_020h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8789 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_020h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8790 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_030h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8791 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_030h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8792 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_030h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8793 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_030h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8794 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_YMM3_080h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8795 { bs3CpuInstr3_vperm2i128_YMM1_YMM2_FSxBX_080h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8796 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_YMM10_080h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8797 { bs3CpuInstr3_vperm2i128_YMM8_YMM9_FSxBX_080h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8798 8799 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8800 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8801 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_0FFh_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8802 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 8, 9, 255, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, 8803 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_000h_icebp_c64, 255, RM_REG, T_AVX_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8804 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 1, 2, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8805 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_000h_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8806 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256, 8, 9, 255, RT_ELEMENTS(s_aValues00), s_aValues00 }, 8807 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_001h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8808 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_001h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8809 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_001h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8810 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_001h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues01), s_aValues01 }, 8811 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_002h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8812 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_002h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8813 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_002h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8814 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_002h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues02), s_aValues02 }, 8815 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_003h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8816 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_003h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8817 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_003h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8818 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_003h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues03), s_aValues03 }, 8819 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_008h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8820 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_008h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8821 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_008h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8822 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_008h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues08), s_aValues08 }, 8823 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_010h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8824 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_010h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8825 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_010h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8826 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_010h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues10), s_aValues10 }, 8827 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_020h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8828 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_020h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8829 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_020h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8830 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_020h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues20), s_aValues20 }, 8831 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_030h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8832 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_030h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8833 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_030h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8834 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_030h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues30), s_aValues30 }, 8835 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_YMM3_080h_icebp_c64, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8836 { bs3CpuInstr3_vperm2f128_YMM1_YMM2_FSxBX_080h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 1, 2, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8837 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_YMM10_080h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8838 { bs3CpuInstr3_vperm2f128_YMM8_YMM9_FSxBX_080h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256, 8, 9, 255, RT_ELEMENTS(s_aValues80), s_aValues80 }, 8839 }; 8840 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 8841 unsigned const iTest = BS3CPUINSTR3_TEST_MODES_INDEX(bMode); 8842 return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 8843 g_aXcptConfig6, RT_ELEMENTS(g_aXcptConfig6)); 8491 8844 } 8492 8845 … … 13499 13852 { "[v]paddsb/[v]paddsw", bs3CpuInstr3_v_paddsb_paddsw, 0 }, 13500 13853 #endif 13854 #if defined (ALL_TESTS) 13855 { "vperm2i128/vperm2f128", bs3CpuInstr3_vperm2i128_vperm2f128, 0 }, 13856 #endif 13501 13857 }; 13502 13858 Bs3TestInit("bs3-cpu-instr-3");
Note:
See TracChangeset
for help on using the changeset viewer.