VirtualBox

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


Ignore:
Timestamp:
Jul 17, 2023 12:14:34 PM (18 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: Implement testcases for [v]paddsb/[v]paddsw 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

    r100600 r100603  
    33013301 %endif
    33023302
     3303;
     3304; [V]PADDSB
     3305;
     3306EMIT_INSTR_PLUS_ICEBP   paddsb,  MM1, MM2
     3307EMIT_INSTR_PLUS_ICEBP   paddsb,  MM1, FSxBX
     3308EMIT_INSTR_PLUS_ICEBP   paddsb,  XMM1, XMM2
     3309EMIT_INSTR_PLUS_ICEBP   paddsb,  XMM1, FSxBX
     3310EMIT_INSTR_PLUS_ICEBP   vpaddsb, XMM1, XMM2, XMM3
     3311EMIT_INSTR_PLUS_ICEBP   vpaddsb, XMM1, XMM2, FSxBX
     3312EMIT_INSTR_PLUS_ICEBP   vpaddsb, YMM1, YMM2, YMM3
     3313EMIT_INSTR_PLUS_ICEBP   vpaddsb, YMM1, YMM2, FSxBX
     3314 %if TMPL_BITS == 64
     3315EMIT_INSTR_PLUS_ICEBP   paddsb,  XMM8, XMM9
     3316EMIT_INSTR_PLUS_ICEBP   paddsb,  XMM8, FSxBX
     3317EMIT_INSTR_PLUS_ICEBP   vpaddsb, XMM8, XMM9, XMM10
     3318EMIT_INSTR_PLUS_ICEBP   vpaddsb, XMM8, XMM9, FSxBX
     3319EMIT_INSTR_PLUS_ICEBP   vpaddsb, YMM8, YMM9, YMM10
     3320EMIT_INSTR_PLUS_ICEBP   vpaddsb, YMM8, YMM9, FSxBX
     3321 %endif
     3322
     3323;
     3324; [V]PADDSW
     3325;
     3326EMIT_INSTR_PLUS_ICEBP   paddsw,  MM1, MM2
     3327EMIT_INSTR_PLUS_ICEBP   paddsw,  MM1, FSxBX
     3328EMIT_INSTR_PLUS_ICEBP   paddsw,  XMM1, XMM2
     3329EMIT_INSTR_PLUS_ICEBP   paddsw,  XMM1, FSxBX
     3330EMIT_INSTR_PLUS_ICEBP   vpaddsw, XMM1, XMM2, XMM3
     3331EMIT_INSTR_PLUS_ICEBP   vpaddsw, XMM1, XMM2, FSxBX
     3332EMIT_INSTR_PLUS_ICEBP   vpaddsw, YMM1, YMM2, YMM3
     3333EMIT_INSTR_PLUS_ICEBP   vpaddsw, YMM1, YMM2, FSxBX
     3334 %if TMPL_BITS == 64
     3335EMIT_INSTR_PLUS_ICEBP   paddsw,  XMM8, XMM9
     3336EMIT_INSTR_PLUS_ICEBP   paddsw,  XMM8, FSxBX
     3337EMIT_INSTR_PLUS_ICEBP   vpaddsw, XMM8, XMM9, XMM10
     3338EMIT_INSTR_PLUS_ICEBP   vpaddsw, XMM8, XMM9, FSxBX
     3339EMIT_INSTR_PLUS_ICEBP   vpaddsw, YMM8, YMM9, YMM10
     3340EMIT_INSTR_PLUS_ICEBP   vpaddsw, YMM8, YMM9, FSxBX
     3341 %endif
     3342
    33033343%endif ; BS3_INSTANTIATING_CMN
    33043344
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r100600 r100603  
    83448344        {  bs3CpuInstr3_vpaddusw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValues16), s_aValues16 },
    83458345        {  bs3CpuInstr3_vpaddusw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8346    };
     8347    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     8348    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     8349    return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     8350                                        g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4));
     8351}
     8352
     8353
     8354/*
     8355 * [V]PADDSB/[V]PADDSW  - Add packed signed integers with signed saturation.
     8356 */
     8357BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsb_MM1_MM2_icebp);
     8358BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsb_MM1_FSxBX_icebp);
     8359BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsb_XMM1_XMM2_icebp);
     8360BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsb_XMM1_FSxBX_icebp);
     8361extern FNBS3FAR             bs3CpuInstr3_paddsb_XMM8_XMM9_icebp_c64;
     8362extern FNBS3FAR             bs3CpuInstr3_paddsb_XMM8_FSxBX_icebp_c64;
     8363BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsb_XMM1_XMM2_XMM3_icebp);
     8364BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsb_XMM1_XMM2_FSxBX_icebp);
     8365extern FNBS3FAR             bs3CpuInstr3_vpaddsb_XMM8_XMM9_XMM10_icebp_c64;
     8366extern FNBS3FAR             bs3CpuInstr3_vpaddsb_XMM8_XMM9_FSxBX_icebp_c64;
     8367BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsb_YMM1_YMM2_YMM3_icebp);
     8368BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsb_YMM1_YMM2_FSxBX_icebp);
     8369extern FNBS3FAR             bs3CpuInstr3_vpaddsb_YMM8_YMM9_YMM10_icebp_c64;
     8370extern FNBS3FAR             bs3CpuInstr3_vpaddsb_YMM8_YMM9_FSxBX_icebp_c64;
     8371
     8372BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsw_MM1_MM2_icebp);
     8373BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsw_MM1_FSxBX_icebp);
     8374BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsw_XMM1_XMM2_icebp);
     8375BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_paddsw_XMM1_FSxBX_icebp);
     8376extern FNBS3FAR             bs3CpuInstr3_paddsw_XMM8_XMM9_icebp_c64;
     8377extern FNBS3FAR             bs3CpuInstr3_paddsw_XMM8_FSxBX_icebp_c64;
     8378BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsw_XMM1_XMM2_XMM3_icebp);
     8379BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsw_XMM1_XMM2_FSxBX_icebp);
     8380extern FNBS3FAR             bs3CpuInstr3_vpaddsw_XMM8_XMM9_XMM10_icebp_c64;
     8381extern FNBS3FAR             bs3CpuInstr3_vpaddsw_XMM8_XMM9_FSxBX_icebp_c64;
     8382BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsw_YMM1_YMM2_YMM3_icebp);
     8383BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpaddsw_YMM1_YMM2_FSxBX_icebp);
     8384extern FNBS3FAR             bs3CpuInstr3_vpaddsw_YMM8_YMM9_YMM10_icebp_c64;
     8385extern FNBS3FAR             bs3CpuInstr3_vpaddsw_YMM8_YMM9_FSxBX_icebp_c64;
     8386
     8387BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_paddsb_paddsw(uint8_t bMode)
     8388{
     8389    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues8[] =
     8390    {
     8391        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8392            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8393            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     8394        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     8395            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     8396            /* => */ RTUINT256_INIT_C(0xa2a4a6a8aaacaeb0, 0x828486888a8c8e90, 0x8080808080808080, 0x8080808080808080) },
     8397        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     8398            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     8399            /* => */ RTUINT256_INIT_C(0x6be6cdd6753f7f80, 0x3750a5b47f7f7f19, 0x8021180315e5fd80, 0xdf2fad13b68d80b8) },
     8400    };
     8401
     8402    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues16[] =
     8403    {
     8404        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8405            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     8406            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     8407        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     8408            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     8409            /* => */ RTUINT256_INIT_C(0xa3a4a7a8abacafb0, 0x838487888b8c8f90, 0x8000800080008000, 0x8000800080008000) },
     8410        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     8411            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     8412            /* => */ RTUINT256_INIT_C(0x6be6cdd6763f7fff, 0x3850a6b47fff7fff, 0x8000190315e5fe65, 0xe02fae13b68d8000) },
     8413    };
     8414
     8415    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     8416    {
     8417        {  bs3CpuInstr3_paddsb_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8418        {  bs3CpuInstr3_paddsb_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8419        {  bs3CpuInstr3_paddsb_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8420        {  bs3CpuInstr3_paddsb_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8421        {  bs3CpuInstr3_vpaddsb_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8422        {  bs3CpuInstr3_vpaddsb_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8423        {  bs3CpuInstr3_vpaddsb_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8424        {  bs3CpuInstr3_vpaddsb_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8425
     8426        {  bs3CpuInstr3_paddsw_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8427        {  bs3CpuInstr3_paddsw_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8428        {  bs3CpuInstr3_paddsw_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8429        {  bs3CpuInstr3_paddsw_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8430        {  bs3CpuInstr3_vpaddsw_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8431        {  bs3CpuInstr3_vpaddsw_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8432        {  bs3CpuInstr3_vpaddsw_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8433        {  bs3CpuInstr3_vpaddsw_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8434    };
     8435    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     8436    {
     8437        {  bs3CpuInstr3_paddsb_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8438        {  bs3CpuInstr3_paddsb_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8439        {  bs3CpuInstr3_paddsb_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8440        {  bs3CpuInstr3_paddsb_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8441        {  bs3CpuInstr3_vpaddsb_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8442        {  bs3CpuInstr3_vpaddsb_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8443        {  bs3CpuInstr3_vpaddsb_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8444        {  bs3CpuInstr3_vpaddsb_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8445
     8446        {  bs3CpuInstr3_paddsw_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8447        {  bs3CpuInstr3_paddsw_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8448        {  bs3CpuInstr3_paddsw_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8449        {  bs3CpuInstr3_paddsw_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8450        {  bs3CpuInstr3_vpaddsw_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8451        {  bs3CpuInstr3_vpaddsw_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8452        {  bs3CpuInstr3_vpaddsw_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8453        {  bs3CpuInstr3_vpaddsw_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8454    };
     8455    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     8456    {
     8457        {  bs3CpuInstr3_paddsb_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8458        {  bs3CpuInstr3_paddsb_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8459        {  bs3CpuInstr3_paddsb_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8460        {  bs3CpuInstr3_paddsb_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8461        {  bs3CpuInstr3_paddsb_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8462        {  bs3CpuInstr3_paddsb_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8463        {  bs3CpuInstr3_vpaddsb_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8464        {  bs3CpuInstr3_vpaddsb_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8465        {  bs3CpuInstr3_vpaddsb_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8466        {  bs3CpuInstr3_vpaddsb_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8467        {  bs3CpuInstr3_vpaddsb_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8468        {  bs3CpuInstr3_vpaddsb_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8469        {  bs3CpuInstr3_vpaddsb_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8470        {  bs3CpuInstr3_vpaddsb_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValues8),  s_aValues8  },
     8471
     8472        {  bs3CpuInstr3_paddsw_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX,       1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8473        {  bs3CpuInstr3_paddsw_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX,       1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8474        {  bs3CpuInstr3_paddsw_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8475        {  bs3CpuInstr3_paddsw_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8476        {  bs3CpuInstr3_paddsw_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8477        {  bs3CpuInstr3_paddsw_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8478        {  bs3CpuInstr3_vpaddsw_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8479        {  bs3CpuInstr3_vpaddsw_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8480        {  bs3CpuInstr3_vpaddsw_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8481        {  bs3CpuInstr3_vpaddsw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8482        {  bs3CpuInstr3_vpaddsw_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8483        {  bs3CpuInstr3_vpaddsw_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8484        {  bs3CpuInstr3_vpaddsw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValues16), s_aValues16 },
     8485        {  bs3CpuInstr3_vpaddsw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValues16), s_aValues16 },
    83468486    };
    83478487    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1335713497        { "[v]psubusb/[v]psubusw",                          bs3CpuInstr3_v_psubusb_psubusw, 0 },
    1335813498        { "[v]paddusb/[v]paddusw",                          bs3CpuInstr3_v_paddusb_paddusw, 0 },
     13499        { "[v]paddsb/[v]paddsw",                            bs3CpuInstr3_v_paddsb_paddsw, 0 },
    1335913500#endif
    1336013501    };
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