VirtualBox

Changeset 96008 in vbox


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

ValidationKit/bs3-cpu-instr-3: Add [v]pmins{b,w,d} instructions testcase, 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

    r96005 r96008  
    10971097EMIT_INSTR_PLUS_ICEBP   vpminud, YMM8, YMM9, YMM10
    10981098EMIT_INSTR_PLUS_ICEBP   vpminud, YMM8, YMM9, FSxBX
     1099 %endif
     1100
     1101;
     1102; [V]PMINSB
     1103;
     1104EMIT_INSTR_PLUS_ICEBP   pminsb, XMM1, XMM2
     1105EMIT_INSTR_PLUS_ICEBP   pminsb, XMM1, FSxBX
     1106 %if TMPL_BITS == 64
     1107EMIT_INSTR_PLUS_ICEBP   pminsb, XMM8, XMM9
     1108EMIT_INSTR_PLUS_ICEBP   pminsb, XMM8, FSxBX
     1109 %endif
     1110
     1111EMIT_INSTR_PLUS_ICEBP   vpminsb, XMM1, XMM2, XMM3
     1112EMIT_INSTR_PLUS_ICEBP   vpminsb, XMM1, XMM2, FSxBX
     1113 %if TMPL_BITS == 64
     1114EMIT_INSTR_PLUS_ICEBP   vpminsb, XMM8, XMM9, XMM10
     1115EMIT_INSTR_PLUS_ICEBP   vpminsb, XMM8, XMM9, FSxBX
     1116 %endif
     1117
     1118EMIT_INSTR_PLUS_ICEBP   vpminsb, YMM1, YMM2, YMM3
     1119EMIT_INSTR_PLUS_ICEBP   vpminsb, YMM1, YMM2, FSxBX
     1120 %if TMPL_BITS == 64
     1121EMIT_INSTR_PLUS_ICEBP   vpminsb, YMM8, YMM9, YMM10
     1122EMIT_INSTR_PLUS_ICEBP   vpminsb, YMM8, YMM9, FSxBX
     1123 %endif
     1124
     1125;
     1126; [V]PMINSW
     1127;
     1128EMIT_INSTR_PLUS_ICEBP   pminsw, MM1, MM2
     1129EMIT_INSTR_PLUS_ICEBP   pminsw, MM1, FSxBX
     1130
     1131EMIT_INSTR_PLUS_ICEBP   pminsw, XMM1, XMM2
     1132EMIT_INSTR_PLUS_ICEBP   pminsw, XMM1, FSxBX
     1133 %if TMPL_BITS == 64
     1134EMIT_INSTR_PLUS_ICEBP   pminsw, XMM8, XMM9
     1135EMIT_INSTR_PLUS_ICEBP   pminsw, XMM8, FSxBX
     1136 %endif
     1137
     1138EMIT_INSTR_PLUS_ICEBP   vpminsw, XMM1, XMM2, XMM3
     1139EMIT_INSTR_PLUS_ICEBP   vpminsw, XMM1, XMM2, FSxBX
     1140 %if TMPL_BITS == 64
     1141EMIT_INSTR_PLUS_ICEBP   vpminsw, XMM8, XMM9, XMM10
     1142EMIT_INSTR_PLUS_ICEBP   vpminsw, XMM8, XMM9, FSxBX
     1143 %endif
     1144
     1145EMIT_INSTR_PLUS_ICEBP   vpminsw, YMM1, YMM2, YMM3
     1146EMIT_INSTR_PLUS_ICEBP   vpminsw, YMM1, YMM2, FSxBX
     1147 %if TMPL_BITS == 64
     1148EMIT_INSTR_PLUS_ICEBP   vpminsw, YMM8, YMM9, YMM10
     1149EMIT_INSTR_PLUS_ICEBP   vpminsw, YMM8, YMM9, FSxBX
     1150 %endif
     1151
     1152;
     1153; [V]PMINSD
     1154;
     1155EMIT_INSTR_PLUS_ICEBP   pminsd, XMM1, XMM2
     1156EMIT_INSTR_PLUS_ICEBP   pminsd, XMM1, FSxBX
     1157 %if TMPL_BITS == 64
     1158EMIT_INSTR_PLUS_ICEBP   pminsd, XMM8, XMM9
     1159EMIT_INSTR_PLUS_ICEBP   pminsd, XMM8, FSxBX
     1160 %endif
     1161
     1162EMIT_INSTR_PLUS_ICEBP   vpminsd, XMM1, XMM2, XMM3
     1163EMIT_INSTR_PLUS_ICEBP   vpminsd, XMM1, XMM2, FSxBX
     1164 %if TMPL_BITS == 64
     1165EMIT_INSTR_PLUS_ICEBP   vpminsd, XMM8, XMM9, XMM10
     1166EMIT_INSTR_PLUS_ICEBP   vpminsd, XMM8, XMM9, FSxBX
     1167 %endif
     1168
     1169EMIT_INSTR_PLUS_ICEBP   vpminsd, YMM1, YMM2, YMM3
     1170EMIT_INSTR_PLUS_ICEBP   vpminsd, YMM1, YMM2, FSxBX
     1171 %if TMPL_BITS == 64
     1172EMIT_INSTR_PLUS_ICEBP   vpminsd, YMM8, YMM9, YMM10
     1173EMIT_INSTR_PLUS_ICEBP   vpminsd, YMM8, YMM9, FSxBX
    10991174 %endif
    11001175
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r96005 r96008  
    37523752        {  bs3CpuInstr3_vpminud_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
    37533753        {  bs3CpuInstr3_vpminud_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3754    };
     3755    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     3756    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     3757    return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     3758                                        g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4));
     3759}
     3760
     3761
     3762/*
     3763 * [V]PMINSB  - Compare signed byte integers and returns minimum values.
     3764 * [V]PMINSW  - Compare signed word integers and returns minimum values.
     3765 * [V]PMINSD  - Compare signed double word integers and returns minimum values.
     3766 */
     3767BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsb_XMM1_XMM2_icebp);
     3768BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsb_XMM1_FSxBX_icebp);
     3769extern FNBS3FAR             bs3CpuInstr3_pminsb_XMM8_XMM9_icebp_c64;
     3770extern FNBS3FAR             bs3CpuInstr3_pminsb_XMM8_FSxBX_icebp_c64;
     3771BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsb_XMM1_XMM2_XMM3_icebp);
     3772BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsb_XMM1_XMM2_FSxBX_icebp);
     3773extern FNBS3FAR             bs3CpuInstr3_vpminsb_XMM8_XMM9_XMM10_icebp_c64;
     3774extern FNBS3FAR             bs3CpuInstr3_vpminsb_XMM8_XMM9_FSxBX_icebp_c64;
     3775BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsb_YMM1_YMM2_YMM3_icebp);
     3776BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsb_YMM1_YMM2_FSxBX_icebp);
     3777extern FNBS3FAR             bs3CpuInstr3_vpminsb_YMM8_YMM9_YMM10_icebp_c64;
     3778extern FNBS3FAR             bs3CpuInstr3_vpminsb_YMM8_YMM9_FSxBX_icebp_c64;
     3779
     3780BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsw_MM1_MM2_icebp);
     3781BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsw_MM1_FSxBX_icebp);
     3782BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsw_XMM1_XMM2_icebp);
     3783BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsw_XMM1_FSxBX_icebp);
     3784extern FNBS3FAR             bs3CpuInstr3_pminsw_XMM8_XMM9_icebp_c64;
     3785extern FNBS3FAR             bs3CpuInstr3_pminsw_XMM8_FSxBX_icebp_c64;
     3786BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsw_XMM1_XMM2_XMM3_icebp);
     3787BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsw_XMM1_XMM2_FSxBX_icebp);
     3788extern FNBS3FAR             bs3CpuInstr3_vpminsw_XMM8_XMM9_XMM10_icebp_c64;
     3789extern FNBS3FAR             bs3CpuInstr3_vpminsw_XMM8_XMM9_FSxBX_icebp_c64;
     3790BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsw_YMM1_YMM2_YMM3_icebp);
     3791BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsw_YMM1_YMM2_FSxBX_icebp);
     3792extern FNBS3FAR             bs3CpuInstr3_vpminsw_YMM8_YMM9_YMM10_icebp_c64;
     3793extern FNBS3FAR             bs3CpuInstr3_vpminsw_YMM8_YMM9_FSxBX_icebp_c64;
     3794
     3795BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsd_XMM1_XMM2_icebp);
     3796BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pminsd_XMM1_FSxBX_icebp);
     3797extern FNBS3FAR             bs3CpuInstr3_pminsd_XMM8_XMM9_icebp_c64;
     3798extern FNBS3FAR             bs3CpuInstr3_pminsd_XMM8_FSxBX_icebp_c64;
     3799BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsd_XMM1_XMM2_XMM3_icebp);
     3800BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsd_XMM1_XMM2_FSxBX_icebp);
     3801extern FNBS3FAR             bs3CpuInstr3_vpminsd_XMM8_XMM9_XMM10_icebp_c64;
     3802extern FNBS3FAR             bs3CpuInstr3_vpminsd_XMM8_XMM9_FSxBX_icebp_c64;
     3803BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsd_YMM1_YMM2_YMM3_icebp);
     3804BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpminsd_YMM1_YMM2_FSxBX_icebp);
     3805extern FNBS3FAR             bs3CpuInstr3_vpminsd_YMM8_YMM9_YMM10_icebp_c64;
     3806extern FNBS3FAR             bs3CpuInstr3_vpminsd_YMM8_YMM9_FSxBX_icebp_c64;
     3807
     3808BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_pminsb_pminsw_pminsd(uint8_t bMode)
     3809{
     3810    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesB64[] =
     3811    {
     3812        {   /*src2*/ RTUINT256_INIT_C( 0,  0,  0, 0),
     3813            /*src1*/ RTUINT256_INIT_C( 0,  0,  0, 0),
     3814            /* => */ RTUINT256_INIT_C( 0,  0,  0, 0) },
     3815        {   /*src2*/ RTUINT256_INIT_C( 1,  2,  3, 0xf1f2f3f4f5f6f7f8),
     3816            /*src1*/ RTUINT256_INIT_C( 1,  2,  3, 0xe1e2e3e4e5e6e7e8),
     3817            /* => */ RTUINT256_INIT_C( 1,  2,  3, 0xe1e2e3e4e5e6e7e8) },
     3818        {   /*src2*/ RTUINT256_INIT_C( 4,  5,  7, 0x5555666677778888),
     3819            /*src1*/ RTUINT256_INIT_C( 4,  6,  7, 0xddddeeeeffff0000),
     3820            /* => */ RTUINT256_INIT_C( 4,  6,  7, 0xddddeeeeffff8888) },
     3821        {   /*src2*/ RTUINT256_INIT_C( 8, 10, 11, 0x9c5ce073930996bb),
     3822            /*src1*/ RTUINT256_INIT_C(12, 13, 14, 0x43d3cda0238499fd),
     3823            /* => */ RTUINT256_INIT_C(12, 13, 14, 0x9c5ccda0930996bb) },
     3824        {   /*src2*/ RTUINT256_INIT_C( 8, 10, 11, 0xff820064fffe0042),
     3825            /*src1*/ RTUINT256_INIT_C(12, 13, 14, 0x0022fe00ff80ff81),
     3826            /* => */ RTUINT256_INIT_C(12, 13, 14, 0xff82fe00ff80ff81) },
     3827    };
     3828    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesB[] =
     3829    {
     3830        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3831            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3832            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     3833        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     3834            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     3835            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) },
     3836        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     3837            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     3838            /* => */ RTUINT256_INIT_C(0x1eddddac09dc3294, 0xf9f48ec8406b3fe6, 0x8800e9a8bf999ba2, 0x9cd3cda0938496bb) },
     3839    };
     3840    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesW[] =
     3841    {
     3842        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3843            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3844            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     3845        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     3846            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     3847            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) },
     3848        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     3849            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     3850            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40723fe6, 0x8800e95bbf999ba2, 0x9c5ccda0930996bb) },
     3851    };
     3852    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesD[] =
     3853    {
     3854        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3855            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     3856            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     3857        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     3858            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     3859            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) },
     3860        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     3861            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     3862            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x9c5ce073930996bb) },
     3863    };
     3864
     3865    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     3866    {
     3867        {  bs3CpuInstr3_pminsb_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3868        {  bs3CpuInstr3_pminsb_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3869        {  bs3CpuInstr3_vpminsb_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3870        {  bs3CpuInstr3_vpminsb_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3871        {  bs3CpuInstr3_vpminsb_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3872        {  bs3CpuInstr3_vpminsb_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3873
     3874        {  bs3CpuInstr3_pminsw_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3875        {  bs3CpuInstr3_pminsw_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3876        {  bs3CpuInstr3_pminsw_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3877        {  bs3CpuInstr3_pminsw_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3878        {  bs3CpuInstr3_vpminsw_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3879        {  bs3CpuInstr3_vpminsw_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3880        {  bs3CpuInstr3_vpminsw_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3881        {  bs3CpuInstr3_vpminsw_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3882
     3883        {  bs3CpuInstr3_pminsd_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3884        {  bs3CpuInstr3_pminsd_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3885        {  bs3CpuInstr3_vpminsd_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3886        {  bs3CpuInstr3_vpminsd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3887        {  bs3CpuInstr3_vpminsd_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3888        {  bs3CpuInstr3_vpminsd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3889    };
     3890    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     3891    {
     3892        {  bs3CpuInstr3_pminsb_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3893        {  bs3CpuInstr3_pminsb_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3894        {  bs3CpuInstr3_vpminsb_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3895        {  bs3CpuInstr3_vpminsb_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3896        {  bs3CpuInstr3_vpminsb_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3897        {  bs3CpuInstr3_vpminsb_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3898
     3899        {  bs3CpuInstr3_pminsw_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3900        {  bs3CpuInstr3_pminsw_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3901        {  bs3CpuInstr3_pminsw_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3902        {  bs3CpuInstr3_pminsw_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3903        {  bs3CpuInstr3_vpminsw_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3904        {  bs3CpuInstr3_vpminsw_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3905        {  bs3CpuInstr3_vpminsw_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3906        {  bs3CpuInstr3_vpminsw_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3907
     3908        {  bs3CpuInstr3_pminsd_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3909        {  bs3CpuInstr3_pminsd_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3910        {  bs3CpuInstr3_vpminsd_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3911        {  bs3CpuInstr3_vpminsd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3912        {  bs3CpuInstr3_vpminsd_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3913        {  bs3CpuInstr3_vpminsd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3914    };
     3915    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     3916    {
     3917        {  bs3CpuInstr3_pminsb_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3918        {  bs3CpuInstr3_pminsb_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3919        {  bs3CpuInstr3_pminsb_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE4_1,    8, 8,   9, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3920        {  bs3CpuInstr3_pminsb_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    8, 8, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3921        {  bs3CpuInstr3_vpminsb_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3922        {  bs3CpuInstr3_vpminsb_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3923        {  bs3CpuInstr3_vpminsb_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3924        {  bs3CpuInstr3_vpminsb_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3925        {  bs3CpuInstr3_vpminsb_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3926        {  bs3CpuInstr3_vpminsb_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3927        {  bs3CpuInstr3_vpminsb_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3928        {  bs3CpuInstr3_vpminsb_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     3929
     3930        {  bs3CpuInstr3_pminsw_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3931        {  bs3CpuInstr3_pminsw_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB64), s_aValuesB64 },
     3932        {  bs3CpuInstr3_pminsw_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3933        {  bs3CpuInstr3_pminsw_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3934        {  bs3CpuInstr3_pminsw_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3935        {  bs3CpuInstr3_pminsw_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3936        {  bs3CpuInstr3_vpminsw_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3937        {  bs3CpuInstr3_vpminsw_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3938        {  bs3CpuInstr3_vpminsw_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3939        {  bs3CpuInstr3_vpminsw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3940        {  bs3CpuInstr3_vpminsw_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3941        {  bs3CpuInstr3_vpminsw_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3942        {  bs3CpuInstr3_vpminsw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3943        {  bs3CpuInstr3_vpminsw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     3944
     3945        {  bs3CpuInstr3_pminsd_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE4_1,    1, 1,   2, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3946        {  bs3CpuInstr3_pminsd_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    1, 1, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3947        {  bs3CpuInstr3_pminsd_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE4_1,    8, 8,   9, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3948        {  bs3CpuInstr3_pminsd_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE4_1,    8, 8, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3949        {  bs3CpuInstr3_vpminsd_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3950        {  bs3CpuInstr3_vpminsd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3951        {  bs3CpuInstr3_vpminsd_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3952        {  bs3CpuInstr3_vpminsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3953        {  bs3CpuInstr3_vpminsd_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3954        {  bs3CpuInstr3_vpminsd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3955        {  bs3CpuInstr3_vpminsd_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
     3956        {  bs3CpuInstr3_vpminsd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesD),   s_aValuesD },
    37543957    };
    37553958    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    66716874        { "[v]pmaxub/[v]pmaxuw/[v]pmaxud",                  bs3CpuInstr3_v_pmaxub_pmaxuw_pmaxud, 0 },
    66726875        { "[v]pminub/[v]pminuw/[v]pminud",                  bs3CpuInstr3_v_pminub_pminuw_pminud, 0 },
     6876        { "[v]pminsb/[v]pminsw/[v]pminsd",                  bs3CpuInstr3_v_pminsb_pminsw_pminsd, 0 },
    66736877#endif
    66746878#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