- Timestamp:
- Sep 28, 2024 9:13:01 AM (5 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r106175 r106176 1443 1443 { /*src1 */ { FP64_1(0), FP64_1(1), FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1) } }, \ 1444 1444 { /* => */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1), FP64_QNAN_V(0, FP64_FRAC_V1) } }, \ 1445 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS,\1446 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ XCPT_FLAGS,\1447 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ XCPT_FLAGS,\1445 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, \ 1446 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, \ 1447 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, \ 1448 1448 /*xcpt? */ false, false }, \ 1449 1449 { { /*src2 */ { FP64_SNAN(1), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1), FP64_SNAN_V(0, FP64_FRAC_V1) } }, \ … … 1470 1470 { { /*src2 */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } }, \ 1471 1471 { /*src1 */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } }, \ 1472 { /* => */ { FP64_ QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN),FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1) } }, \1472 { /* => */ { FP64_SNAN(0), FP64_SNAN(0), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1) } }, \ 1473 1473 /*mxcsr:in */ 0, \ 1474 1474 /*128:out */ X86_MXCSR_IE, \ … … 11088 11088 /*29*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11089 11089 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } }, 11090 { /* => */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11091 /*mxcsr:in */ 0, 11092 /*128:out */ X86_MXCSR_DE, 11093 /*256:out */ X86_MXCSR_DE, 11094 /*xcpt? */ true, true }, 11095 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0) } }, 11096 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11097 { /* => */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 11098 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11099 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11100 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11101 /*xcpt? */ false, false }, 11102 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 11103 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } }, 11104 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11105 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11106 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11107 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11108 /*xcpt? */ false, false }, 11109 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11110 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0) } }, 11111 { /* => */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 11112 /*mxcsr:in */ 0, 11113 /*128:out */ X86_MXCSR_DE, 11114 /*256:out */ X86_MXCSR_DE, 11115 /*xcpt? */ true, true }, 11116 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(1) } }, 11117 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11118 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(1) } }, 11119 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11120 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11121 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11122 /*xcpt? */ false, false }, 11123 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } }, 11124 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } }, 11125 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11126 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11127 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11128 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11129 /*xcpt? */ false, false }, 11130 /** @todo Denormals. */ 11131 /* 11132 * Invalids. 11133 */ 11134 /*35*/ FP64_TABLE_D9_PD_INVALIDS 11135 }; 11136 11137 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 11138 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 11139 { 11140 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 11141 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, 11142 11143 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 11144 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 11145 11146 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues }, 11147 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues }, 11148 }; 11149 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11150 { 11151 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 11152 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, 11153 11154 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 11155 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 11156 11157 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues }, 11158 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues }, 11159 }; 11160 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11161 { 11162 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 11163 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, 11164 11165 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 11166 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 11167 11168 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues }, 11169 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues }, 11170 11171 { bs3CpuInstr4_maxpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues }, 11172 { bs3CpuInstr4_maxpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues }, 11173 11174 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 11175 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 11176 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues }, 11177 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues }, 11178 }; 11179 #undef PASS_s_aValues 11180 11181 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11182 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11183 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11184 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 11185 } 11186 11187 11188 /* 11189 * [V]MAXSS. 11190 */ 11191 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxss(uint8_t bMode) 11192 { 11193 static BS3CPUINSTR4_TEST1_VALUES_SS_T const s_aValues[] = 11194 { 11195 /* 11196 * Zero. 11197 */ 11198 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11199 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11200 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11201 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11202 /*128:out */ X86_MXCSR_XCPT_MASK, 11203 /*256:out */ X86_MXCSR_XCPT_MASK, 11204 /*xcpt? */ false, false }, 11205 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11206 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11207 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 11208 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11209 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11210 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11211 /*xcpt? */ false, false }, 11212 { { /*src2 */ { FP32_0(0), FP32_INF(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(1), FP32_QNAN(1), FP32_INF(1), FP32_RAND_V7(0) } }, 11213 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } }, 11214 { /* => */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } }, 11215 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11216 /*128:out */ X86_MXCSR_XCPT_MASK, 11217 /*256:out */ X86_MXCSR_XCPT_MASK, 11218 /*xcpt? */ false, false }, 11219 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0) } }, 11220 { /*src1 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11221 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11222 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11223 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11224 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11225 /*xcpt? */ false, false }, 11226 { { /*src2 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11227 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11228 { /* => */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11229 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11230 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11231 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11232 /*xcpt? */ false, false }, 11233 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } }, 11234 { /*src1 */ { FP32_0(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11235 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } }, 11236 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11237 /*128:out */ X86_MXCSR_XCPT_MASK, 11238 /*256:out */ X86_MXCSR_XCPT_MASK, 11239 /*xcpt? */ false, false }, 11240 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } }, 11241 { /*src1 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } }, 11242 { /* => */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } }, 11243 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11244 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11245 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11246 /*xcpt? */ false, false }, 11247 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11248 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 11249 { /* => */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 11250 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11251 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11252 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11253 /*xcpt? */ false, false }, 11254 { { /*src2 */ { FP32_0(1), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V0(0) } }, 11255 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } }, 11256 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } }, 11257 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11258 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11259 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11260 /*xcpt? */ false, false }, 11261 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11262 { /*src1 */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } }, 11263 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } }, 11264 /*mxcsr:in */ 0, 11265 /*128:out */ 0, 11266 /*256:out */ 0, 11267 /*xcpt? */ false, false }, 11268 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11269 { /*src1 */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11270 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11271 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11272 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11273 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11274 /*xcpt? */ false, false }, 11275 /* 11276 * Infinity. 11277 */ 11278 /*11*/{ { /*src2 */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11279 { /*src1 */ { FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11280 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } }, 11281 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11282 /*128:out */ X86_MXCSR_XCPT_MASK, 11283 /*256:out */ X86_MXCSR_XCPT_MASK, 11284 /*xcpt? */ false, false }, 11285 { { /*src2 */ { FP32_0(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11286 { /*src1 */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } }, 11287 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } }, 11288 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11289 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11290 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11291 /*xcpt? */ false, false }, 11292 { { /*src2 */ { FP32_INF(0), FP32_INF(1), FP32_SNAN(1), FP32_QNAN(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11293 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11294 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11295 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11296 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11297 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11298 /*xcpt? */ false, false }, 11299 { { /*src2 */ { FP32_0(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11300 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11301 { /* => */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11302 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11303 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11304 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11305 /*xcpt? */ false, false }, 11306 { { /*src2 */ { FP32_INF(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } }, 11307 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } }, 11308 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } }, 11309 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11310 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11311 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11312 /*xcpt? */ false, false }, 11313 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } }, 11314 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } }, 11315 { /* => */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } }, 11316 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11317 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11318 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11319 /*xcpt? */ false, false }, 11320 { { /*src2 */ { FP32_INF(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V0(0) } }, 11321 { /*src1 */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } }, 11322 { /* => */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } }, 11323 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11324 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11325 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11326 /*xcpt? */ false, false }, 11327 { { /*src2 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } }, 11328 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } }, 11329 { /* => */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } }, 11330 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11331 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11332 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11333 /*xcpt? */ false, false }, 11334 { { /*src2 */ { FP32_INF(1), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V1(1) } }, 11335 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } }, 11336 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } }, 11337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11340 /*xcpt? */ false, false }, 11341 { { /*src2 */ { FP32_INF(1), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11342 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11343 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11347 /*xcpt? */ false, false }, 11348 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V1(1), FP32_RAND_V7(1), FP32_RAND_V2(0) } }, 11349 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11350 { /* => */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11351 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11352 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11353 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11354 /*xcpt? */ false, false }, 11355 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11356 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11357 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } }, 11358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11361 /*xcpt? */ false, false }, 11362 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(0) } }, 11363 { /*src1 */ { FP32_NORM_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } }, 11364 { /* => */ { FP32_INF(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } }, 11365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11366 /*128:out */ X86_MXCSR_XCPT_MASK, 11367 /*256:out */ X86_MXCSR_XCPT_MASK, 11368 /*xcpt? */ false, false }, 11369 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0) } }, 11370 { /*src1 */ { FP32_NORM_V3(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11371 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11372 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11373 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11374 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11375 /*xcpt? */ false, false }, 11376 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(0), FP32_RAND_V2(0) } }, 11377 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } }, 11378 { /* => */ { FP32_NORM_V7(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } }, 11379 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11380 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11381 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11382 /*xcpt? */ false, false }, 11383 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1) } }, 11384 { /*src1 */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } }, 11385 { /* => */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } }, 11386 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11387 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11388 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11389 /*xcpt? */ false, false }, 11390 /* 11391 * Normals. 11392 */ 11393 /*27*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V1(1) } }, 11394 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } }, 11395 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } }, 11396 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11397 /*128:out */ X86_MXCSR_XCPT_MASK, 11398 /*256:out */ X86_MXCSR_XCPT_MASK, 11399 /*xcpt? */ false, false }, 11400 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11401 { /*src1 */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } }, 11402 { /* => */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } }, 11403 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11404 /*128:out */ X86_MXCSR_XCPT_MASK, 11405 /*256:out */ X86_MXCSR_XCPT_MASK, 11406 /*xcpt? */ false, false }, 11407 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11408 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } }, 11409 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } }, 11410 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11411 /*128:out */ X86_MXCSR_XCPT_MASK, 11412 /*256:out */ X86_MXCSR_XCPT_MASK, 11413 /*xcpt? */ false, false }, 11414 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11415 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11416 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11417 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11418 /*128:out */ X86_MXCSR_XCPT_MASK, 11419 /*256:out */ X86_MXCSR_XCPT_MASK, 11420 /*xcpt? */ false, false }, 11421 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11422 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } }, 11423 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } }, 11424 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11425 /*128:out */ X86_MXCSR_XCPT_MASK, 11426 /*256:out */ X86_MXCSR_XCPT_MASK, 11427 /*xcpt? */ false, false }, 11428 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V1(1) } }, 11429 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11430 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11431 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11432 /*128:out */ X86_MXCSR_XCPT_MASK, 11433 /*256:out */ X86_MXCSR_XCPT_MASK, 11434 /*xcpt? */ false, false }, 11435 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } }, 11436 { /*src1 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11437 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11438 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11439 /*128:out */ X86_MXCSR_XCPT_MASK, 11440 /*256:out */ X86_MXCSR_XCPT_MASK, 11441 /*xcpt? */ false, false }, 11442 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11443 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11444 { /* => */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11445 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11446 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11447 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11448 /*xcpt? */ false, false }, 11449 { { /*src2 */ { FP32_V(0, 0, 0x7d)/*0.25*/, FP32_RAND_V2(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11450 { /*src1 */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } }, 11451 { /* => */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } }, 11452 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11453 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11454 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11455 /*xcpt? */ false, false }, 11456 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } }, 11457 { /*src1 */ { FP32_NORM_V1(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } }, 11458 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } }, 11459 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11460 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11461 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11462 /*xcpt? */ false, false }, 11463 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V7(0), FP32_RAND_V6(0) } }, 11464 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } }, 11465 { /* => */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } }, 11466 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11467 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11468 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11469 /*xcpt? */ false, false }, 11470 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } }, 11471 { /*src1 */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11472 { /* => */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } }, 11473 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11474 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11475 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11476 /*xcpt? */ false, false }, 11477 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11478 { /*src1 */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11479 { /* => */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11480 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11481 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11482 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11483 /*xcpt? */ false, false }, 11484 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11485 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11486 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } }, 11487 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11488 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11489 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11490 /*xcpt? */ false, false }, 11491 { { /*src2 */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1) } }, 11492 { /*src1 */ { FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } }, 11493 { /* => */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } }, 11494 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11495 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11496 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11497 /*xcpt? */ false, false }, 11498 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11499 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } }, 11500 { /* => */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } }, 11501 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11502 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11503 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11504 /*xcpt? */ false, false }, 11505 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } }, 11506 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } }, 11507 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } }, 11508 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11509 /*128:out */ X86_MXCSR_XCPT_MASK, 11510 /*256:out */ X86_MXCSR_XCPT_MASK, 11511 /*xcpt? */ false, false }, 11512 { { /*src2 */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(0), FP32_SNAN(1), FP32_INF(0), FP32_RAND_V3(1) } }, 11513 { /*src1 */ { FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } }, 11514 { /* => */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } }, 11515 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11516 /*128:out */ X86_MXCSR_XCPT_MASK, 11517 /*256:out */ X86_MXCSR_XCPT_MASK, 11518 /*xcpt? */ false, false }, 11519 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11520 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.250*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } }, 11521 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } }, 11522 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11523 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11524 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11525 /*xcpt? */ false, false }, 11526 /** @todo More Normals. */ 11527 /* 11528 * Denormals. 11529 */ 11530 /*46*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } }, 11531 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11532 { /* => */ { FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } }, 11533 /*mxcsr:in */ 0, 11534 /*128:out */ X86_MXCSR_DE, 11535 /*256:out */ X86_MXCSR_DE, 11536 /*xcpt? */ true, true }, 11537 { { /*src2 */ { FP32_0(0), FP32_SNAN(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_QNAN(1) } }, 11538 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } }, 11539 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } }, 11540 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11541 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11542 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11543 /*xcpt? */ false, false }, 11544 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } }, 11545 { /*src1 */ { FP32_DENORM_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } }, 11546 { /* => */ { FP32_0(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } }, 11547 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11548 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11549 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11550 /*xcpt? */ false, false }, 11551 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V0(0) } }, 11552 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } }, 11553 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } }, 11554 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11555 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11556 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11557 /*xcpt? */ false, false }, 11558 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1) } }, 11559 { /*src1 */ { FP32_DENORM_MAX(1), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } }, 11560 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } }, 11561 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11562 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11563 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11564 /*xcpt? */ false, false }, 11565 { { /*src2 */ { FP32_DENORM_MAX(1), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V7(1), FP32_RAND_V2(1) } }, 11566 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11567 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11568 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11569 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11570 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11571 /*xcpt? */ false, false }, 11572 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_RAND_V7(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 11573 { /*src1 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } }, 11574 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } }, 11575 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11576 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11577 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11578 /*xcpt? */ false, false }, 11579 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } }, 11580 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11581 { /* => */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11582 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11583 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11584 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11585 /*xcpt? */ false, false }, 11586 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } }, 11587 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11588 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } }, 11589 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11590 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11591 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 11592 /*xcpt? */ false, false }, 11593 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } }, 11594 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11595 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 11596 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11597 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11598 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11599 /*xcpt? */ false, false }, 11600 /** @todo More Denormals. */ 11601 /*56*/ FP32_TABLE_D9_SS_INVALIDS 11602 /** @todo Rounding; FZ etc. */ 11603 }; 11604 11605 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 11606 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 11607 { 11608 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues }, 11609 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues }, 11610 11611 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 11612 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 11613 }; 11614 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 11615 { 11616 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues }, 11617 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues }, 11618 11619 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 11620 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 11621 }; 11622 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 11623 { 11624 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues }, 11625 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues }, 11626 11627 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 11628 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 11629 11630 { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues }, 11631 { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues }, 11632 11633 { bs3CpuInstr4_vmaxss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 11634 { bs3CpuInstr4_vmaxss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 11635 }; 11636 #undef PASS_s_aValues 11637 11638 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 11639 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 11640 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 11641 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 11642 } 11643 11644 11645 /* 11646 * [V]MAXSD. 11647 */ 11648 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxsd(uint8_t bMode) 11649 { 11650 static BS3CPUINSTR4_TEST1_VALUES_SD_T const s_aValues[] = 11651 { 11652 /* 11653 * Zero. 11654 */ 11655 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11656 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11657 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11658 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11659 /*128:out */ X86_MXCSR_XCPT_MASK, 11660 /*256:out */ X86_MXCSR_XCPT_MASK, 11661 /*xcpt? */ false, false }, 11662 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11663 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11664 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11665 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11666 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11667 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 11668 /*xcpt? */ false, false }, 11669 { { /*src2 */ { FP64_0(0), FP64_INF(0), FP64_SNAN(0), FP64_SNAN(0) } }, 11670 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } }, 11671 { /* => */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } }, 11672 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11673 /*128:out */ X86_MXCSR_XCPT_MASK, 11674 /*256:out */ X86_MXCSR_XCPT_MASK, 11675 /*xcpt? */ false, false }, 11676 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } }, 11677 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11678 { /* => */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11679 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11680 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11681 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11682 /*xcpt? */ false, false }, 11683 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 11684 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11685 { /* => */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11686 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11687 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11688 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11689 /*xcpt? */ false, false }, 11690 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V3(0) } }, 11691 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11692 { /* => */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11693 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11694 /*128:out */ X86_MXCSR_XCPT_MASK, 11695 /*256:out */ X86_MXCSR_XCPT_MASK, 11696 /*xcpt? */ false, false }, 11697 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 11698 { /*src1 */ { FP64_0(1), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, 11699 { /* => */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, 11700 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11701 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11702 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11703 /*xcpt? */ false, false }, 11704 { { /*src2 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } }, 11705 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11706 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11707 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11708 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11709 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11710 /*xcpt? */ false, false }, 11711 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11712 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } }, 11713 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } }, 11714 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11715 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11716 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11717 /*xcpt? */ false, false }, 11718 { { /*src2 */ { FP64_0(1), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11719 { /*src1 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 11720 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } }, 11721 /*mxcsr:in */ 0, 11722 /*128:out */ 0, 11723 /*256:out */ 0, 11724 /*xcpt? */ false, false }, 11725 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 11726 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, 11727 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, 11728 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11729 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11730 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11731 /*xcpt? */ false, false }, 11732 /* 11733 * Infinity. 11734 */ 11735 /*11*/{ { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 11736 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11737 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11738 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11739 /*128:out */ X86_MXCSR_XCPT_MASK, 11740 /*256:out */ X86_MXCSR_XCPT_MASK, 11741 /*xcpt? */ false, false }, 11742 { { /*src2 */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } }, 11743 { /*src1 */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11744 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11745 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11746 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11747 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11748 /*xcpt? */ false, false }, 11749 { { /*src2 */ { FP64_INF(0), FP64_INF(1), FP64_SNAN(1), FP64_QNAN(1) } }, 11750 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11751 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11752 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11753 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11754 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11755 /*xcpt? */ false, false }, 11756 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11757 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11758 { /* => */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11759 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11760 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11761 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 11762 /*xcpt? */ false, false }, 11763 { { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11764 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11765 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11766 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11767 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11768 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11769 /*xcpt? */ false, false }, 11770 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 11771 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 11772 { /* => */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 11773 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11774 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11775 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11776 /*xcpt? */ false, false }, 11777 { { /*src2 */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11778 { /*src1 */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 11779 { /* => */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 11780 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11781 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11782 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11783 /*xcpt? */ false, false }, 11784 { { /*src2 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } }, 11785 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11786 { /* => */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11787 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11788 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11789 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11790 /*xcpt? */ false, false }, 11791 { { /*src2 */ { FP64_INF(1), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11792 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11793 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11794 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11795 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11796 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11797 /*xcpt? */ false, false }, 11798 { { /*src2 */ { FP64_INF(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11799 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11800 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11801 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11802 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11803 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11804 /*xcpt? */ false, false }, 11805 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11806 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, 11807 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, 11808 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11809 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11810 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11811 /*xcpt? */ false, false }, 11812 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11813 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11814 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11815 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11816 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11817 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 11818 /*xcpt? */ false, false }, 11819 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11820 { /*src1 */ { FP64_NORM_V0(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } }, 11821 { /* => */ { FP64_INF(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } }, 11822 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11823 /*128:out */ X86_MXCSR_XCPT_MASK, 11824 /*256:out */ X86_MXCSR_XCPT_MASK, 11825 /*xcpt? */ false, false }, 11826 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_SNAN(1), FP64_INF(1) } }, 11827 { /*src1 */ { FP64_NORM_V3(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } }, 11828 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } }, 11829 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11830 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11831 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11832 /*xcpt? */ false, false }, 11833 { { /*src2 */ { FP64_NORM_V2(0), FP64_RAND_V3(1), FP64_QNAN(1), FP64_SNAN(1) } }, 11834 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11835 { /* => */ { FP64_NORM_V2(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11836 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11837 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11838 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 11839 /*xcpt? */ false, false }, 11840 { { /*src2 */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11841 { /*src1 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 11842 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 11843 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11844 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11845 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11846 /*xcpt? */ false, false }, 11847 /* 11848 * Normals. 11849 */ 11850 /*27*/{ { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } }, 11851 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11852 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11853 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11854 /*128:out */ X86_MXCSR_XCPT_MASK, 11855 /*256:out */ X86_MXCSR_XCPT_MASK, 11856 /*xcpt? */ false, false }, 11857 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11858 { /*src1 */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11859 { /* => */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } }, 11860 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11861 /*128:out */ X86_MXCSR_XCPT_MASK, 11862 /*256:out */ X86_MXCSR_XCPT_MASK, 11863 /*xcpt? */ false, false }, 11864 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } }, 11865 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 11866 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } }, 11867 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11868 /*128:out */ X86_MXCSR_XCPT_MASK, 11869 /*256:out */ X86_MXCSR_XCPT_MASK, 11870 /*xcpt? */ false, false }, 11871 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11872 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11873 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11874 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11875 /*128:out */ X86_MXCSR_XCPT_MASK, 11876 /*256:out */ X86_MXCSR_XCPT_MASK, 11877 /*xcpt? */ false, false }, 11878 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11879 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, 11880 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, 11881 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11882 /*128:out */ X86_MXCSR_XCPT_MASK, 11883 /*256:out */ X86_MXCSR_XCPT_MASK, 11884 /*xcpt? */ false, false }, 11885 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11886 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11887 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11888 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11889 /*128:out */ X86_MXCSR_XCPT_MASK, 11890 /*256:out */ X86_MXCSR_XCPT_MASK, 11891 /*xcpt? */ false, false }, 11892 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_QNAN(0) } }, 11893 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11894 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 11895 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11896 /*128:out */ X86_MXCSR_XCPT_MASK, 11897 /*256:out */ X86_MXCSR_XCPT_MASK, 11898 /*xcpt? */ false, false }, 11899 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11900 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11901 { /* => */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11902 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11903 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11904 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11905 /*xcpt? */ false, false }, 11906 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V2(1), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11907 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } }, 11908 { /* => */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } }, 11909 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11910 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11911 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11912 /*xcpt? */ false, false }, 11913 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11914 { /*src1 */ { FP64_NORM_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11915 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11916 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11917 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11918 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 11919 /*xcpt? */ false, false }, 11920 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11921 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } }, 11922 { /* => */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } }, 11923 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11924 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11925 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11926 /*xcpt? */ false, false }, 11927 { { /*src2 */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11928 { /*src1 */ { FP64_V(1, 0, 0x3fe)/*-0.50*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11929 { /* => */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } }, 11930 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11931 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11932 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11933 /*xcpt? */ false, false }, 11934 { { /*src2 */ { FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V3(1) } }, 11935 { /*src1 */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11936 { /* => */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } }, 11937 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11938 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11939 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11940 /*xcpt? */ false, false }, 11941 { { /*src2 */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11942 { /*src1 */ { FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } }, 11943 { /* => */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } }, 11944 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11945 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11946 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11947 /*xcpt? */ false, false }, 11948 { { /*src2 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } }, 11949 { /*src1 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11950 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } }, 11951 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11952 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11953 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11954 /*xcpt? */ false, false }, 11955 { { /*src2 */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } }, 11956 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11957 { /* => */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 11958 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11959 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11960 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 11961 /*xcpt? */ false, false }, 11962 { { /*src2 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_INF(1), FP64_SNAN(1), FP64_INF(1) } }, 11963 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } }, 11964 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } }, 11965 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11966 /*128:out */ X86_MXCSR_XCPT_MASK, 11967 /*256:out */ X86_MXCSR_XCPT_MASK, 11968 /*xcpt? */ false, false }, 11969 { { /*src2 */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, 11970 { /*src1 */ { FP64_V(1, 0xb88e0395d49b0, 0x42d)/*-121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, 11971 { /* => */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, 11972 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11973 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11974 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 11975 /*xcpt? */ false, false }, 11976 { { /*src2 */ { FP64_V(1, 0xcf0033a34f337, 0x432)/*-4072598000007579.5*/, FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } }, 11977 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11978 { /* => */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } }, 11979 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11980 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11981 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 11982 /*xcpt? */ false, false }, 11983 /** @todo More Normals. */ 11984 /* 11985 * Denormals. 11986 */ 11987 /*46*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V3(0) } }, 11988 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11989 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } }, 11990 /*mxcsr:in */ 0, 11991 /*128:out */ X86_MXCSR_DE, 11992 /*256:out */ X86_MXCSR_DE, 11993 /*xcpt? */ true, true }, 11994 { { /*src2 */ { FP64_0(0), FP64_SNAN(0), FP64_QNAN(1), FP64_QNAN(0) } }, 11995 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } }, 11996 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } }, 11997 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11998 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 11999 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12000 /*xcpt? */ false, false }, 12001 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_INF(1), FP64_SNAN(0), FP64_INF(1) } }, 12002 { /*src1 */ { FP64_DENORM_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } }, 12003 { /* => */ { FP64_0(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } }, 12004 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12005 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12006 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12007 /*xcpt? */ false, false }, 12008 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } }, 12009 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 12010 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, 12011 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12012 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12013 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12014 /*xcpt? */ false, false }, 12015 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } }, 12016 { /*src1 */ { FP64_DENORM_MAX(1), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 12017 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } }, 12018 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12019 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12020 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12021 /*xcpt? */ false, false }, 12022 { { /*src2 */ { FP64_DENORM_MAX(1), FP64_RAND_V3(1), FP64_RAND_V0(0), FP64_RAND_V3(1) } }, 12023 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } }, 12024 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } }, 12025 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12026 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12027 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12028 /*xcpt? */ false, false }, 12029 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_RAND_V0(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } }, 12030 { /*src1 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 12031 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 12032 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12033 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12034 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12035 /*xcpt? */ false, false }, 12036 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_INF(0), FP64_QNAN(1), FP64_SNAN_V(1, 1) } }, 12037 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12038 { /* => */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12039 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12040 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12041 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12042 /*xcpt? */ false, false }, 12043 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_SNAN(1), FP64_SNAN(0), FP64_QNAN(0) } }, 12044 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12045 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } }, 12046 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12047 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12048 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12049 /*xcpt? */ false, false }, 12050 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } }, 12051 { /*src1 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 12052 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, 12053 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12054 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12055 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12056 /*xcpt? */ false, false }, 12057 /** @todo More Denormals. */ 12058 /* 12059 * Invalids. 12060 */ 12061 /*56*/ FP64_TABLE_D9_SD_INVALIDS 12062 }; 12063 12064 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 12065 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 12066 { 12067 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 12068 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 12069 12070 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 12071 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 12072 }; 12073 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 12074 { 12075 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 12076 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 12077 12078 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 12079 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 12080 }; 12081 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 12082 { 12083 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues }, 12084 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues }, 12085 12086 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues }, 12087 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues }, 12088 12089 { bs3CpuInstr4_maxsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues }, 12090 { bs3CpuInstr4_maxsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues }, 12091 12092 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 12093 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 12094 }; 12095 #undef PASS_s_aValues 12096 12097 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12098 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12099 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12100 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 12101 } 12102 12103 12104 /* 12105 * [V]MINPS. 12106 */ 12107 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minps(uint8_t bMode) 12108 { 12109 static BS3CPUINSTR4_TEST1_VALUES_PS_T const s_aValues[] = 12110 { 12111 /* 12112 * Zero. 12113 */ 12114 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12115 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12116 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12117 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12118 /*128:out */ X86_MXCSR_XCPT_MASK, 12119 /*256:out */ X86_MXCSR_XCPT_MASK, 12120 /*xcpt? */ false, false }, 12121 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12122 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12123 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12124 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12125 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12126 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12127 /*xcpt? */ false, false }, 12128 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12129 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12130 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12131 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12132 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12133 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12134 /*xcpt? */ false, false }, 12135 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12136 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } }, 12137 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12138 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12139 /*128:out */ X86_MXCSR_XCPT_MASK, 12140 /*256:out */ X86_MXCSR_XCPT_MASK, 12141 /*xcpt? */ false, false }, 12142 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12143 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12144 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12145 /*mxcsr:in */ 0, 12146 /*128:out */ 0, 12147 /*256:out */ 0, 12148 /*xcpt? */ false, false }, 12149 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12150 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } }, 12151 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12152 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12153 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12154 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12155 /*xcpt? */ false, false }, 12156 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12157 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12158 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12159 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12160 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12161 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12162 /*xcpt? */ false, false }, 12163 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12164 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12165 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, 12166 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12167 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12168 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12169 /*xcpt? */ false, false }, 12170 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12171 { /*src1 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0) } }, 12172 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } }, 12173 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12174 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12175 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12176 /*xcpt? */ false, false }, 12177 /* 12178 * Infinity. 12179 */ 12180 /*9 */{ { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12181 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12182 { /* => */ { FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12183 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12184 /*128:out */ X86_MXCSR_XCPT_MASK, 12185 /*256:out */ X86_MXCSR_XCPT_MASK, 12186 /*xcpt? */ false, false }, 12187 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12188 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12189 { /* => */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12190 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12191 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12192 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12193 /*xcpt? */ false, false }, 12194 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12195 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12196 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12197 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12198 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12199 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12200 /*xcpt? */ false, false }, 12201 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12202 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12203 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12204 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12205 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12206 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12207 /*xcpt? */ false, false }, 12208 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } }, 12209 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } }, 12210 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } }, 12211 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12212 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12213 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12214 /*xcpt? */ false, false }, 12215 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } }, 12216 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } }, 12217 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 12218 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12219 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12220 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12221 /*xcpt? */ false, false }, 12222 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } }, 12223 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } }, 12224 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 12225 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12226 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12227 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12228 /*xcpt? */ false, false }, 12229 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(1), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } }, 12230 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(1), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } }, 12231 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } }, 12232 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12233 /*128:out */ X86_MXCSR_XCPT_MASK, 12234 /*256:out */ X86_MXCSR_XCPT_MASK, 12235 /*xcpt? */ false, false }, 12236 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } }, 12237 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } }, 12238 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_NORM_V3(1), FP32_NORM_V4(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } }, 12239 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12240 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12241 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12242 /*xcpt? */ false, false }, 12243 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(0), FP32_NORM_V3(0), FP32_INF(0), FP32_NORM_V1(0), FP32_INF(0) } }, 12244 { /*src1 */ { FP32_INF(1), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(0), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } }, 12245 { /* => */ { FP32_INF(1), FP32_NORM_V6(1), FP32_NORM_V5(0), FP32_NORM_V4(0), FP32_NORM_V3(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } }, 12246 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12247 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12248 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12249 /*xcpt? */ false, false }, 12250 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(1), FP32_INF(0), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V1(1), FP32_INF(0) } }, 12251 { /*src1 */ { FP32_INF(0), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(0), FP32_NORM_V0(1) } }, 12252 { /* => */ { FP32_NORM_V7(0), FP32_NORM_V6(1), FP32_NORM_V5(1), FP32_NORM_V4(1), FP32_NORM_V3(1), FP32_NORM_V2(1), FP32_NORM_V1(1), FP32_NORM_V0(1) } }, 12253 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12254 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12255 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12256 /*xcpt? */ false, false }, 12257 /* 12258 * Normals. 12259 */ 12260 /*20*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12261 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(0) } }, 12262 { /* => */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12263 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12264 /*128:out */ X86_MXCSR_XCPT_MASK, 12265 /*256:out */ X86_MXCSR_XCPT_MASK, 12266 /*xcpt? */ false, false }, 12267 { { /*src2 */ { FP32_NORM_MIN(0), FP32_0(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } }, 12268 { /*src1 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(0) } }, 12269 { /* => */ { FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } }, 12270 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12271 /*128:out */ X86_MXCSR_XCPT_MASK, 12272 /*256:out */ X86_MXCSR_XCPT_MASK, 12273 /*xcpt? */ false, false }, 12274 { { /*src2 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12275 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1) } }, 12276 { /* => */ { FP32_NORM_MIN(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } }, 12277 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12278 /*128:out */ X86_MXCSR_XCPT_MASK, 12279 /*256:out */ X86_MXCSR_XCPT_MASK, 12280 /*xcpt? */ false, false }, 12281 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } }, 12282 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1) } }, 12283 { /* => */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } }, 12284 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12285 /*128:out */ X86_MXCSR_XCPT_MASK, 12286 /*256:out */ X86_MXCSR_XCPT_MASK, 12287 /*xcpt? */ false, false }, 12288 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/* 0.25*/, FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_V(1, 0, 0x7d)/*-0.25*/ } }, 12289 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } }, 12290 { /* => */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } }, 12291 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12292 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12293 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12294 /*xcpt? */ false, false }, 12295 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_NORM_V5(0), FP32_0(1), FP32_NORM_V5(1), FP32_0(0) } }, 12296 { /*src1 */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(0), FP32_NORM_V3(1), FP32_0(1), FP32_NORM_V6(0), FP32_0(1), FP32_NORM_V7(1) } }, 12297 { /* => */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_0(1), FP32_0(1), FP32_NORM_V5(1), FP32_NORM_V7(1) } }, 12298 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12299 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12300 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12301 /*xcpt? */ false, false }, 12302 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x5c0000, 0x84)/* 55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_1(1) } }, 12303 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_1(1), FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(0) } }, 12304 { /* => */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(1) } }, 12305 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12306 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12307 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12308 /*xcpt? */ false, false }, 12309 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x6423f2, 0x92)/*934463.125*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(0, 0x792318, 0x91)/*510232.75*/, FP32_V(0, 0x600000, 0x7e)/* 0.875*/ } }, 12310 { /*src1 */ { FP32_V(0, 0x769b50, 0x92)/*1010101.000*/, FP32_V(0, 0x430ebc, 0x91)/*399477.875*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x00c6d3, 0x94)/*2109876.75*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } }, 12311 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } }, 12312 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12313 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12314 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12315 /*xcpt? */ false, false }, 12316 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_V(1, 0x490fda, 0x80)/*-3.1415926*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } }, 12317 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/* 925874.9*/, FP32_V(0, 0x5dd521, 0x8e)/*56789.127*/, FP32_V(0, 0x40e6b7, 0x8c)/*12345.679*/ } }, 12318 { /* => */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } }, 12319 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12320 /*128:out */ X86_MXCSR_XCPT_MASK, 12321 /*256:out */ X86_MXCSR_XCPT_MASK, 12322 /*xcpt? */ false, false }, 12323 /** @todo More Normals. */ 12324 /* 12325 * Denormals. 12326 */ 12327 /*29*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12328 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 12329 { /* => */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 12330 /*mxcsr:in */ 0, 12331 /*128:out */ X86_MXCSR_DE, 12332 /*256:out */ X86_MXCSR_DE, 12333 /*xcpt? */ true, true }, 12334 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12335 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } }, 12336 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 12340 /*xcpt? */ false, false }, 12341 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } }, 12342 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } }, 12343 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 12347 /*xcpt? */ false, false }, 12348 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12349 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12350 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12351 /*mxcsr:in */ 0, 12352 /*128:out */ X86_MXCSR_DE, 12353 /*256:out */ X86_MXCSR_DE, 12354 /*xcpt? */ true, true }, 12355 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } }, 12356 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12357 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, 12358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12361 /*xcpt? */ false, false }, 12362 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } }, 12363 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } }, 12364 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 12365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12366 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12367 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12368 /*xcpt? */ false, false }, 12369 /** @todo More Denormals. */ 12370 /*35*/ FP32_TABLE_D9_PS_INVALIDS 12371 }; 12372 12373 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues 12374 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 12375 { 12376 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 12377 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, 12378 12379 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 12380 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 12381 12382 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues }, 12383 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues }, 12384 }; 12385 static BS3CPUINSTR4_TEST1_T const s_aTests32[] = 12386 { 12387 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 12388 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, 12389 12390 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 12391 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 12392 12393 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues }, 12394 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues }, 12395 }; 12396 static BS3CPUINSTR4_TEST1_T const s_aTests64[] = 12397 { 12398 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues }, 12399 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues }, 12400 12401 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues }, 12402 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues }, 12403 12404 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues }, 12405 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues }, 12406 12407 { bs3CpuInstr4_minps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues }, 12408 { bs3CpuInstr4_minps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues }, 12409 12410 { bs3CpuInstr4_vminps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues }, 12411 { bs3CpuInstr4_vminps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues }, 12412 { bs3CpuInstr4_vminps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues }, 12413 { bs3CpuInstr4_vminps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues }, 12414 }; 12415 #undef PASS_s_aValues 12416 12417 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12418 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12419 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12420 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 12421 } 12422 12423 12424 /* 12425 * [V]MINPD. 12426 */ 12427 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minpd(uint8_t bMode) 12428 { 12429 static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValues[] = 12430 { 12431 /* 12432 * Zero. 12433 */ 12434 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12435 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12436 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12437 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12438 /*128:out */ X86_MXCSR_XCPT_MASK, 12439 /*256:out */ X86_MXCSR_XCPT_MASK, 12440 /*xcpt? */ false, false }, 12441 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12442 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12443 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12444 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12445 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12446 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12447 /*xcpt? */ false, false }, 12448 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12449 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12450 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12451 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12452 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12453 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12454 /*xcpt? */ false, false }, 12455 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 12456 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } }, 12457 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 12458 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12459 /*128:out */ X86_MXCSR_XCPT_MASK, 12460 /*256:out */ X86_MXCSR_XCPT_MASK, 12461 /*xcpt? */ false, false }, 12462 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 12463 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12464 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 12465 /*mxcsr:in */ 0, 12466 /*128:out */ 0, 12467 /*256:out */ 0, 12468 /*xcpt? */ false, false }, 12469 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 12470 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } }, 12471 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } }, 12472 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12473 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12474 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12475 /*xcpt? */ false, false }, 12476 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 12477 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12478 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 12479 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12480 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12481 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12482 /*xcpt? */ false, false }, 12483 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 12484 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } }, 12485 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } }, 12486 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12487 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12488 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12489 /*xcpt? */ false, false }, 12490 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } }, 12491 { /*src1 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } }, 12492 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } }, 12493 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12494 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12495 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12496 /*xcpt? */ false, false }, 12497 /* 12498 * Infinity. 12499 */ 12500 /*9 */{ { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 12501 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(1) } }, 12502 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_INF(1) } }, 12503 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12504 /*128:out */ X86_MXCSR_XCPT_MASK, 12505 /*256:out */ X86_MXCSR_XCPT_MASK, 12506 /*xcpt? */ false, false }, 12507 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 12508 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } }, 12509 { /* => */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } }, 12510 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12511 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12512 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12513 /*xcpt? */ false, false }, 12514 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 12515 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } }, 12516 { /* => */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } }, 12517 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12518 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12519 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN, 12520 /*xcpt? */ false, false }, 12521 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 12522 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } }, 12523 { /* => */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } }, 12524 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12525 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12526 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12527 /*xcpt? */ false, false }, 12528 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } }, 12529 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(1) } }, 12530 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_INF(1) } }, 12531 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12532 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12533 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12534 /*xcpt? */ false, false }, 12535 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } }, 12536 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } }, 12537 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } }, 12538 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12539 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12540 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12541 /*xcpt? */ false, false }, 12542 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } }, 12543 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } }, 12544 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } }, 12545 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12546 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12547 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12548 /*xcpt? */ false, false }, 12549 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } }, 12550 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } }, 12551 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } }, 12552 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12553 /*128:out */ X86_MXCSR_XCPT_MASK, 12554 /*256:out */ X86_MXCSR_XCPT_MASK, 12555 /*xcpt? */ false, false }, 12556 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } }, 12557 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } }, 12558 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } }, 12559 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12560 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12561 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12562 /*xcpt? */ false, false }, 12563 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } }, 12564 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } }, 12565 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } }, 12566 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12567 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12568 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 12569 /*xcpt? */ false, false }, 12570 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } }, 12571 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } }, 12572 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } }, 12573 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12574 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12575 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12576 /*xcpt? */ false, false }, 12577 /* 12578 * Normals. 12579 */ 12580 /*20*/{ { /*src2 */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V1(1) } }, 12581 { /*src1 */ { FP64_NORM_V3(1), FP64_NORM_V1(0), FP64_NORM_V2(1), FP64_NORM_V1(0) } }, 12582 { /* => */ { FP64_NORM_V3(1), FP64_NORM_V1(1), FP64_NORM_V2(1), FP64_NORM_V1(1) } }, 12583 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 12584 /*128:out */ X86_MXCSR_XCPT_MASK, 12585 /*256:out */ X86_MXCSR_XCPT_MASK, 12586 /*xcpt? */ false, false }, 12587 { { /*src2 */ { FP64_NORM_V0(0), FP64_0(1), FP64_NORM_V2(0), FP64_0(1) } }, 12588 { /*src1 */ { FP64_0(0), FP64_NORM_V1(1), FP64_0(0), FP64_NORM_V1(0) } }, 12589 { /* => */ { FP64_0(0), FP64_NORM_V1(1), FP64_0(0), FP64_0(1) } }, 12590 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12591 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12592 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 12593 /*xcpt? */ false, false }, 12594 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_V(1, 0x8000000000000, 0x409)/*-1536*/, FP64_V(0, 0xf000000000000, 0x404)/* 62*/ } }, 12595 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_1(1), FP64_V(1, 0xf000000000000, 0x404)/*-62*/ } }, 12596 { /* => */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_V(1, 0x8000000000000, 0x409)/*-1536*/, FP64_V(1, 0xf000000000000, 0x404)/*-62*/ } }, 12597 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 12598 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 12599 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 12600 /*xcpt? */ false, false }, 12601 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(1, 0xd6f3426800000, 0x41c)/*-987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 12602 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* 100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, 12603 { /* => */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* 100*/, FP64_V(1, 0xd6f3426800000, 0x41c)/*-987654221*/, FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, 12604 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12605 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12606 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 12607 /*xcpt? */ false, false }, 12608 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 12609 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* -100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, 12610 { /* => */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* -100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, 12611 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 12612 /*128:out */ X86_MXCSR_RC_ZERO, 12613 /*256:out */ X86_MXCSR_RC_ZERO, 12614 /*xcpt? */ false, false }, 12615 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0) } }, 12616 { /*src1 */ { FP64_1(0), FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(0), FP64_0(0) } }, 12617 { /* => */ { FP64_1(0), FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(0), FP64_0(0) } }, 12618 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12619 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12620 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 12621 /*xcpt? */ false, false }, 12622 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(1) } }, 12623 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0) } }, 12624 { /* => */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(1) } }, 12625 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12626 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12627 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12628 /*xcpt? */ false, false }, 12629 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/ } }, 12630 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/ } }, 12631 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/ } }, 12632 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12633 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12634 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP, 12635 /*xcpt? */ false, false }, 12636 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/ } }, 12637 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/ } }, 12638 { /* => */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/ } }, 12639 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12640 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12641 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 12642 /*xcpt? */ false, false }, 12643 /* 12644 * Denormals. 12645 */ 12646 /*29*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 12647 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } }, 11090 12648 { /* => */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } }, 11091 12649 /*mxcsr:in */ 0, … … 11095 12653 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0) } }, 11096 12654 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } }, 11097 { /* => */ { FP64_0(0), FP64_ DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)} },12655 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 11098 12656 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 11099 12657 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, … … 11138 12696 static BS3CPUINSTR4_TEST1_T const s_aTests16[] = 11139 12697 { 11140 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues },11141 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues },11142 11143 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },11144 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },11145 11146 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c16, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues },11147 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c16, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues },11148 };11149 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =11150 {11151 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues },11152 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues },11153 11154 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },11155 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },11156 11157 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c32, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues },11158 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c32, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues },11159 };11160 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =11161 {11162 { bs3CpuInstr4_maxpd_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues },11163 { bs3CpuInstr4_maxpd_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues },11164 11165 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_XMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },11166 { bs3CpuInstr4_vmaxpd_XMM1_XMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },11167 11168 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_YMM3_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX2_256, 1, 2, 3, PASS_s_aValues },11169 { bs3CpuInstr4_vmaxpd_YMM1_YMM2_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX2_256, 1, 2, 255, PASS_s_aValues },11170 11171 { bs3CpuInstr4_maxpd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues },11172 { bs3CpuInstr4_maxpd_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues },11173 11174 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_XMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },11175 { bs3CpuInstr4_vmaxpd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },11176 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_YMM10_icebp_c64, X86_XCPT_GP, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues },11177 { bs3CpuInstr4_vmaxpd_YMM8_YMM9_FSxBX_icebp_c64, X86_XCPT_GP, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues },11178 };11179 #undef PASS_s_aValues11180 11181 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);11182 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);11183 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,11184 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));11185 }11186 11187 11188 /*11189 * [V]MAXSS.11190 */11191 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxss(uint8_t bMode)11192 {11193 static BS3CPUINSTR4_TEST1_VALUES_SS_T const s_aValues[] =11194 {11195 /*11196 * Zero.11197 */11198 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11199 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11200 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11201 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11202 /*128:out */ X86_MXCSR_XCPT_MASK,11203 /*256:out */ X86_MXCSR_XCPT_MASK,11204 /*xcpt? */ false, false },11205 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11206 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11207 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },11208 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11209 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11210 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11211 /*xcpt? */ false, false },11212 { { /*src2 */ { FP32_0(0), FP32_INF(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(1), FP32_QNAN(1), FP32_INF(1), FP32_RAND_V7(0) } },11213 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } },11214 { /* => */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } },11215 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11216 /*128:out */ X86_MXCSR_XCPT_MASK,11217 /*256:out */ X86_MXCSR_XCPT_MASK,11218 /*xcpt? */ false, false },11219 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0) } },11220 { /*src1 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11221 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11222 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11223 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11224 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11225 /*xcpt? */ false, false },11226 { { /*src2 */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11227 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11228 { /* => */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11229 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11230 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11231 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11232 /*xcpt? */ false, false },11233 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } },11234 { /*src1 */ { FP32_0(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11235 { /* => */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },11236 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11237 /*128:out */ X86_MXCSR_XCPT_MASK,11238 /*256:out */ X86_MXCSR_XCPT_MASK,11239 /*xcpt? */ false, false },11240 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } },11241 { /*src1 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } },11242 { /* => */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } },11243 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11244 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11245 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11246 /*xcpt? */ false, false },11247 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11248 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },11249 { /* => */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },11250 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11251 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11252 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11253 /*xcpt? */ false, false },11254 { { /*src2 */ { FP32_0(1), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V0(0) } },11255 { /*src1 */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } },11256 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } },11257 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11258 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11259 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11260 /*xcpt? */ false, false },11261 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11262 { /*src1 */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } },11263 { /* => */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } },11264 /*mxcsr:in */ 0,11265 /*128:out */ 0,11266 /*256:out */ 0,11267 /*xcpt? */ false, false },11268 { { /*src2 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11269 { /*src1 */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11270 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11271 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11272 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11273 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11274 /*xcpt? */ false, false },11275 /*11276 * Infinity.11277 */11278 /*11*/{ { /*src2 */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11279 { /*src1 */ { FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11280 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },11281 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11282 /*128:out */ X86_MXCSR_XCPT_MASK,11283 /*256:out */ X86_MXCSR_XCPT_MASK,11284 /*xcpt? */ false, false },11285 { { /*src2 */ { FP32_0(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11286 { /*src1 */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } },11287 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } },11288 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11289 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11290 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11291 /*xcpt? */ false, false },11292 { { /*src2 */ { FP32_INF(0), FP32_INF(1), FP32_SNAN(1), FP32_QNAN(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11293 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11294 { /* => */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11295 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11296 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11297 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11298 /*xcpt? */ false, false },11299 { { /*src2 */ { FP32_0(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11300 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11301 { /* => */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11302 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11303 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11304 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11305 /*xcpt? */ false, false },11306 { { /*src2 */ { FP32_INF(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } },11307 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } },11308 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } },11309 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11310 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11311 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11312 /*xcpt? */ false, false },11313 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(1) } },11314 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } },11315 { /* => */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } },11316 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11317 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11318 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11319 /*xcpt? */ false, false },11320 { { /*src2 */ { FP32_INF(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V0(0) } },11321 { /*src1 */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } },11322 { /* => */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } },11323 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11324 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11325 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11326 /*xcpt? */ false, false },11327 { { /*src2 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },11328 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } },11329 { /* => */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } },11330 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11331 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11332 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11333 /*xcpt? */ false, false },11334 { { /*src2 */ { FP32_INF(1), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V1(1) } },11335 { /*src1 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } },11336 { /* => */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } },11337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11340 /*xcpt? */ false, false },11341 { { /*src2 */ { FP32_INF(1), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11342 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11343 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11347 /*xcpt? */ false, false },11348 { { /*src2 */ { FP32_INF(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V1(1), FP32_RAND_V7(1), FP32_RAND_V2(0) } },11349 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11350 { /* => */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11351 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11352 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11353 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11354 /*xcpt? */ false, false },11355 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11356 { /*src1 */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11357 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },11358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11361 /*xcpt? */ false, false },11362 { { /*src2 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(0) } },11363 { /*src1 */ { FP32_NORM_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } },11364 { /* => */ { FP32_INF(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } },11365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11366 /*128:out */ X86_MXCSR_XCPT_MASK,11367 /*256:out */ X86_MXCSR_XCPT_MASK,11368 /*xcpt? */ false, false },11369 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0) } },11370 { /*src1 */ { FP32_NORM_V3(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11371 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11372 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11373 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11374 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11375 /*xcpt? */ false, false },11376 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(0), FP32_RAND_V2(0) } },11377 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } },11378 { /* => */ { FP32_NORM_V7(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } },11379 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11380 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11381 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11382 /*xcpt? */ false, false },11383 { { /*src2 */ { FP32_NORM_V7(0), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1) } },11384 { /*src1 */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } },11385 { /* => */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } },11386 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11387 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11388 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11389 /*xcpt? */ false, false },11390 /*11391 * Normals.11392 */11393 /*27*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V1(1) } },11394 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } },11395 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } },11396 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11397 /*128:out */ X86_MXCSR_XCPT_MASK,11398 /*256:out */ X86_MXCSR_XCPT_MASK,11399 /*xcpt? */ false, false },11400 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11401 { /*src1 */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } },11402 { /* => */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } },11403 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11404 /*128:out */ X86_MXCSR_XCPT_MASK,11405 /*256:out */ X86_MXCSR_XCPT_MASK,11406 /*xcpt? */ false, false },11407 { { /*src2 */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11408 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } },11409 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } },11410 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11411 /*128:out */ X86_MXCSR_XCPT_MASK,11412 /*256:out */ X86_MXCSR_XCPT_MASK,11413 /*xcpt? */ false, false },11414 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11415 { /*src1 */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11416 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11417 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11418 /*128:out */ X86_MXCSR_XCPT_MASK,11419 /*256:out */ X86_MXCSR_XCPT_MASK,11420 /*xcpt? */ false, false },11421 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11422 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } },11423 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } },11424 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11425 /*128:out */ X86_MXCSR_XCPT_MASK,11426 /*256:out */ X86_MXCSR_XCPT_MASK,11427 /*xcpt? */ false, false },11428 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V1(1) } },11429 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11430 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11431 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11432 /*128:out */ X86_MXCSR_XCPT_MASK,11433 /*256:out */ X86_MXCSR_XCPT_MASK,11434 /*xcpt? */ false, false },11435 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } },11436 { /*src1 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11437 { /* => */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11438 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11439 /*128:out */ X86_MXCSR_XCPT_MASK,11440 /*256:out */ X86_MXCSR_XCPT_MASK,11441 /*xcpt? */ false, false },11442 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11443 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11444 { /* => */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11445 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11446 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11447 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11448 /*xcpt? */ false, false },11449 { { /*src2 */ { FP32_V(0, 0, 0x7d)/*0.25*/, FP32_RAND_V2(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11450 { /*src1 */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } },11451 { /* => */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } },11452 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11453 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11454 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11455 /*xcpt? */ false, false },11456 { { /*src2 */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },11457 { /*src1 */ { FP32_NORM_V1(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } },11458 { /* => */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } },11459 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11460 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11461 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11462 /*xcpt? */ false, false },11463 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V7(0), FP32_RAND_V6(0) } },11464 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } },11465 { /* => */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } },11466 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11467 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11468 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11469 /*xcpt? */ false, false },11470 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },11471 { /*src1 */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11472 { /* => */ { FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },11473 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11474 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11475 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11476 /*xcpt? */ false, false },11477 { { /*src2 */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11478 { /*src1 */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11479 { /* => */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11480 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11481 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11482 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11483 /*xcpt? */ false, false },11484 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11485 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11486 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },11487 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11488 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11489 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11490 /*xcpt? */ false, false },11491 { { /*src2 */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1) } },11492 { /*src1 */ { FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },11493 { /* => */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },11494 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11495 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11496 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11497 /*xcpt? */ false, false },11498 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11499 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } },11500 { /* => */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } },11501 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11502 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11503 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11504 /*xcpt? */ false, false },11505 { { /*src2 */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_SNAN(1), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } },11506 { /*src1 */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } },11507 { /* => */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } },11508 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11509 /*128:out */ X86_MXCSR_XCPT_MASK,11510 /*256:out */ X86_MXCSR_XCPT_MASK,11511 /*xcpt? */ false, false },11512 { { /*src2 */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(0), FP32_SNAN(1), FP32_INF(0), FP32_RAND_V3(1) } },11513 { /*src1 */ { FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } },11514 { /* => */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } },11515 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11516 /*128:out */ X86_MXCSR_XCPT_MASK,11517 /*256:out */ X86_MXCSR_XCPT_MASK,11518 /*xcpt? */ false, false },11519 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11520 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.250*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } },11521 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } },11522 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11523 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11524 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11525 /*xcpt? */ false, false },11526 /** @todo More Normals. */11527 /*11528 * Denormals.11529 */11530 /*46*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },11531 { /*src1 */ { FP32_0(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11532 { /* => */ { FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },11533 /*mxcsr:in */ 0,11534 /*128:out */ X86_MXCSR_DE,11535 /*256:out */ X86_MXCSR_DE,11536 /*xcpt? */ true, true },11537 { { /*src2 */ { FP32_0(0), FP32_SNAN(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(0), FP32_QNAN(1) } },11538 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } },11539 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } },11540 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11541 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11542 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11543 /*xcpt? */ false, false },11544 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },11545 { /*src1 */ { FP32_DENORM_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } },11546 { /* => */ { FP32_0(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } },11547 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11548 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11549 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11550 /*xcpt? */ false, false },11551 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V0(0) } },11552 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } },11553 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } },11554 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11555 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11556 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11557 /*xcpt? */ false, false },11558 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1) } },11559 { /*src1 */ { FP32_DENORM_MAX(1), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } },11560 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } },11561 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11562 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11563 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11564 /*xcpt? */ false, false },11565 { { /*src2 */ { FP32_DENORM_MAX(1), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V7(1), FP32_RAND_V2(1) } },11566 { /*src1 */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11567 { /* => */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11568 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11569 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11570 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11571 /*xcpt? */ false, false },11572 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_RAND_V7(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },11573 { /*src1 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },11574 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },11575 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11576 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11577 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11578 /*xcpt? */ false, false },11579 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } },11580 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11581 { /* => */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11582 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11583 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11584 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11585 /*xcpt? */ false, false },11586 { { /*src2 */ { FP32_DENORM_MIN(1), FP32_INF(0), FP32_QNAN(1), FP32_QNAN(0), FP32_SNAN(1), FP32_SNAN(1), FP32_SNAN(0), FP32_QNAN(1) } },11587 { /*src1 */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11588 { /* => */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },11589 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11590 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11591 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,11592 /*xcpt? */ false, false },11593 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },11594 { /*src1 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11595 { /* => */ { FP32_DENORM_MIN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },11596 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11597 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11598 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11599 /*xcpt? */ false, false },11600 /** @todo More Denormals. */11601 /*56*/ FP32_TABLE_D9_SS_INVALIDS11602 /** @todo Rounding; FZ etc. */11603 };11604 11605 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues11606 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =11607 {11608 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues },11609 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },11610 11611 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },11612 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },11613 };11614 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =11615 {11616 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues },11617 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },11618 11619 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },11620 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },11621 };11622 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =11623 {11624 { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE, 3, 3, 4, PASS_s_aValues },11625 { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },11626 11627 { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },11628 { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },11629 11630 { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues },11631 { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues },11632 11633 { bs3CpuInstr4_vmaxss_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },11634 { bs3CpuInstr4_vmaxss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },11635 };11636 #undef PASS_s_aValues11637 11638 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);11639 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);11640 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,11641 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));11642 }11643 11644 11645 /*11646 * [V]MAXSD.11647 */11648 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_maxsd(uint8_t bMode)11649 {11650 static BS3CPUINSTR4_TEST1_VALUES_SD_T const s_aValues[] =11651 {11652 /*11653 * Zero.11654 */11655 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11656 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11657 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11658 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11659 /*128:out */ X86_MXCSR_XCPT_MASK,11660 /*256:out */ X86_MXCSR_XCPT_MASK,11661 /*xcpt? */ false, false },11662 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11663 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11664 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },11665 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11666 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11667 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,11668 /*xcpt? */ false, false },11669 { { /*src2 */ { FP64_0(0), FP64_INF(0), FP64_SNAN(0), FP64_SNAN(0) } },11670 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } },11671 { /* => */ { FP64_0(0), FP64_INF(1), FP64_QNAN(0), FP64_SNAN(1) } },11672 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11673 /*128:out */ X86_MXCSR_XCPT_MASK,11674 /*256:out */ X86_MXCSR_XCPT_MASK,11675 /*xcpt? */ false, false },11676 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } },11677 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11678 { /* => */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11679 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11680 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11681 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11682 /*xcpt? */ false, false },11683 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },11684 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11685 { /* => */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11686 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11687 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11688 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11689 /*xcpt? */ false, false },11690 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V3(0) } },11691 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11692 { /* => */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11693 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11694 /*128:out */ X86_MXCSR_XCPT_MASK,11695 /*256:out */ X86_MXCSR_XCPT_MASK,11696 /*xcpt? */ false, false },11697 { { /*src2 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },11698 { /*src1 */ { FP64_0(1), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } },11699 { /* => */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } },11700 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11701 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11702 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11703 /*xcpt? */ false, false },11704 { { /*src2 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },11705 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11706 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11707 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11708 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11709 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11710 /*xcpt? */ false, false },11711 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11712 { /*src1 */ { FP64_0(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },11713 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },11714 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11715 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11716 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11717 /*xcpt? */ false, false },11718 { { /*src2 */ { FP64_0(1), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11719 { /*src1 */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },11720 { /* => */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },11721 /*mxcsr:in */ 0,11722 /*128:out */ 0,11723 /*256:out */ 0,11724 /*xcpt? */ false, false },11725 { { /*src2 */ { FP64_0(1), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } },11726 { /*src1 */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } },11727 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } },11728 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11729 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11730 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11731 /*xcpt? */ false, false },11732 /*11733 * Infinity.11734 */11735 /*11*/{ { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } },11736 { /*src1 */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11737 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11738 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11739 /*128:out */ X86_MXCSR_XCPT_MASK,11740 /*256:out */ X86_MXCSR_XCPT_MASK,11741 /*xcpt? */ false, false },11742 { { /*src2 */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },11743 { /*src1 */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11744 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11745 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11746 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11747 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11748 /*xcpt? */ false, false },11749 { { /*src2 */ { FP64_INF(0), FP64_INF(1), FP64_SNAN(1), FP64_QNAN(1) } },11750 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11751 { /* => */ { FP64_INF(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11752 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11753 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11754 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11755 /*xcpt? */ false, false },11756 { { /*src2 */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11757 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11758 { /* => */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11759 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11760 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11761 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,11762 /*xcpt? */ false, false },11763 { { /*src2 */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11764 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11765 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11766 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11767 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11768 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,11769 /*xcpt? */ false, false },11770 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } },11771 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } },11772 { /* => */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } },11773 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11774 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11775 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11776 /*xcpt? */ false, false },11777 { { /*src2 */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11778 { /*src1 */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },11779 { /* => */ { FP64_INF(1), FP64_QNAN_V(1, 1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },11780 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11781 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11782 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11783 /*xcpt? */ false, false },11784 { { /*src2 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V1(1), FP64_RAND_V0(1) } },11785 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11786 { /* => */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11787 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11788 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11789 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11790 /*xcpt? */ false, false },11791 { { /*src2 */ { FP64_INF(1), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11792 { /*src1 */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11793 { /* => */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11794 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11795 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11796 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11797 /*xcpt? */ false, false },11798 { { /*src2 */ { FP64_INF(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11799 { /*src1 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11800 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11801 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11802 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11803 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11804 /*xcpt? */ false, false },11805 { { /*src2 */ { FP64_INF(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11806 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },11807 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },11808 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11809 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11810 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11811 /*xcpt? */ false, false },11812 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11813 { /*src1 */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11814 { /* => */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11815 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11816 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11817 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,11818 /*xcpt? */ false, false },11819 { { /*src2 */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11820 { /*src1 */ { FP64_NORM_V0(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },11821 { /* => */ { FP64_INF(0), FP64_RAND_V1(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },11822 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11823 /*128:out */ X86_MXCSR_XCPT_MASK,11824 /*256:out */ X86_MXCSR_XCPT_MASK,11825 /*xcpt? */ false, false },11826 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_SNAN(1), FP64_INF(1) } },11827 { /*src1 */ { FP64_NORM_V3(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } },11828 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_QNAN(1), FP64_SNAN(1) } },11829 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11830 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11831 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11832 /*xcpt? */ false, false },11833 { { /*src2 */ { FP64_NORM_V2(0), FP64_RAND_V3(1), FP64_QNAN(1), FP64_SNAN(1) } },11834 { /*src1 */ { FP64_INF(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11835 { /* => */ { FP64_NORM_V2(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11836 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11837 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11838 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,11839 /*xcpt? */ false, false },11840 { { /*src2 */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11841 { /*src1 */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },11842 { /* => */ { FP64_INF(0), FP64_RAND_V2(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },11843 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11844 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11845 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11846 /*xcpt? */ false, false },11847 /*11848 * Normals.11849 */11850 /*27*/{ { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(1) } },11851 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11852 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11853 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11854 /*128:out */ X86_MXCSR_XCPT_MASK,11855 /*256:out */ X86_MXCSR_XCPT_MASK,11856 /*xcpt? */ false, false },11857 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11858 { /*src1 */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11859 { /* => */ { FP64_NORM_MIN(0), FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },11860 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11861 /*128:out */ X86_MXCSR_XCPT_MASK,11862 /*256:out */ X86_MXCSR_XCPT_MASK,11863 /*xcpt? */ false, false },11864 { { /*src2 */ { FP64_NORM_MIN(0), FP64_RAND_V3(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } },11865 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },11866 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },11867 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11868 /*128:out */ X86_MXCSR_XCPT_MASK,11869 /*256:out */ X86_MXCSR_XCPT_MASK,11870 /*xcpt? */ false, false },11871 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11872 { /*src1 */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11873 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11874 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11875 /*128:out */ X86_MXCSR_XCPT_MASK,11876 /*256:out */ X86_MXCSR_XCPT_MASK,11877 /*xcpt? */ false, false },11878 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11879 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } },11880 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } },11881 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11882 /*128:out */ X86_MXCSR_XCPT_MASK,11883 /*256:out */ X86_MXCSR_XCPT_MASK,11884 /*xcpt? */ false, false },11885 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11886 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11887 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11888 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11889 /*128:out */ X86_MXCSR_XCPT_MASK,11890 /*256:out */ X86_MXCSR_XCPT_MASK,11891 /*xcpt? */ false, false },11892 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_QNAN(0) } },11893 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11894 { /* => */ { FP64_NORM_SAFE_INT_MAX(0), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },11895 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11896 /*128:out */ X86_MXCSR_XCPT_MASK,11897 /*256:out */ X86_MXCSR_XCPT_MASK,11898 /*xcpt? */ false, false },11899 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11900 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11901 { /* => */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11902 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11903 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11904 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11905 /*xcpt? */ false, false },11906 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V2(1), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11907 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } },11908 { /* => */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V0(0), FP64_RAND_V2(0), FP64_RAND_V0(0) } },11909 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11910 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11911 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11912 /*xcpt? */ false, false },11913 { { /*src2 */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11914 { /*src1 */ { FP64_NORM_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11915 { /* => */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11916 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11917 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11918 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,11919 /*xcpt? */ false, false },11920 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11921 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } },11922 { /* => */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V1(0) } },11923 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11924 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11925 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11926 /*xcpt? */ false, false },11927 { { /*src2 */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11928 { /*src1 */ { FP64_V(1, 0, 0x3fe)/*-0.50*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11929 { /* => */ { FP64_V(1, 0, 0x3fd)/*-0.25*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },11930 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11931 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11932 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11933 /*xcpt? */ false, false },11934 { { /*src2 */ { FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V3(1) } },11935 { /*src1 */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11936 { /* => */ { FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V0(1) } },11937 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11938 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11939 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11940 /*xcpt? */ false, false },11941 { { /*src2 */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11942 { /*src1 */ { FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } },11943 { /* => */ { FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/, FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V0(1) } },11944 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11945 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11946 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11947 /*xcpt? */ false, false },11948 { { /*src2 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },11949 { /*src1 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11950 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V3(1), FP64_RAND_V0(1) } },11951 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11952 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11953 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11954 /*xcpt? */ false, false },11955 { { /*src2 */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },11956 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11957 { /* => */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },11958 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11959 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11960 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,11961 /*xcpt? */ false, false },11962 { { /*src2 */ { FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/, FP64_INF(1), FP64_SNAN(1), FP64_INF(1) } },11963 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } },11964 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/, FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0) } },11965 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11966 /*128:out */ X86_MXCSR_XCPT_MASK,11967 /*256:out */ X86_MXCSR_XCPT_MASK,11968 /*xcpt? */ false, false },11969 { { /*src2 */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },11970 { /*src1 */ { FP64_V(1, 0xb88e0395d49b0, 0x42d)/*-121098765432102.75*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } },11971 { /* => */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/* 244555555308646.00*/, FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } },11972 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11973 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11974 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,11975 /*xcpt? */ false, false },11976 { { /*src2 */ { FP64_V(1, 0xcf0033a34f337, 0x432)/*-4072598000007579.5*/, FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V1(0) } },11977 { /*src1 */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11978 { /* => */ { FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/, FP64_RAND_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(0) } },11979 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11980 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11981 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,11982 /*xcpt? */ false, false },11983 /** @todo More Normals. */11984 /*11985 * Denormals.11986 */11987 /*46*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V3(0) } },11988 { /*src1 */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11989 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V2(1) } },11990 /*mxcsr:in */ 0,11991 /*128:out */ X86_MXCSR_DE,11992 /*256:out */ X86_MXCSR_DE,11993 /*xcpt? */ true, true },11994 { { /*src2 */ { FP64_0(0), FP64_SNAN(0), FP64_QNAN(1), FP64_QNAN(0) } },11995 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },11996 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },11997 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,11998 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,11999 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12000 /*xcpt? */ false, false },12001 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_INF(1), FP64_SNAN(0), FP64_INF(1) } },12002 { /*src1 */ { FP64_DENORM_MAX(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } },12003 { /* => */ { FP64_0(0), FP64_INF(0), FP64_QNAN(1), FP64_SNAN(1) } },12004 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12005 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12006 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12007 /*xcpt? */ false, false },12008 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V0(1), FP64_RAND_V3(0) } },12009 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },12010 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },12011 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12012 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12013 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12014 /*xcpt? */ false, false },12015 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },12016 { /*src1 */ { FP64_DENORM_MAX(1), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } },12017 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(0) } },12018 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12019 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12020 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12021 /*xcpt? */ false, false },12022 { { /*src2 */ { FP64_DENORM_MAX(1), FP64_RAND_V3(1), FP64_RAND_V0(0), FP64_RAND_V3(1) } },12023 { /*src1 */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } },12024 { /* => */ { FP64_DENORM_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } },12025 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12026 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12027 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12028 /*xcpt? */ false, false },12029 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_RAND_V0(1), FP64_RAND_V3(1), FP64_RAND_V2(1) } },12030 { /*src1 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },12031 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },12032 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12033 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12034 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12035 /*xcpt? */ false, false },12036 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_INF(0), FP64_QNAN(1), FP64_SNAN_V(1, 1) } },12037 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12038 { /* => */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12039 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12040 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12041 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12042 /*xcpt? */ false, false },12043 { { /*src2 */ { FP64_DENORM_MIN(1), FP64_SNAN(1), FP64_SNAN(0), FP64_QNAN(0) } },12044 { /*src1 */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12045 { /* => */ { FP64_0(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },12046 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12047 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12048 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12049 /*xcpt? */ false, false },12050 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },12051 { /*src1 */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } },12052 { /* => */ { FP64_DENORM_MIN(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } },12053 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12054 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12055 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12056 /*xcpt? */ false, false },12057 /** @todo More Denormals. */12058 /*12059 * Invalids.12060 */12061 /*56*/ FP64_TABLE_D9_SD_INVALIDS12062 };12063 12064 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues12065 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =12066 {12067 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c16, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues },12068 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },12069 12070 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c16, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },12071 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },12072 };12073 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =12074 {12075 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c32, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues },12076 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },12077 12078 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c32, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },12079 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },12080 };12081 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =12082 {12083 { bs3CpuInstr4_maxsd_XMM3_XMM4_icebp_c64, 255, RM_REG, T_SSE2, 3, 3, 4, PASS_s_aValues },12084 { bs3CpuInstr4_maxsd_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },12085 12086 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_XMM7_icebp_c64, 255, RM_REG, T_AVX_128, 1, 6, 7, PASS_s_aValues },12087 { bs3CpuInstr4_vmaxsd_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },12088 12089 { bs3CpuInstr4_maxsd_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE2, 8, 8, 9, PASS_s_aValues },12090 { bs3CpuInstr4_maxsd_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues },12091 12092 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },12093 { bs3CpuInstr4_vmaxsd_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },12094 };12095 #undef PASS_s_aValues12096 12097 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);12098 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);12099 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,12100 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));12101 }12102 12103 12104 /*12105 * [V]MINPS.12106 */12107 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minps(uint8_t bMode)12108 {12109 static BS3CPUINSTR4_TEST1_VALUES_PS_T const s_aValues[] =12110 {12111 /*12112 * Zero.12113 */12114 /* 0*/{ { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12115 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12116 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12117 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12118 /*128:out */ X86_MXCSR_XCPT_MASK,12119 /*256:out */ X86_MXCSR_XCPT_MASK,12120 /*xcpt? */ false, false },12121 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12122 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12123 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12124 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12125 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12126 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12127 /*xcpt? */ false, false },12128 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12129 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12130 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12131 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12132 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12133 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12134 /*xcpt? */ false, false },12135 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12136 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } },12137 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12138 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12139 /*128:out */ X86_MXCSR_XCPT_MASK,12140 /*256:out */ X86_MXCSR_XCPT_MASK,12141 /*xcpt? */ false, false },12142 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12143 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } },12144 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12145 /*mxcsr:in */ 0,12146 /*128:out */ 0,12147 /*256:out */ 0,12148 /*xcpt? */ false, false },12149 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12150 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0) } },12151 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12152 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12153 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12154 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12155 /*xcpt? */ false, false },12156 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12157 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } },12158 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12159 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12160 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12161 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12162 /*xcpt? */ false, false },12163 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12164 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0) } },12165 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(0) } },12166 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12167 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12168 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12169 /*xcpt? */ false, false },12170 { { /*src2 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12171 { /*src1 */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0) } },12172 { /* => */ { FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1) } },12173 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12174 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12175 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12176 /*xcpt? */ false, false },12177 /*12178 * Infinity.12179 */12180 /*9 */{ { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12181 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12182 { /* => */ { FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12183 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12184 /*128:out */ X86_MXCSR_XCPT_MASK,12185 /*256:out */ X86_MXCSR_XCPT_MASK,12186 /*xcpt? */ false, false },12187 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12188 { /*src1 */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12189 { /* => */ { FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12190 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12191 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12192 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12193 /*xcpt? */ false, false },12194 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12195 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12196 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12197 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12198 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12199 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12200 /*xcpt? */ false, false },12201 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12202 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12203 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12204 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12205 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12206 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12207 /*xcpt? */ false, false },12208 { { /*src2 */ { FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(0) } },12209 { /*src1 */ { FP32_0(0), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_INF(1) } },12210 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },12211 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12212 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12213 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12214 /*xcpt? */ false, false },12215 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } },12216 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } },12217 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },12218 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12219 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12220 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12221 /*xcpt? */ false, false },12222 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0) } },12223 { /*src1 */ { FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0), FP32_INF(0) } },12224 { /* => */ { FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },12225 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12226 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12227 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12228 /*xcpt? */ false, false },12229 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(1), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } },12230 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(1), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } },12231 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } },12232 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12233 /*128:out */ X86_MXCSR_XCPT_MASK,12234 /*256:out */ X86_MXCSR_XCPT_MASK,12235 /*xcpt? */ false, false },12236 { { /*src2 */ { FP32_INF(0), FP32_NORM_V1(0), FP32_INF(1), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(1), FP32_NORM_V7(0) } },12237 { /*src1 */ { FP32_NORM_V0(0), FP32_INF(1), FP32_NORM_V2(0), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(1), FP32_NORM_V6(0), FP32_INF(0) } },12238 { /* => */ { FP32_NORM_V0(0), FP32_INF(1), FP32_INF(1), FP32_NORM_V3(1), FP32_NORM_V4(1), FP32_INF(1), FP32_INF(1), FP32_NORM_V7(0) } },12239 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12240 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12241 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12242 /*xcpt? */ false, false },12243 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(0), FP32_INF(0), FP32_NORM_V3(0), FP32_INF(0), FP32_NORM_V1(0), FP32_INF(0) } },12244 { /*src1 */ { FP32_INF(1), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(0), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } },12245 { /* => */ { FP32_INF(1), FP32_NORM_V6(1), FP32_NORM_V5(0), FP32_NORM_V4(0), FP32_NORM_V3(0), FP32_NORM_V2(1), FP32_INF(1), FP32_NORM_V0(1) } },12246 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12247 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12248 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12249 /*xcpt? */ false, false },12250 { { /*src2 */ { FP32_NORM_V7(0), FP32_INF(0), FP32_NORM_V5(1), FP32_INF(0), FP32_NORM_V3(1), FP32_INF(0), FP32_NORM_V1(1), FP32_INF(0) } },12251 { /*src1 */ { FP32_INF(0), FP32_NORM_V6(1), FP32_INF(0), FP32_NORM_V4(1), FP32_INF(0), FP32_NORM_V2(1), FP32_INF(0), FP32_NORM_V0(1) } },12252 { /* => */ { FP32_NORM_V7(0), FP32_NORM_V6(1), FP32_NORM_V5(1), FP32_NORM_V4(1), FP32_NORM_V3(1), FP32_NORM_V2(1), FP32_NORM_V1(1), FP32_NORM_V0(1) } },12253 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12254 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12255 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12256 /*xcpt? */ false, false },12257 /*12258 * Normals.12259 */12260 /*20*/{ { /*src2 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12261 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(1), FP32_NORM_MAX(0) } },12262 { /* => */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12263 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12264 /*128:out */ X86_MXCSR_XCPT_MASK,12265 /*256:out */ X86_MXCSR_XCPT_MASK,12266 /*xcpt? */ false, false },12267 { { /*src2 */ { FP32_NORM_MIN(0), FP32_0(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } },12268 { /*src1 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_0(1), FP32_NORM_MIN(0) } },12269 { /* => */ { FP32_NORM_MIN(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(1) } },12270 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12271 /*128:out */ X86_MXCSR_XCPT_MASK,12272 /*256:out */ X86_MXCSR_XCPT_MASK,12273 /*xcpt? */ false, false },12274 { { /*src2 */ { FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12275 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1) } },12276 { /* => */ { FP32_NORM_MIN(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1) } },12277 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12278 /*128:out */ X86_MXCSR_XCPT_MASK,12279 /*256:out */ X86_MXCSR_XCPT_MASK,12280 /*xcpt? */ false, false },12281 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } },12282 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1) } },12283 { /* => */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(1) } },12284 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12285 /*128:out */ X86_MXCSR_XCPT_MASK,12286 /*256:out */ X86_MXCSR_XCPT_MASK,12287 /*xcpt? */ false, false },12288 { { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_V(0, 0, 0x7d)/* 0.25*/, FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_V(1, 0, 0x7d)/*-0.25*/ } },12289 { /*src1 */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7e)/*0.50*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } },12290 { /* => */ { FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7d)/*-0.25*/, FP32_V(0, 0, 0x7d)/*0.25*/, FP32_V(1, 0x600000, 0x7f)/*-1.75*/, FP32_V(1, 0, 0x7e)/*-0.50*/, FP32_V(1, 0, 0x7d)/*0.25*/, FP32_V(1, 0, 0x7e)/*-0.50*/ } },12291 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12292 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12293 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12294 /*xcpt? */ false, false },12295 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_NORM_V5(0), FP32_0(1), FP32_NORM_V5(1), FP32_0(0) } },12296 { /*src1 */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(0), FP32_NORM_V3(1), FP32_0(1), FP32_NORM_V6(0), FP32_0(1), FP32_NORM_V7(1) } },12297 { /* => */ { FP32_NORM_V1(0), FP32_NORM_V1(1), FP32_NORM_V2(1), FP32_NORM_V3(1), FP32_0(1), FP32_0(1), FP32_NORM_V5(1), FP32_NORM_V7(1) } },12298 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12299 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12300 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12301 /*xcpt? */ false, false },12302 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x5c0000, 0x84)/* 55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_1(1) } },12303 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_1(1), FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(0) } },12304 { /* => */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/, FP32_V(0, 0x712060, 0x92)/* 987654*/, FP32_1(1) } },12305 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12306 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12307 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12308 /*xcpt? */ false, false },12309 { { /*src2 */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x6423f2, 0x92)/*934463.125*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(0, 0x792318, 0x91)/*510232.75*/, FP32_V(0, 0x600000, 0x7e)/* 0.875*/ } },12310 { /*src1 */ { FP32_V(0, 0x769b50, 0x92)/*1010101.000*/, FP32_V(0, 0x430ebc, 0x91)/*399477.875*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x00c6d3, 0x94)/*2109876.75*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } },12311 { /* => */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MAX(1), FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(1, 0, 0x7d)/*-0.250*/ } },12312 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12313 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12314 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12315 /*xcpt? */ false, false },12316 { { /*src2 */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_V(1, 0x490fda, 0x80)/*-3.1415926*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } },12317 { /*src1 */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(0, 0x620b2d, 0x92)/* 925874.9*/, FP32_V(0, 0x5dd521, 0x8e)/*56789.127*/, FP32_V(0, 0x40e6b7, 0x8c)/*12345.679*/ } },12318 { /* => */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_V(1, 0x490fdb, 0x80)/*-3.1415927*/, FP32_V(1, 0x620b2e, 0x92)/*-925874.8*/, FP32_V(0, 0x5dd520, 0x8e)/*56789.125*/, FP32_V(0, 0x40e6b6, 0x8c)/*12345.678*/ } },12319 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12320 /*128:out */ X86_MXCSR_XCPT_MASK,12321 /*256:out */ X86_MXCSR_XCPT_MASK,12322 /*xcpt? */ false, false },12323 /** @todo More Normals. */12324 /*12325 * Denormals.12326 */12327 /*29*/{ { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12328 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },12329 { /* => */ { FP32_0(0), FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },12330 /*mxcsr:in */ 0,12331 /*128:out */ X86_MXCSR_DE,12332 /*256:out */ X86_MXCSR_DE,12333 /*xcpt? */ true, true },12334 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12335 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } },12336 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12337 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12338 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12339 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12340 /*xcpt? */ false, false },12341 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } },12342 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } },12343 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12344 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12345 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12346 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12347 /*xcpt? */ false, false },12348 { { /*src2 */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12349 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12350 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12351 /*mxcsr:in */ 0,12352 /*128:out */ X86_MXCSR_DE,12353 /*256:out */ X86_MXCSR_DE,12354 /*xcpt? */ true, true },12355 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },12356 { /*src1 */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12357 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },12358 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12359 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12360 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12361 /*xcpt? */ false, false },12362 { { /*src2 */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } },12363 { /*src1 */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } },12364 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },12365 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12366 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12367 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12368 /*xcpt? */ false, false },12369 /** @todo More Denormals. */12370 /*35*/ FP32_TABLE_D9_PS_INVALIDS12371 };12372 12373 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues12374 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =12375 {12376 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues },12377 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues },12378 12379 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c16, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },12380 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },12381 12382 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c16, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues },12383 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c16, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues },12384 };12385 static BS3CPUINSTR4_TEST1_T const s_aTests32[] =12386 {12387 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c32, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues },12388 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues },12389 12390 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c32, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },12391 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },12392 12393 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c32, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues },12394 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c32, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues },12395 };12396 static BS3CPUINSTR4_TEST1_T const s_aTests64[] =12397 {12398 { bs3CpuInstr4_minps_XMM1_XMM2_icebp_c64, 255, RM_REG, T_SSE, 1, 1, 2, PASS_s_aValues },12399 { bs3CpuInstr4_minps_XMM1_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 1, 1, 255, PASS_s_aValues },12400 12401 { bs3CpuInstr4_vminps_XMM1_XMM2_XMM3_icebp_c64, 255, RM_REG, T_AVX_128, 1, 2, 3, PASS_s_aValues },12402 { bs3CpuInstr4_vminps_XMM1_XMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 1, 2, 255, PASS_s_aValues },12403 12404 { bs3CpuInstr4_vminps_YMM1_YMM2_YMM3_icebp_c64, 255, RM_REG, T_AVX_256, 1, 2, 3, PASS_s_aValues },12405 { bs3CpuInstr4_vminps_YMM1_YMM2_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 1, 2, 255, PASS_s_aValues },12406 12407 { bs3CpuInstr4_minps_XMM8_XMM9_icebp_c64, 255, RM_REG, T_SSE, 8, 8, 9, PASS_s_aValues },12408 { bs3CpuInstr4_minps_XMM8_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues },12409 12410 { bs3CpuInstr4_vminps_XMM8_XMM9_XMM10_icebp_c64, 255, RM_REG, T_AVX_128, 8, 9, 10, PASS_s_aValues },12411 { bs3CpuInstr4_vminps_XMM8_XMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },12412 { bs3CpuInstr4_vminps_YMM8_YMM9_YMM10_icebp_c64, 255, RM_REG, T_AVX_256, 8, 9, 10, PASS_s_aValues },12413 { bs3CpuInstr4_vminps_YMM8_YMM9_FSxBX_icebp_c64, 255, RM_MEM, T_AVX_256, 8, 9, 255, PASS_s_aValues },12414 };12415 #undef PASS_s_aValues12416 12417 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);12418 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);12419 return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,12420 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));12421 }12422 12423 12424 /*12425 * [V]MINPD.12426 */12427 BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minpd(uint8_t bMode)12428 {12429 static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValues[] =12430 {12431 /*12432 * Zero.12433 */12434 /* 0*/{ { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12435 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12436 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12437 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12438 /*128:out */ X86_MXCSR_XCPT_MASK,12439 /*256:out */ X86_MXCSR_XCPT_MASK,12440 /*xcpt? */ false, false },12441 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12442 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12443 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12444 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12445 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12446 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12447 /*xcpt? */ false, false },12448 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12449 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12450 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12451 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12452 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12453 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12454 /*xcpt? */ false, false },12455 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },12456 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } },12457 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },12458 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12459 /*128:out */ X86_MXCSR_XCPT_MASK,12460 /*256:out */ X86_MXCSR_XCPT_MASK,12461 /*xcpt? */ false, false },12462 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },12463 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },12464 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },12465 /*mxcsr:in */ 0,12466 /*128:out */ 0,12467 /*256:out */ 0,12468 /*xcpt? */ false, false },12469 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },12470 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } },12471 { /* => */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },12472 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12473 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12474 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12475 /*xcpt? */ false, false },12476 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },12477 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },12478 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },12479 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12480 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12481 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12482 /*xcpt? */ false, false },12483 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },12484 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },12485 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(0) } },12486 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12487 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12488 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12489 /*xcpt? */ false, false },12490 { { /*src2 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } },12491 { /*src1 */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } },12492 { /* => */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(0) } },12493 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12494 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12495 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12496 /*xcpt? */ false, false },12497 /*12498 * Infinity.12499 */12500 /*9 */{ { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },12501 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(1) } },12502 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_INF(1) } },12503 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12504 /*128:out */ X86_MXCSR_XCPT_MASK,12505 /*256:out */ X86_MXCSR_XCPT_MASK,12506 /*xcpt? */ false, false },12507 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },12508 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } },12509 { /* => */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } },12510 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12511 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12512 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12513 /*xcpt? */ false, false },12514 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },12515 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } },12516 { /* => */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } },12517 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12518 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12519 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,12520 /*xcpt? */ false, false },12521 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },12522 { /*src1 */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } },12523 { /* => */ { FP64_0(0), FP64_INF(1), FP64_0(1), FP64_INF(1) } },12524 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12525 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12526 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12527 /*xcpt? */ false, false },12528 { { /*src2 */ { FP64_INF(0), FP64_0(0), FP64_INF(0), FP64_0(1) } },12529 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(1), FP64_INF(1) } },12530 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_INF(1) } },12531 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12532 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12533 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12534 /*xcpt? */ false, false },12535 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },12536 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },12537 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } },12538 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12539 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12540 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,12541 /*xcpt? */ false, false },12542 { { /*src2 */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },12543 { /*src1 */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },12544 { /* => */ { FP64_INF(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } },12545 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12546 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12547 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12548 /*xcpt? */ false, false },12549 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } },12550 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } },12551 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } },12552 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12553 /*128:out */ X86_MXCSR_XCPT_MASK,12554 /*256:out */ X86_MXCSR_XCPT_MASK,12555 /*xcpt? */ false, false },12556 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } },12557 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } },12558 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } },12559 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12560 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12561 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12562 /*xcpt? */ false, false },12563 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } },12564 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } },12565 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } },12566 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12567 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12568 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12569 /*xcpt? */ false, false },12570 { { /*src2 */ { FP64_INF(0), FP64_NORM_V1(0), FP64_INF(1), FP64_NORM_V3(1) } },12571 { /*src1 */ { FP64_NORM_V0(0), FP64_INF(1), FP64_NORM_V2(0), FP64_INF(1) } },12572 { /* => */ { FP64_NORM_V0(0), FP64_INF(1), FP64_INF(1), FP64_INF(1) } },12573 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12574 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12575 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12576 /*xcpt? */ false, false },12577 /*12578 * Normals.12579 */12580 /*20*/{ { /*src2 */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V1(1) } },12581 { /*src1 */ { FP64_NORM_V3(1), FP64_NORM_V1(0), FP64_NORM_V2(1), FP64_NORM_V1(0) } },12582 { /* => */ { FP64_NORM_V3(1), FP64_NORM_V1(1), FP64_NORM_V2(1), FP64_NORM_V1(1) } },12583 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12584 /*128:out */ X86_MXCSR_XCPT_MASK,12585 /*256:out */ X86_MXCSR_XCPT_MASK,12586 /*xcpt? */ false, false },12587 { { /*src2 */ { FP64_NORM_V0(0), FP64_0(1), FP64_NORM_V2(0), FP64_0(1) } },12588 { /*src1 */ { FP64_0(0), FP64_NORM_V1(1), FP64_0(0), FP64_NORM_V1(0) } },12589 { /* => */ { FP64_0(0), FP64_NORM_V1(1), FP64_0(0), FP64_0(1) } },12590 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12591 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12592 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,12593 /*xcpt? */ false, false },12594 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_V(1, 0x8000000000000, 0x409)/*-1536*/, FP64_V(0, 0xf000000000000, 0x404)/* 62*/ } },12595 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_1(1), FP64_V(1, 0xf000000000000, 0x404)/*-62*/ } },12596 { /* => */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_V(1, 0x8000000000000, 0x409)/*-1536*/, FP64_V(1, 0xf000000000000, 0x404)/*-62*/ } },12597 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,12598 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,12599 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,12600 /*xcpt? */ false, false },12601 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(1, 0xd6f3426800000, 0x41c)/*-987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } },12602 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* 100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } },12603 { /* => */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* 100*/, FP64_V(1, 0xd6f3426800000, 0x41c)/*-987654221*/, FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } },12604 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12605 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12606 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12607 /*xcpt? */ false, false },12608 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_V(0, 0xd6f3426800000, 0x41c)/*987654221*/, FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } },12609 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* -100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } },12610 { /* => */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(0, 0x9000000000000, 0x405)/* -100*/, FP64_1(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } },12611 /*mxcsr:in */ X86_MXCSR_RC_ZERO,12612 /*128:out */ X86_MXCSR_RC_ZERO,12613 /*256:out */ X86_MXCSR_RC_ZERO,12614 /*xcpt? */ false, false },12615 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MIN(0) } },12616 { /*src1 */ { FP64_1(0), FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(0), FP64_0(0) } },12617 { /* => */ { FP64_1(0), FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(0), FP64_0(0) } },12618 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12619 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12620 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,12621 /*xcpt? */ false, false },12622 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(1) } },12623 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0) } },12624 { /* => */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(1) } },12625 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12626 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12627 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12628 /*xcpt? */ false, false },12629 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/ } },12630 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/* 121098765432102.75*/ } },12631 { /* => */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_V(1, 0xbcd80e0108cc0, 0x42e)/*-244555555308646.00*/ } },12632 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12633 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12634 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,12635 /*xcpt? */ false, false },12636 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/*1.75*/, FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_V(0, 0xf9b0207d06184, 0x3fb)/*0.1234589833333129*/ } },12637 { /*src1 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_V(0, 0x26580b4c7e6bc, 0x41d)/*1234567891.1234580*/, FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/ } },12638 { /* => */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_V(0, 0x26580b4c7e6b7, 0x41d)/*1234567891.1234567*/, FP64_V(0, 0xf9b0207d0617d, 0x3fb)/*0.1234589833333128*/ } },12639 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12640 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12641 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,12642 /*xcpt? */ false, false },12643 /*12644 * Denormals.12645 */12646 /*29*/{ { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },12647 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } },12648 { /* => */ { FP64_0(0), FP64_DENORM_MAX(1), FP64_0(0), FP64_DENORM_MAX(1) } },12649 /*mxcsr:in */ 0,12650 /*128:out */ X86_MXCSR_DE,12651 /*256:out */ X86_MXCSR_DE,12652 /*xcpt? */ true, true },12653 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0) } },12654 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } },12655 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12656 /*mxcsr:in */ X86_MXCSR_XCPT_MASK,12657 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12658 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,12659 /*xcpt? */ false, false },12660 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },12661 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } },12662 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12663 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12664 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12665 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,12666 /*xcpt? */ false, false },12667 { { /*src2 */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },12668 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0), FP64_DENORM_MAX(0) } },12669 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12670 /*mxcsr:in */ 0,12671 /*128:out */ X86_MXCSR_DE,12672 /*256:out */ X86_MXCSR_DE,12673 /*xcpt? */ true, true },12674 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_DENORM_MAX(1) } },12675 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_0(0) } },12676 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(1) } },12677 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12678 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12679 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,12680 /*xcpt? */ false, false },12681 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },12682 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } },12683 { /* => */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },12684 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12685 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12686 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,12687 /*xcpt? */ false, false },12688 /** @todo Denormals. */12689 /*12690 * Invalids.12691 */12692 /*35*/ FP64_TABLE_D9_PD_INVALIDS12693 };12694 12695 #define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues12696 static BS3CPUINSTR4_TEST1_T const s_aTests16[] =12697 {12698 12698 { bs3CpuInstr4_minpd_XMM1_XMM2_icebp_c16, 255, RM_REG, T_SSE2, 1, 1, 2, PASS_s_aValues }, 12699 12699 { bs3CpuInstr4_minpd_XMM1_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 1, 1, 255, PASS_s_aValues }, … … 12739 12739 static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64); 12740 12740 unsigned const iTest = BS3CPUINSTR4_TEST_MODES_INDEX(bMode); 12741 return bs3CpuInstr4_WorkerTestType1 (bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,12741 return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests, 12742 12742 g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2)); 12743 12743 }
Note:
See TracChangeset
for help on using the changeset viewer.