VirtualBox

Ignore:
Timestamp:
Oct 7, 2024 9:54:35 AM (4 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: adapt addsd, subsd, mulsd, divsd to auto-MXCSR; bugref:10658

  • FP64_TABLE_D1_SD_INVALIDS: fix 1 previously-masked wrong output value
  • addsd: fix 4 previously-masked wrong output values
  • addsd: split 2 entries, using FIXED for complex DM vs UM vs UE behavior
  • addsd: split 3 entries, using FIXED for complex OM vs PE behavior
  • subsd: fix 8 previously-masked wrong output values
  • subsd: split 1 entry, using FIXED for complex DM vs UM vs UE behavior
  • subsd: split 4 entries, using FIXED for complex OM vs PE behavior
  • mulsd: split 3 entries, using FIXED for complex DM vs UM vs PE vs UE behavior
  • mulsd: remove 1 entry made redundant by mask randomization
  • divsd: fix 1 previously-masked wrong output value
  • divsd: split 2 entries, using FIXED for complex DM vs OM vs PE behavior
  • divsd: split 2 entries, using FIXED for complex DM vs UM vs PE behavior
  • divsd: remove 2 entries made redundant by mask randomization

Noted: learned that many (?most? ?all?) of the times I've used
'BS3_MXCSR_PE_FUZZY', I could actually have analyzed and split the
entries into sub-entries which would be deterministic. Will eventually
revisit past work to do that.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32

    r106220 r106223  
    964964              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    965965              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
    966               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     966              /*256:out  */ -1,                                                                           \
    967967              /*xcpt?    */ false, false },                                                               \
    968968          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_QNAN_V1(1), FP64_QNAN_V2(0), FP64_INF(0)  } },       \
     
    971971              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    972972              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
    973               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     973              /*256:out  */ -1,                                                                           \
    974974              /*xcpt?    */ false, false },                                                               \
    975975          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_INF(1)  } },        \
     
    978978              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    979979              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
    980               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     980              /*256:out  */ -1,                                                                           \
    981981              /*xcpt?    */ false, false },                                                               \
    982982    /* QNan, SNan (Masked). */                                                                            \
     
    986986              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    987987              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    988               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     988              /*256:out  */ -1,                                                                           \
    989989              /*xcpt?    */ false, false },                                                               \
    990990          { { /*src2     */ { FP64_QNAN_MAX(0),  FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     
    993993              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    994994              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    995               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     995              /*256:out  */ -1,                                                                           \
    996996              /*xcpt?    */ false, false },                                                               \
    997997          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_INF(0)  } },      \
     
    10001000              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10011001              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1002               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1002              /*256:out  */ -1,                                                                           \
    10031003              /*xcpt?    */ false, false },                                                               \
    10041004    /* SNan, QNan (Masked). */                                                                            \
     
    10081008              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10091009              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1010               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1010              /*256:out  */ -1,                                                                           \
    10111011              /*xcpt?    */ false, false },                                                               \
    10121012          { { /*src2     */ { FP64_SNAN_MAX(0), FP64_SNAN_MAX(1), FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },   \
     
    10151015              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10161016              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1017               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1017              /*256:out  */ -1,                                                                           \
    10181018              /*xcpt?    */ false, false },                                                               \
    10191019          { { /*src2     */ { FP64_SNAN_V0(0), FP64_SNAN_MAX(0), FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },    \
     
    10221022              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10231023              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1024               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1024              /*256:out  */ -1,                                                                           \
    10251025              /*xcpt?    */ false, false },                                                               \
    10261026    /* SNan, SNan (Masked). */                                                                            \
     
    10301030              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10311031              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1032               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1032              /*256:out  */ -1,                                                                           \
    10331033              /*xcpt?    */ false, false },                                                               \
    10341034          { { /*src2     */ { FP64_SNAN(0),     FP64_SNAN_V2(0), FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },    \
     
    10371037              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10381038              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1039               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1039              /*256:out  */ -1,                                                                           \
    10401040              /*xcpt?    */ false, false },                                                               \
    10411041          { { /*src2     */ { FP64_SNAN_V1(0), FP64_SNAN_V2(0), FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },     \
     
    10441044              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10451045              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1046               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1046              /*256:out  */ -1,                                                                           \
    10471047              /*xcpt?    */ false, false },                                                               \
    10481048    /* QNan, Norm FP (Masked). */                                                                         \
     
    10521052              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10531053              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
    1054               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1054              /*256:out  */ -1,                                                                           \
    10551055              /*xcpt?    */ false, false },                                                               \
    10561056    /* SNan, Norm FP (Masked). */                                                                         \
     
    10601060              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
    10611061              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
    1062               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1062              /*256:out  */ -1,                                                                           \
    10631063              /*xcpt?    */ false, false },                                                               \
    10641064    /* QNan, QNan (Unmasked). */                                                                          \
     
    10681068              /*mxcsr:in */ 0,                                                                            \
    10691069              /*128:out  */ 0,                                                                            \
    1070               /*256:out  */ 0,                                                                            \
     1070              /*256:out  */ -1,                                                                           \
    10711071              /*xcpt?    */ false, false },                                                               \
    10721072          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },    \
     
    10751075              /*mxcsr:in */ 0,                                                                            \
    10761076              /*128:out  */ 0,                                                                            \
    1077               /*256:out  */ 0,                                                                            \
     1077              /*256:out  */ -1,                                                                           \
    10781078              /*xcpt?    */ false, false },                                                               \
    10791079          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },     \
     
    10821082              /*mxcsr:in */ 0,                                                                            \
    10831083              /*128:out  */ 0,                                                                            \
    1084               /*256:out  */ 0,                                                                            \
     1084              /*256:out  */ -1,                                                                           \
    10851085              /*xcpt?    */ false, false },                                                               \
    1086                                                                                                           \
    10871086    /* QNan, SNan (Unmasked). */                                                                          \
    10881087          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },   \
    10891088            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V2(1), FP64_SNAN_V3(1), FP64_SNAN_V2(0) } },   \
    1090             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V2(1), FP64_SNAN_V3(1), FP64_SNAN_V2(0) } },   \
     1089            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_V2(1), FP64_SNAN_V3(1), FP64_SNAN_V2(0) } },   \
    10911090              /*mxcsr:in */ 0,                                                                            \
    10921091              /*128:out  */ X86_MXCSR_IE,                                                                 \
    1093               /*256:out  */ X86_MXCSR_IE,                                                                 \
     1092              /*256:out  */ -1,                                                                           \
    10941093              /*xcpt?    */ true, true },                                                                 \
    10951094          { { /*src2     */ { FP64_QNAN_MAX(0),  FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     
    10981097              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                             \
    10991098              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,              \
    1100               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,              \
     1099              /*256:out  */ -1,                                                                           \
    11011100              /*xcpt?    */ true, true },                                                                 \
    11021101          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } },   \
     
    11051104              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                             \
    11061105              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                              \
    1107               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                              \
     1106              /*256:out  */ -1,                                                                           \
    11081107              /*xcpt?    */ true, true },                                                                 \
    11091108    /* SNan, QNan (Unmasked). */                                                                          \
     
    11131112              /*mxcsr:in */ X86_MXCSR_DAZ,                                                                \
    11141113              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                 \
    1115               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                 \
     1114              /*256:out  */ -1,                                                                           \
    11161115              /*xcpt?    */ true, true },                                                                 \
    11171116          { { /*src2     */ { FP64_SNAN_MAX(0), FP64_SNAN_MAX(0), FP64_SNAN_V1(0), FP64_SNAN_V1(1) } },   \
     
    11201119              /*mxcsr:in */ X86_MXCSR_RC_UP,                                                              \
    11211120              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                               \
    1122               /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                               \
     1121              /*256:out  */ -1,                                                                           \
    11231122              /*xcpt?    */ true, true },                                                                 \
    11241123          { { /*src2     */ { FP64_SNAN_V0(0), FP64_SNAN_MAX(0), FP64_SNAN_V1(0), FP64_SNAN_V1(1) } },    \
     
    11271126              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                             \
    11281127              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                              \
    1129               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                              \
     1128              /*256:out  */ -1,                                                                           \
    11301129              /*xcpt?    */ true, true },                                                                 \
    11311130    /* SNan, SNan (Unmasked). */                                                                          \
     
    11351134              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,                                                 \
    11361135              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                  \
    1137               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                  \
     1136              /*256:out  */ -1,                                                                           \
    11381137              /*xcpt?    */ true, true },                                                                 \
    11391138          { { /*src2     */ { FP64_SNAN(0),     FP64_SNAN_V2(0), FP64_SNAN_V1(0), FP64_SNAN_V2(1) } },    \
     
    11421141              /*mxcsr:in */ X86_MXCSR_RC_ZERO,                                                            \
    11431142              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                             \
    1144               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                             \
     1143              /*256:out  */ -1,                                                                           \
    11451144              /*xcpt?    */ true, true },                                                                 \
    11461145          { { /*src2     */ { FP64_SNAN_V1(0), FP64_SNAN_V2(0), FP64_SNAN_V0(1), FP64_SNAN_V2(0) } },     \
     
    11491148              /*mxcsr:in */ 0,                                                                            \
    11501149              /*128:out  */ X86_MXCSR_IE,                                                                 \
    1151               /*256:out  */ X86_MXCSR_IE,                                                                 \
     1150              /*256:out  */ -1,                                                                           \
    11521151              /*xcpt?    */ true, true },                                                                 \
    11531152    /* QNan, Norm FP (Unmasked). */                                                                       \
     
    11571156              /*mxcsr:in */ X86_MXCSR_FZ,                                                                 \
    11581157              /*128:out  */ X86_MXCSR_FZ,                                                                 \
    1159               /*256:out  */ X86_MXCSR_FZ,                                                                 \
     1158              /*256:out  */ -1,                                                                           \
    11601159              /*xcpt?    */ false, false },                                                               \
    11611160    /* SNan, Norm FP (Unmasked). */                                                                       \
     
    11651164              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                             \
    11661165              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,              \
    1167               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,              \
     1166              /*256:out  */ -1,                                                                           \
    11681167              /*xcpt?    */ true, true },                                                                 \
    11691168
     
    45444543              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    45454544              /*128:out  */ X86_MXCSR_XCPT_MASK,
    4546               /*256:out  */ X86_MXCSR_XCPT_MASK,
     4545              /*256:out  */ -1,
    45474546              /*xcpt?    */ false, false },
    45484547          { { /*src2     */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    45514550              /*mxcsr:in */ 0,
    45524551              /*128:out  */ 0,
    4553               /*256:out  */ 0,
     4552              /*256:out  */ -1,
    45544553              /*xcpt?    */ false, false },
    45554554          { { /*src2     */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     
    45584557              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    45594558              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4560               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4559              /*256:out  */ -1,
    45614560              /*xcpt?    */ false, false },
    45624561          { { /*src2     */ { FP64_0(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    45654564              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    45664565              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    4567               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     4566              /*256:out  */ -1,
    45684567              /*xcpt?    */ false, false },
    45694568          { { /*src2     */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    45724571              /*mxcsr:in */ X86_MXCSR_FZ,
    45734572              /*128:out  */ X86_MXCSR_FZ,
    4574               /*256:out  */ X86_MXCSR_FZ,
     4573              /*256:out  */ -1,
    45754574              /*xcpt?    */ false, false },
    45764575          { { /*src2     */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    45794578              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
    45804579              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
    4581               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
     4580              /*256:out  */ -1,
    45824581              /*xcpt?    */ false, false },
    45834582    /*
     
    45864585    /* 6*/{ { /*src2     */ { FP64_INF(0),  FP64_0(0), FP64_0(0), FP64_0(0) } },
    45874586            { /*src1     */ { FP64_INF(1),  FP64_0(0), FP64_0(0), FP64_0(0) } },
    4588             { /* =>      */ { FP64_0(0),    FP64_0(0), FP64_0(0), FP64_0(0) } },
     4587            { /* =>      */ { FP64_QNAN(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    45894588              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM,
    45904589              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE,
    4591               /*256:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE,
     4590              /*256:out  */ -1,
    45924591              /*xcpt?    */ true, true },
    45934592          { { /*src2     */ { FP64_INF(0),  FP64_RAND_V1(0), FP64_RAND_V2(0), FP32_RAND_V3(1) } },
    45944593            { /*src1     */ { FP64_INF(1),  FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
    4595             { /* =>      */ { FP64_0(0),    FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
     4594            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
    45964595              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    45974596              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    4598               /*256:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     4597              /*256:out  */ -1,
    45994598              /*xcpt?    */ true, true },
    46004599          { { /*src2     */ { FP64_INF(1),  FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    46034602              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    46044603              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
    4605               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
     4604              /*256:out  */ -1,
    46064605              /*xcpt?    */ false, false },
    46074606          { { /*src2     */ { FP64_INF(0),  FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    46104609              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    46114610              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
    4612               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     4611              /*256:out  */ -1,
    46134612              /*xcpt?    */ false, false },
    46144613          { { /*src2     */ { FP64_INF(0),  FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(1) } },
    46154614            { /*src1     */ { FP64_INF(1),  FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
    4616             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
     4615            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
    46174616              /*mxcsr:in */ X86_MXCSR_FZ,
    46184617              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
    4619               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
     4618              /*256:out  */ -1,
    46204619              /*xcpt?    */ true, true },
    46214620          { { /*src2     */ { FP64_INF(1),  FP64_0(0), FP64_0(0), FP64_RAND_V1(1) } },
     
    46244623              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    46254624              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    4626               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     4625              /*256:out  */ -1,
    46274626              /*xcpt?    */ true, true },
    46284627    /*
     
    46314630    /*12*/{ { /*src2     */ { FP64_NORM_MAX(1), FP64_0(0), FP64_0(0), FP64_RAND_V1(1) } },
    46324631            { /*src1     */ { FP64_NORM_MAX(1), FP64_0(1), FP64_0(1), FP64_RAND_V1(1) } },
    4633             { /* =>      */ { FP64_0(0),        FP64_0(1), FP64_0(1), FP64_RAND_V1(1) } },
    4634               /*mxcsr:in */ 0,
    4635               /*128:out  */ X86_MXCSR_OE,
    4636               /*256:out  */ X86_MXCSR_OE,
     4632            { /* =>      */ { FP64_INF(1),      FP64_0(1), FP64_0(1), FP64_RAND_V1(1) } },
     4633              /*mxcsr:in */ 0,
     4634              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4635              /*256:out  */ -1,
     4636              /*xcpt?    */ true, true },
     4637          { { /*src2     */ { FP64_NORM_MAX(1), FP64_0(0), FP64_0(0), FP64_RAND_V1(1) } },
     4638            { /*src1     */ { FP64_NORM_MAX(1), FP64_0(1), FP64_0(1), FP64_RAND_V1(1) } },
     4639            { /* =>      */ { FP64_INF(1),      FP64_0(1), FP64_0(1), FP64_RAND_V1(1) } },
     4640              /*mxcsr:in */ X86_MXCSR_OM,
     4641              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     4642              /*256:out  */ -1,
    46374643              /*xcpt?    */ true, true },
    46384644          { { /*src2     */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
    46394645            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    46404646            { /* =>      */ { FP64_INF(0),      FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    4641               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
    4642               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    4643               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     4647              /*mxcsr:in */ 0,
     4648              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4649              /*256:out  */ -1,
     4650              /*xcpt?    */ false, false },
     4651          { { /*src2     */ { FP64_NORM_MAX(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     4652            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     4653            { /* =>      */ { FP64_INF(0),      FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     4654              /*mxcsr:in */ X86_MXCSR_OM,
     4655              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     4656              /*256:out  */ -1,
    46444657              /*xcpt?    */ false, false },
    46454658          { { /*src2     */ { FP64_RAND_V0(1),  FP64_RAND_V1(0), FP64_RAND_V1(0), FP64_RAND_V3(1) } },
     
    46484661              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM,
    46494662              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_PE,
    4650               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_PE,
     4663              /*256:out  */ -1,
    46514664              /*xcpt?    */ false, false },
    46524665          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
    46534666            { /*src1     */ { FP64_NORM_MAX(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    46544667            { /* =>      */ { FP64_INF(1),      FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    4655               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
    4656               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    4657               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     4668              /*mxcsr:in */ 0,
     4669              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4670              /*256:out  */ -1,
     4671              /*xcpt?    */ false, false },
     4672          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     4673            { /*src1     */ { FP64_NORM_MAX(1), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     4674            { /* =>      */ { FP64_INF(1),      FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     4675              /*mxcsr:in */ X86_MXCSR_OM,
     4676              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     4677              /*256:out  */ -1,
    46584678              /*xcpt?    */ false, false },
    46594679          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                            FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V0(1) } },
     
    46624682              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    46634683              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    4664               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     4684              /*256:out  */ -1,
    46654685              /*xcpt?    */ true, true },
    46664686          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(1),                            FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
     
    46694689              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    46704690              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    4671               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     4691              /*256:out  */ -1,
    46724692              /*xcpt?    */ true, true },
    46734693    /*
    46744694     * Normals.
    46754695     */
    4676     /*18*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_V1(0), FP64_0(0), FP64_SNAN(0) } },
     4696    /*19*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_V1(0), FP64_0(0), FP64_SNAN(0) } },
    46774697            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_V1(1), FP64_0(0), FP64_SNAN(1) } },
    46784698            { /* =>      */ { FP64_0(0),        FP64_NORM_V1(1), FP64_0(0), FP64_SNAN(1) } },
    46794699              /*mxcsr:in */ 0,
    46804700              /*128:out  */ 0,
    4681               /*256:out  */ 0,
     4701              /*256:out  */ -1,
    46824702              /*xcpt?    */ false, false },
    46834703          { { /*src2     */ { FP64_V(0, 0,               0x409)/*1024*/, FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     
    46864706              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    46874707              /*128:out  */ X86_MXCSR_XCPT_MASK,
    4688               /*256:out  */ X86_MXCSR_XCPT_MASK,
     4708              /*256:out  */ -1,
    46894709              /*xcpt?    */ false, false },
    46904710          { { /*src2     */ { FP64_V(0, 0xb800000000000, 0x404)/*55*/, FP64_RAND_V2(1), FP64_RAND_V1(0), FP64_RAND_V0(1) } },
     
    46934713              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    46944714              /*128:out  */ X86_MXCSR_XCPT_MASK,
    4695               /*256:out  */ X86_MXCSR_XCPT_MASK,
     4715              /*256:out  */ -1,
    46964716              /*xcpt?    */ false, false },
    46974717          { { /*src2     */ { FP64_V(0, 0x26580b4800000, 0x41d)/* 1234567890*/, FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    47004720              /*mxcsr:in */ 0,
    47014721              /*128:out  */ 0,
    4702               /*256:out  */ 0,
     4722              /*256:out  */ -1,
    47034723              /*xcpt?    */ false, false },
    47044724          { { /*src2     */ { FP64_V(0, 0xd6f3458800000, 0x41c)/*987654321*/, FP64_RAND_V2(1), FP64_RAND_V1(0), FP64_RAND_V0(1) } },
     
    47074727              /*mxcsr:in */ 0,
    47084728              /*128:out  */ 0,
    4709               /*256:out  */ 0,
     4729              /*256:out  */ -1,
    47104730              /*xcpt?    */ false, false },
    47114731          { { /*src2     */ { FP64_V(0, 0xcf0033a34f337, 0x432)/*4072598000007579.5*/, FP64_RAND_V0(1), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     
    47144734              /*mxcsr:in */ 0,
    47154735              /*128:out  */ 0,
    4716               /*256:out  */ 0,
     4736              /*256:out  */ -1,
    47174737              /*xcpt?    */ false, false },
    47184738          { { /*src2     */ { FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     
    47214741              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    47224742              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    4723               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     4743              /*256:out  */ -1,
    47244744              /*xcpt?    */ false, false },
    47254745          { { /*src2     */ { FP64_NORM_SAFE_INT_MAX(0),               FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(0) } },
     
    47284748              /*mxcsr:in */ X86_MXCSR_FZ,
    47294749              /*128:out  */ X86_MXCSR_FZ,
    4730               /*256:out  */ X86_MXCSR_FZ,
     4750              /*256:out  */ -1,
    47314751              /*xcpt?    */ false, false },
    47324752          { { /*src2     */ { FP64_1(1),                               FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     
    47354755              /*mxcsr:in */ X86_MXCSR_FZ,
    47364756              /*128:out  */ X86_MXCSR_FZ,
    4737               /*256:out  */ X86_MXCSR_FZ,
     4757              /*256:out  */ -1,
    47384758              /*xcpt?    */ false, false },
    47394759          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0), FP64_RAND_V2(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     
    47424762              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    47434763              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4744               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4764              /*256:out  */ -1,
    47454765              /*xcpt?    */ false, false },
    47464766          { { /*src2     */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
     
    47494769              /*mxcsr:in */ X86_MXCSR_RC_UP,
    47504770              /*128:out  */ X86_MXCSR_RC_UP,
    4751               /*256:out  */ X86_MXCSR_RC_UP,
     4771              /*256:out  */ -1,
    47524772              /*xcpt?    */ false, false },
    47534773    /*
    47544774     * Denormals.
    47554775     */
    4756     /*29*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_SNAN(0), FP64_SNAN(0), FP64_QNAN(0) } },
     4776    /*32*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_SNAN(0), FP64_SNAN(0), FP64_QNAN(0) } },
    47574777            { /*src1     */ { FP64_0(0),          FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } },
    47584778            { /* =>      */ { FP64_0(0),          FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } },
    47594779              /*mxcsr:in */ 0,
    4760               /*128:out  */ X86_MXCSR_DE,
    4761               /*256:out  */ X86_MXCSR_DE,
     4780              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     4781              /*256:out  */ -1,
     4782              /*xcpt?    */ true, true },
     4783#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out *AND* different output values */
     4784 /*--|33*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_SNAN(0), FP64_SNAN(0), FP64_QNAN(0) } },
     4785            { /*src1     */ { FP64_0(0),          FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } },
     4786            { /* =>      */ { FP64_0(0),          FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } } /* result on HW (i7-10700) */,
     4787    // IEM: { /* =>      */ { FP64_DENORM_MAX(0), FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } } /* result on IEM */,
     4788              /*mxcsr:in */ X86_MXCSR_DM,
     4789              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4790              /*256:out  */ -1,
     4791              /*xcpt?    */ true, true },
     4792#endif /* TODO_X86_MXCSR_UE_IEM */
     4793 /*33|34*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_SNAN(0), FP64_SNAN(0), FP64_QNAN(0) } },
     4794            { /*src1     */ { FP64_0(0),          FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } },
     4795            { /* =>      */ { FP64_DENORM_MAX(0), FP64_SNAN(0), FP64_QNAN(1), FP64_SNAN(1) } },
     4796              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     4797              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4798              /*256:out  */ -1,
    47624799              /*xcpt?    */ true, true },
    47634800          { { /*src2     */ { FP64_0(0),          FP64_SNAN(1), FP64_INF(0),  FP64_SNAN(0) } },
    47644801            { /*src1     */ { FP64_DENORM_MAX(0), FP64_INF(0),  FP64_SNAN(1), FP64_QNAN(0) } },
    47654802            { /* =>      */ { FP64_DENORM_MAX(0), FP64_INF(0),  FP64_SNAN(1), FP64_QNAN(0) } },
    4766               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    4767               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    4768               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     4803              /*mxcsr:in */ 0,
     4804              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     4805              /*256:out  */ -1,
     4806              /*xcpt?    */ false, false },
     4807#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out */
     4808 /*--|36*/{ { /*src2     */ { FP64_0(0),          FP64_SNAN(1), FP64_INF(0),  FP64_SNAN(0) } },
     4809            { /*src1     */ { FP64_DENORM_MAX(0), FP64_INF(0),  FP64_SNAN(1), FP64_QNAN(0) } },
     4810            { /* =>      */ { FP64_DENORM_MAX(0), FP64_INF(0),  FP64_SNAN(1), FP64_QNAN(0) } },
     4811              /*mxcsr:in */ X86_MXCSR_DM,
     4812              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4813              /*256:out  */ -1,
     4814              /*xcpt?    */ false, false },
     4815#endif /* TODO_X86_MXCSR_UE_IEM */
     4816 /*35|37*/{ { /*src2     */ { FP64_0(0),          FP64_SNAN(1), FP64_INF(0),  FP64_SNAN(0) } },
     4817            { /*src1     */ { FP64_DENORM_MAX(0), FP64_INF(0),  FP64_SNAN(1), FP64_QNAN(0) } },
     4818            { /* =>      */ { FP64_DENORM_MAX(0), FP64_INF(0),  FP64_SNAN(1), FP64_QNAN(0) } },
     4819              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     4820              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4821              /*256:out  */ -1,
    47694822              /*xcpt?    */ false, false },
    47704823          { { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
     
    47734826              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    47744827              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4775               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4828              /*256:out  */ -1,
    47764829              /*xcpt?    */ false, false },
    47774830          /** @todo More Denormals. */
     
    47794832     * Invalids.
    47804833     */
    4781     /*32*/ FP64_TABLE_D1_SD_INVALIDS
     4834 /*37|39*/ FP64_TABLE_D1_SD_INVALIDS
    47824835    /** @todo Underflow, Precision; Rounding; FZ etc. */
    47834836    };
     
    48184871    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    48194872    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    4820     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     4873    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    48214874                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    48224875}
     
    65436596              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    65446597              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6545               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6598              /*256:out  */ -1,
    65466599              /*xcpt?    */ false, false },
    65476600          { { /*src2     */ { FP64_0(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    65506603              /*mxcsr:in */ 0,
    65516604              /*128:out  */ 0,
    6552               /*256:out  */ 0,
     6605              /*256:out  */ -1,
    65536606              /*xcpt?    */ false, false },
    65546607          { { /*src2     */ { FP64_0(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     
    65576610              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    65586611              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    6559               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     6612              /*256:out  */ -1,
    65606613              /*xcpt?    */ false, false },
    65616614          { { /*src2     */ { FP64_0(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    65646617              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    65656618              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    6566               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     6619              /*256:out  */ -1,
    65676620              /*xcpt?    */ false, false },
    65686621          { { /*src2     */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    65716624              /*mxcsr:in */ X86_MXCSR_FZ,
    65726625              /*128:out  */ X86_MXCSR_FZ,
    6573               /*256:out  */ X86_MXCSR_FZ,
     6626              /*256:out  */ -1,
    65746627              /*xcpt?    */ false, false },
    65756628          { { /*src2     */ { FP64_0(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    65786631              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
    65796632              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
    6580               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
     6633              /*256:out  */ -1,
    65816634              /*xcpt?    */ false, false },
    65826635    /*
    65836636     * Infinity.
    65846637     */
    6585     /* 6*/{ { /*src2     */ { FP64_INF(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    6586             { /*src1     */ { FP64_INF(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    6587             { /* =>      */ { FP64_0(0),  FP64_0(0), FP64_0(0), FP64_0(0) } },
     6638    /* 6*/{ { /*src2     */ { FP64_INF(1),  FP64_0(0), FP64_0(0), FP64_0(0) } },
     6639            { /*src1     */ { FP64_INF(1),  FP64_0(0), FP64_0(0), FP64_0(0) } },
     6640            { /* =>      */ { FP64_QNAN(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    65886641              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM,
    65896642              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE,
    6590               /*256:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE,
    6591               /*xcpt?    */ true, true },
    6592           { { /*src2     */ { FP64_INF(1), FP64_RAND_V1(0), FP64_RAND_V2(0), FP32_RAND_V3(1) } },
    6593             { /*src1     */ { FP64_INF(1), FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
    6594             { /* =>      */ { FP64_0(0),  FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
     6643              /*256:out  */ -1,
     6644              /*xcpt?    */ true, true },
     6645          { { /*src2     */ { FP64_INF(1),  FP64_RAND_V1(0), FP64_RAND_V2(0), FP32_RAND_V3(1) } },
     6646            { /*src1     */ { FP64_INF(1),  FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
     6647            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V0(0), FP64_RAND_V1(1), FP32_RAND_V1(1) } },
    65956648              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    65966649              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    6597               /*256:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     6650              /*256:out  */ -1,
    65986651              /*xcpt?    */ true, true },
    65996652          { { /*src2     */ { FP64_INF(1),  FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    66026655              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    66036656              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
    6604               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
     6657              /*256:out  */ -1,
    66056658              /*xcpt?    */ false, false },
    66066659          { { /*src2     */ { FP64_INF(1),  FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    66096662              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    66106663              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
    6611               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     6664              /*256:out  */ -1,
    66126665              /*xcpt?    */ false, false },
    66136666          { { /*src2     */ { FP64_INF(1),  FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(1) } },
    66146667            { /*src1     */ { FP64_INF(1),  FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
    6615             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
     6668            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
    66166669              /*mxcsr:in */ X86_MXCSR_FZ,
    66176670              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
    6618               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
     6671              /*256:out  */ -1,
    66196672              /*xcpt?    */ true, true },
    66206673          { { /*src2     */ { FP64_INF(1),  FP64_0(0), FP64_0(0), FP64_RAND_V1(1) } },
     
    66236676              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    66246677              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    6625               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     6678              /*256:out  */ -1,
    66266679              /*xcpt?    */ true, true },
    66276680          { { /*src2     */ { FP64_INF(0), FP64_0(0),       FP64_0(0), FP64_RAND_V1(1) } },
     
    66306683              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    66316684              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6632               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6685              /*256:out  */ -1,
    66336686              /*xcpt?    */ false, false },
    66346687          { { /*src2     */ { FP64_INF(1), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },
     
    66376690              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    66386691              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6639               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6692              /*256:out  */ -1,
    66406693              /*xcpt?    */ false, false },
    66416694    /*
     
    66446697    /*14*/{ { /*src2     */ { FP64_NORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },
    66456698            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
    6646             { /* =>      */ { FP64_0(0),        FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
     6699            { /* =>      */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V1(0) } },
    66476700              /*mxcsr:in */ 0,
    66486701              /*128:out  */ X86_MXCSR_PE,
    6649               /*256:out  */ X86_MXCSR_PE,
     6702              /*256:out  */ -1,
    66506703              /*xcpt?    */ true, true },
    66516704          { { /*src2     */ { FP64_NORM_MIN(0), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V3(1) } },
    66526705            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V1(1) } },
    6653             { /* =>      */ { FP64_0(0),        FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V1(1) } },
     6706            { /* =>      */ { FP64_NORM_MAX(0), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V1(1) } },
    66546707              /*mxcsr:in */ 0,
    66556708              /*128:out  */ X86_MXCSR_PE,
    6656               /*256:out  */ X86_MXCSR_PE,
     6709              /*256:out  */ -1,
    66576710              /*xcpt?    */ true, true },
    66586711          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1) } },
    66596712            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
    66606713            { /* =>      */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_0(0)        } },
    6661               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    6662               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    6663               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     6714              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     6715              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6716              /*256:out  */ -1,
     6717              /*xcpt?    */ false, false },
     6718          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1) } },
     6719            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
     6720            { /* =>      */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_0(0)        } },
     6721              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO,
     6722              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6723              /*256:out  */ -1,
    66646724              /*xcpt?    */ false, false },
    66656725          { { /*src2     */ { FP64_NORM_MAX(0), FP64_0(0), FP64_0(0), FP64_NORM_MAX(0) } },
    66666726            { /*src1     */ { FP64_NORM_MAX(1), FP64_0(0), FP64_0(0), FP64_NORM_MAX(1) } },
    66676727            { /* =>      */ { FP64_INF(1),      FP64_0(0), FP64_0(0), FP64_INF(1)      } },
    6668               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ,
    6669               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE,
    6670               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE,
     6728              /*mxcsr:in */ X86_MXCSR_FZ,
     6729              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6730              /*256:out  */ -1,
     6731              /*xcpt?    */ false, false },
     6732          { { /*src2     */ { FP64_NORM_MAX(0), FP64_0(0), FP64_0(0), FP64_NORM_MAX(0) } },
     6733            { /*src1     */ { FP64_NORM_MAX(1), FP64_0(0), FP64_0(0), FP64_NORM_MAX(1) } },
     6734            { /* =>      */ { FP64_INF(1),      FP64_0(0), FP64_0(0), FP64_INF(1)      } },
     6735              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_FZ,
     6736              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6737              /*256:out  */ -1,
    66716738              /*xcpt?    */ false, false },
    66726739          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP64_NORM_MIN(1) } },
    66736740            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_NORM_MIN(1),                     FP64_NORM_MIN(1) } },
    66746741            { /* =>      */ { FP64_INF(1),      FP64_NORM_MAX(0), FP64_NORM_MIN(0),                     FP64_0(0)        } },
    6675               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM,
    6676               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    6677               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     6742              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     6743              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6744              /*256:out  */ -1,
     6745              /*xcpt?    */ false, false },
     6746          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP64_NORM_MIN(1) } },
     6747            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_NORM_MIN(1),                     FP64_NORM_MIN(1) } },
     6748            { /* =>      */ { FP64_INF(1),      FP64_NORM_MAX(0), FP64_NORM_MIN(0),                     FP64_0(0)        } },
     6749              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM,
     6750              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6751              /*256:out  */ -1,
    66786752              /*xcpt?    */ false, false },
    66796753          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } },
    66806754            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } },
    66816755            { /* =>      */ { FP64_NORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } },
    6682               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM,
    6683               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    6684               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     6756              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     6757              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6758              /*256:out  */ -1,
     6759              /*xcpt?    */ false, false },
     6760          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V0(0), FP64_RAND_V0(0), FP64_RAND_V0(0) } },
     6761            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } },
     6762            { /* =>      */ { FP64_NORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V1(0) } },
     6763              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM,
     6764              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6765              /*256:out  */ -1,
    66856766              /*xcpt?    */ false, false },
    66866767          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(0), FP64_NORM_MAX(0) } },
     
    66896770              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    66906771              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6691               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    6692               /*xcpt?    */ false, false },
    6693           { { /*src2     */ { FP64_NORM_MIN(0), FP64_NORM_MIN(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
    6694             { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
    6695             { /* =>      */ { FP64_0(0),        FP64_0(0),        FP64_0(0),        FP64_0(0)        } },
    6696               /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO,
    6697               /*128:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6698               /*256:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6699               /*xcpt?    */ true, true },
    6700           { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
    6701             { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_MAX(1), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
    6702             { /* =>      */ { FP64_0(0),                 FP64_0(0),        FP64_0(0),                 FP64_0(0)                 } },
     6772              /*256:out  */ -1,
     6773              /*xcpt?    */ false, false },
     6774          { { /*src2     */ { FP64_NORM_MIN(0),                                     FP64_NORM_MIN(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
     6775            { /*src1     */ { FP64_NORM_MAX(0),                                     FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     6776            { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MAX), FP64_NORM_MAX(0), FP64_0(0),        FP64_0(0)        } },
    67036777              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    67046778              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6705               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     6779              /*256:out  */ -1,
     6780              /*xcpt?    */ true, true },
     6781          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                                FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
     6782            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),                                FP64_NORM_MAX(1), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
     6783            { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_NORM_MAX(1), FP64_0(0),                 FP64_0(0)                 } },
     6784              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     6785              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     6786              /*256:out  */ -1,
    67066787              /*xcpt?    */ true, true },
    67076788    /*
    67086789     * Normals.
    67096790     */
    6710     /*23*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_V1(1), FP64_NORM_MAX(0), FP64_NORM_V2(0) } },
     6791    /*27*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_V1(1), FP64_NORM_MAX(0), FP64_NORM_V2(0) } },
    67116792            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_V1(1), FP64_NORM_MAX(1), FP64_NORM_V1(0) } },
    67126793            { /* =>      */ { FP64_0(0),        FP64_NORM_V1(1), FP64_NORM_MAX(1), FP64_NORM_V1(0) } },
    67136794              /*mxcsr:in */ 0,
    67146795              /*128:out  */ 0,
    6715               /*256:out  */ 0,
     6796              /*256:out  */ -1,
    67166797              /*xcpt?    */ false, false },
    67176798          { { /*src2     */ { FP64_NORM_MIN(0), FP64_NORM_V2(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     
    67206801              /*mxcsr:in */ 0,
    67216802              /*128:out  */ 0,
    6722               /*256:out  */ 0,
     6803              /*256:out  */ -1,
    67236804              /*xcpt?    */ false, false },
    67246805          { { /*src2     */ { FP64_V(0, 0,               0x409)/*1024*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    67276808              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    67286809              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6729               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6810              /*256:out  */ -1,
    67306811              /*xcpt?    */ false, false },
    67316812          { { /*src2     */ { FP64_V(0, 0xc000000000000, 0x401)/* 7*/, FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V0(1) } },
     
    67346815              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    67356816              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6736               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6817              /*256:out  */ -1,
    67376818              /*xcpt?    */ false, false },
    67386819          { { /*src2     */ { FP64_V(0, 0x26580b4800000, 0x41d)/*1234567890*/, FP64_RAND_V3(0), FP64_RAND_V0(0), FP64_RAND_V1(1) } },
     
    67416822              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    67426823              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6743               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6824              /*256:out  */ -1,
    67446825              /*xcpt?    */ false, false },
    67456826          { { /*src2     */ { FP64_V(0, 0x9000000000000, 0x405)/*       100*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    67486829              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    67496830              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6750               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6831              /*256:out  */ -1,
    67516832              /*xcpt?    */ false, false },
    67526833          { { /*src2     */ { FP64_V(0, 0xd6eca42000000, 0x419)/*       123450000.5*/, FP64_RAND_V0(0), FP64_RAND_V0(1), FP64_RAND_V0(1) } },
     
    67556836              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    67566837              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6757               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6838              /*256:out  */ -1,
    67586839              /*xcpt?    */ false, false },
    67596840          { { /*src2     */ { FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
     
    67626843              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    67636844              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6764               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6845              /*256:out  */ -1,
    67656846              /*xcpt?    */ false, false },
    67666847          { { /*src2     */ { FP64_1(0),                                                FP64_RAND_V3(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
     
    67696850              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_XCPT_MASK,
    67706851              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_XCPT_MASK,
    6771               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_XCPT_MASK,
     6852              /*256:out  */ -1,
    67726853              /*xcpt?    */ false, false },
    67736854          { { /*src2     */ { FP64_NORM_SAFE_INT_MAX(1), FP64_RAND_V0(0), FP64_RAND_V0(1), FP64_RAND_V0(1) } },
     
    67766857              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
    67776858              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
    6778               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
     6859              /*256:out  */ -1,
    67796860              /*xcpt?    */ false, false },
    67806861          { { /*src2     */ { FP64_V(0, 0xc122186c3cfd0, 0x42d)/*123456789876543.25*/, FP64_RAND_V0(0), FP64_RAND_V0(1), FP64_RAND_V0(1) } },
     
    67836864              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_XCPT_MASK,
    67846865              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_XCPT_MASK,
    6785               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_XCPT_MASK,
     6866              /*256:out  */ -1,
    67866867              /*xcpt?    */ false, false },
    67876868    /*
    67886869     * Denormals.
    67896870     */
    6790     /*34*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     6871    /*38*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    67916872            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
    6792             { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
    6793               /*mxcsr:in */ 0,
    6794               /*128:out  */ X86_MXCSR_DE,
    6795               /*256:out  */ X86_MXCSR_DE,
     6873            { /* =>      */ { FP64_DENORM_MAX(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     6874              /*mxcsr:in */ 0,
     6875              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     6876              /*256:out  */ -1,
     6877              /*xcpt?    */ true, true },
     6878#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out */
     6879 /*--|39*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     6880            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
     6881            { /* =>      */ { FP64_DENORM_MAX(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     6882              /*mxcsr:in */ X86_MXCSR_DM,
     6883              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     6884              /*256:out  */ -1,
     6885              /*xcpt?    */ true, true },
     6886#endif /* TODO_X86_MXCSR_UE_IEM */
     6887 /*39|40*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     6888            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
     6889            { /* =>      */ { FP64_DENORM_MAX(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     6890              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     6891              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     6892              /*256:out  */ -1,
    67966893              /*xcpt?    */ true, true },
    67976894          { { /*src2     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    68006897              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
    68016898              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
    6802               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
     6899              /*256:out  */ -1,
    68036900              /*xcpt?    */ false, false },
    68046901          { { /*src2     */ { FP64_DENORM_MIN(0), FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V0(1) } },
     
    68076904              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
    68086905              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
    6809               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
     6906              /*256:out  */ -1,
    68106907              /*xcpt?    */ false, false },
    68116908          /** @todo More Denormals. */
     
    68136910     * Invalids.
    68146911     */
    6815     /*32*/ FP64_TABLE_D1_SD_INVALIDS
     6912 /*42|43*/ FP64_TABLE_D1_SD_INVALIDS
    68166913    /** @todo Underflow; Precision; Rounding; FZ etc. */
    68176914    };
     
    68526949    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    68536950    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    6854     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     6951    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    68556952                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    68566953}
     
    84878584            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    84888585            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    8489               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    8490               /*128:out  */ X86_MXCSR_XCPT_MASK,
    8491               /*256:out  */ X86_MXCSR_XCPT_MASK,
    8492               /*xcpt?    */ false, false },
    8493           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    8494             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    8495             { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    84968586              /*mxcsr:in */ 0,
    84978587              /*128:out  */ 0,
    8498               /*256:out  */ 0,
     8588              /*256:out  */ -1,
    84998589              /*xcpt?    */ false, false },
    85008590          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    85038593              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    85048594              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8505               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8595              /*256:out  */ -1,
    85068596              /*xcpt?    */ false, false },
    85078597          { { /*src2     */ { FP64_0(0), FP64_NORM_V3(0), FP64_NORM_V2(0), FP64_0(0)       } },
     
    85108600              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    85118601              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    8512               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8602              /*256:out  */ -1,
    85138603              /*xcpt?    */ false, false },
    85148604          { { /*src2     */ { FP64_0(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
     
    85178607              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    85188608              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    8519               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8609              /*256:out  */ -1,
    85208610              /*xcpt?    */ false, false },
    85218611          { { /*src2     */ { FP64_0(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    85248614              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    85258615              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    8526               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     8616              /*256:out  */ -1,
    85278617              /*xcpt?    */ false, false },
    85288618          { { /*src2     */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    85318621              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    85328622              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    8533               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     8623              /*256:out  */ -1,
    85348624              /*xcpt?    */ false, false },
    85358625          { { /*src2     */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    85388628              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    85398629              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    8540               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8630              /*256:out  */ -1,
    85418631              /*xcpt?    */ false, false },
    85428632    /*
     
    85488638              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    85498639              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    8550               /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     8640              /*256:out  */ -1,
    85518641              /*xcpt?    */ false, false },
    85528642          { { /*src2     */ { FP64_INF(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    85558645              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    85568646              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8557               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8647              /*256:out  */ -1,
    85588648              /*xcpt?    */ false, false },
    85598649          { { /*src2     */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
     
    85628652              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    85638653              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8564               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8654              /*256:out  */ -1,
    85658655              /*xcpt?    */ false, false },
    85668656          { { /*src2     */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
     
    85698659              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    85708660              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    8571               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     8661              /*256:out  */ -1,
    85728662              /*xcpt?    */ false, false },
    85738663          { { /*src2     */ { FP64_1(0),   FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },
     
    85768666              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    85778667              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    8578               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     8668              /*256:out  */ -1,
    85798669              /*xcpt?    */ false, false },
    85808670          { { /*src2     */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },
     
    85838673              /*mxcsr:in */ X86_MXCSR_FZ,
    85848674              /*128:out  */ X86_MXCSR_FZ,
    8585               /*256:out  */ X86_MXCSR_FZ,
     8675              /*256:out  */ -1,
    85868676              /*xcpt?    */ false, false },
    85878677          { { /*src2     */ { FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0), FP64_RAND_V0(0) } },
     
    85908680              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    85918681              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8592               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8682              /*256:out  */ -1,
    85938683              /*xcpt?    */ false, false },
    85948684    /*
     
    86008690              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    86018691              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8602               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8692              /*256:out  */ -1,
    86038693              /*xcpt?    */ false, false },
    86048694          { { /*src2     */ { FP64_V(0, 0xaf00000000000, 0x406)/*      215.50*/, FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },
     
    86078697              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    86088698              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8609               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8699              /*256:out  */ -1,
    86108700              /*xcpt?    */ false, false },
    86118701          { { /*src2     */ { FP64_V(1, 0x107526e749f80, 0x42b)/*-18723145413791.50*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },
     
    86148704              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    86158705              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8616               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8706              /*256:out  */ -1,
    86178707              /*xcpt?    */ false, false },
    86188708          { { /*src2     */ { FP64_V(0, 0x6fee0e4bd0000, 0x420)/* 12345678999.62500*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    86218711              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    86228712              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8623               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8713              /*256:out  */ -1,
    86248714              /*xcpt?    */ false, false },
    86258715          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
     
    86288718              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    86298719              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8630               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8720              /*256:out  */ -1,
    86318721              /*xcpt?    */ false, false },
    86328722          { { /*src2     */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    86358725              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    86368726              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8637               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8727              /*256:out  */ -1,
    86388728              /*xcpt?    */ false, false },
    86398729          { { /*src2     */ { FP64_V(1, 0x68b83b1ed4000, 0x41e)/*-3025935759.4140625*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    86428732              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    86438733              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8644               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8734              /*256:out  */ -1,
    86458735              /*xcpt?    */ false, false },
    86468736          { { /*src2     */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    86498739              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    86508740              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8651               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8741              /*256:out  */ -1,
    86528742              /*xcpt?    */ false, false },
    86538743          { { /*src2     */ { FP64_1(0),                 FP64_0(0),                                                FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(1)          } },
     
    86568746              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    86578747              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8658               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8748              /*256:out  */ -1,
    86598749              /*xcpt?    */ false, false },
    86608750          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V3(1) } },
     
    86638753              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    86648754              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8665               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8755              /*256:out  */ -1,
    86668756              /*xcpt?    */ false, false },
    86678757    /*
     
    86738763              /*mxcsr:in */ 0,
    86748764              /*128:out  */ X86_MXCSR_DE,
    8675               /*256:out  */ X86_MXCSR_DE,
     8765              /*256:out  */ -1,
    86768766              /*xcpt?    */ true, true },
    86778767          { { /*src2     */ { FP64_0(0),          FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    86808770              /*mxcsr:in */ X86_MXCSR_FZ,
    86818771              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
    8682               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
     8772              /*256:out  */ -1,
    86838773              /*xcpt?    */ true, true },
    86848774          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    86878777              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    86888778              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8689               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8779              /*256:out  */ -1,
    86908780              /*xcpt?    */ false, false },
    86918781          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    86948784              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    86958785              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8696               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8786              /*256:out  */ -1,
    86978787              /*xcpt?    */ false, false },
    86988788          { { /*src2     */ { FP64_DENORM_MIN(1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },
     
    87018791              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    87028792              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    8703               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8793              /*256:out  */ -1,
    87048794              /*xcpt?    */ false, false },
    87058795          { { /*src2     */ { FP64_1(1),          FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },
    87068796            { /*src1     */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    87078797            { /* =>      */ { FP64_0(1),          FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    8708               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    8709               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE,
    8710               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE,
     8798              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8799              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_DM_FIXED,
     8800              /*256:out  */ -1,
     8801              /*xcpt?    */ false, false },
     8802          { { /*src2     */ { FP64_1(1),          FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },
     8803            { /*src1     */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     8804            { /* =>      */ { FP64_0(1),          FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     8805              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8806              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     8807              /*256:out  */ -1,
     8808              /*xcpt?    */ false, false },
     8809          { { /*src2     */ { FP64_1(1),          FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V1(1) } },
     8810            { /*src1     */ { FP64_DENORM_MIN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     8811            { /* =>      */ { FP64_0(1),          FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     8812              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8813              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     8814              /*256:out  */ -1,
    87118815              /*xcpt?    */ false, false },
    87128816          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },
     
    87148818            { /* =>      */ { FP64_0(0),          FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
    87158819              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8716               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
    8717               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
     8820              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     8821              /*256:out  */ -1,
     8822              /*xcpt?    */ true, true },
     8823#ifdef TODO_X86_MXCSR_PE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_PE not set in 128:out */
     8824 /*--|34*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },
     8825            { /*src1     */ { FP64_DENORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
     8826            { /* =>      */ { FP64_0(0),          FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
     8827              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8828              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     8829              /*256:out  */ -1,
     8830              /*xcpt?    */ true, true },
     8831#endif /* TODO_X86_MXCSR_PE_IEM */
     8832 /*34|35*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V1(0) } },
     8833            { /*src1     */ { FP64_DENORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
     8834            { /* =>      */ { FP64_0(0),          FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
     8835              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8836              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     8837              /*256:out  */ -1,
    87188838              /*xcpt?    */ true, true },
    87198839          { { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
     
    87218841            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
    87228842              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8723               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
    8724               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
     8843              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     8844              /*256:out  */ -1,
     8845              /*xcpt?    */ true, true },
     8846          { { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
     8847            { /*src1     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
     8848            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
     8849              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8850              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     8851              /*256:out  */ -1,
     8852              /*xcpt?    */ true, true },
     8853          { { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
     8854            { /*src1     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
     8855            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
     8856              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8857              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     8858              /*256:out  */ -1,
    87258859              /*xcpt?    */ true, true },
    87268860    /*
    87278861     * Invalids.
    87288862     */
    8729     /*33*/ FP64_TABLE_D1_SD_INVALIDS
     8863 /*38|39*/ FP64_TABLE_D1_SD_INVALIDS
    87308864    /** @todo Underflow, Precision; Rounding; FZ etc. */
    87318865    };
     
    87668900    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    87678901    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    8768     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     8902    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    87698903                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    87708904}
     
    98019935     * Zero.
    98029936     */
    9803     /* 0*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    9804             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     9937    /* 0*/{ { /*src2     */ { FP64_0(0),    FP64_0(0), FP64_0(0), FP64_0(0) } },
     9938            { /*src1     */ { FP64_0(0),    FP64_0(0), FP64_0(0), FP64_0(0) } },
    98059939            { /* =>      */ { FP64_QNAN(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    9806               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9807               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
    9808               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
    9809               /*xcpt?    */ false, false },
    9810           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    9811             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    9812             { /* =>      */ { FP64_QNAN(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    98139940              /*mxcsr:in */ 0,
    98149941              /*128:out  */ X86_MXCSR_IE,
    9815               /*256:out  */ X86_MXCSR_IE,
    9816               /*xcpt?    */ true, true },
    9817           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    9818             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     9942              /*256:out  */ -1,
     9943              /*xcpt?    */ true, true },
     9944          { { /*src2     */ { FP64_0(0),    FP64_0(0), FP64_0(0), FP64_0(0) } },
     9945            { /*src1     */ { FP64_0(0),    FP64_0(0), FP64_0(0), FP64_0(0) } },
    98199946            { /* =>      */ { FP64_QNAN(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    98209947              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    98219948              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9822               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9823               /*xcpt?    */ false, false },
    9824           { { /*src2     */ { FP64_0(0), FP64_NORM_V3(0), FP64_NORM_V2(0), FP64_0(0)       } },
    9825             { /*src1     */ { FP64_0(0), FP64_0(1),       FP64_0(1),       FP64_NORM_V1(0) } },
     9949              /*256:out  */ -1,
     9950              /*xcpt?    */ false, false },
     9951          { { /*src2     */ { FP64_0(0),    FP64_NORM_V3(0), FP64_NORM_V2(0), FP64_0(0)       } },
     9952            { /*src1     */ { FP64_0(0),    FP64_0(1),       FP64_0(1),       FP64_NORM_V1(0) } },
    98269953            { /* =>      */ { FP64_QNAN(1), FP64_0(1),       FP64_0(1),       FP64_NORM_V1(0) } },
    98279954              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    98289955              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
    9829               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
    9830               /*xcpt?    */ false, false },
    9831           { { /*src2     */ { FP64_0(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
    9832             { /*src1     */ { FP64_0(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },
     9956              /*256:out  */ -1,
     9957              /*xcpt?    */ false, false },
     9958          { { /*src2     */ { FP64_0(1),    FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
     9959            { /*src1     */ { FP64_0(1),    FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },
    98339960            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },
    98349961              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    98359962              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
    9836               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
    9837               /*xcpt?    */ true, true },
    9838           { { /*src2     */ { FP64_0(1), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    9839             { /*src1     */ { FP64_0(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(0) } },
     9963              /*256:out  */ -1,
     9964              /*xcpt?    */ true, true },
     9965          { { /*src2     */ { FP64_0(1),    FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     9966            { /*src1     */ { FP64_0(0),    FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(0) } },
    98409967            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V0(0) } },
    98419968              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    98429969              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9843               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9844               /*xcpt?    */ true, true },
    9845           { { /*src2     */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    9846             { /*src1     */ { FP64_0(1), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
     9970              /*256:out  */ -1,
     9971              /*xcpt?    */ true, true },
     9972          { { /*src2     */ { FP64_0(0),    FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     9973            { /*src1     */ { FP64_0(1),    FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
    98479974            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
    98489975              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    98499976              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_IE,
    9850               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_IE,
    9851               /*xcpt?    */ false, false },
    9852           { { /*src2     */ { FP64_0(0), FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    9853             { /*src1     */ { FP64_1(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
     9977              /*256:out  */ -1,
     9978              /*xcpt?    */ false, false },
     9979          { { /*src2     */ { FP64_0(0),   FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     9980            { /*src1     */ { FP64_1(0),   FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
    98549981            { /* =>      */ { FP64_INF(0), FP64_RAND_V3(1), FP64_RAND_V2(0), FP64_RAND_V0(0) } },
    98559982              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    98569983              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_FSW_ZE,
    9857               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_FSW_ZE,
     9984              /*256:out  */ -1,
    98589985              /*xcpt?    */ false, false },
    98599986    /*
    98609987     * Infinity.
    98619988     */
    9862     /* 8*/{ { /*src2     */ { FP64_INF(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     9989    /* 7*/{ { /*src2     */ { FP64_INF(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    98639990            { /*src1     */ { FP64_1(1),   FP64_0(0), FP64_0(0), FP64_0(0) } },
    98649991            { /* =>      */ { FP64_0(1),   FP64_0(0), FP64_0(0), FP64_0(0) } },
    98659992              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    98669993              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    9867               /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     9994              /*256:out  */ -1,
    98689995              /*xcpt?    */ false, false },
    98699996          { { /*src2     */ { FP64_INF(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    98729999              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    987310000              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9874               /*256:out  */ X86_MXCSR_XCPT_MASK,
    9875               /*xcpt?    */ false, false },
    9876           { { /*src2     */ { FP64_INF(0), FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
    9877             { /*src1     */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    9878             { /* =>      */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
     10001              /*256:out  */ -1,
     10002              /*xcpt?    */ false, false },
     10003          { { /*src2     */ { FP64_INF(0),  FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
     10004            { /*src1     */ { FP64_INF(0),  FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
     10005            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    987910006              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    988010007              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,
    9881               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,
    9882               /*xcpt?    */ true, true },
    9883           { { /*src2     */ { FP64_INF(1), FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
    9884             { /*src1     */ { FP64_INF(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V0(0) } },
     10008              /*256:out  */ -1,
     10009              /*xcpt?    */ true, true },
     10010          { { /*src2     */ { FP64_INF(1),  FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V1(1) } },
     10011            { /*src1     */ { FP64_INF(0),  FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V0(0) } },
    988510012            { /* =>      */ { FP64_QNAN(1), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V0(0) } },
    988610013              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    988710014              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9888               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     10015              /*256:out  */ -1,
    988910016              /*xcpt?    */ false, false },
    989010017          { { /*src2     */ { FP64_1(0),   FP64_RAND_V3(0), FP64_RAND_V2(1), FP64_RAND_V0(1) } },
     
    989310020              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    989410021              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    9895               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     10022              /*256:out  */ -1,
    989610023              /*xcpt?    */ false, false },
    989710024          { { /*src2     */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },
     
    990010027              /*mxcsr:in */ X86_MXCSR_FZ,
    990110028              /*128:out  */ X86_MXCSR_FZ,
    9902               /*256:out  */ X86_MXCSR_FZ,
    9903               /*xcpt?    */ false, false },
    9904           { { /*src2     */ { FP64_INF(1), FP64_QNAN(0), FP64_SNAN(0), FP64_RAND_V0(0) } },
    9905             { /*src1     */ { FP64_INF(0), FP64_QNAN(0), FP64_SNAN(0), FP64_RAND_V0(0) } },
     10029              /*256:out  */ -1,
     10030              /*xcpt?    */ false, false },
     10031          { { /*src2     */ { FP64_INF(1),  FP64_QNAN(0), FP64_SNAN(0), FP64_RAND_V0(0) } },
     10032            { /*src1     */ { FP64_INF(0),  FP64_QNAN(0), FP64_SNAN(0), FP64_RAND_V0(0) } },
    990610033            { /* =>      */ { FP64_QNAN(1), FP64_QNAN(0), FP64_SNAN(0), FP64_RAND_V0(0) } },
    990710034              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    990810035              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9909               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     10036              /*256:out  */ -1,
    991010037              /*xcpt?    */ true, true },
    991110038    /*
    991210039     * Normals.
    991310040     */
    9914     /*15*/{ { /*src2     */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
     10041    /*14*/{ { /*src2     */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_RAND_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },
    991510042            { /*src1     */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    991610043            { /* =>      */ { FP64_1(0),                                         FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    991710044              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    991810045              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9919               /*256:out  */ X86_MXCSR_XCPT_MASK,
     10046              /*256:out  */ -1,
    992010047              /*xcpt?    */ false, false },
    992110048          { { /*src2     */ { FP64_V(0, 0xaf00000000000, 0x406)/*      215.50*/, FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },
     
    992410051              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    992510052              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9926               /*256:out  */ X86_MXCSR_XCPT_MASK,
     10053              /*256:out  */ -1,
    992710054              /*xcpt?    */ false, false },
    992810055          { { /*src2     */ { FP64_V(1, 0x107526e749f80, 0x42b)/*-18723145413791.50*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },
     
    993110058              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    993210059              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9933               /*256:out  */ X86_MXCSR_XCPT_MASK,
     10060              /*256:out  */ -1,
    993410061              /*xcpt?    */ false, false },
    993510062          { { /*src2     */ { FP64_V(0, 0x6fee0e4bd0000, 0x420)/* 12345678999.62500*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    993810065              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    993910066              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9940               /*256:out  */ X86_MXCSR_XCPT_MASK,
     10067              /*256:out  */ -1,
    994110068              /*xcpt?    */ false, false },
    994210069          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
     
    994510072              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    994610073              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9947               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     10074              /*256:out  */ -1,
    994810075              /*xcpt?    */ false, false },
    994910076          { { /*src2     */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    995210079              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    995310080              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9954               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     10081              /*256:out  */ -1,
    995510082              /*xcpt?    */ false, false },
    995610083          { { /*src2     */ { FP64_V(1, 0x68b83b1ed4000, 0x41e)/*-3025935759.4140625*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    995910086              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    996010087              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9961               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     10088              /*256:out  */ -1,
    996210089              /*xcpt?    */ false, false },
    996310090          { { /*src2     */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     
    996610093              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    996710094              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9968               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     10095              /*256:out  */ -1,
    996910096              /*xcpt?    */ false, false },
    997010097          { { /*src2     */ { FP64_1(0),                 FP64_0(0),                                                FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(1)          } },
     
    997310100              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    997410101              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9975               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     10102              /*256:out  */ -1,
    997610103              /*xcpt?    */ false, false },
    997710104          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V3(1) } },
     
    998010107              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    998110108              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9982               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     10109              /*256:out  */ -1,
    998310110              /*xcpt?    */ false, false },
    998410111    /*
    998510112     * Denormals.
    998610113     */
    9987     /*25*/{ { /* UNMASKED:           0 /  DENORM_MAX = 0       &&_DE */
    9988               /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    9989             { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9990             { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
     10114    /*24*/{ { /*                     0 /  DENORM_MAX = 0        &_DE */
     10115              /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0)          } },
     10116            { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
     10117            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
    999110118              /*mxcsr:in */ 0,
    999210119              /*128:out  */ X86_MXCSR_DE,
    9993               /*256:out  */ X86_MXCSR_DE,
    9994               /*xcpt?    */ true, true },
    9995           { { /*   MASKED:           0 /  DENORM_MAX = 0        &_DE */
    9996               /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    9997             { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9998             { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9999               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    10000               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10001               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10002               /*xcpt?    */ false, false },
    10003           { { /* UNMASKED:  DENORM_MAX / -0          = -INF    &&_ZE */
    10004               /*src2     */ { FP64_0(1),          FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    10005             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    10006             { /* =>      */ { FP64_INF(1),        FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
     10120              /*256:out  */ -1,
     10121              /*xcpt?    */ true, true },
     10122          { { /*            DENORM_MAX / -0          = -INF     &_ZE */
     10123              /*src2     */ { FP64_0(1),          FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0)          } },
     10124            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
     10125            { /* =>      */ { FP64_INF(1),        FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
    1000710126              /*mxcsr:in */ 0,
    1000810127              /*128:out  */ X86_MXCSR_ZE,
    10009               /*256:out  */ X86_MXCSR_ZE,
    10010               /*xcpt?    */ true, true },
    10011           { { /*   MASKED: -DENORM_MAX / -0          = INF      &_ZE */
    10012               /*src2     */ { FP64_0(1),          FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    10013             { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    10014             { /* =>      */ { FP64_INF(0),        FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
     10128              /*256:out  */ -1,
     10129              /*xcpt?    */ true, true },
     10130          { { /*            DENORM_MAX / -0          = INF      &_ZE */
     10131              /*src2     */ { FP64_0(1),          FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0)          } },
     10132            { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
     10133            { /* =>      */ { FP64_INF(0),        FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
    1001510134              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    1001610135              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    10017               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    10018               /*xcpt?    */ false, false },
    10019           { { /*   MASKED: -DENORM_MAX /  DENORM_MIN = (-huge)  &_DE */
    10020               /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10021             { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10022             { /* =>      */ { FP64_V(1, 0xffffffffffffe, 0x432)/*-4503599627370495.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10136              /*256:out  */ -1,
     10137              /*xcpt?    */ false, false },
     10138          { { /*           -DENORM_MAX /  DENORM_MIN = (-huge)  &_DE */
     10139              /*src2     */ { FP64_DENORM_MIN(0),                                       FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10140            { /*src1     */ { FP64_DENORM_MAX(1),                                       FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10141            { /* =>      */ { FP64_V(1, 0xffffffffffffe, 0x432)/*-4503599627370495.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1002310142              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    1002410143              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_DE,
    10025               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_DE,
    10026               /*xcpt?    */ false, false },
    10027           { { /* UNMASKED: -DENORM_MAX / -DENORM_MIN = (huge)  &&_DE */
    10028               /*src2     */ { FP64_DENORM_MIN(1), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10029             { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10030             { /* =>      */ { FP64_V(0, 0xffffffffffffe, 0x432)/*4503599627370495.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10144              /*256:out  */ -1,
     10145              /*xcpt?    */ false, false },
     10146          { { /*           -DENORM_MAX / -DENORM_MIN = (huge)   &_DE */
     10147              /*src2     */ { FP64_DENORM_MIN(1),                                      FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10148            { /*src1     */ { FP64_DENORM_MAX(1),                                      FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10149            { /* =>      */ { FP64_V(0, 0xffffffffffffe, 0x432)/*4503599627370495.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1003110150              /*mxcsr:in */ X86_MXCSR_RC_UP,
    1003210151              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_DE,
    10033               /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_DE,
    10034               /*xcpt?    */ true, true },
    10035           { { /*   MASKED: -DENORM_MIN /  DENORM_MAX = (-tiny)  &_DE,_PE */
    10036               /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10037             { /*src1     */ { FP64_DENORM_MIN(1), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10038             { /* =>      */ { FP64_V(1, 0x0000000000001, 0x3cb)/*-22204460492503135739e-35*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10152              /*256:out  */ -1,
     10153              /*xcpt?    */ true, true },
     10154          { { /*           -DENORM_MIN /  DENORM_MAX = (-tiny)  &_DE &_PE */
     10155              /*src2     */ { FP64_DENORM_MAX(0),                                             FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10156            { /*src1     */ { FP64_DENORM_MIN(1),                                             FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10157            { /* =>      */ { FP64_V(1, 0x0000000000001, 0x3cb)/*-22204460492503135739e-35*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1003910158              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    1004010159              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    10041               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    10042               /*xcpt?    */ false, false },
    10043           { { /*   MASKED:          -0 /  DENORM_MIN = -0       &_DE */
    10044               /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10045             { /*src1     */ { FP64_0(1), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10046             { /* =>      */ { FP64_0(1), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10160              /*256:out  */ -1,
     10161              /*xcpt?    */ false, false },
     10162          { { /*                    -0 /  DENORM_MIN = -0       &_DE */
     10163              /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10164            { /*src1     */ { FP64_0(1),          FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10165            { /* =>      */ { FP64_0(1),          FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1004710166              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    1004810167              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10049               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10050               /*xcpt?    */ false, false },
    10051           { { /*   MASKED:       -0.25 /  DENORM_MAX = (-HUGE)  &_DE &_PE */
    10052               /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10053             { /*src1     */ { FP64_V(1, 0, 0x3fd)/*0.25*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10054             { /* =>      */ { FP64_V(1, 1, 0x7fb)/*1.1XYZe307*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10168              /*256:out  */ -1,
     10169              /*xcpt?    */ false, false },
     10170          { { /*                 -0.25 /  DENORM_MAX = (-HUGE)  &_DE &_PE */
     10171              /*src2     */ { FP64_DENORM_MAX(0),                FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10172            { /*src1     */ { FP64_V(1, 0, 0x3fd)/*0.25*/,       FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10173            { /* =>      */ { FP64_V(1, 1, 0x7fb)/*1.1XYZe307*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1005510174              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    1005610175              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    10057               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    10058               /*xcpt?    */ false, false },
    10059           { { /*   MASKED:        42.0 /  DENORM_MIN = INF      &_DE &_PE &_OE */
    10060               /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10061             { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10062             { /* =>      */ { FP64_INF(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10063               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    10064               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE,
    10065               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE,
    10066               /*xcpt?    */ false, false },
    10067           { { /* ~OMASKED:        42.0 /  DENORM_MIN = INF      &_DE &&_OE */
    10068               /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10069             { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10070             { /* =>      */ { FP64_INF(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10071               /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM,
    10072               /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM) | X86_MXCSR_DE | X86_MXCSR_OE,
    10073               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM) | X86_MXCSR_DE | X86_MXCSR_OE,
    10074               /*xcpt?    */ true, true },
    10075           { { /* DAZ+MASK:        42.0 /  DENORM_MIN = INF      &_ZE */
    10076               /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10077             { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10078             { /* =>      */ { FP64_INF(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10176              /*256:out  */ -1,
     10177              /*xcpt?    */ false, false },
     10178          { { /*                  42.0 /  DENORM_MIN = INF      &_DE &_PE(if OM) &_OE */
     10179              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10180            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10181            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10182              /*mxcsr:in */ X86_MXCSR_OM,
     10183              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     10184              /*256:out  */ -1,
     10185              /*xcpt?    */ false, false },
     10186          { { /*                  42.0 /  DENORM_MIN = INF      &_DE &_PE(if !DM) &_OE */
     10187              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10188            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10189            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10190              /*mxcsr:in */ 0,
     10191              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE | BS3_MXCSR_DM_FIXED,
     10192              /*256:out  */ -1,
     10193              /*xcpt?    */ false, false },
     10194          { { /*                  42.0 /  DENORM_MIN = INF      &_DE &!_PE(if !OM && DM) &_OE */
     10195              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10196            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10197            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10198              /*mxcsr:in */ X86_MXCSR_DM,
     10199              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_OE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_OM_FIXED,
     10200              /*256:out  */ -1,
     10201              /*xcpt?    */ false, false },
     10202          { { /* ~DMASKED:        42.0 /  DENORM_MIN = INF      &_DE &_OE &!_PE(if !DM)*/
     10203              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10204            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10205            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10206              /*mxcsr:in */ 0,
     10207              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_OE | BS3_MXCSR_DM_FIXED,
     10208              /*256:out  */ -1,
     10209              /*xcpt?    */ true, true },
     10210          { { /* ~OMASKED:        42.0 /  DENORM_MIN = INF      &_DE &_OE &!_PE(if !OM)*/
     10211              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10212            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10213            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10214              /*mxcsr:in */ 0,
     10215              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     10216              /*256:out  */ -1,
     10217              /*xcpt?    */ true, true },
     10218          { { /* DOMASKED:        42.0 /  DENORM_MIN = INF      &_DE &_OE &_PE(if DM && OM) */
     10219              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10220            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10221            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10222              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_OM,
     10223              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_OM | X86_MXCSR_DE | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_OM_FIXED,
     10224              /*256:out  */ -1,
     10225              /*xcpt?    */ true, true },
     10226          { { /* DAZ:             42.0 /  DENORM_MIN = INF      &_ZE */
     10227              /*src2     */ { FP64_DENORM_MIN(0),                        FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10228            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10229            { /* =>      */ { FP64_INF(0),                               FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1007910230              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    1008010231              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE | X86_MXCSR_DAZ,
    10081               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE | X86_MXCSR_DAZ,
    10082               /*xcpt?    */ false, false },
    10083           { { /*   MASKED:  DENORM_MAX /       -42.0 = -5e-310  &_DE &_PE &_UE */
    10084               /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10085             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10086             { /* =>      */ { FP64_V(1, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10087               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    10088               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE,
    10089               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE,
     10232              /*256:out  */ -1,
     10233              /*xcpt?    */ false, false },
     10234          { { /*            DENORM_MAX /       -42.0 = -5e-310  &_DE &_PE(if UM) &_UE */
     10235              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/,    FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10236            { /*src1     */ { FP64_DENORM_MAX(0),                            FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10237            { /* =>      */ { FP64_V(1, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10238              /*mxcsr:in */ X86_MXCSR_UM,
     10239              /*128:out  */ X86_MXCSR_UM | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
     10240              /*256:out  */ -1,
     10241              /*xcpt?    */ false, false },
     10242          { { /*            DENORM_MAX /       -42.0 = -5e-310  &_DE &_PE(if !DM) &_UE */
     10243              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/,    FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10244            { /*src1     */ { FP64_DENORM_MAX(0),                            FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10245            { /* =>      */ { FP64_V(1, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10246              /*mxcsr:in */ 0,
     10247              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED,
     10248              /*256:out  */ -1,
    1009010249              /*xcpt?    */ false, false },
    1009110250#ifdef TODO_X86_MXCSR_PE /** @todo THIS FAILS ON IEM: X86_MXCSR_PE not set in 128:out */
    10092           { { /* ~UMASKED:  DENORM_MAX /        42.0 = 5e-310   &_DE &_PE &&_UE */
    10093               /*src2     */ { FP64_V(0, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10094             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10095             { /* =>      */ { FP64_V(0, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10096               /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM,
    10097               /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM) | X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE, // | BS3_MXCSR_PE_FUZZY /* IEM: when converted to Worker1A */
    10098               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM) | X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE,
    10099               /*xcpt?    */ true, true },
     10251 /*--|41*/{ { /*            DENORM_MAX /       -42.0 = -5e-310  &_DE &!_PE(if DM && !UM) &_UE */
     10252              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/,    FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10253            { /*src1     */ { FP64_DENORM_MAX(0),                            FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10254            { /* =>      */ { FP64_V(1, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10255              /*mxcsr:in */ X86_MXCSR_DM,
     10256              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10257              /*256:out  */ -1,
     10258              /*xcpt?    */ false, false },
    1010010259#endif /* TODO_X86_MXCSR_PE */
    10101           { { /* DAZ+MASK:  DENORM_MAX /       -42.0 = -0       &- */
    10102               /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10103             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10104             { /* =>      */ { FP64_0(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10260 /*41|42*/{ { /*  UMASKED:  DENORM_MAX /        42.0 = 5e-310   &_DE &_PE(if UM) &_UE */
     10261              /*src2     */ { FP64_V(0, 0x5000000000000, 0x404)/*-42.0*/,    FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10262            { /*src1     */ { FP64_DENORM_MAX(0),                            FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10263            { /* =>      */ { FP64_V(0, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10264              /*mxcsr:in */ X86_MXCSR_UM,
     10265              /*128:out  */ X86_MXCSR_UM | X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
     10266              /*256:out  */ -1,
     10267              /*xcpt?    */ true, true },
     10268          { { /* ~DMASKED:  DENORM_MAX /        42.0 = 5e-310   &_DE &_PE(if !DM) &_UE */
     10269              /*src2     */ { FP64_V(0, 0x5000000000000, 0x404)/*-42.0*/,    FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10270            { /*src1     */ { FP64_DENORM_MAX(0),                            FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10271            { /* =>      */ { FP64_V(0, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10272              /*mxcsr:in */ 0,
     10273              /*128:out  */ X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED,
     10274              /*256:out  */ -1,
     10275              /*xcpt?    */ true, true },
     10276#ifdef TODO_X86_MXCSR_PE /** @todo THIS FAILS ON IEM: X86_MXCSR_PE not set in 128:out */
     10277 /*--|44*/{ { /* D~UMASKED: DENORM_MAX /        42.0 = 5e-310   &_DE &!_PE(if DM && !UM) &_UE */
     10278              /*src2     */ { FP64_V(0, 0x5000000000000, 0x404)/*-42.0*/,    FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10279            { /*src1     */ { FP64_DENORM_MAX(0),                            FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10280            { /* =>      */ { FP64_V(0, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10281              /*mxcsr:in */ X86_MXCSR_DM,
     10282              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10283              /*256:out  */ -1,
     10284              /*xcpt?    */ true, true },
     10285#endif /* TODO_X86_MXCSR_PE */
     10286 /*43|45*/{ { /* DAZ:       DENORM_MAX /       -42.0 = -0       &- */
     10287              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10288            { /*src1     */ { FP64_DENORM_MAX(0),                         FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10289            { /* =>      */ { FP64_0(1),                                  FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1010510290              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    1010610291              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    10107               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    10108               /*xcpt?    */ false, false },
    10109           { { /* DAZ+FZ+M:  DENORM_MAX /       -42.0 = -0       &- */
    10110               /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    10111             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    10112             { /* =>      */ { FP64_0(1), FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10292              /*256:out  */ -1,
     10293              /*xcpt?    */ false, false },
     10294          { { /* DAZ+FZ  DENORM_MAX /       -42.0 = -0       &- */
     10295              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),          FP64_RAND_V2(0), FP64_RAND_V1(1) } },
     10296            { /*src1     */ { FP64_DENORM_MAX(0),                         FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
     10297            { /* =>      */ { FP64_0(1),                                  FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    1011310298              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    1011410299              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    10115               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     10300              /*256:out  */ -1,
    1011610301              /*xcpt?    */ false, false },
    1011710302          /** @todo how to usefully test FZ, RC_{NEAREST,UP,DOWN,ZERO} ? */
    10118 
    1011910303    /*
    1012010304     * Invalids.
    1012110305     */
    10122     /*40*/ FP64_TABLE_D1_SD_INVALIDS
     10306 /*45|47*/ FP64_TABLE_D1_SD_INVALIDS
    1012310307    /** @todo Underflow, Precision; Rounding; FZ etc. */
    1012410308    };
     
    1015910343    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    1016010344    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    10161     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     10345    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    1016210346                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    1016310347}
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette