VirtualBox

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


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

VMM/IEM: Implement testcases for vpbroadcast{b,w,d,q}/vbroadcasti128 instructions, 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

    r100570 r100574  
    26322632
    26332633;
     2634; VPBROADCASTB
     2635;
     2636EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM1, XMM2
     2637EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM1, FSxBX
     2638EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM1, XMM2
     2639EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM1, FSxBX
     2640 %if TMPL_BITS == 64
     2641EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM9, XMM8
     2642EMIT_INSTR_PLUS_ICEBP vpbroadcastb, XMM9, FSxBX
     2643EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM9, XMM8
     2644EMIT_INSTR_PLUS_ICEBP vpbroadcastb, YMM9, FSxBX
     2645 %endif
     2646
     2647;
     2648; VPBROADCASTW
     2649;
     2650EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM1, XMM2
     2651EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM1, FSxBX
     2652EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM1, XMM2
     2653EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM1, FSxBX
     2654 %if TMPL_BITS == 64
     2655EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM9, XMM8
     2656EMIT_INSTR_PLUS_ICEBP vpbroadcastw, XMM9, FSxBX
     2657EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM9, XMM8
     2658EMIT_INSTR_PLUS_ICEBP vpbroadcastw, YMM9, FSxBX
     2659 %endif
     2660
     2661;
     2662; VPBROADCASTD
     2663;
     2664EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM1, XMM2
     2665EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM1, FSxBX
     2666EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM1, XMM2
     2667EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM1, FSxBX
     2668 %if TMPL_BITS == 64
     2669EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM9, XMM8
     2670EMIT_INSTR_PLUS_ICEBP vpbroadcastd, XMM9, FSxBX
     2671EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM9, XMM8
     2672EMIT_INSTR_PLUS_ICEBP vpbroadcastd, YMM9, FSxBX
     2673 %endif
     2674
     2675;
     2676; VPBROADCASTQ
     2677;
     2678EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM1, XMM2
     2679EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM1, FSxBX
     2680EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM1, XMM2
     2681EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM1, FSxBX
     2682 %if TMPL_BITS == 64
     2683EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM9, XMM8
     2684EMIT_INSTR_PLUS_ICEBP vpbroadcastq, XMM9, FSxBX
     2685EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM9, XMM8
     2686EMIT_INSTR_PLUS_ICEBP vpbroadcastq, YMM9, FSxBX
     2687 %endif
     2688
     2689;
     2690; VPBROADCASTI128
     2691;
     2692EMIT_INSTR_PLUS_ICEBP vbroadcasti128, YMM1, FSxBX
     2693 %if TMPL_BITS == 64
     2694EMIT_INSTR_PLUS_ICEBP vbroadcasti128, YMM9, FSxBX
     2695 %endif
     2696
     2697;
    26342698; SHA1NEXTE
    26352699;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r100570 r100574  
    88278827                            Bs3ExtCtxSetYmm(pExtCtx, paTests[iTest].iRegDst, &paValues[iVal].uDstOut, cbOperand);
    88288828                    }
     8829
    88298830                    Bs3TestCheckExtCtx(pExtCtxOut, pExtCtx, 0 /*fFlags*/, pszMode, idTestStep);
    88308831
     
    1117211173        {  bs3CpuInstr3_vbroadcastf128_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_256,    9, 255, RT_ELEMENTS(s_aValues128), s_aValues128 },
    1117311174
     11175    };
     11176    static BS3CPUINSTR3_TEST3_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST3_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     11177    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     11178    return bs3CpuInstr3_WorkerTestType3(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     11179                                        g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4), X86_EFL_STATUS_BITS);
     11180}
     11181
     11182
     11183/*
     11184 * VPBROADCASTB/VPBROADCASTW/VPBROADCASTD/VPBROADCASTQ/VPBROADCASTI128
     11185 */
     11186BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp);
     11187BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp);
     11188extern FNBS3FAR             bs3CpuInstr3_vpbroadcastb_XMM9_XMM8_icebp_c64;
     11189extern FNBS3FAR             bs3CpuInstr3_vpbroadcastb_XMM9_FSxBX_icebp_c64;
     11190BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp);
     11191BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp);
     11192extern FNBS3FAR             bs3CpuInstr3_vpbroadcastb_YMM9_XMM8_icebp_c64;
     11193extern FNBS3FAR             bs3CpuInstr3_vpbroadcastb_YMM9_FSxBX_icebp_c64;
     11194
     11195BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp);
     11196BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp);
     11197extern FNBS3FAR             bs3CpuInstr3_vpbroadcastw_XMM9_XMM8_icebp_c64;
     11198extern FNBS3FAR             bs3CpuInstr3_vpbroadcastw_XMM9_FSxBX_icebp_c64;
     11199BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp);
     11200BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp);
     11201extern FNBS3FAR             bs3CpuInstr3_vpbroadcastw_YMM9_XMM8_icebp_c64;
     11202extern FNBS3FAR             bs3CpuInstr3_vpbroadcastw_YMM9_FSxBX_icebp_c64;
     11203
     11204BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp);
     11205BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp);
     11206extern FNBS3FAR             bs3CpuInstr3_vpbroadcastd_XMM9_XMM8_icebp_c64;
     11207extern FNBS3FAR             bs3CpuInstr3_vpbroadcastd_XMM9_FSxBX_icebp_c64;
     11208BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp);
     11209BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp);
     11210extern FNBS3FAR             bs3CpuInstr3_vpbroadcastd_YMM9_XMM8_icebp_c64;
     11211extern FNBS3FAR             bs3CpuInstr3_vpbroadcastd_YMM9_FSxBX_icebp_c64;
     11212
     11213BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp);
     11214BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp);
     11215extern FNBS3FAR             bs3CpuInstr3_vpbroadcastq_XMM9_XMM8_icebp_c64;
     11216extern FNBS3FAR             bs3CpuInstr3_vpbroadcastq_XMM9_FSxBX_icebp_c64;
     11217BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp);
     11218BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp);
     11219extern FNBS3FAR             bs3CpuInstr3_vpbroadcastq_YMM9_XMM8_icebp_c64;
     11220extern FNBS3FAR             bs3CpuInstr3_vpbroadcastq_YMM9_FSxBX_icebp_c64;
     11221
     11222BS3_FNBS3FAR_PROTOTYPES_CMN(bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp);
     11223extern FNBS3FAR             bs3CpuInstr3_vbroadcasti128_YMM9_FSxBX_icebp_c64;
     11224
     11225BS3_DECL_FAR(uint8_t) bs3CpuInstr3_vpbroadcastb_vpbroadcastw_vpbroadcastd_vpbroadcastq_vbroadcasti128(uint8_t bMode)
     11226{
     11227    static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues8[] =
     11228    {
     11229        {            RTUINT256_INIT_C(0, 0, 0, 0),
     11230            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     11231        {            RTUINT256_INIT_C(0x99aabbccddeeff00, 0x8877665544332200, 0x00ffeeddccbbaa99, 0x8877665544332211),
     11232            /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) },
     11233    };
     11234
     11235    static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues16[] =
     11236    {
     11237        {            RTUINT256_INIT_C(0, 0, 0, 0),
     11238            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     11239        {            RTUINT256_INIT_C(0x0000ffffeeeedddd, 0xccccbbbbaaaa9999, 0x8888777766665555, 0x4444333322221111),
     11240            /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) },
     11241    };
     11242
     11243    static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues32[] =
     11244    {
     11245        {            RTUINT256_INIT_C(0, 0, 0, 0),
     11246            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     11247        {            RTUINT256_INIT_C(0x8888888877777777, 0x6666666655555555, 0x4444444433333333, 0x2222222211111111),
     11248            /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) },
     11249    };
     11250
     11251    static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues64[] =
     11252    {
     11253        {            RTUINT256_INIT_C(0, 0, 0, 0),
     11254            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     11255        {            RTUINT256_INIT_C(0x4444444444444444, 0x3333333333333333, 0x2222222222222222, 0x1111111111111111),
     11256            /* => */ RTUINT256_INIT_C(0x1111111111111111, 0x1111111111111111, 0x1111111111111111, 0x1111111111111111) },
     11257    };
     11258
     11259    static BS3CPUINSTR3_TEST3_VALUES_T const s_aValues128[] =
     11260    {
     11261        {            RTUINT256_INIT_C(0, 0, 0, 0),
     11262            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     11263        {            RTUINT256_INIT_C(0x4444444444444444, 0x3333333333333333, 0x2222222222222222, 0x1111111111111111),
     11264            /* => */ RTUINT256_INIT_C(0x2222222222222222, 0x1111111111111111, 0x2222222222222222, 0x1111111111111111) },
     11265    };
     11266
     11267    static BS3CPUINSTR3_TEST3_T const s_aTests16[] =
     11268    {
     11269        {  bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11270        {  bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp_c16,  X86_XCPT_DB, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11271        {  bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11272        {  bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp_c16,  X86_XCPT_DB, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11273
     11274        {  bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11275        {  bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11276        {  bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11277        {  bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11278
     11279        {  bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11280        {  bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11281        {  bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11282        {  bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11283
     11284        {  bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11285        {  bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11286        {  bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp_c16,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11287        {  bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp_c16,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11288
     11289        {  bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_256,    1, 255, RT_ELEMENTS(s_aValues128), s_aValues128 },
     11290    };
     11291    static BS3CPUINSTR3_TEST3_T const s_aTests32[] =
     11292    {
     11293        {  bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11294        {  bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp_c32,  X86_XCPT_DB, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11295        {  bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11296        {  bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp_c32,  X86_XCPT_DB, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11297
     11298        {  bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11299        {  bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11300        {  bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11301        {  bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11302
     11303        {  bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11304        {  bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11305        {  bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11306        {  bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11307
     11308        {  bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11309        {  bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11310        {  bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp_c32,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11311        {  bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp_c32,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11312
     11313        {  bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_256,    1, 255, RT_ELEMENTS(s_aValues128), s_aValues128 },
     11314    };
     11315    static BS3CPUINSTR3_TEST3_T const s_aTests64[] =
     11316    {
     11317        {  bs3CpuInstr3_vpbroadcastb_XMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11318        {  bs3CpuInstr3_vpbroadcastb_XMM1_FSxBX_icebp_c64,  X86_XCPT_DB, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11319        {  bs3CpuInstr3_vpbroadcastb_XMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_128,    9,   8, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11320        {  bs3CpuInstr3_vpbroadcastb_XMM9_FSxBX_icebp_c64,  X86_XCPT_DB, RM_MEM, T_AVX2_128,    9, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11321        {  bs3CpuInstr3_vpbroadcastb_YMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11322        {  bs3CpuInstr3_vpbroadcastb_YMM1_FSxBX_icebp_c64,  X86_XCPT_DB, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11323        {  bs3CpuInstr3_vpbroadcastb_YMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_256,    9,   8, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11324        {  bs3CpuInstr3_vpbroadcastb_YMM9_FSxBX_icebp_c64,  X86_XCPT_DB, RM_MEM, T_AVX2_256,    9, 255, RT_ELEMENTS(s_aValues8),   s_aValues8   },
     11325
     11326        {  bs3CpuInstr3_vpbroadcastw_XMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11327        {  bs3CpuInstr3_vpbroadcastw_XMM1_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11328        {  bs3CpuInstr3_vpbroadcastw_XMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_128,    9,   8, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11329        {  bs3CpuInstr3_vpbroadcastw_XMM9_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    9, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11330        {  bs3CpuInstr3_vpbroadcastw_YMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11331        {  bs3CpuInstr3_vpbroadcastw_YMM1_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11332        {  bs3CpuInstr3_vpbroadcastw_YMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_256,    9,   8, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11333        {  bs3CpuInstr3_vpbroadcastw_YMM9_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    9, 255, RT_ELEMENTS(s_aValues16),  s_aValues16  },
     11334
     11335        {  bs3CpuInstr3_vpbroadcastd_XMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11336        {  bs3CpuInstr3_vpbroadcastd_XMM1_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11337        {  bs3CpuInstr3_vpbroadcastd_XMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_128,    9,   8, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11338        {  bs3CpuInstr3_vpbroadcastd_XMM9_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    9, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11339        {  bs3CpuInstr3_vpbroadcastd_YMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11340        {  bs3CpuInstr3_vpbroadcastd_YMM1_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11341        {  bs3CpuInstr3_vpbroadcastd_YMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_256,    9,   8, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11342        {  bs3CpuInstr3_vpbroadcastd_YMM9_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    9, 255, RT_ELEMENTS(s_aValues32),  s_aValues32  },
     11343
     11344        {  bs3CpuInstr3_vpbroadcastq_XMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_128,    1,   2, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11345        {  bs3CpuInstr3_vpbroadcastq_XMM1_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    1, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11346        {  bs3CpuInstr3_vpbroadcastq_XMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_128,    9,   8, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11347        {  bs3CpuInstr3_vpbroadcastq_XMM9_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_128,    9, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11348        {  bs3CpuInstr3_vpbroadcastq_YMM1_XMM2_icebp_c64,   255,         RM_REG, T_AVX2_256,    1,   2, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11349        {  bs3CpuInstr3_vpbroadcastq_YMM1_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    1, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11350        {  bs3CpuInstr3_vpbroadcastq_YMM9_XMM8_icebp_c64,   255,         RM_REG, T_AVX2_256,    9,   8, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11351        {  bs3CpuInstr3_vpbroadcastq_YMM9_FSxBX_icebp_c64,  X86_XCPT_AC, RM_MEM, T_AVX2_256,    9, 255, RT_ELEMENTS(s_aValues64),  s_aValues64  },
     11352
     11353        {  bs3CpuInstr3_vbroadcasti128_YMM1_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 255, RT_ELEMENTS(s_aValues128), s_aValues128 },
     11354        {  bs3CpuInstr3_vbroadcasti128_YMM9_FSxBX_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   9, 255, RT_ELEMENTS(s_aValues128), s_aValues128 },
    1117411355    };
    1117511356    static BS3CPUINSTR3_TEST3_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST3_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1265112832#endif
    1265212833#if defined(ALL_TESTS)
    12653         { "vbroadcastss/vbroadcastsd/vbroadcastf128",       bs3CpuInstr3_vbroadcastss_vbroadcastsd_vbroadcastf128,   0 }
     12834        { "vbroadcastss/vbroadcastsd/vbroadcastf128",       bs3CpuInstr3_vbroadcastss_vbroadcastsd_vbroadcastf128,   0 },
     12835        { "vpbroadcastb/vpbroadcastw/vpbroadcastd/vpbroadcastq/vbroadcasti128",
     12836                                                            bs3CpuInstr3_vpbroadcastb_vpbroadcastw_vpbroadcastd_vpbroadcastq_vbroadcasti128,   0 }
    1265412837#endif
    1265512838    };
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