VirtualBox

Ignore:
Timestamp:
Aug 4, 2022 11:25:18 AM (3 years ago)
Author:
vboxsync
Message:

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

    r96026 r96029  
    17911791 %endif
    17921792
     1793;
     1794; [V]PAVGB
     1795;
     1796EMIT_INSTR_PLUS_ICEBP   pavgb, MM1, MM2
     1797EMIT_INSTR_PLUS_ICEBP   pavgb, MM1, FSxBX
     1798
     1799EMIT_INSTR_PLUS_ICEBP   pavgb, XMM1, XMM2
     1800EMIT_INSTR_PLUS_ICEBP   pavgb, XMM1, FSxBX
     1801 %if TMPL_BITS == 64
     1802EMIT_INSTR_PLUS_ICEBP   pavgb, XMM8, XMM9
     1803EMIT_INSTR_PLUS_ICEBP   pavgb, XMM8, FSxBX
     1804 %endif
     1805
     1806EMIT_INSTR_PLUS_ICEBP   vpavgb, XMM1, XMM2, XMM3
     1807EMIT_INSTR_PLUS_ICEBP   vpavgb, XMM1, XMM2, FSxBX
     1808 %if TMPL_BITS == 64
     1809EMIT_INSTR_PLUS_ICEBP   vpavgb, XMM8, XMM9, XMM10
     1810EMIT_INSTR_PLUS_ICEBP   vpavgb, XMM8, XMM9, FSxBX
     1811 %endif
     1812
     1813EMIT_INSTR_PLUS_ICEBP   vpavgb, YMM1, YMM2, YMM3
     1814EMIT_INSTR_PLUS_ICEBP   vpavgb, YMM1, YMM2, FSxBX
     1815 %if TMPL_BITS == 64
     1816EMIT_INSTR_PLUS_ICEBP   vpavgb, YMM8, YMM9, YMM10
     1817EMIT_INSTR_PLUS_ICEBP   vpavgb, YMM8, YMM9, FSxBX
     1818 %endif
     1819
     1820;
     1821; [V]PAVGW
     1822;
     1823EMIT_INSTR_PLUS_ICEBP   pavgw, MM1, MM2
     1824EMIT_INSTR_PLUS_ICEBP   pavgw, MM1, FSxBX
     1825
     1826EMIT_INSTR_PLUS_ICEBP   pavgw, XMM1, XMM2
     1827EMIT_INSTR_PLUS_ICEBP   pavgw, XMM1, FSxBX
     1828 %if TMPL_BITS == 64
     1829EMIT_INSTR_PLUS_ICEBP   pavgw, XMM8, XMM9
     1830EMIT_INSTR_PLUS_ICEBP   pavgw, XMM8, FSxBX
     1831 %endif
     1832
     1833EMIT_INSTR_PLUS_ICEBP   vpavgw, XMM1, XMM2, XMM3
     1834EMIT_INSTR_PLUS_ICEBP   vpavgw, XMM1, XMM2, FSxBX
     1835 %if TMPL_BITS == 64
     1836EMIT_INSTR_PLUS_ICEBP   vpavgw, XMM8, XMM9, XMM10
     1837EMIT_INSTR_PLUS_ICEBP   vpavgw, XMM8, XMM9, FSxBX
     1838 %endif
     1839
     1840EMIT_INSTR_PLUS_ICEBP   vpavgw, YMM1, YMM2, YMM3
     1841EMIT_INSTR_PLUS_ICEBP   vpavgw, YMM1, YMM2, FSxBX
     1842 %if TMPL_BITS == 64
     1843EMIT_INSTR_PLUS_ICEBP   vpavgw, YMM8, YMM9, YMM10
     1844EMIT_INSTR_PLUS_ICEBP   vpavgw, YMM8, YMM9, FSxBX
     1845 %endif
     1846
    17931847
    17941848%endif ; BS3_INSTANTIATING_CMN
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r96026 r96029  
    48654865}
    48664866
     4867
     4868/*
     4869 * [V]PAVGB  - Average unsigned packed byte integers with rounding.
     4870 * [V]PAVGW  - Average unsigned packed word integers with rounding.
     4871 */
     4872BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgb_MM1_MM2_icebp);
     4873BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgb_MM1_FSxBX_icebp);
     4874BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgb_XMM1_XMM2_icebp);
     4875BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgb_XMM1_FSxBX_icebp);
     4876extern FNBS3FAR             bs3CpuInstr3_pavgb_XMM8_XMM9_icebp_c64;
     4877extern FNBS3FAR             bs3CpuInstr3_pavgb_XMM8_FSxBX_icebp_c64;
     4878BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgb_XMM1_XMM2_XMM3_icebp);
     4879BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgb_XMM1_XMM2_FSxBX_icebp);
     4880extern FNBS3FAR             bs3CpuInstr3_vpavgb_XMM8_XMM9_XMM10_icebp_c64;
     4881extern FNBS3FAR             bs3CpuInstr3_vpavgb_XMM8_XMM9_FSxBX_icebp_c64;
     4882BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgb_YMM1_YMM2_YMM3_icebp);
     4883BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgb_YMM1_YMM2_FSxBX_icebp);
     4884extern FNBS3FAR             bs3CpuInstr3_vpavgb_YMM8_YMM9_YMM10_icebp_c64;
     4885extern FNBS3FAR             bs3CpuInstr3_vpavgb_YMM8_YMM9_FSxBX_icebp_c64;
     4886
     4887BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgw_MM1_MM2_icebp);
     4888BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgw_MM1_FSxBX_icebp);
     4889BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgw_XMM1_XMM2_icebp);
     4890BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_pavgw_XMM1_FSxBX_icebp);
     4891extern FNBS3FAR             bs3CpuInstr3_pavgw_XMM8_XMM9_icebp_c64;
     4892extern FNBS3FAR             bs3CpuInstr3_pavgw_XMM8_FSxBX_icebp_c64;
     4893BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgw_XMM1_XMM2_XMM3_icebp);
     4894BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgw_XMM1_XMM2_FSxBX_icebp);
     4895extern FNBS3FAR             bs3CpuInstr3_vpavgw_XMM8_XMM9_XMM10_icebp_c64;
     4896extern FNBS3FAR             bs3CpuInstr3_vpavgw_XMM8_XMM9_FSxBX_icebp_c64;
     4897BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgw_YMM1_YMM2_YMM3_icebp);
     4898BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpavgw_YMM1_YMM2_FSxBX_icebp);
     4899extern FNBS3FAR             bs3CpuInstr3_vpavgw_YMM8_YMM9_YMM10_icebp_c64;
     4900extern FNBS3FAR             bs3CpuInstr3_vpavgw_YMM8_YMM9_FSxBX_icebp_c64;
     4901
     4902BS3_DECL_FAR(uint8_t) bs3CpuInstr3_v_pavgb_pavgw(uint8_t bMode)
     4903{
     4904    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesB[] =
     4905    {
     4906        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     4907            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     4908            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     4909        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     4910            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     4911            /* => */ RTUINT256_INIT_C(0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8, 0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8) },
     4912        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     4913            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     4914            /* => */ RTUINT256_INIT_C(0x3673e76b3ba053b5, 0x9ca853da536f4b8d, 0x9e118c828b737fb3, 0x7098d78a5b4798dc) },
     4915    };
     4916    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesW[] =
     4917    {
     4918        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     4919            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     4920            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     4921        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     4922            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     4923            /* => */ RTUINT256_INIT_C(0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8, 0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8) },
     4924        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     4925            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     4926            /* => */ RTUINT256_INIT_C(0x35f3e6eb3b205335, 0x9c28535a536f4b0d, 0x9e118c828af37f33, 0x7018d70a5b47985c) },
     4927    };
     4928
     4929    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     4930    {
     4931        {  bs3CpuInstr3_pavgb_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4932        {  bs3CpuInstr3_pavgb_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4933        {  bs3CpuInstr3_pavgb_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4934        {  bs3CpuInstr3_pavgb_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4935        {  bs3CpuInstr3_vpavgb_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4936        {  bs3CpuInstr3_vpavgb_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4937        {  bs3CpuInstr3_vpavgb_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4938        {  bs3CpuInstr3_vpavgb_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4939
     4940        {  bs3CpuInstr3_pavgw_MM1_MM2_icebp_c16,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4941        {  bs3CpuInstr3_pavgw_MM1_FSxBX_icebp_c16,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4942        {  bs3CpuInstr3_pavgw_XMM1_XMM2_icebp_c16,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4943        {  bs3CpuInstr3_pavgw_XMM1_FSxBX_icebp_c16,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4944        {  bs3CpuInstr3_vpavgw_XMM1_XMM2_XMM3_icebp_c16,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4945        {  bs3CpuInstr3_vpavgw_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4946        {  bs3CpuInstr3_vpavgw_YMM1_YMM2_YMM3_icebp_c16,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4947        {  bs3CpuInstr3_vpavgw_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4948    };
     4949    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     4950    {
     4951        {  bs3CpuInstr3_pavgb_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4952        {  bs3CpuInstr3_pavgb_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4953        {  bs3CpuInstr3_pavgb_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4954        {  bs3CpuInstr3_pavgb_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4955        {  bs3CpuInstr3_vpavgb_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4956        {  bs3CpuInstr3_vpavgb_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4957        {  bs3CpuInstr3_vpavgb_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4958        {  bs3CpuInstr3_vpavgb_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4959
     4960        {  bs3CpuInstr3_pavgw_MM1_MM2_icebp_c32,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4961        {  bs3CpuInstr3_pavgw_MM1_FSxBX_icebp_c32,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4962        {  bs3CpuInstr3_pavgw_XMM1_XMM2_icebp_c32,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4963        {  bs3CpuInstr3_pavgw_XMM1_FSxBX_icebp_c32,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4964        {  bs3CpuInstr3_vpavgw_XMM1_XMM2_XMM3_icebp_c32,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4965        {  bs3CpuInstr3_vpavgw_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4966        {  bs3CpuInstr3_vpavgw_YMM1_YMM2_YMM3_icebp_c32,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4967        {  bs3CpuInstr3_vpavgw_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4968    };
     4969    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     4970    {
     4971        {  bs3CpuInstr3_pavgb_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4972        {  bs3CpuInstr3_pavgb_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4973        {  bs3CpuInstr3_pavgb_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4974        {  bs3CpuInstr3_pavgb_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4975        {  bs3CpuInstr3_pavgb_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4976        {  bs3CpuInstr3_pavgb_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4977        {  bs3CpuInstr3_vpavgb_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4978        {  bs3CpuInstr3_vpavgb_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4979        {  bs3CpuInstr3_vpavgb_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4980        {  bs3CpuInstr3_vpavgb_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4981        {  bs3CpuInstr3_vpavgb_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4982        {  bs3CpuInstr3_vpavgb_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4983        {  bs3CpuInstr3_vpavgb_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4984        {  bs3CpuInstr3_vpavgb_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesB),   s_aValuesB },
     4985
     4986        {  bs3CpuInstr3_pavgw_MM1_MM2_icebp_c64,          255,         RM_REG, T_MMX_SSE,   1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4987        {  bs3CpuInstr3_pavgw_MM1_FSxBX_icebp_c64,        255,         RM_MEM, T_MMX_SSE,   1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4988        {  bs3CpuInstr3_pavgw_XMM1_XMM2_icebp_c64,        255,         RM_REG, T_SSE2,      1, 1,   2, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4989        {  bs3CpuInstr3_pavgw_XMM1_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      1, 1, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4990        {  bs3CpuInstr3_pavgw_XMM8_XMM9_icebp_c64,        255,         RM_REG, T_SSE2,      8, 8,   9, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4991        {  bs3CpuInstr3_pavgw_XMM8_FSxBX_icebp_c64,       255,         RM_MEM, T_SSE2,      8, 8, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4992        {  bs3CpuInstr3_vpavgw_XMM1_XMM2_XMM3_icebp_c64,  255,         RM_REG, T_AVX_128,   1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4993        {  bs3CpuInstr3_vpavgw_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4994        {  bs3CpuInstr3_vpavgw_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128,   8, 9,  10, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4995        {  bs3CpuInstr3_vpavgw_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,   8, 9, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4996        {  bs3CpuInstr3_vpavgw_YMM1_YMM2_YMM3_icebp_c64,  255,         RM_REG, T_AVX2_256,  1, 2,   3, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4997        {  bs3CpuInstr3_vpavgw_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  1, 2, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4998        {  bs3CpuInstr3_vpavgw_YMM8_YMM9_YMM10_icebp_c64, 255,         RM_REG, T_AVX2_256,  8, 9,  10, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     4999        {  bs3CpuInstr3_vpavgw_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,  8, 9, 255, RT_ELEMENTS(s_aValuesW),   s_aValuesW },
     5000    };
     5001    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     5002    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     5003    return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     5004                                        g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4));
     5005}
    48675006
    48685007
     
    73537492        { "[v]ptest",                                       bs3CpuInstr3_v_ptest, 0 },
    73547493#endif
     7494#if defined(ALL_TESTS)
     7495        { "[v]pavgb/[v]pavgw",                              bs3CpuInstr3_v_pavgb_pavgw, 0 },
     7496#endif
    73557497    };
    73567498    Bs3TestInit("bs3-cpu-instr-3");
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