VirtualBox

Changeset 100600 in vbox for trunk/src/VBox/ValidationKit


Ignore:
Timestamp:
Jul 17, 2023 11:51:38 AM (18 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: Implement testcases for [v]paddusb/[v]paddusw instruction emulations, 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

    r100598 r100600  
    32613261 %endif
    32623262
     3263;
     3264; [V]PADDUSB
     3265;
     3266EMIT_INSTR_PLUS_ICEBP   paddusb,  MM1, MM2
     3267EMIT_INSTR_PLUS_ICEBP   paddusb,  MM1, FSxBX
     3268EMIT_INSTR_PLUS_ICEBP   paddusb,  XMM1, XMM2
     3269EMIT_INSTR_PLUS_ICEBP   paddusb,  XMM1, FSxBX
     3270EMIT_INSTR_PLUS_ICEBP   vpaddusb, XMM1, XMM2, XMM3
     3271EMIT_INSTR_PLUS_ICEBP   vpaddusb, XMM1, XMM2, FSxBX
     3272EMIT_INSTR_PLUS_ICEBP   vpaddusb, YMM1, YMM2, YMM3
     3273EMIT_INSTR_PLUS_ICEBP   vpaddusb, YMM1, YMM2, FSxBX
     3274 %if TMPL_BITS == 64
     3275EMIT_INSTR_PLUS_ICEBP   paddusb,  XMM8, XMM9
     3276EMIT_INSTR_PLUS_ICEBP   paddusb,  XMM8, FSxBX
     3277EMIT_INSTR_PLUS_ICEBP   vpaddusb, XMM8, XMM9, XMM10
     3278EMIT_INSTR_PLUS_ICEBP   vpaddusb, XMM8, XMM9, FSxBX
     3279EMIT_INSTR_PLUS_ICEBP   vpaddusb, YMM8, YMM9, YMM10
     3280EMIT_INSTR_PLUS_ICEBP   vpaddusb, YMM8, YMM9, FSxBX
     3281 %endif
     3282
     3283;
     3284; [V]PADDUSW
     3285;
     3286EMIT_INSTR_PLUS_ICEBP   paddusw,  MM1, MM2
     3287EMIT_INSTR_PLUS_ICEBP   paddusw,  MM1, FSxBX
     3288EMIT_INSTR_PLUS_ICEBP   paddusw,  XMM1, XMM2
     3289EMIT_INSTR_PLUS_ICEBP   paddusw,  XMM1, FSxBX
     3290EMIT_INSTR_PLUS_ICEBP   vpaddusw, XMM1, XMM2, XMM3
     3291EMIT_INSTR_PLUS_ICEBP   vpaddusw, XMM1, XMM2, FSxBX
     3292EMIT_INSTR_PLUS_ICEBP   vpaddusw, YMM1, YMM2, YMM3
     3293EMIT_INSTR_PLUS_ICEBP   vpaddusw, YMM1, YMM2, FSxBX
     3294 %if TMPL_BITS == 64
     3295EMIT_INSTR_PLUS_ICEBP   paddusw,  XMM8, XMM9
     3296EMIT_INSTR_PLUS_ICEBP   paddusw,  XMM8, FSxBX
     3297EMIT_INSTR_PLUS_ICEBP   vpaddusw, XMM8, XMM9, XMM10
     3298EMIT_INSTR_PLUS_ICEBP   vpaddusw, XMM8, XMM9, FSxBX
     3299EMIT_INSTR_PLUS_ICEBP   vpaddusw, YMM8, YMM9, YMM10
     3300EMIT_INSTR_PLUS_ICEBP   vpaddusw, YMM8, YMM9, FSxBX
     3301 %endif
     3302
    32633303%endif ; BS3_INSTANTIATING_CMN
    32643304
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r100598 r100600  
    82048204        {  bs3CpuInstr3_vpsubusw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValues16), s_aValues16 },
    82058205        {  bs3CpuInstr3_vpsubusw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8206    };
     8207    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     8208    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     8209    return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     8210                                        g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4));
     8211}
     8212
     8213
     8214/*
     8215 * [V]PADDUSB/[V]PADDUSW  - Add paced unsigned integers with unsigned saturation.
     8216 */
     8217BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusb_MM1_MM2_icebp);
     8218BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusb_MM1_FSxBX_icebp);
     8219BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusb_XMM1_XMM2_icebp);
     8220BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusb_XMM1_FSxBX_icebp);
     8221extern FNBS3FAR             bs3CpuInstr3_paddusb_XMM8_XMM9_icebp_c64;
     8222extern FNBS3FAR             bs3CpuInstr3_paddusb_XMM8_FSxBX_icebp_c64;
     8223BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusb_XMM1_XMM2_XMM3_icebp);
     8224BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusb_XMM1_XMM2_FSxBX_icebp);
     8225extern FNBS3FAR             bs3CpuInstr3_vpaddusb_XMM8_XMM9_XMM10_icebp_c64;
     8226extern FNBS3FAR             bs3CpuInstr3_vpaddusb_XMM8_XMM9_FSxBX_icebp_c64;
     8227BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusb_YMM1_YMM2_YMM3_icebp);
     8228BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusb_YMM1_YMM2_FSxBX_icebp);
     8229extern FNBS3FAR             bs3CpuInstr3_vpaddusb_YMM8_YMM9_YMM10_icebp_c64;
     8230extern FNBS3FAR             bs3CpuInstr3_vpaddusb_YMM8_YMM9_FSxBX_icebp_c64;
     8231
     8232BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusw_MM1_MM2_icebp);
     8233BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusw_MM1_FSxBX_icebp);
     8234BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusw_XMM1_XMM2_icebp);
     8235BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddusw_XMM1_FSxBX_icebp);
     8236extern FNBS3FAR             bs3CpuInstr3_paddusw_XMM8_XMM9_icebp_c64;
     8237extern FNBS3FAR             bs3CpuInstr3_paddusw_XMM8_FSxBX_icebp_c64;
     8238BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusw_XMM1_XMM2_XMM3_icebp);
     8239BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusw_XMM1_XMM2_FSxBX_icebp);
     8240extern FNBS3FAR             bs3CpuInstr3_vpaddusw_XMM8_XMM9_XMM10_icebp_c64;
     8241extern FNBS3FAR             bs3CpuInstr3_vpaddusw_XMM8_XMM9_FSxBX_icebp_c64;
     8242BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusw_YMM1_YMM2_YMM3_icebp);
     8243BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddusw_YMM1_YMM2_FSxBX_icebp);
     8244extern FNBS3FAR             bs3CpuInstr3_vpaddusw_YMM8_YMM9_YMM10_icebp_c64;
     8245extern FNBS3FAR             bs3CpuInstr3_vpaddusw_YMM8_YMM9_FSxBX_icebp_c64;
     8246
     8247BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_paddusb_paddusw(uint8_t bMode)
     8248{
     8249    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues8[] =
     8250    {
     8251        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8252            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8253            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     8254        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     8255            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     8256            /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff) },
     8257        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     8258            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     8259            /* => */ RTUINT256_INIT_C(0x6be6ffd675ffa5ff, 0xffffa5ffa6dd95ff, 0xff21ffffffe5fdff, 0xdfffffffb68dffff) },
     8260    };
     8261
     8262    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues16[] =
     8263    {
     8264        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8265            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8266            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     8267        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     8268            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     8269            /* => */ RTUINT256_INIT_C(0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff) },
     8270        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     8271            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     8272            /* => */ RTUINT256_INIT_C(0x6be6ffff763fa669, 0xffffa6b4a6dd9619, 0xfffffffffffffe65, 0xe02fffffb68dffff) },
     8273    };
     8274
     8275    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     8276    {
     8277        {  bs3CpuInstr3_paddusb_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8278        {  bs3CpuInstr3_paddusb_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8279        {  bs3CpuInstr3_paddusb_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8280        {  bs3CpuInstr3_paddusb_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8281        {  bs3CpuInstr3_vpaddusb_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8282        {  bs3CpuInstr3_vpaddusb_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8283        {  bs3CpuInstr3_vpaddusb_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8284        {  bs3CpuInstr3_vpaddusb_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8285
     8286        {  bs3CpuInstr3_paddusw_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8287        {  bs3CpuInstr3_paddusw_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8288        {  bs3CpuInstr3_paddusw_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8289        {  bs3CpuInstr3_paddusw_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8290        {  bs3CpuInstr3_vpaddusw_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8291        {  bs3CpuInstr3_vpaddusw_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8292        {  bs3CpuInstr3_vpaddusw_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8293        {  bs3CpuInstr3_vpaddusw_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8294    };
     8295    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     8296    {
     8297        {  bs3CpuInstr3_paddusb_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8298        {  bs3CpuInstr3_paddusb_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8299        {  bs3CpuInstr3_paddusb_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8300        {  bs3CpuInstr3_paddusb_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8301        {  bs3CpuInstr3_vpaddusb_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8302        {  bs3CpuInstr3_vpaddusb_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8303        {  bs3CpuInstr3_vpaddusb_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8304        {  bs3CpuInstr3_vpaddusb_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8305
     8306        {  bs3CpuInstr3_paddusw_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8307        {  bs3CpuInstr3_paddusw_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8308        {  bs3CpuInstr3_paddusw_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8309        {  bs3CpuInstr3_paddusw_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8310        {  bs3CpuInstr3_vpaddusw_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8311        {  bs3CpuInstr3_vpaddusw_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8312        {  bs3CpuInstr3_vpaddusw_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8313        {  bs3CpuInstr3_vpaddusw_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8314    };
     8315    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     8316    {
     8317        {  bs3CpuInstr3_paddusb_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8318        {  bs3CpuInstr3_paddusb_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8319        {  bs3CpuInstr3_paddusb_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8320        {  bs3CpuInstr3_paddusb_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8321        {  bs3CpuInstr3_paddusb_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8322        {  bs3CpuInstr3_paddusb_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8323        {  bs3CpuInstr3_vpaddusb_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8324        {  bs3CpuInstr3_vpaddusb_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8325        {  bs3CpuInstr3_vpaddusb_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8326        {  bs3CpuInstr3_vpaddusb_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8327        {  bs3CpuInstr3_vpaddusb_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8328        {  bs3CpuInstr3_vpaddusb_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8329        {  bs3CpuInstr3_vpaddusb_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8330        {  bs3CpuInstr3_vpaddusb_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8331
     8332        {  bs3CpuInstr3_paddusw_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8333        {  bs3CpuInstr3_paddusw_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8334        {  bs3CpuInstr3_paddusw_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8335        {  bs3CpuInstr3_paddusw_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8336        {  bs3CpuInstr3_paddusw_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8337        {  bs3CpuInstr3_paddusw_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8338        {  bs3CpuInstr3_vpaddusw_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8339        {  bs3CpuInstr3_vpaddusw_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8340        {  bs3CpuInstr3_vpaddusw_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8341        {  bs3CpuInstr3_vpaddusw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8342        {  bs3CpuInstr3_vpaddusw_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8343        {  bs3CpuInstr3_vpaddusw_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8344        {  bs3CpuInstr3_vpaddusw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8345        {  bs3CpuInstr3_vpaddusw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
    82068346    };
    82078347    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1321613356        { "[v]psubsb/[v]psubsw",                            bs3CpuInstr3_v_psubsb_psubsw, 0 },
    1321713357        { "[v]psubusb/[v]psubusw",                          bs3CpuInstr3_v_psubusb_psubusw, 0 },
     13358        { "[v]paddusb/[v]paddusw",                          bs3CpuInstr3_v_paddusb_paddusw, 0 },
    1321813359#endif
    1321913360    };
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