Changeset 105437 in vbox
- Timestamp:
- Jul 23, 2024 8:23:26 AM (8 months ago)
- svn:sync-xref-src-repo-rev:
- 164094
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r105433 r105437 994 994 uint32_t u128ExpectedMxCsr; /**< Expected MXCSR for a 128-bit instruction. */ 995 995 uint32_t u256ExpectedMxCsr; /**< Expected MXCSR for a 256-bit instructions. */ 996 uint32_t uPad; 996 uint8_t f128FpXcptExpected; /**< Whether a floating-point exception is expected for a 128-bit instruction. */ 997 uint8_t f256FpXcptExpected; /**< Whether a floating-point exception is expected for a 256-bit instruction. */ 998 uint8_t afPadding[2]; /**< Alignment padding. */ 997 999 } BS3CPUINSTR4_TEST1_VALUES_T; 998 1000 … … 1009 1011 uint32_t u128ExpectedMxCsr; /**< Expected MXCSR for a 128-bit instruction. */ 1010 1012 uint32_t u256ExpectedMxCsr; /**< Expected MXCSR for a 256-bit instructions. */ 1011 uint32_t uPad; 1013 uint8_t f128FpXcptExpected; /**< Whether a floating-point exception is expected for a 128-bit instruction. */ 1014 uint8_t f256FpXcptExpected; /**< Whether a floating-point exception is expected for a 256-bit instruction. */ 1015 uint8_t afPadding[2]; /**< Alignment padding. */ 1012 1016 } BS3CPUINSTR4_TEST1_VALUES_PS_T; 1013 1017 AssertCompile(sizeof(BS3CPUINSTR4_TEST1_VALUES_PS_T) == sizeof(BS3CPUINSTR4_TEST1_VALUES_T)); 1014 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1015 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1016 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1017 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1018 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1019 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1018 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1019 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1020 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1021 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1022 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1023 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1024 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, f128FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f128FpXcptExpected); 1025 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PS_T, f256FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f256FpXcptExpected); 1020 1026 1021 1027 /* … … 1031 1037 uint32_t u128ExpectedMxCsr; /**< Expected MXCSR for a 128-bit instruction. */ 1032 1038 uint32_t u256ExpectedMxCsr; /**< Expected MXCSR for a 256-bit instructions. */ 1033 uint32_t uPad; 1039 uint8_t f128FpXcptExpected; /**< Whether a floating-point exception is expected for a 128-bit instruction. */ 1040 uint8_t f256FpXcptExpected; /**< Whether a floating-point exception is expected for a 256-bit instruction. */ 1041 uint8_t afPadding[2]; /**< Alignment padding. */ 1034 1042 } BS3CPUINSTR4_TEST1_VALUES_PD_T; 1035 1043 AssertCompile(sizeof(BS3CPUINSTR4_TEST1_VALUES_PD_T) == sizeof(BS3CPUINSTR4_TEST1_VALUES_T)); 1036 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1037 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1038 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1039 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1040 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1041 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1044 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1045 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1046 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1047 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1048 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1049 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1050 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, f128FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f128FpXcptExpected); 1051 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_PD_T, f256FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f256FpXcptExpected); 1042 1052 1043 1053 /* … … 1053 1063 uint32_t u128ExpectedMxCsr; /**< Expected MXCSR for a 128-bit instruction. */ 1054 1064 uint32_t u256ExpectedMxCsr; /**< Expected MXCSR for a 256-bit instructions. */ 1055 uint32_t uPad; 1065 uint8_t f128FpXcptExpected; /**< Whether a floating-point exception is expected for a 128-bit instruction. */ 1066 uint8_t f256FpXcptExpected; /**< Whether a floating-point exception is expected for a 256-bit instruction. */ 1067 uint8_t afPadding[2]; /**< Alignment padding. */ 1056 1068 } BS3CPUINSTR4_TEST1_VALUES_SS_T; 1057 1069 AssertCompile(sizeof(BS3CPUINSTR4_TEST1_VALUES_SS_T) == sizeof(BS3CPUINSTR4_TEST1_VALUES_T)); 1058 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1059 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1060 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1061 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1062 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1063 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1070 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1071 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1072 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1073 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1074 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1075 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1076 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, f128FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f128FpXcptExpected); 1077 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SS_T, f256FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f256FpXcptExpected); 1064 1078 1065 1079 /* … … 1075 1089 uint32_t u128ExpectedMxCsr; /**< Expected MXCSR for a 128-bit instruction. */ 1076 1090 uint32_t u256ExpectedMxCsr; /**< Expected MXCSR for a 256-bit instructions. */ 1077 uint32_t uPad; 1091 uint8_t f128FpXcptExpected; /**< Whether a floating-point exception is expected for a 128-bit instruction. */ 1092 uint8_t f256FpXcptExpected; /**< Whether a floating-point exception is expected for a 256-bit instruction. */ 1093 uint8_t afPadding[2]; /**< Alignment padding. */ 1078 1094 } BS3CPUINSTR4_TEST1_VALUES_SQ_T; 1079 1095 AssertCompile(sizeof(BS3CPUINSTR4_TEST1_VALUES_SQ_T) == sizeof(BS3CPUINSTR4_TEST1_VALUES_T)); 1080 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1081 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1082 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1083 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1084 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1085 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1096 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uSrc2, BS3CPUINSTR4_TEST1_VALUES_T, uSrc2); 1097 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uSrc1, BS3CPUINSTR4_TEST1_VALUES_T, uSrc1); 1098 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uDstOut, BS3CPUINSTR4_TEST1_VALUES_T, uDstOut); 1099 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, uMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, uMxCsr); 1100 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, u128ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u128ExpectedMxCsr); 1101 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, u256ExpectedMxCsr, BS3CPUINSTR4_TEST1_VALUES_T, u256ExpectedMxCsr); 1102 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, f128FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f128FpXcptExpected); 1103 AssertCompileMembersSameSizeAndOffset(BS3CPUINSTR4_TEST1_VALUES_SQ_T, f256FpXcptExpected, BS3CPUINSTR4_TEST1_VALUES_T, f256FpXcptExpected); 1086 1104 1087 1105 typedef struct BS3CPUINSTR4_TEST1_T … … 1149 1167 uint8_t bXcptExpect = pTestCtx->bXcptExpect; 1150 1168 uint8_t const bFpXcpt = pTestCtx->pConfig->fCr4OsXmmExcpt ? X86_XCPT_XF : X86_XCPT_UD; 1151 uint32_t const uExpectedMxCsr = pTestCtx->cbOperand > 16 ? pValues->u256ExpectedMxCsr1152 : pValues->u128ExpectedMxCsr;1153 bool const fFpFlagsExpect = RT_BOOL( (uExpectedMxCsr & X86_MXCSR_XCPT_FLAGS)1154 & ((~pValues->uMxCsr >> X86_MXCSR_XCPT_MASK_SHIFT) & X86_MXCSR_XCPT_FLAGS));1155 1169 bool const fSseInstr = bs3CpuInstr4IsSse(pTest->enmType); 1156 1170 uint32_t uMxCsr; 1157 1171 X86YMMREG MemOpExpect; 1158 1172 uint16_t cErrors; 1173 uint32_t uExpectedMxCsr; 1174 bool fFpXcptExpected; 1175 1176 /* 1177 * An exception may be raised based on the test value (128 vs 256 bits). 1178 * In addition, we allow setting the exception flags (and mask) prior to 1179 * executing the instruction, so we cannot use the exception flags to figure 1180 * out if an exception will be raised. Hence, the input values provide us 1181 * explicitly whether an exception is expected for 128 and 256-bit variants. 1182 */ 1183 if (pTestCtx->cbOperand > 16) 1184 { 1185 uExpectedMxCsr = pValues->u256ExpectedMxCsr; 1186 fFpXcptExpected = pValues->f256FpXcptExpected; 1187 } 1188 else 1189 { 1190 uExpectedMxCsr = pValues->u128ExpectedMxCsr; 1191 fFpXcptExpected = pValues->f128FpXcptExpected; 1192 } 1159 1193 1160 1194 /* … … 1221 1255 g_uBs3TrapEipHint = pCtx->rip.u32; 1222 1256 if ( bXcptExpect == X86_XCPT_DB 1223 && !fFp FlagsExpect)1257 && !fFpXcptExpected) 1224 1258 g_uBs3TrapEipHint += cbInstr + 1; 1225 1259 Bs3TrapSetJmpAndRestoreWithExtCtxAndRm(pCtx, pExtCtx, pTrapFrame, pExtCtxOut); … … 1234 1268 cErrors = Bs3TestSubErrorCount(); 1235 1269 if ( bXcptExpect == X86_XCPT_DB 1236 && !fFp FlagsExpect1270 && !fFpXcptExpected 1237 1271 && pTest->iRegDst != UINT8_MAX) 1238 1272 { … … 1276 1310 1277 1311 /* Check if the SIMD FP exception (or lack of) is as expected. */ 1278 if (fFp FlagsExpect)1312 if (fFpXcptExpected) 1279 1313 { 1280 1314 if (pTrapFrame->bXcpt == bFpXcpt) … … 1302 1336 if (bXcptExpect == X86_XCPT_PF) 1303 1337 pCtx->cr2.u = (uintptr_t)puMemOp; 1304 Bs3TestCheckRegCtxEx(&pTrapFrame->Ctx, pCtx, bXcptExpect == X86_XCPT_DB && !fFp FlagsExpect? cbInstr + 1 : 0, 0 /*cbSpAdjust*/,1305 (bXcptExpect == X86_XCPT_DB && !fFp FlagsExpect) || BS3_MODE_IS_16BIT_SYS(bMode) ? 0 : X86_EFL_RF,1338 Bs3TestCheckRegCtxEx(&pTrapFrame->Ctx, pCtx, bXcptExpect == X86_XCPT_DB && !fFpXcptExpected ? cbInstr + 1 : 0, 0 /*cbSpAdjust*/, 1339 (bXcptExpect == X86_XCPT_DB && !fFpXcptExpected) || BS3_MODE_IS_16BIT_SYS(bMode) ? 0 : X86_EFL_RF, 1306 1340 pTestCtx->pszMode, pTestCtx->idTestStep); 1307 1341 pCtx->cr2.u = 0; … … 1504 1538 /*mxcsr:in */ 0, 1505 1539 /*128:out */ 0, 1506 /*256:out */ 0 }, 1540 /*256:out */ 0, 1541 /*xcpt? */ false, false }, 1507 1542 { { /*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) } }, 1508 1543 { /*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) } }, … … 1510 1545 /*mxcsr:in */ 0, 1511 1546 /*128:out */ 0, 1512 /*256:out */ 0 }, 1547 /*256:out */ 0, 1548 /*xcpt? */ false, false }, 1513 1549 { { /*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) } }, 1514 1550 { /*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) } }, … … 1516 1552 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 1517 1553 /*128:out */ X86_MXCSR_RC_ZERO, 1518 /*256:out */ X86_MXCSR_RC_ZERO }, 1554 /*256:out */ X86_MXCSR_RC_ZERO, 1555 /*xcpt? */ false, false }, 1519 1556 { { /*src2 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, 1520 1557 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } }, … … 1522 1559 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 1523 1560 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 1524 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO }, 1561 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 1562 /*xcpt? */ false, false }, 1525 1563 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } }, 1526 1564 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } }, … … 1528 1566 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1529 1567 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1530 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN }, 1568 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1569 /*xcpt? */ false, false }, 1531 1570 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } }, 1532 1571 { /*src1 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } }, … … 1534 1573 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1535 1574 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1536 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP }, 1575 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1576 /*xcpt? */ false, false }, 1537 1577 /* 1538 1578 * Infinity. … … 1543 1583 /*mxcsr:in */ X86_MXCSR_IM, 1544 1584 /*128:out */ X86_MXCSR_IM | X86_MXCSR_IE, 1545 /*256:out */ X86_MXCSR_IM | X86_MXCSR_IE }, 1585 /*256:out */ X86_MXCSR_IM | X86_MXCSR_IE, 1586 /*xcpt? */ false, false }, 1546 1587 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 1547 1588 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, … … 1549 1590 /*mxcsr:in */ 0, 1550 1591 /*128:out */ X86_MXCSR_IE, 1551 /*256:out */ X86_MXCSR_IE }, 1592 /*256:out */ X86_MXCSR_IE, 1593 /*xcpt? */ true, true }, 1552 1594 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0), FP32_0(1), FP32_0(1), FP32_0(0) } }, 1553 1595 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_0(1), FP32_0(0) } }, … … 1555 1597 /*mxcsr:in */ X86_MXCSR_FZ, 1556 1598 /*128:out */ X86_MXCSR_FZ, 1557 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_IE }, 1599 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_IE, 1600 /*xcpt? */ false, true }, 1558 1601 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0) } }, 1559 1602 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1) } }, … … 1561 1604 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1562 1605 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1563 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 1606 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1607 /*xcpt? */ false, true }, 1564 1608 { { /*src2 */ { FP32_INF(0), FP32_INF(1), FP32_0(0), FP32_INF(1), FP32_0(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 1565 1609 { /*src1 */ { FP32_INF(1), FP32_INF(0), FP32_0(1), FP32_INF(0), FP32_0(0), FP32_INF(0), FP32_INF(0), FP32_INF(1) } }, … … 1567 1611 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 1568 1612 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1569 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 1613 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1614 /*xcpt? */ true, true }, 1570 1615 /* 1571 1616 * Overflow, Precision. … … 1576 1621 /*mxcsr:in */ 0, 1577 1622 /*128:out */ 0, 1578 /*256:out */ X86_MXCSR_OE }, 1623 /*256:out */ X86_MXCSR_OE, 1624 /*xcpt? */ false, true }, 1579 1625 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_0(1), FP32_0(0), FP32_NORM_MAX(0) } }, 1580 1626 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_0(1), FP32_0(1), FP32_NORM_MAX(0) } }, … … 1582 1628 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO, 1583 1629 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 1584 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE }, 1630 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 1631 /*xcpt? */ false, false }, 1585 1632 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MAX(0) } }, 1586 1633 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MAX(0) } }, … … 1588 1635 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1589 1636 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE, 1590 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE }, 1637 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE, 1638 /*xcpt? */ false, false }, 1591 1639 { { /*src2 */ { FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MIN(1) } }, 1592 1640 { /*src1 */ { FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_0(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MIN(1) } }, … … 1594 1642 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1595 1643 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE, 1596 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE }, 1644 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE, 1645 /*xcpt? */ false, false }, 1597 1646 { { /*src2 */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 1598 1647 { /*src1 */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, … … 1600 1649 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 1601 1650 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 1602 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE }, 1651 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE, 1652 /*xcpt? */ false, true }, 1603 1653 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 1604 1654 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, … … 1606 1656 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO, 1607 1657 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 1608 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE }, 1658 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 1659 /*xcpt? */ false, false }, 1609 1660 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1) } }, 1610 1661 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1) } }, … … 1612 1663 /*mxcsr:in */ 0, 1613 1664 /*128:out */ X86_MXCSR_PE, 1614 /*256:out */ X86_MXCSR_PE }, 1665 /*256:out */ X86_MXCSR_PE, 1666 /*xcpt? */ true, true }, 1615 1667 /* 1616 1668 * Normals. … … 1621 1673 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1622 1674 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1623 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN }, 1675 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1676 /*xcpt? */ false, false }, 1624 1677 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_V1(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_V1(0), FP32_0(0), FP32_0(0) } }, 1625 1678 { /*src1 */ { FP32_NORM_MAX(1), FP32_NORM_V1(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_V1(1), FP32_0(0), FP32_0(0) } }, … … 1627 1680 /*mxcsr:in */ 0, 1628 1681 /*128:out */ 0, 1629 /*256:out */ 0 }, 1682 /*256:out */ 0, 1683 /*xcpt? */ false, false }, 1630 1684 { { /*src2 */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_0(0), FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x534000, 0x86)/*211.25*/, FP32_0(0) } }, 1631 1685 { /*src1 */ { FP32_V(0, 0x1ea980, 0x8f)/* 81235*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_0(0), FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/* 1010.25*/, FP32_1(1) /*- 1.00*/, FP32_0(0) } }, … … 1633 1687 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 1634 1688 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 1635 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO }, 1689 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 1690 /*xcpt? */ false, false }, 1636 1691 { { /*src2 */ { FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_0(0), FP32_0(0), FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_1(1), FP32_0(0) } }, 1637 1692 { /*src1 */ { FP32_V(1, 0x712060, 0x92)/*- 987654*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_0(0), FP32_1(0), FP32_V(1, 0x712060, 0x92)/*- 987654*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_1(0), FP32_1(0) } }, … … 1639 1694 /*mxcsr:in */ X86_MXCSR_FZ, 1640 1695 /*128:out */ X86_MXCSR_FZ, 1641 /*256:out */ X86_MXCSR_FZ }, 1696 /*256:out */ X86_MXCSR_FZ, 1697 /*xcpt? */ false, false }, 1642 1698 { { /*src2 */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_NORM_SAFE_INT_MAX(0), FP32_1(0), FP32_1(1), FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_NORM_SAFE_INT_MAX(0), FP32_0(1), FP32_0(0) } }, 1643 1699 { /*src1 */ { FP32_1(0), FP32_1(1), FP32_1(1), FP32_1(0), FP32_1(0), FP32_1(1), FP32_0(1), FP32_0(0) } }, … … 1645 1701 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 1646 1702 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 1647 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP }, 1703 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 1704 /*xcpt? */ false, false }, 1648 1705 { { /*src2 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_1(1), FP32_0(1), FP32_1(1), FP32_0(1), FP32_1(1), FP32_NORM_SAFE_INT_MAX(0), FP32_1(1), } }, 1649 1706 { /*src1 */ { FP32_1(0), FP32_NORM_SAFE_INT_MAX(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_1(0), FP32_NORM_SAFE_INT_MAX(1), } }, … … 1651 1708 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1652 1709 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1653 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO }, 1710 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1711 /*xcpt? */ false, false }, 1654 1712 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_0(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_0(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0) } }, 1655 1713 { /*src1 */ { FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_0(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_0(0), FP32_NORM_SAFE_INT_MIN(0) } }, … … 1657 1715 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1658 1716 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1659 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN }, 1717 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1718 /*xcpt? */ false, false }, 1660 1719 { { /*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*/ } }, 1661 1720 { /*src1 */ { FP32_V(0, 0x769b50, 0x92)/*1010101.000*/, FP32_V(0, 0x430ebc, 0x91)/*399477.875*/, FP32_V(1, 0x0a19f0, 0x8f)/*-70707.875*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_V(0, 0x00c6d3, 0x94)/*2109876.75*/, FP32_V(1, 0x316740, 0x8e)/*-45415.25*/, FP32_V(0, 0x769b50, 0x92)/*1010101.000*/ } }, … … 1663 1722 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 1664 1723 /*128:out */ X86_MXCSR_RC_DOWN, 1665 /*256:out */ X86_MXCSR_RC_DOWN }, 1724 /*256:out */ X86_MXCSR_RC_DOWN, 1725 /*xcpt? */ false, false }, 1666 1726 /* 1667 1727 * Denormals. … … 1672 1732 /*mxcsr:in */ 0, 1673 1733 /*128:out */ X86_MXCSR_DE, 1674 /*256:out */ X86_MXCSR_DE }, 1734 /*256:out */ X86_MXCSR_DE, 1735 /*xcpt? */ true, true }, 1675 1736 { { /*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) } }, 1676 1737 { /*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) } }, … … 1678 1739 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1679 1740 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 1680 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE }, 1741 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 1742 /*xcpt? */ false, false }, 1681 1743 { { /*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) } }, 1682 1744 { /*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) } }, … … 1684 1746 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 1685 1747 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 1686 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP }, 1748 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP, 1749 /*xcpt? */ false, false }, 1687 1750 { { /*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) } }, 1688 1751 { /*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) } }, … … 1690 1753 /*mxcsr:in */ 0, 1691 1754 /*128:out */ X86_MXCSR_DE, 1692 /*256:out */ X86_MXCSR_DE }, 1755 /*256:out */ X86_MXCSR_DE, 1756 /*xcpt? */ true, true }, 1693 1757 { { /*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) } }, 1694 1758 { /*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) } }, … … 1696 1760 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 1697 1761 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 1698 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ }, 1762 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 1763 /*xcpt? */ false, false }, 1699 1764 { { /*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) } }, 1700 1765 { /*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) } }, … … 1702 1767 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1703 1768 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1704 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP }, 1769 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1770 /*xcpt? */ false, false }, 1705 1771 /** @todo More Denormals. */ 1706 1772 /* … … 1712 1778 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1713 1779 /*128:out */ X86_MXCSR_XCPT_MASK, 1714 /*256:out */ X86_MXCSR_XCPT_MASK }, 1780 /*256:out */ X86_MXCSR_XCPT_MASK, 1781 /*xcpt? */ false, false }, 1715 1782 { { /*src2 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } }, 1716 1783 { /*src1 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V4) } }, … … 1718 1785 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1719 1786 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1720 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 1787 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1788 /*xcpt? */ false, false }, 1721 1789 { { /*src2 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V6) } }, 1722 1790 { /*src1 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } }, … … 1724 1792 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 1725 1793 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE, 1726 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE }, 1794 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE, 1795 /*xcpt? */ false, false }, 1727 1796 { { /*src2 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V7), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V1) } }, 1728 1797 { /*src1 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2) } }, 1729 1798 { /* => */ { FP32_QNAN_V(0, 1), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2) } }, 1730 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,1799 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1731 1800 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1732 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 1801 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1802 /*xcpt? */ false, false }, 1733 1803 { { /*src2 */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0), FP32_QNAN_V(1, FP32_FRAC_V5) } }, 1734 1804 { /*src1 */ { FP32_1(0), FP32_1(1), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_NORM_V4(0), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1) } }, 1735 1805 { /* => */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_QNAN_V(1, FP32_FRAC_V5) } }, 1736 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1737 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1738 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 1806 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS, 1807 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS, 1808 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS, 1809 /*xcpt? */ false, false }, 1739 1810 { { /*src2 */ { FP32_SNAN(1), FP32_SNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0), FP32_SNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0), FP32_SNAN_V(1, FP32_FRAC_V5) } }, 1740 1811 { /*src1 */ { FP32_1(0), FP32_1(0), FP32_SNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1), FP32_SNAN_V(1, FP32_FRAC_V2), FP32_NORM_V4(0), FP32_SNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1) } }, 1741 1812 { /* => */ { FP32_QNAN_V(1, 1), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(1, FP32_FRAC_V2), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_QNAN_V(1, FP32_FRAC_V5) } }, 1742 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,1813 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1743 1814 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1744 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE },1745 1815 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 1816 /*xcpt? */ false, false }, 1746 1817 { { /*src2 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } }, 1747 1818 { /*src1 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } }, … … 1749 1820 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1750 1821 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1751 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN }, 1822 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1823 /*xcpt? */ false, false }, 1752 1824 { { /*src2 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } }, 1753 1825 { /*src1 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V4) } }, … … 1755 1827 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1756 1828 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1757 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 1829 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1830 /*xcpt? */ true, true }, 1758 1831 { { /*src2 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V6) } }, 1759 1832 { /*src1 */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } }, … … 1761 1834 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1762 1835 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE, 1763 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE }, 1836 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE, 1837 /*xcpt? */ true, true }, 1764 1838 { { /*src2 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V7), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V1) } }, 1765 1839 { /*src1 */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2) } }, … … 1767 1841 /*mxcsr:in */ X86_MXCSR_RC_UP, 1768 1842 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_IE, 1769 /*256:out */ X86_MXCSR_RC_UP | X86_MXCSR_IE }, 1843 /*256:out */ X86_MXCSR_RC_UP | X86_MXCSR_IE, 1844 /*xcpt? */ true, true }, 1770 1845 { { /*src2 */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0), FP32_QNAN_V(1, FP32_FRAC_V5) } }, 1771 1846 { /*src1 */ { FP32_1(0), FP32_1(1), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_NORM_V4(0), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1) } }, … … 1773 1848 /*mxcsr:in */ 0, 1774 1849 /*128:out */ 0, 1775 /*256:out */ 0 }, 1850 /*256:out */ 0, 1851 /*xcpt? */ false, false }, 1776 1852 { { /*src2 */ { FP32_SNAN(1), FP32_SNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0), FP32_SNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0), FP32_SNAN_V(1, FP32_FRAC_V5) } }, 1777 1853 { /*src1 */ { FP32_1(0), FP32_1(0), FP32_SNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1), FP32_SNAN_V(1, FP32_FRAC_V2), FP32_NORM_V4(0), FP32_SNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1) } }, … … 1779 1855 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 1780 1856 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1781 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 1857 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1858 /*xcpt? */ true, true }, 1782 1859 /** @todo Underflow, Precision; Rounding, FZ etc. */ 1783 1860 }; … … 1845 1922 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1846 1923 /*128:out */ X86_MXCSR_XCPT_MASK, 1847 /*256:out */ X86_MXCSR_XCPT_MASK }, 1924 /*256:out */ X86_MXCSR_XCPT_MASK, 1925 /*xcpt? */ false, false }, 1848 1926 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 1849 1927 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, … … 1851 1929 /*mxcsr:in */ X86_MXCSR_FZ, 1852 1930 /*128:out */ X86_MXCSR_FZ, 1853 /*256:out */ X86_MXCSR_FZ }, 1931 /*256:out */ X86_MXCSR_FZ, 1932 /*xcpt? */ false, false }, 1854 1933 { { /*src2 */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(0) } }, 1855 1934 { /*src1 */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(0) } }, … … 1857 1936 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN, 1858 1937 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN, 1859 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN }, 1938 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN, 1939 /*xcpt? */ false, false }, 1860 1940 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(1) } }, 1861 1941 { /*src1 */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(1) } }, … … 1863 1943 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 1864 1944 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 1865 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ }, 1945 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 1946 /*xcpt? */ false, false }, 1866 1947 { { /*src2 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(0) } }, 1867 1948 { /*src1 */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(0) } }, … … 1869 1950 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1870 1951 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1871 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO }, 1952 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1953 /*xcpt? */ false, false }, 1872 1954 /* 1873 1955 * Infinity. … … 1878 1960 /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM, 1879 1961 /*128:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE, 1880 /*256:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE }, 1962 /*256:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE, 1963 /*xcpt? */ true, true }, 1881 1964 { { /*src2 */ { FP64_0(0), FP64_INF(1), FP64_0(0), FP64_0(0) } }, 1882 1965 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(0), FP64_0(0) } }, … … 1884 1967 /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1885 1968 /*128:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE, 1886 /*256:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE }, 1969 /*256:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE, 1970 /*xcpt? */ true, true }, 1887 1971 { { /*src2 */ { FP64_0(0), FP64_INF(1), FP64_0(0), FP64_0(0) } }, 1888 1972 { /*src1 */ { FP64_0(0), FP64_INF(0), FP64_0(0), FP64_0(0) } }, … … 1890 1974 /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 1891 1975 /*128:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE, 1892 /*256:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE }, 1976 /*256:out */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE, 1977 /*xcpt? */ true, true }, 1893 1978 { { /*src2 */ { FP64_INF(0), FP64_INF(1), FP64_0(0), FP64_INF(1) } }, 1894 1979 { /*src1 */ { FP64_INF(1), FP64_INF(0), FP64_0(0), FP64_INF(0) } }, … … 1896 1981 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 1897 1982 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1898 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 1983 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1984 /*xcpt? */ false, false }, 1899 1985 { { /*src2 */ { FP64_V(0, 0, 0x3fd)/*0.25*/, FP64_0(1), FP64_0(0), FP64_INF(1) } }, 1900 1986 { /*src1 */ { FP64_V(0, 0, 0x3fe)/*0.50*/, FP64_0(1), FP64_0(0), FP64_INF(0) } }, … … 1902 1988 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 1903 1989 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 1904 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 1990 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 1991 /*xcpt? */ false, false }, 1905 1992 /* 1906 1993 * Overflow, Precision. … … 1911 1998 /*mxcsr:in */ 0, 1912 1999 /*128:out */ X86_MXCSR_OE, 1913 /*256:out */ X86_MXCSR_OE }, 2000 /*256:out */ X86_MXCSR_OE, 2001 /*xcpt? */ true, true }, 1914 2002 { { /*src2 */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_0(0), FP64_0(0) } }, 1915 2003 { /*src1 */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_0(0), FP64_0(0) } }, … … 1917 2005 /*mxcsr:in */ 0, 1918 2006 /*128:out */ X86_MXCSR_OE, 1919 /*256:out */ X86_MXCSR_OE }, 2007 /*256:out */ X86_MXCSR_OE, 2008 /*xcpt? */ true, true }, 1920 2009 { { /*src2 */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_0(0), FP64_NORM_MAX(0) } }, 1921 2010 { /*src1 */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_0(0), FP64_NORM_MAX(0) } }, … … 1923 2012 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ, 1924 2013 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE, 1925 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE }, 2014 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE, 2015 /*xcpt? */ false, false }, 1926 2016 { { /*src2 */ { FP64_NORM_MIN(1), FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_0(0) } }, 1927 2017 { /*src1 */ { FP64_NORM_MIN(1), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_0(0) } }, … … 1929 2019 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ, 1930 2020 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE, 1931 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE }, 2021 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE, 2022 /*xcpt? */ false, false }, 1932 2023 { { /*src2 */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } }, 1933 2024 { /*src1 */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } }, … … 1935 2026 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 1936 2027 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 1937 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE }, 2028 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 2029 /*xcpt? */ false, false }, 1938 2030 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1) } }, 1939 2031 { /*src1 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_MAX(1), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1) } }, … … 1941 2033 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 1942 2034 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 1943 /*256:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE }, 2035 /*256:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 2036 /*xcpt? */ true, true }, 1944 2037 /** @todo Why does the below on cause PE?! */ 1945 2038 { { /*src2 */ { FP64_V(0, 0xc000000000000, 0x3ff)/* 1.75*/, FP64_NORM_MAX(0), FP64_0(0), FP64_V(0, 0, 0x3fd)/*0.25*/ } }, … … 1948 2041 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1949 2042 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 1950 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_PE }, 2043 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_PE, 2044 /*xcpt? */ false, false }, 1951 2045 /* 1952 2046 * Normals. … … 1957 2051 /*mxcsr:in */ 0, 1958 2052 /*128:out */ 0, 1959 /*256:out */ 0 }, 2053 /*256:out */ 0, 2054 /*xcpt? */ false, false }, 1960 2055 { { /*src2 */ { FP64_V(0, 0, 0x409)/*1024*/, FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_0(0), FP64_0(0) } }, 1961 2056 { /*src1 */ { FP64_V(0, 0, 0x408)/* 512*/, FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_0(0), FP64_0(0) } }, … … 1963 2058 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 1964 2059 /*128:out */ X86_MXCSR_XCPT_MASK, 1965 /*256:out */ X86_MXCSR_XCPT_MASK }, 2060 /*256:out */ X86_MXCSR_XCPT_MASK, 2061 /*xcpt? */ false, false }, 1966 2062 { { /*src2 */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_0(0), FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/ } }, 1967 2063 { /*src1 */ { FP64_V(1, 0x26580b4800000, 0x41d)/*-1234567890*/, FP64_V(1, 0x9000000000000, 0x405)/* -100*/, FP64_0(0), FP64_V(0, 0xd6eca42000000, 0x419)/* 123450000.5*/ } }, … … 1969 2065 /*mxcsr:in */ 0, 1970 2066 /*128:out */ 0, 1971 /*256:out */ 0 }, 2067 /*256:out */ 0, 2068 /*xcpt? */ false, false }, 1972 2069 { { /*src2 */ { FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_NORM_SAFE_INT_MAX(0), FP64_0(0), FP64_0(0) } }, 1973 2070 { /*src1 */ { FP64_1(0), FP64_1(1), FP64_0(0), FP64_0(0) } }, … … 1975 2072 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1976 2073 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 1977 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO }, 2074 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 2075 /*xcpt? */ false, false }, 1978 2076 { { /*src2 */ { FP64_NORM_SAFE_INT_MAX(0), FP64_1(1), FP64_0(0), FP64_0(0) } }, 1979 2077 { /*src1 */ { FP64_1(0), FP64_NORM_SAFE_INT_MAX(1), FP64_0(0), FP64_0(0) } }, … … 1981 2079 /*mxcsr:in */ X86_MXCSR_FZ, 1982 2080 /*128:out */ X86_MXCSR_FZ, 1983 /*256:out */ X86_MXCSR_FZ }, 2081 /*256:out */ X86_MXCSR_FZ, 2082 /*xcpt? */ false, false }, 1984 2083 { { /*src2 */ { FP64_NORM_SAFE_INT_MIN(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(0) } }, 1985 2084 { /*src1 */ { FP64_NORM_SAFE_INT_MIN(1), FP64_NORM_SAFE_INT_MIN(1), FP64_0(0), FP64_NORM_SAFE_INT_MIN(0) } }, … … 1987 2086 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1988 2087 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 1989 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN }, 2088 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 2089 /*xcpt? */ false, false }, 1990 2090 { { /*src2 */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_0(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(1) } }, 1991 2091 { /*src1 */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_0(0), FP64_0(0), FP64_NORM_SAFE_INT_MIN(1) } }, … … 1993 2093 /*mxcsr:in */ X86_MXCSR_RC_UP, 1994 2094 /*128:out */ X86_MXCSR_RC_UP, 1995 /*256:out */ X86_MXCSR_RC_UP }, 2095 /*256:out */ X86_MXCSR_RC_UP, 2096 /*xcpt? */ false, false }, 1996 2097 /* 1997 2098 * Denormals. … … 2002 2103 /*mxcsr:in */ 0, 2003 2104 /*128:out */ X86_MXCSR_DE, 2004 /*256:out */ X86_MXCSR_DE }, 2105 /*256:out */ X86_MXCSR_DE, 2106 /*xcpt? */ true, true }, 2005 2107 { { /*src2 */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } }, 2006 2108 { /*src1 */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0) } }, … … 2008 2110 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2009 2111 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 2010 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE }, 2112 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE, 2113 /*xcpt? */ false, false }, 2011 2114 { { /*src2 */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, 2012 2115 { /*src1 */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } }, … … 2014 2117 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 2015 2118 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 2016 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP }, 2119 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 2120 /*xcpt? */ false, false }, 2017 2121 /** @todo More denormals; Underflow, Precision; Rounding, FZ etc. */ 2018 2122 /* … … 2024 2128 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2025 2129 /*128:out */ X86_MXCSR_XCPT_MASK, 2026 /*256:out */ X86_MXCSR_XCPT_MASK }, 2130 /*256:out */ X86_MXCSR_XCPT_MASK, 2131 /*xcpt? */ false, false }, 2027 2132 { { /*src2 */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2) } }, 2028 2133 { /*src1 */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1) } }, … … 2030 2135 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2031 2136 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2032 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 2137 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2138 /*xcpt? */ false, false }, 2033 2139 { { /*src2 */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V1) } }, 2034 2140 { /*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) } }, … … 2036 2142 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2037 2143 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2038 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 2144 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2145 /*xcpt? */ false, false }, 2039 2146 { { /*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_V2) } }, 2040 2147 { /*src1 */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V0) } }, … … 2042 2149 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2043 2150 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2044 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 2151 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2152 /*xcpt? */ false, false }, 2045 2153 { { /*src2 */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1), FP64_QNAN_V(0, FP64_FRAC_V1) } }, 2046 2154 { /*src1 */ { FP64_1(0), FP64_1(1), FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1) } }, … … 2048 2156 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2049 2157 /*128:out */ X86_MXCSR_XCPT_MASK, 2050 /*256:out */ X86_MXCSR_XCPT_MASK }, 2158 /*256:out */ X86_MXCSR_XCPT_MASK, 2159 /*xcpt? */ false, false }, 2051 2160 { { /*src2 */ { FP64_SNAN(1), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1), FP64_SNAN_V(0, FP64_FRAC_V1) } }, 2052 2161 { /*src1 */ { FP64_1(0), FP64_1(0), FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1) } }, … … 2054 2163 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 2055 2164 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2056 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE }, 2165 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE, 2166 /*xcpt? */ false, false }, 2057 2167 { { /*src2 */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2) } }, 2058 2168 { /*src1 */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3) } }, … … 2060 2170 /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 2061 2171 /*128:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 2062 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN }, 2172 /*256:out */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 2173 /*xcpt? */ false, false }, 2063 2174 { { /*src2 */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP32_FRAC_V1) } }, 2064 2175 { /*src1 */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP32_FRAC_V2) } }, … … 2066 2177 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 2067 2178 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 2068 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 2179 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 2180 /*xcpt? */ true, true }, 2069 2181 { { /*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) } }, 2070 2182 { /*src1 */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } }, … … 2072 2184 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 2073 2185 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 2074 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 2186 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 2187 /*xcpt? */ true, true }, 2075 2188 { { /*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_V2) } }, 2076 2189 { /*src1 */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } }, … … 2078 2191 /*mxcsr:in */ X86_MXCSR_RC_UP, 2079 2192 /*128:out */ X86_MXCSR_RC_UP | X86_MXCSR_IE, 2080 /*256:out */ X86_MXCSR_RC_UP | X86_MXCSR_IE }, 2193 /*256:out */ X86_MXCSR_RC_UP | X86_MXCSR_IE, 2194 /*xcpt? */ true, true }, 2081 2195 { { /*src2 */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1), FP64_QNAN_V(0, FP64_FRAC_V1) } }, 2082 2196 { /*src1 */ { FP64_1(0), FP64_1(1), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_NORM_V2(1) } }, … … 2084 2198 /*mxcsr:in */ X86_MXCSR_RC_DOWN, 2085 2199 /*128:out */ X86_MXCSR_RC_DOWN, 2086 /*256:out */ X86_MXCSR_RC_DOWN }, 2200 /*256:out */ X86_MXCSR_RC_DOWN, 2201 /*xcpt? */ false, false }, 2087 2202 { { /*src2 */ { FP64_SNAN(1), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1), FP64_SNAN_V(0, FP64_FRAC_V2) } }, 2088 2203 { /*src1 */ { FP64_1(0), FP64_1(0), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_NORM_V2(1) } }, … … 2090 2205 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 2091 2206 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 2092 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE }, 2207 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE, 2208 /*xcpt? */ true, true }, 2093 2209 }; 2094 2210 … … 4942 5058 { "[v]addps", bs3CpuInstr4_v_addps, 0 }, 4943 5059 { "[v]addpd", bs3CpuInstr4_v_addpd, 0 }, 5060 # if 0 4944 5061 { "[v]addss", bs3CpuInstr4_v_addss, 0 }, 4945 # if 04946 5062 { "[v]haddps", bs3CpuInstr4_v_haddps, 0 }, 4947 5063 { "[v]subps", bs3CpuInstr4_v_subps, 0 },
Note:
See TracChangeset
for help on using the changeset viewer.