VirtualBox

Changeset 103701 in vbox


Ignore:
Timestamp:
Mar 6, 2024 1:32:18 PM (9 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: implement testcases for vpblendd instructions
ValidationKit/bootsectors: add non-trivial testcases for [v]pblendw, [v]blendps, [v]blendpd 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

    r103697 r103701  
    19471947EMIT_INSTR_PLUS_ICEBP   pblendw,  XMM1, XMM2,  000h
    19481948EMIT_INSTR_PLUS_ICEBP   pblendw,  XMM1, FSxBX, 000h
     1949EMIT_INSTR_PLUS_ICEBP   pblendw,  XMM1, XMM2,  07Ah
     1950EMIT_INSTR_PLUS_ICEBP   pblendw,  XMM1, FSxBX, 07Ah
    19491951
    19501952EMIT_INSTR_PLUS_ICEBP   vpblendw, XMM1, XMM2, XMM3,  0FFh
     
    19521954EMIT_INSTR_PLUS_ICEBP   vpblendw, XMM1, XMM2, XMM3,  000h
    19531955EMIT_INSTR_PLUS_ICEBP   vpblendw, XMM1, XMM2, FSxBX, 000h
     1956EMIT_INSTR_PLUS_ICEBP   vpblendw, XMM1, XMM2, XMM3,  07Ah
     1957EMIT_INSTR_PLUS_ICEBP   vpblendw, XMM1, XMM2, FSxBX, 07Ah
    19541958
    19551959EMIT_INSTR_PLUS_ICEBP   vpblendw, YMM1, YMM2, YMM3,  0FFh
     
    19571961EMIT_INSTR_PLUS_ICEBP   vpblendw, YMM1, YMM2, YMM3,  000h
    19581962EMIT_INSTR_PLUS_ICEBP   vpblendw, YMM1, YMM2, FSxBX, 000h
     1963EMIT_INSTR_PLUS_ICEBP   vpblendw, YMM1, YMM2, YMM3,  07Ah
     1964EMIT_INSTR_PLUS_ICEBP   vpblendw, YMM1, YMM2, FSxBX, 07Ah
    19591965
    19601966EMIT_INSTR_PLUS_ICEBP_C64   pblendw,  XMM8, XMM9,  0FFh
     
    19621968EMIT_INSTR_PLUS_ICEBP_C64   pblendw,  XMM8, XMM9,  000h
    19631969EMIT_INSTR_PLUS_ICEBP_C64   pblendw,  XMM8, FSxBX, 000h
     1970EMIT_INSTR_PLUS_ICEBP_C64   pblendw,  XMM8, XMM9,  07Ah
     1971EMIT_INSTR_PLUS_ICEBP_C64   pblendw,  XMM8, FSxBX, 07Ah
    19641972
    19651973EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, XMM8, XMM9, XMM10, 0FFh
     
    19671975EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, XMM8, XMM9, XMM10, 000h
    19681976EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, XMM8, XMM9, FSxBX, 000h
     1977EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, XMM8, XMM9, XMM10, 07Ah
     1978EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, XMM8, XMM9, FSxBX, 07Ah
    19691979
    19701980EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, YMM8, YMM9, YMM10, 0FFh
     
    19721982EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, YMM8, YMM9, YMM10, 000h
    19731983EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, YMM8, YMM9, FSxBX, 000h
     1984EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, YMM8, YMM9, YMM10, 07Ah
     1985EMIT_INSTR_PLUS_ICEBP_C64   vpblendw, YMM8, YMM9, FSxBX, 07Ah
     1986
     1987;
     1988; VPBLENDD
     1989;
     1990EMIT_INSTR_PLUS_ICEBP   vpblendd, XMM1, XMM2, XMM3,  0FFh
     1991EMIT_INSTR_PLUS_ICEBP   vpblendd, XMM1, XMM2, FSxBX, 0FFh
     1992EMIT_INSTR_PLUS_ICEBP   vpblendd, XMM1, XMM2, XMM3,  000h
     1993EMIT_INSTR_PLUS_ICEBP   vpblendd, XMM1, XMM2, FSxBX, 000h
     1994EMIT_INSTR_PLUS_ICEBP   vpblendd, XMM1, XMM2, XMM3,  07Ah
     1995EMIT_INSTR_PLUS_ICEBP   vpblendd, XMM1, XMM2, FSxBX, 07Ah
     1996
     1997EMIT_INSTR_PLUS_ICEBP   vpblendd, YMM1, YMM2, YMM3,  0FFh
     1998EMIT_INSTR_PLUS_ICEBP   vpblendd, YMM1, YMM2, FSxBX, 0FFh
     1999EMIT_INSTR_PLUS_ICEBP   vpblendd, YMM1, YMM2, YMM3,  000h
     2000EMIT_INSTR_PLUS_ICEBP   vpblendd, YMM1, YMM2, FSxBX, 000h
     2001EMIT_INSTR_PLUS_ICEBP   vpblendd, YMM1, YMM2, YMM3,  07Ah
     2002EMIT_INSTR_PLUS_ICEBP   vpblendd, YMM1, YMM2, FSxBX, 07Ah
     2003
     2004EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, XMM8, XMM9, XMM10, 0FFh
     2005EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, XMM8, XMM9, FSxBX, 0FFh
     2006EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, XMM8, XMM9, XMM10, 000h
     2007EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, XMM8, XMM9, FSxBX, 000h
     2008EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, XMM8, XMM9, XMM10, 07Ah
     2009EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, XMM8, XMM9, FSxBX, 07Ah
     2010
     2011EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, YMM8, YMM9, YMM10, 0FFh
     2012EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, YMM8, YMM9, FSxBX, 0FFh
     2013EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, YMM8, YMM9, YMM10, 000h
     2014EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, YMM8, YMM9, FSxBX, 000h
     2015EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, YMM8, YMM9, YMM10, 07Ah
     2016EMIT_INSTR_PLUS_ICEBP_C64   vpblendd, YMM8, YMM9, FSxBX, 07Ah
    19742017
    19752018;
     
    19802023EMIT_INSTR_PLUS_ICEBP   blendps,  XMM1, XMM2,  000h
    19812024EMIT_INSTR_PLUS_ICEBP   blendps,  XMM1, FSxBX, 000h
     2025EMIT_INSTR_PLUS_ICEBP   blendps,  XMM1, XMM2,  07Ah
     2026EMIT_INSTR_PLUS_ICEBP   blendps,  XMM1, FSxBX, 07Ah
    19822027
    19832028EMIT_INSTR_PLUS_ICEBP   vblendps, XMM1, XMM2, XMM3,  0FFh
     
    19852030EMIT_INSTR_PLUS_ICEBP   vblendps, XMM1, XMM2, XMM3,  000h
    19862031EMIT_INSTR_PLUS_ICEBP   vblendps, XMM1, XMM2, FSxBX, 000h
     2032EMIT_INSTR_PLUS_ICEBP   vblendps, XMM1, XMM2, XMM3,  07Ah
     2033EMIT_INSTR_PLUS_ICEBP   vblendps, XMM1, XMM2, FSxBX, 07Ah
    19872034
    19882035EMIT_INSTR_PLUS_ICEBP   vblendps, YMM1, YMM2, YMM3,  0FFh
     
    19902037EMIT_INSTR_PLUS_ICEBP   vblendps, YMM1, YMM2, YMM3,  000h
    19912038EMIT_INSTR_PLUS_ICEBP   vblendps, YMM1, YMM2, FSxBX, 000h
     2039EMIT_INSTR_PLUS_ICEBP   vblendps, YMM1, YMM2, YMM3,  07Ah
     2040EMIT_INSTR_PLUS_ICEBP   vblendps, YMM1, YMM2, FSxBX, 07Ah
    19922041
    19932042EMIT_INSTR_PLUS_ICEBP_C64   blendps,  XMM8, XMM9,  0FFh
     
    19952044EMIT_INSTR_PLUS_ICEBP_C64   blendps,  XMM8, XMM9,  000h
    19962045EMIT_INSTR_PLUS_ICEBP_C64   blendps,  XMM8, FSxBX, 000h
     2046EMIT_INSTR_PLUS_ICEBP_C64   blendps,  XMM8, XMM9,  07Ah
     2047EMIT_INSTR_PLUS_ICEBP_C64   blendps,  XMM8, FSxBX, 07Ah
    19972048
    19982049EMIT_INSTR_PLUS_ICEBP_C64   vblendps, XMM8, XMM9, XMM10, 0FFh
     
    20002051EMIT_INSTR_PLUS_ICEBP_C64   vblendps, XMM8, XMM9, XMM10, 000h
    20012052EMIT_INSTR_PLUS_ICEBP_C64   vblendps, XMM8, XMM9, FSxBX, 000h
     2053EMIT_INSTR_PLUS_ICEBP_C64   vblendps, XMM8, XMM9, XMM10, 07Ah
     2054EMIT_INSTR_PLUS_ICEBP_C64   vblendps, XMM8, XMM9, FSxBX, 07Ah
    20022055
    20032056EMIT_INSTR_PLUS_ICEBP_C64   vblendps, YMM8, YMM9, YMM10, 0FFh
     
    20052058EMIT_INSTR_PLUS_ICEBP_C64   vblendps, YMM8, YMM9, YMM10, 000h
    20062059EMIT_INSTR_PLUS_ICEBP_C64   vblendps, YMM8, YMM9, FSxBX, 000h
     2060EMIT_INSTR_PLUS_ICEBP_C64   vblendps, YMM8, YMM9, YMM10, 07Ah
     2061EMIT_INSTR_PLUS_ICEBP_C64   vblendps, YMM8, YMM9, FSxBX, 07Ah
    20072062
    20082063;
     
    20132068EMIT_INSTR_PLUS_ICEBP   blendpd,  XMM1, XMM2,  000h
    20142069EMIT_INSTR_PLUS_ICEBP   blendpd,  XMM1, FSxBX, 000h
     2070EMIT_INSTR_PLUS_ICEBP   blendpd,  XMM1, XMM2,  006h
     2071EMIT_INSTR_PLUS_ICEBP   blendpd,  XMM1, FSxBX, 006h
    20152072
    20162073EMIT_INSTR_PLUS_ICEBP   vblendpd, XMM1, XMM2, XMM3,  0FFh
     
    20182075EMIT_INSTR_PLUS_ICEBP   vblendpd, XMM1, XMM2, XMM3,  000h
    20192076EMIT_INSTR_PLUS_ICEBP   vblendpd, XMM1, XMM2, FSxBX, 000h
     2077EMIT_INSTR_PLUS_ICEBP   vblendpd, XMM1, XMM2, XMM3,  006h
     2078EMIT_INSTR_PLUS_ICEBP   vblendpd, XMM1, XMM2, FSxBX, 006h
    20202079
    20212080EMIT_INSTR_PLUS_ICEBP   vblendpd, YMM1, YMM2, YMM3,  0FFh
     
    20232082EMIT_INSTR_PLUS_ICEBP   vblendpd, YMM1, YMM2, YMM3,  000h
    20242083EMIT_INSTR_PLUS_ICEBP   vblendpd, YMM1, YMM2, FSxBX, 000h
     2084EMIT_INSTR_PLUS_ICEBP   vblendpd, YMM1, YMM2, YMM3,  006h
     2085EMIT_INSTR_PLUS_ICEBP   vblendpd, YMM1, YMM2, FSxBX, 006h
    20252086
    20262087EMIT_INSTR_PLUS_ICEBP_C64   blendpd,  XMM8, XMM9,  0FFh
     
    20282089EMIT_INSTR_PLUS_ICEBP_C64   blendpd,  XMM8, XMM9,  000h
    20292090EMIT_INSTR_PLUS_ICEBP_C64   blendpd,  XMM8, FSxBX, 000h
     2091EMIT_INSTR_PLUS_ICEBP_C64   blendpd,  XMM8, XMM9,  006h
     2092EMIT_INSTR_PLUS_ICEBP_C64   blendpd,  XMM8, FSxBX, 006h
    20302093
    20312094EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, XMM8, XMM9, XMM10, 0FFh
     
    20332096EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, XMM8, XMM9, XMM10, 000h
    20342097EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, XMM8, XMM9, FSxBX, 000h
     2098EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, XMM8, XMM9, XMM10, 006h
     2099EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, XMM8, XMM9, FSxBX, 006h
    20352100
    20362101EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, YMM8, YMM9, YMM10, 0FFh
     
    20382103EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, YMM8, YMM9, YMM10, 000h
    20392104EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, YMM8, YMM9, FSxBX, 000h
     2105EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, YMM8, YMM9, YMM10, 006h
     2106EMIT_INSTR_PLUS_ICEBP_C64   vblendpd, YMM8, YMM9, FSxBX, 006h
    20402107
    20412108;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32

    r103697 r103701  
    59785978            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd) },
    59795979    };
     5980    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues7A[] =
     5981    {
     5982        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     5983            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     5984            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     5985        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     5986            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     5987            /* => */ RTUINT256_INIT_C(0xb1b2f3f4f5f6f7f8, 0xe1e2a3a4e5e6a7a8, 0x9192d3d4d5d6d7d8, 0xc1c28384c5c68788) },
     5988        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     5989            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     5990            /* => */ RTUINT256_INIT_C(0x1eddf02a6cdc73d5, 0x3ef48eec666b5633, 0x88002fa8564c9ba2, 0x9c5ccda0930999fd) },
     5991    };
    59805992
    59815993    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     
    59855997        {  bs3CpuInstr3_pblendw_XMM1_XMM2_000h_icebp_c16,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    59865998        {  bs3CpuInstr3_pblendw_XMM1_FSxBX_000h_icebp_c16,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     5999        {  bs3CpuInstr3_pblendw_XMM1_XMM2_07Ah_icebp_c16,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6000        {  bs3CpuInstr3_pblendw_XMM1_FSxBX_07Ah_icebp_c16,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    59876001
    59886002        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_0FFh_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     
    59956009        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_YMM3_000h_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    59966010        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6011
     6012        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_07Ah_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6013        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_FSxBX_07Ah_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6014        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_YMM3_07Ah_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6015        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_FSxBX_07Ah_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    59976016    };
    59986017    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     
    60026021        {  bs3CpuInstr3_pblendw_XMM1_XMM2_000h_icebp_c32,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    60036022        {  bs3CpuInstr3_pblendw_XMM1_FSxBX_000h_icebp_c32,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6023        {  bs3CpuInstr3_pblendw_XMM1_XMM2_07Ah_icebp_c32,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6024        {  bs3CpuInstr3_pblendw_XMM1_FSxBX_07Ah_icebp_c32,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    60046025
    60056026        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_0FFh_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     
    60086029        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
    60096030
     6031        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_07Ah_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6032        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_FSxBX_07Ah_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6033        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_YMM3_07Ah_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6034        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_FSxBX_07Ah_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6035
    60106036        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_000h_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    60116037        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     
    60246050        {  bs3CpuInstr3_pblendw_XMM8_XMM9_000h_icebp_c64,        255,         RM_REG, T_SSE4_1,     8, 8,   9, RT_ELEMENTS(s_aValues00),       s_aValues00 },
    60256051        {  bs3CpuInstr3_pblendw_XMM8_FSxBX_000h_icebp_c64,       255,         RM_MEM, T_SSE4_1,     8, 8, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6052
     6053        {  bs3CpuInstr3_pblendw_XMM1_XMM2_07Ah_icebp_c64,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6054        {  bs3CpuInstr3_pblendw_XMM1_FSxBX_07Ah_icebp_c64,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6055        {  bs3CpuInstr3_pblendw_XMM8_XMM9_07Ah_icebp_c64,        255,         RM_REG, T_SSE4_1,     8, 8,   9, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6056        {  bs3CpuInstr3_pblendw_XMM8_FSxBX_07Ah_icebp_c64,       255,         RM_MEM, T_SSE4_1,     8, 8, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
    60266057
    60276058        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_0FFh_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     
    60426073        {  bs3CpuInstr3_vpblendw_YMM8_YMM9_YMM10_000h_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues00),       s_aValues00 },
    60436074        {  bs3CpuInstr3_vpblendw_YMM8_YMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6075
     6076        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_07Ah_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6077        {  bs3CpuInstr3_vpblendw_XMM1_XMM2_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6078        {  bs3CpuInstr3_vpblendw_XMM8_XMM9_XMM10_07Ah_icebp_c64, 255,         RM_REG, T_AVX_128,    8, 9,  10, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6079        {  bs3CpuInstr3_vpblendw_XMM8_XMM9_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    8, 9, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6080        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_YMM3_07Ah_icebp_c64,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6081        {  bs3CpuInstr3_vpblendw_YMM1_YMM2_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6082        {  bs3CpuInstr3_vpblendw_YMM8_YMM9_YMM10_07Ah_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6083        {  bs3CpuInstr3_vpblendw_YMM8_YMM9_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
    60446084    };
    60456085    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    60516091
    60526092/*
     6093 * VPBLENDD - Blend packed dwords based on an 8-bit immediate.
     6094 */
     6095BS3_DECL_FAR(uint8_t) bs3CpuInstr3_vpblendd(uint8_t bMode)
     6096{
     6097    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValuesFF[] =
     6098    {
     6099        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6100            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6101            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     6102        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     6103            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     6104            /* => */ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8) },
     6105        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     6106            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     6107            /* => */ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb) },
     6108    };
     6109    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues00[] =
     6110    {
     6111        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6112            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6113            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     6114        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     6115            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     6116            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788) },
     6117        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     6118            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     6119            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd) },
     6120    };
     6121    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues7A[] =
     6122    {
     6123        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6124            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6125            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     6126        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     6127            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     6128            /* => */ RTUINT256_INIT_C(0xb1b2b3b4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d495969798, 0xc1c2c3c485868788) },
     6129        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     6130            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     6131            /* => */ RTUINT256_INIT_C(0x1eddddac6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8bf9962c3, 0x9c5ce073238499fd) },
     6132    };
     6133
     6134    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     6135    {
     6136
     6137        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_0FFh_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6138        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6139        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_0FFh_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6140        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_0FFh_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6141
     6142        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_000h_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6143        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6144        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_000h_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6145        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6146
     6147        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_07Ah_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6148        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_07Ah_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6149        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_07Ah_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6150        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_07Ah_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6151    };
     6152    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     6153    {
     6154        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_0FFh_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6155        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6156        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_0FFh_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6157        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_0FFh_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     6158
     6159        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_000h_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6160        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6161        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_000h_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6162        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6163
     6164        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_07Ah_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6165        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_07Ah_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6166        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_07Ah_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6167        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_07Ah_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6168    };
     6169    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     6170    {
     6171        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_0FFh_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6172        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6173        {  bs3CpuInstr3_vpblendd_XMM8_XMM9_XMM10_0FFh_icebp_c64, 255,         RM_REG, T_AVX_128,    8, 9,  10, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6174        {  bs3CpuInstr3_vpblendd_XMM8_XMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    8, 9, 255, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6175        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_0FFh_icebp_c64,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6176        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6177        {  bs3CpuInstr3_vpblendd_YMM8_YMM9_YMM10_0FFh_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6178        {  bs3CpuInstr3_vpblendd_YMM8_YMM9_FSxBX_0FFh_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     6179
     6180        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_000h_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6181        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6182        {  bs3CpuInstr3_vpblendd_XMM8_XMM9_XMM10_000h_icebp_c64, 255,         RM_REG, T_AVX_128,    8, 9,  10, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6183        {  bs3CpuInstr3_vpblendd_XMM8_XMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    8, 9, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6184        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_000h_icebp_c64,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6185        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6186        {  bs3CpuInstr3_vpblendd_YMM8_YMM9_YMM10_000h_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6187        {  bs3CpuInstr3_vpblendd_YMM8_YMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6188
     6189        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_XMM3_07Ah_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6190        {  bs3CpuInstr3_vpblendd_XMM1_XMM2_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6191        {  bs3CpuInstr3_vpblendd_XMM8_XMM9_XMM10_07Ah_icebp_c64, 255,         RM_REG, T_AVX_128,    8, 9,  10, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6192        {  bs3CpuInstr3_vpblendd_XMM8_XMM9_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    8, 9, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6193        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_YMM3_07Ah_icebp_c64,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6194        {  bs3CpuInstr3_vpblendd_YMM1_YMM2_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6195        {  bs3CpuInstr3_vpblendd_YMM8_YMM9_YMM10_07Ah_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6196        {  bs3CpuInstr3_vpblendd_YMM8_YMM9_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6197    };
     6198    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     6199    unsigned const                         iTest       = BS3CPUINSTR3_TEST_MODES_INDEX(bMode);
     6200    return bs3CpuInstr3_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     6201                                        g_aXcptConfig4, RT_ELEMENTS(g_aXcptConfig4));
     6202}
     6203
     6204
     6205/*
    60536206 * [V]BLENDPS - Blend packed single precision floating point values based on an 8-bit immediate.
    60546207 */
     
    60786231            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
    60796232            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd) },
     6233    };
     6234    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues7A[] =
     6235    {
     6236        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6237            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6238            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     6239        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     6240            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     6241            /* => */ RTUINT256_INIT_C(0xb1b2b3b4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d495969798, 0xc1c2c3c485868788) },
     6242        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     6243            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     6244            /* => */ RTUINT256_INIT_C(0x1eddddac6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8bf9962c3, 0x9c5ce073238499fd) },
    60806245    };
    60816246
     
    60866251        {  bs3CpuInstr3_blendps_XMM1_XMM2_000h_icebp_c16,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    60876252        {  bs3CpuInstr3_blendps_XMM1_FSxBX_000h_icebp_c16,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6253        {  bs3CpuInstr3_blendps_XMM1_XMM2_07Ah_icebp_c16,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6254        {  bs3CpuInstr3_blendps_XMM1_FSxBX_07Ah_icebp_c16,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    60886255
    60896256        {  bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_0FFh_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     
    60966263        {  bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_000h_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    60976264        {  bs3CpuInstr3_vblendps_YMM1_YMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6265
     6266        {  bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_07Ah_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6267        {  bs3CpuInstr3_vblendps_XMM1_XMM2_FSxBX_07Ah_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6268        {  bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_07Ah_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6269        {  bs3CpuInstr3_vblendps_YMM1_YMM2_FSxBX_07Ah_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    60986270    };
    60996271    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     
    61036275        {  bs3CpuInstr3_blendps_XMM1_XMM2_000h_icebp_c32,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    61046276        {  bs3CpuInstr3_blendps_XMM1_FSxBX_000h_icebp_c32,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6277        {  bs3CpuInstr3_blendps_XMM1_XMM2_07Ah_icebp_c32,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6278        {  bs3CpuInstr3_blendps_XMM1_FSxBX_07Ah_icebp_c32,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    61056279
    61066280        {  bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_0FFh_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     
    61136287        {  bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_000h_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    61146288        {  bs3CpuInstr3_vblendps_YMM1_YMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6289
     6290        {  bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_07Ah_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6291        {  bs3CpuInstr3_vblendps_XMM1_XMM2_FSxBX_07Ah_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6292        {  bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_07Ah_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
     6293        {  bs3CpuInstr3_vblendps_YMM1_YMM2_FSxBX_07Ah_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),        s_aValues7A },
    61156294    };
    61166295    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     
    61256304        {  bs3CpuInstr3_blendps_XMM8_XMM9_000h_icebp_c64,        255,         RM_REG, T_SSE4_1,     8, 8,   9, RT_ELEMENTS(s_aValues00),       s_aValues00 },
    61266305        {  bs3CpuInstr3_blendps_XMM8_FSxBX_000h_icebp_c64,       255,         RM_MEM, T_SSE4_1,     8, 8, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6306
     6307        {  bs3CpuInstr3_blendps_XMM1_XMM2_07Ah_icebp_c64,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6308        {  bs3CpuInstr3_blendps_XMM1_FSxBX_07Ah_icebp_c64,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6309        {  bs3CpuInstr3_blendps_XMM8_XMM9_07Ah_icebp_c64,        255,         RM_REG, T_SSE4_1,     8, 8,   9, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6310        {  bs3CpuInstr3_blendps_XMM8_FSxBX_07Ah_icebp_c64,       255,         RM_MEM, T_SSE4_1,     8, 8, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
    61276311
    61286312        {  bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_0FFh_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     
    61436327        {  bs3CpuInstr3_vblendps_YMM8_YMM9_YMM10_000h_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues00),       s_aValues00 },
    61446328        {  bs3CpuInstr3_vblendps_YMM8_YMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6329
     6330        {  bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_07Ah_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6331        {  bs3CpuInstr3_vblendps_XMM1_XMM2_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6332        {  bs3CpuInstr3_vblendps_XMM8_XMM9_XMM10_07Ah_icebp_c64, 255,         RM_REG, T_AVX_128,    8, 9,  10, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6333        {  bs3CpuInstr3_vblendps_XMM8_XMM9_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    8, 9, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6334        {  bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_07Ah_icebp_c64,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6335        {  bs3CpuInstr3_vblendps_YMM1_YMM2_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6336        {  bs3CpuInstr3_vblendps_YMM8_YMM9_YMM10_07Ah_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
     6337        {  bs3CpuInstr3_vblendps_YMM8_YMM9_FSxBX_07Ah_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues7A),       s_aValues7A },
    61456338    };
    61466339    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    61806373            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd) },
    61816374    };
     6375    static BS3CPUINSTR3_TEST1_VALUES_T const s_aValues06[] =
     6376    {
     6377        {   /*src2*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6378            /*src1*/ RTUINT256_INIT_C(0, 0, 0, 0),
     6379            /* => */ RTUINT256_INIT_C(0, 0, 0, 0) },
     6380        {   /*src2*/ RTUINT256_INIT_C(0xf1f2f3f4f5f6f7f8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0xc1c2c3c4c5c6c7c8),
     6381            /*src1*/ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xa1a2a3a4a5a6a7a8, 0x9192939495969798, 0x8182838485868788),
     6382            /* => */ RTUINT256_INIT_C(0xb1b2b3b4b5b6b7b8, 0xe1e2e3e4e5e6e7e8, 0xd1d2d3d4d5d6d7d8, 0x8182838485868788) },
     6383        {   /*src2*/ RTUINT256_INIT_C(0x4d09f02a6cdc73d5, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x9c5ce073930996bb),
     6384            /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd),
     6385            /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0x3ef417c8666b3fe6, 0xb4212fa8564c9ba2, 0x43d3cda0238499fd) },
     6386    };
    61826387
    61836388    static BS3CPUINSTR3_TEST1_T const s_aTests16[] =
     
    61876392        {  bs3CpuInstr3_blendpd_XMM1_XMM2_000h_icebp_c16,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    61886393        {  bs3CpuInstr3_blendpd_XMM1_FSxBX_000h_icebp_c16,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6394        {  bs3CpuInstr3_blendpd_XMM1_XMM2_006h_icebp_c16,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6395        {  bs3CpuInstr3_blendpd_XMM1_FSxBX_006h_icebp_c16,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues06),        s_aValues06 },
    61896396
    61906397        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_0FFh_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     
    61976404        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_000h_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    61986405        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_FSxBX_000h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6406
     6407        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_006h_icebp_c16,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6408        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_FSxBX_006h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6409        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_006h_icebp_c16,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6410        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_FSxBX_006h_icebp_c16, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues06),        s_aValues06 },
    61996411    };
    62006412    static BS3CPUINSTR3_TEST1_T const s_aTests32[] =
     
    62046416        {  bs3CpuInstr3_blendpd_XMM1_XMM2_000h_icebp_c32,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    62056417        {  bs3CpuInstr3_blendpd_XMM1_FSxBX_000h_icebp_c32,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6418        {  bs3CpuInstr3_blendpd_XMM1_XMM2_006h_icebp_c32,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6419        {  bs3CpuInstr3_blendpd_XMM1_FSxBX_006h_icebp_c32,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues06),        s_aValues06 },
    62066420
    62076421        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_0FFh_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),        s_aValuesFF },
     
    62146428        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_000h_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues00),        s_aValues00 },
    62156429        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_FSxBX_000h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues00),        s_aValues00 },
     6430
     6431        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_006h_icebp_c32,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6432        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_FSxBX_006h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6433        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_006h_icebp_c32,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues06),        s_aValues06 },
     6434        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_FSxBX_006h_icebp_c32, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues06),        s_aValues06 },
    62166435    };
    62176436    static BS3CPUINSTR3_TEST1_T const s_aTests64[] =
     
    62266445        {  bs3CpuInstr3_blendpd_XMM8_XMM9_000h_icebp_c64,        255,         RM_REG, T_SSE4_1,     8, 8,   9, RT_ELEMENTS(s_aValues00),       s_aValues00 },
    62276446        {  bs3CpuInstr3_blendpd_XMM8_FSxBX_000h_icebp_c64,       255,         RM_MEM, T_SSE4_1,     8, 8, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6447
     6448        {  bs3CpuInstr3_blendpd_XMM1_XMM2_006h_icebp_c64,        255,         RM_REG, T_SSE4_1,     1, 1,   2, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6449        {  bs3CpuInstr3_blendpd_XMM1_FSxBX_006h_icebp_c64,       255,         RM_MEM, T_SSE4_1,     1, 1, 255, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6450        {  bs3CpuInstr3_blendpd_XMM8_XMM9_006h_icebp_c64,        255,         RM_REG, T_SSE4_1,     8, 8,   9, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6451        {  bs3CpuInstr3_blendpd_XMM8_FSxBX_006h_icebp_c64,       255,         RM_MEM, T_SSE4_1,     8, 8, 255, RT_ELEMENTS(s_aValues06),       s_aValues06 },
    62286452
    62296453        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_0FFh_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValuesFF),       s_aValuesFF },
     
    62446468        {  bs3CpuInstr3_vblendpd_YMM8_YMM9_YMM10_000h_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues00),       s_aValues00 },
    62456469        {  bs3CpuInstr3_vblendpd_YMM8_YMM9_FSxBX_000h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues00),       s_aValues00 },
     6470
     6471        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_006h_icebp_c64,  255,         RM_REG, T_AVX_128,    1, 2,   3, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6472        {  bs3CpuInstr3_vblendpd_XMM1_XMM2_FSxBX_006h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    1, 2, 255, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6473        {  bs3CpuInstr3_vblendpd_XMM8_XMM9_XMM10_006h_icebp_c64, 255,         RM_REG, T_AVX_128,    8, 9,  10, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6474        {  bs3CpuInstr3_vblendpd_XMM8_XMM9_FSxBX_006h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX_128,    8, 9, 255, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6475        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_006h_icebp_c64,  255,         RM_REG, T_AVX2_256,   1, 2,   3, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6476        {  bs3CpuInstr3_vblendpd_YMM1_YMM2_FSxBX_006h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   1, 2, 255, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6477        {  bs3CpuInstr3_vblendpd_YMM8_YMM9_YMM10_006h_icebp_c64, 255,         RM_REG, T_AVX2_256,   8, 9,  10, RT_ELEMENTS(s_aValues06),       s_aValues06 },
     6478        {  bs3CpuInstr3_vblendpd_YMM8_YMM9_FSxBX_006h_icebp_c64, X86_XCPT_DB, RM_MEM, T_AVX2_256,   8, 9, 255, RT_ELEMENTS(s_aValues06),       s_aValues06 },
    62466479    };
    62476480    static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     
    1275312986#if defined(ALL_TESTS)
    1275412987        { "[v]pblendw",                                     bs3CpuInstr3_v_pblendw,  0 },
     12988        { "vpblendd",                                       bs3CpuInstr3_vpblendd,   0 },
    1275512989        { "[v]blendps",                                     bs3CpuInstr3_v_blendps,  0 },
    1275612990        { "[v]blendpd",                                     bs3CpuInstr3_v_blendpd,  0 },
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