VirtualBox

Changeset 96005 in vbox


Ignore:
Timestamp:
Aug 3, 2022 6:03:29 PM (2 years ago)
Author:
vboxsync
Message:

ValidationKit/bs3-cpu-instr-3: Test all [v]pminu{b,w,d} variants, bugref:9898

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
2 edited

Legend:

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

    r96003 r96005  
    10491049EMIT_INSTR_PLUS_ICEBP   vpminub, YMM8, YMM9, YMM10
    10501050EMIT_INSTR_PLUS_ICEBP   vpminub, YMM8, YMM9, FSxBX
     1051 %endif
     1052
     1053;
     1054; [V]PMINUW
     1055;
     1056EMIT_INSTR_PLUS_ICEBP   pminuw, XMM1, XMM2
     1057EMIT_INSTR_PLUS_ICEBP   pminuw, XMM1, FSxBX
     1058 %if TMPL_BITS == 64
     1059EMIT_INSTR_PLUS_ICEBP   pminuw, XMM8, XMM9
     1060EMIT_INSTR_PLUS_ICEBP   pminuw, XMM8, FSxBX
     1061 %endif
     1062
     1063EMIT_INSTR_PLUS_ICEBP   vpminuw, XMM1, XMM2, XMM3
     1064EMIT_INSTR_PLUS_ICEBP   vpminuw, XMM1, XMM2, FSxBX
     1065 %if TMPL_BITS == 64
     1066EMIT_INSTR_PLUS_ICEBP   vpminuw, XMM8, XMM9, XMM10
     1067EMIT_INSTR_PLUS_ICEBP   vpminuw, XMM8, XMM9, FSxBX
     1068 %endif
     1069
     1070EMIT_INSTR_PLUS_ICEBP   vpminuw, YMM1, YMM2, YMM3
     1071EMIT_INSTR_PLUS_ICEBP   vpminuw, YMM1, YMM2, FSxBX
     1072 %if TMPL_BITS == 64
     1073EMIT_INSTR_PLUS_ICEBP   vpminuw, YMM8, YMM9, YMM10
     1074EMIT_INSTR_PLUS_ICEBP   vpminuw, YMM8, YMM9, FSxBX
     1075 %endif
     1076
     1077;
     1078; [V]PMINUD
     1079;
     1080EMIT_INSTR_PLUS_ICEBP   pminud, XMM1, XMM2
     1081EMIT_INSTR_PLUS_ICEBP   pminud, XMM1, FSxBX
     1082 %if TMPL_BITS == 64
     1083EMIT_INSTR_PLUS_ICEBP   pminud, XMM8, XMM9
     1084EMIT_INSTR_PLUS_ICEBP   pminud, XMM8, FSxBX
     1085 %endif
     1086
     1087EMIT_INSTR_PLUS_ICEBP   vpminud, XMM1, XMM2, XMM3
     1088EMIT_INSTR_PLUS_ICEBP   vpminud, XMM1, XMM2, FSxBX
     1089 %if TMPL_BITS == 64
     1090EMIT_INSTR_PLUS_ICEBP   vpminud, XMM8, XMM9, XMM10
     1091EMIT_INSTR_PLUS_ICEBP   vpminud, XMM8, XMM9, FSxBX
     1092 %endif
     1093
     1094EMIT_INSTR_PLUS_ICEBP   vpminud, YMM1, YMM2, YMM3
     1095EMIT_INSTR_PLUS_ICEBP   vpminud, YMM1, YMM2, FSxBX
     1096 %if TMPL_BITS == 64
     1097EMIT_INSTR_PLUS_ICEBP   vpminud, YMM8, YMM9, YMM10
     1098EMIT_INSTR_PLUS_ICEBP   vpminud, YMM8, YMM9, FSxBX
    10511099 %endif
    10521100
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r96003 r96005  
    35593559/*
    35603560 * [V]PMINUB  - Compare unsigned byte integers and returns minimum values.
     3561 * [V]PMINUW  - Compare unsigned word integers and returns minimum values.
     3562 * [V]PMINUD  - Compare unsigned double word integers and returns minimum values.
    35613563 */
    35623564BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminub_MM1_MM2_icebp);
     
    35753577extern FNBS3FAR             bs3CpuInstr3_vpminub_YMM8_YMM9_FSxBX_icebp_c64;
    35763578
    3577 BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_pminub(uint8_t bMode)
    3578 {
    3579     static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues64[] =
     3579BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminuw_XMM1_XMM2_icebp);
     3580BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminuw_XMM1_FSxBX_icebp);
     3581extern FNBS3FAR             bs3CpuInstr3_pminuw_XMM8_XMM9_icebp_c64;
     3582extern FNBS3FAR             bs3CpuInstr3_pminuw_XMM8_FSxBX_icebp_c64;
     3583BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminuw_XMM1_XMM2_XMM3_icebp);
     3584BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminuw_XMM1_XMM2_FSxBX_icebp);
     3585extern FNBS3FAR             bs3CpuInstr3_vpminuw_XMM8_XMM9_XMM10_icebp_c64;
     3586extern FNBS3FAR             bs3CpuInstr3_vpminuw_XMM8_XMM9_FSxBX_icebp_c64;
     3587BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminuw_YMM1_YMM2_YMM3_icebp);
     3588BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminuw_YMM1_YMM2_FSxBX_icebp);
     3589extern FNBS3FAR             bs3CpuInstr3_vpminuw_YMM8_YMM9_YMM10_icebp_c64;
     3590extern FNBS3FAR             bs3CpuInstr3_vpminuw_YMM8_YMM9_FSxBX_icebp_c64;
     3591
     3592BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminud_XMM1_XMM2_icebp);
     3593BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminud_XMM1_FSxBX_icebp);
     3594extern FNBS3FAR             bs3CpuInstr3_pminud_XMM8_XMM9_icebp_c64;
     3595extern FNBS3FAR             bs3CpuInstr3_pminud_XMM8_FSxBX_icebp_c64;
     3596BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminud_XMM1_XMM2_XMM3_icebp);
     3597BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminud_XMM1_XMM2_FSxBX_icebp);
     3598extern FNBS3FAR             bs3CpuInstr3_vpminud_XMM8_XMM9_XMM10_icebp_c64;
     3599extern FNBS3FAR             bs3CpuInstr3_vpminud_XMM8_XMM9_FSxBX_icebp_c64;
     3600BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminud_YMM1_YMM2_YMM3_icebp);
     3601BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminud_YMM1_YMM2_FSxBX_icebp);
     3602extern FNBS3FAR             bs3CpuInstr3_vpminud_YMM8_YMM9_YMM10_icebp_c64;
     3603extern FNBS3FAR             bs3CpuInstr3_vpminud_YMM8_YMM9_FSxBX_icebp_c64;
     3604
     3605BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_pminub_pminuw_pminud(uint8_t bMode)
     3606{
     3607    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesB64[] =
    35803608    {
    35813609        {   /*src2*/ RTUINT256_INIT_C( 0,  0,  0, 0),
     
    35953623            /* => */ RTUINT256_INIT_C(12, 13, 14, 0x00220000ff800042) },
    35963624    };
    3597     static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesOthers[] =
     3625    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesB[] =
    35983626    {
    35993627        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     
    36073635            /* => */ RTUINT256_INIT_C(0x1e09dd2a09633294, 0x3e5c17c8406b3f33, 0x88002f5b564c62a2, 0x435ccd73230996bb) },
    36083636    };
     3637    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesW[] =
     3638    {
     3639        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3640            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3641            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     3642        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     3643            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     3644            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) },
     3645        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     3646            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     3647            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0x3ef417c840723fe6, 0x88002fa8564c62c3, 0x43d3cda0238496bb) },
     3648    };
     3649    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesD[] =
     3650    {
     3651        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3652            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3653            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     3654        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     3655            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     3656            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) },
     3657        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     3658            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     3659            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0x3ef417c840725633, 0x8800e95b564c9ba2, 0x43d3cda0238499fd) },
     3660    };
    36093661
    36103662    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
    36113663    {
    3612         {  bs3CpuInstr3_pminub_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValues64), s_aValues64 },
    3613         {  bs3CpuInstr3_pminub_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 },
    3614         {  bs3CpuInstr3_pminub_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3615         {  bs3CpuInstr3_pminub_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3616         {  bs3CpuInstr3_vpminub_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3617         {  bs3CpuInstr3_vpminub_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3618         {  bs3CpuInstr3_vpminub_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3619         {  bs3CpuInstr3_vpminub_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
     3664        {  bs3CpuInstr3_pminub_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3665        {  bs3CpuInstr3_pminub_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3666        {  bs3CpuInstr3_pminub_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3667        {  bs3CpuInstr3_pminub_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3668        {  bs3CpuInstr3_vpminub_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3669        {  bs3CpuInstr3_vpminub_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3670        {  bs3CpuInstr3_vpminub_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3671        {  bs3CpuInstr3_vpminub_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3672
     3673        {  bs3CpuInstr3_pminuw_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3674        {  bs3CpuInstr3_pminuw_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3675        {  bs3CpuInstr3_vpminuw_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3676        {  bs3CpuInstr3_vpminuw_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3677        {  bs3CpuInstr3_vpminuw_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3678        {  bs3CpuInstr3_vpminuw_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3679
     3680        {  bs3CpuInstr3_pminud_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3681        {  bs3CpuInstr3_pminud_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3682        {  bs3CpuInstr3_vpminud_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3683        {  bs3CpuInstr3_vpminud_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3684        {  bs3CpuInstr3_vpminud_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3685        {  bs3CpuInstr3_vpminud_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
    36203686    };
    36213687    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
    36223688    {
    3623         {  bs3CpuInstr3_pminub_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValues64), s_aValues64 },
    3624         {  bs3CpuInstr3_pminub_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 },
    3625         {  bs3CpuInstr3_pminub_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3626         {  bs3CpuInstr3_pminub_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3627         {  bs3CpuInstr3_vpminub_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3628         {  bs3CpuInstr3_vpminub_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3629         {  bs3CpuInstr3_vpminub_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3630         {  bs3CpuInstr3_vpminub_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
     3689        {  bs3CpuInstr3_pminub_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3690        {  bs3CpuInstr3_pminub_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3691        {  bs3CpuInstr3_pminub_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3692        {  bs3CpuInstr3_pminub_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3693        {  bs3CpuInstr3_vpminub_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3694        {  bs3CpuInstr3_vpminub_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3695        {  bs3CpuInstr3_vpminub_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3696        {  bs3CpuInstr3_vpminub_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3697
     3698        {  bs3CpuInstr3_pminuw_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3699        {  bs3CpuInstr3_pminuw_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3700        {  bs3CpuInstr3_vpminuw_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3701        {  bs3CpuInstr3_vpminuw_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3702        {  bs3CpuInstr3_vpminuw_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3703        {  bs3CpuInstr3_vpminuw_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3704
     3705        {  bs3CpuInstr3_pminud_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3706        {  bs3CpuInstr3_pminud_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3707        {  bs3CpuInstr3_vpminud_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3708        {  bs3CpuInstr3_vpminud_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3709        {  bs3CpuInstr3_vpminud_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3710        {  bs3CpuInstr3_vpminud_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
    36313711    };
    36323712    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
    36333713    {
    3634         {  bs3CpuInstr3_pminub_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValues64), s_aValues64 },
    3635         {  bs3CpuInstr3_pminub_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValues64), s_aValues64 },
    3636         {  bs3CpuInstr3_pminub_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3637         {  bs3CpuInstr3_pminub_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3638         {  bs3CpuInstr3_pminub_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3639         {  bs3CpuInstr3_pminub_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3640         {  bs3CpuInstr3_vpminub_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3641         {  bs3CpuInstr3_vpminub_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3642         {  bs3CpuInstr3_vpminub_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3643         {  bs3CpuInstr3_vpminub_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3644         {  bs3CpuInstr3_vpminub_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3645         {  bs3CpuInstr3_vpminub_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3646         {  bs3CpuInstr3_vpminub_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
    3647         {  bs3CpuInstr3_vpminub_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesOthers), s_aValuesOthers },
     3714        {  bs3CpuInstr3_pminub_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3715        {  bs3CpuInstr3_pminub_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3716        {  bs3CpuInstr3_pminub_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3717        {  bs3CpuInstr3_pminub_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3718        {  bs3CpuInstr3_pminub_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3719        {  bs3CpuInstr3_pminub_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3720        {  bs3CpuInstr3_vpminub_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3721        {  bs3CpuInstr3_vpminub_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3722        {  bs3CpuInstr3_vpminub_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3723        {  bs3CpuInstr3_vpminub_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3724        {  bs3CpuInstr3_vpminub_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3725        {  bs3CpuInstr3_vpminub_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3726        {  bs3CpuInstr3_vpminub_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3727        {  bs3CpuInstr3_vpminub_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3728
     3729        {  bs3CpuInstr3_pminuw_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3730        {  bs3CpuInstr3_pminuw_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3731        {  bs3CpuInstr3_pminuw_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE4_1,    8, 8,   9, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3732        {  bs3CpuInstr3_pminuw_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    8, 8, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3733        {  bs3CpuInstr3_vpminuw_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3734        {  bs3CpuInstr3_vpminuw_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3735        {  bs3CpuInstr3_vpminuw_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3736        {  bs3CpuInstr3_vpminuw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3737        {  bs3CpuInstr3_vpminuw_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3738        {  bs3CpuInstr3_vpminuw_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3739        {  bs3CpuInstr3_vpminuw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3740        {  bs3CpuInstr3_vpminuw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3741
     3742        {  bs3CpuInstr3_pminud_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3743        {  bs3CpuInstr3_pminud_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3744        {  bs3CpuInstr3_pminud_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE4_1,    8, 8,   9, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3745        {  bs3CpuInstr3_pminud_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    8, 8, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3746        {  bs3CpuInstr3_vpminud_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3747        {  bs3CpuInstr3_vpminud_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3748        {  bs3CpuInstr3_vpminud_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3749        {  bs3CpuInstr3_vpminud_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3750        {  bs3CpuInstr3_vpminud_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3751        {  bs3CpuInstr3_vpminud_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3752        {  bs3CpuInstr3_vpminud_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3753        {  bs3CpuInstr3_vpminud_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
    36483754    };
    36493755    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    65646670#if defined(ALL_TESTS)
    65656671        { "[v]pmaxub/[v]pmaxuw/[v]pmaxud",                  bs3CpuInstr3_v_pmaxub_pmaxuw_pmaxud, 0 },
    6566         { "[v]pminub",                                      bs3CpuInstr3_v_pminub, 0 },
     6672        { "[v]pminub/[v]pminuw/[v]pminud",                  bs3CpuInstr3_v_pminub_pminuw_pminud, 0 },
    65676673#endif
    65686674#if defined(ALL_TESTS)
Note: See TracChangeset for help on using the changeset viewer.

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