Changeset 103701 in vbox
- Timestamp:
- Mar 6, 2024 1:32:18 PM (9 months ago)
- 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 1947 1947 EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, XMM2, 000h 1948 1948 EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, FSxBX, 000h 1949 EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, XMM2, 07Ah 1950 EMIT_INSTR_PLUS_ICEBP pblendw, XMM1, FSxBX, 07Ah 1949 1951 1950 1952 EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, XMM3, 0FFh … … 1952 1954 EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, XMM3, 000h 1953 1955 EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, FSxBX, 000h 1956 EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, XMM3, 07Ah 1957 EMIT_INSTR_PLUS_ICEBP vpblendw, XMM1, XMM2, FSxBX, 07Ah 1954 1958 1955 1959 EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, YMM3, 0FFh … … 1957 1961 EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, YMM3, 000h 1958 1962 EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, FSxBX, 000h 1963 EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, YMM3, 07Ah 1964 EMIT_INSTR_PLUS_ICEBP vpblendw, YMM1, YMM2, FSxBX, 07Ah 1959 1965 1960 1966 EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, XMM9, 0FFh … … 1962 1968 EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, XMM9, 000h 1963 1969 EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, FSxBX, 000h 1970 EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, XMM9, 07Ah 1971 EMIT_INSTR_PLUS_ICEBP_C64 pblendw, XMM8, FSxBX, 07Ah 1964 1972 1965 1973 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, XMM10, 0FFh … … 1967 1975 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, XMM10, 000h 1968 1976 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, FSxBX, 000h 1977 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, XMM10, 07Ah 1978 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, XMM8, XMM9, FSxBX, 07Ah 1969 1979 1970 1980 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, YMM10, 0FFh … … 1972 1982 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, YMM10, 000h 1973 1983 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, FSxBX, 000h 1984 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, YMM10, 07Ah 1985 EMIT_INSTR_PLUS_ICEBP_C64 vpblendw, YMM8, YMM9, FSxBX, 07Ah 1986 1987 ; 1988 ; VPBLENDD 1989 ; 1990 EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, XMM3, 0FFh 1991 EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, FSxBX, 0FFh 1992 EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, XMM3, 000h 1993 EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, FSxBX, 000h 1994 EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, XMM3, 07Ah 1995 EMIT_INSTR_PLUS_ICEBP vpblendd, XMM1, XMM2, FSxBX, 07Ah 1996 1997 EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, YMM3, 0FFh 1998 EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, FSxBX, 0FFh 1999 EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, YMM3, 000h 2000 EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, FSxBX, 000h 2001 EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, YMM3, 07Ah 2002 EMIT_INSTR_PLUS_ICEBP vpblendd, YMM1, YMM2, FSxBX, 07Ah 2003 2004 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, XMM10, 0FFh 2005 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, FSxBX, 0FFh 2006 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, XMM10, 000h 2007 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, FSxBX, 000h 2008 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, XMM10, 07Ah 2009 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, XMM8, XMM9, FSxBX, 07Ah 2010 2011 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, YMM10, 0FFh 2012 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, FSxBX, 0FFh 2013 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, YMM10, 000h 2014 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, FSxBX, 000h 2015 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, YMM10, 07Ah 2016 EMIT_INSTR_PLUS_ICEBP_C64 vpblendd, YMM8, YMM9, FSxBX, 07Ah 1974 2017 1975 2018 ; … … 1980 2023 EMIT_INSTR_PLUS_ICEBP blendps, XMM1, XMM2, 000h 1981 2024 EMIT_INSTR_PLUS_ICEBP blendps, XMM1, FSxBX, 000h 2025 EMIT_INSTR_PLUS_ICEBP blendps, XMM1, XMM2, 07Ah 2026 EMIT_INSTR_PLUS_ICEBP blendps, XMM1, FSxBX, 07Ah 1982 2027 1983 2028 EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, XMM3, 0FFh … … 1985 2030 EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, XMM3, 000h 1986 2031 EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, FSxBX, 000h 2032 EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, XMM3, 07Ah 2033 EMIT_INSTR_PLUS_ICEBP vblendps, XMM1, XMM2, FSxBX, 07Ah 1987 2034 1988 2035 EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, YMM3, 0FFh … … 1990 2037 EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, YMM3, 000h 1991 2038 EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, FSxBX, 000h 2039 EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, YMM3, 07Ah 2040 EMIT_INSTR_PLUS_ICEBP vblendps, YMM1, YMM2, FSxBX, 07Ah 1992 2041 1993 2042 EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, XMM9, 0FFh … … 1995 2044 EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, XMM9, 000h 1996 2045 EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, FSxBX, 000h 2046 EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, XMM9, 07Ah 2047 EMIT_INSTR_PLUS_ICEBP_C64 blendps, XMM8, FSxBX, 07Ah 1997 2048 1998 2049 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, XMM10, 0FFh … … 2000 2051 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, XMM10, 000h 2001 2052 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, FSxBX, 000h 2053 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, XMM10, 07Ah 2054 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, XMM8, XMM9, FSxBX, 07Ah 2002 2055 2003 2056 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, YMM10, 0FFh … … 2005 2058 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, YMM10, 000h 2006 2059 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, FSxBX, 000h 2060 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, YMM10, 07Ah 2061 EMIT_INSTR_PLUS_ICEBP_C64 vblendps, YMM8, YMM9, FSxBX, 07Ah 2007 2062 2008 2063 ; … … 2013 2068 EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, XMM2, 000h 2014 2069 EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, FSxBX, 000h 2070 EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, XMM2, 006h 2071 EMIT_INSTR_PLUS_ICEBP blendpd, XMM1, FSxBX, 006h 2015 2072 2016 2073 EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, XMM3, 0FFh … … 2018 2075 EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, XMM3, 000h 2019 2076 EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, FSxBX, 000h 2077 EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, XMM3, 006h 2078 EMIT_INSTR_PLUS_ICEBP vblendpd, XMM1, XMM2, FSxBX, 006h 2020 2079 2021 2080 EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, YMM3, 0FFh … … 2023 2082 EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, YMM3, 000h 2024 2083 EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, FSxBX, 000h 2084 EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, YMM3, 006h 2085 EMIT_INSTR_PLUS_ICEBP vblendpd, YMM1, YMM2, FSxBX, 006h 2025 2086 2026 2087 EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, XMM9, 0FFh … … 2028 2089 EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, XMM9, 000h 2029 2090 EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, FSxBX, 000h 2091 EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, XMM9, 006h 2092 EMIT_INSTR_PLUS_ICEBP_C64 blendpd, XMM8, FSxBX, 006h 2030 2093 2031 2094 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, XMM10, 0FFh … … 2033 2096 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, XMM10, 000h 2034 2097 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, FSxBX, 000h 2098 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, XMM10, 006h 2099 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, XMM8, XMM9, FSxBX, 006h 2035 2100 2036 2101 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, YMM10, 0FFh … … 2038 2103 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, YMM10, 000h 2039 2104 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, FSxBX, 000h 2105 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, YMM10, 006h 2106 EMIT_INSTR_PLUS_ICEBP_C64 vblendpd, YMM8, YMM9, FSxBX, 006h 2040 2107 2041 2108 ; -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-3.c32
r103697 r103701 5978 5978 /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd) }, 5979 5979 }; 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 }; 5980 5992 5981 5993 static BS3CPUINSTR3_TEST1_T const s_aTests16[] = … … 5985 5997 { bs3CpuInstr3_pblendw_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 5986 5998 { 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 }, 5987 6001 5988 6002 { bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 5995 6009 { bs3CpuInstr3_vpblendw_YMM1_YMM2_YMM3_000h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 5996 6010 { 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 }, 5997 6016 }; 5998 6017 static BS3CPUINSTR3_TEST1_T const s_aTests32[] = … … 6002 6021 { bs3CpuInstr3_pblendw_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6003 6022 { 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 }, 6004 6025 6005 6026 { bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6008 6029 { 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 }, 6009 6030 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 6010 6036 { bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_000h_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6011 6037 { 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 }, … … 6024 6050 { bs3CpuInstr3_pblendw_XMM8_XMM9_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 8, 9, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6025 6051 { 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 }, 6026 6057 6027 6058 { bs3CpuInstr3_vpblendw_XMM1_XMM2_XMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6042 6073 { bs3CpuInstr3_vpblendw_YMM8_YMM9_YMM10_000h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6043 6074 { 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 }, 6044 6084 }; 6045 6085 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 6051 6091 6052 6092 /* 6093 * VPBLENDD - Blend packed dwords based on an 8-bit immediate. 6094 */ 6095 BS3_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 /* 6053 6206 * [V]BLENDPS - Blend packed single precision floating point values based on an 8-bit immediate. 6054 6207 */ … … 6078 6231 /*src1*/ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd), 6079 6232 /* => */ 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) }, 6080 6245 }; 6081 6246 … … 6086 6251 { bs3CpuInstr3_blendps_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6087 6252 { 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 }, 6088 6255 6089 6256 { bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6096 6263 { bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_000h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6097 6264 { 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 }, 6098 6270 }; 6099 6271 static BS3CPUINSTR3_TEST1_T const s_aTests32[] = … … 6103 6275 { bs3CpuInstr3_blendps_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6104 6276 { 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 }, 6105 6279 6106 6280 { bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6113 6287 { bs3CpuInstr3_vblendps_YMM1_YMM2_YMM3_000h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6114 6288 { 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 }, 6115 6294 }; 6116 6295 static BS3CPUINSTR3_TEST1_T const s_aTests64[] = … … 6125 6304 { bs3CpuInstr3_blendps_XMM8_XMM9_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 8, 9, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6126 6305 { 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 }, 6127 6311 6128 6312 { bs3CpuInstr3_vblendps_XMM1_XMM2_XMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6143 6327 { bs3CpuInstr3_vblendps_YMM8_YMM9_YMM10_000h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6144 6328 { 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 }, 6145 6338 }; 6146 6339 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 6180 6373 /* => */ RTUINT256_INIT_C(0x1eddddac09633294, 0xf95c8eec40725633, 0x8800e95bbf9962c3, 0x43d3cda0238499fd) }, 6181 6374 }; 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 }; 6182 6387 6183 6388 static BS3CPUINSTR3_TEST1_T const s_aTests16[] = … … 6187 6392 { bs3CpuInstr3_blendpd_XMM1_XMM2_000h_icebp_c16, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6188 6393 { 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 }, 6189 6396 6190 6397 { bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_0FFh_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6197 6404 { bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_000h_icebp_c16, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6198 6405 { 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 }, 6199 6411 }; 6200 6412 static BS3CPUINSTR3_TEST1_T const s_aTests32[] = … … 6204 6416 { bs3CpuInstr3_blendpd_XMM1_XMM2_000h_icebp_c32, 255, RM_REG, T_SSE4_1, 1, 1, 2, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6205 6417 { 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 }, 6206 6420 6207 6421 { bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_0FFh_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6214 6428 { bs3CpuInstr3_vblendpd_YMM1_YMM2_YMM3_000h_icebp_c32, 255, RM_REG, T_AVX2_256, 1, 2, 3, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6215 6429 { 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 }, 6216 6435 }; 6217 6436 static BS3CPUINSTR3_TEST1_T const s_aTests64[] = … … 6226 6445 { bs3CpuInstr3_blendpd_XMM8_XMM9_000h_icebp_c64, 255, RM_REG, T_SSE4_1, 8, 8, 9, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6227 6446 { 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 }, 6228 6452 6229 6453 { bs3CpuInstr3_vblendpd_XMM1_XMM2_XMM3_0FFh_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, RT_ELEMENTS(s_aValuesFF), s_aValuesFF }, … … 6244 6468 { bs3CpuInstr3_vblendpd_YMM8_YMM9_YMM10_000h_icebp_c64, 255, RM_REG, T_AVX2_256, 8, 9, 10, RT_ELEMENTS(s_aValues00), s_aValues00 }, 6245 6469 { 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 }, 6246 6479 }; 6247 6480 static BS3CPUINSTR3_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR3_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); … … 12753 12986 #if defined(ALL_TESTS) 12754 12987 { "[v]pblendw", bs3CpuInstr3_v_pblendw, 0 }, 12988 { "vpblendd", bs3CpuInstr3_vpblendd, 0 }, 12755 12989 { "[v]blendps", bs3CpuInstr3_v_blendps, 0 }, 12756 12990 { "[v]blendpd", bs3CpuInstr3_v_blendpd, 0 },
Note:
See TracChangeset
for help on using the changeset viewer.