VirtualBox

Changeset 106214 in vbox for trunk/src


Ignore:
Timestamp:
Oct 3, 2024 10:30:23 AM (2 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: adapt addsubpd, haddpd, hsubpd to auto-MXCSR; bugref:10658

  • addsubpd: add BS3_MXCSR_PE_FUZZY to 7 entries that need it
  • addsubpd: fix 1 previously-masked wrong output value
  • addsubpd: add missing exception outputs to 2 entries
  • addsubpd: remove preset exceptions from 2 entries: let the worker do that
  • addsubpd: split 4 entries, using FIXED for complex DM vs UM vs UE behavior
  • addsubpd: remove 6 entries made redundant by mask randomization
  • haddpd: add BS3_MXCSR_PE_FUZZY to 7 entries that need it
  • haddpd: fix 5 previously-masked wrong output values
  • haddpd: add missing exception outputs to 2 entries
  • haddpd: split 3 entries, using FIXED for complex DM vs UM vs UE behavior
  • haddpd: remove 3 entries made redundant by mask randomization
  • hsubpd: fix 2 previously-masked wrong output values
  • hsubpd: remove preset exceptions from 1 entry: let the worker do that
  • hsubpd: split 2 entries, using FIXED for complex DM vs UM vs UE behavior
  • hsubpd: split 2 entries, using FIXED for complex OM vs PE behavior
  • hsubpd: remove 2 entries made redundant by mask randomization
  • also fix a number of indentation & spacing issues throughout the file
File:
1 edited

Legend:

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

    r106213 r106214  
    628628 **/
    629629#define FP32_TABLE_D1_PS_INVALIDS \
    630     /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },       \
     630    /* 0*/{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },       \
    631631            { /*src1     */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },       \
    632632            { /* =>      */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },       \
     
    715715/**
    716716 * Table D-1: Packed double-precision floating-point invalid values.
    717  * For instructions: addpd, subpd, mulpd, divpd, addsubpd, haddpd, hsubpd.
     717 * For instructions: addpd, subpd, mulpd, divpd, addsubpd.
    718718 **/
    719719#define FP64_TABLE_D1_PD_INVALIDS \
    720     /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },      \
     720    /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },      \
    721721            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },      \
    722722            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },      \
     
    809809#define FP32_TABLE_D1_SS_INVALIDS \
    810810    /* QNan, QNan (Masked). */                                                                                                                                                                                                                                                                      \
    811     /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },      \
     811    /* 0*/{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },      \
    812812            { /*src1     */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },      \
    813813            { /* =>      */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },      \
     
    10241024#define FP64_TABLE_D1_SD_INVALIDS \
    10251025    /* QNan, QNan (Masked). */                                                                                                                                              \
    1026     /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },                       \
     1026    /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },                       \
    10271027            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },                       \
    10281028            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },                       \
     
    12381238 **/
    12391239#define FP32_TABLE_D1_H_PS_INVALIDS \
    1240     /*0 */{ { /*src2     */ { FP32_QNAN_MAX(0), FP32_QNAN(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0),  FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V3(0), FP32_QNAN_V5(0) } },        \
     1240    /* 0*/{ { /*src2     */ { FP32_QNAN_MAX(0), FP32_QNAN(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0),  FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V3(0), FP32_QNAN_V5(0) } },        \
    12411241            { /*src1     */ { FP32_QNAN(0),     FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },        \
    12421242            { /* =>      */ { FP32_QNAN(0),     FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V6(0), FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0) } },        \
     
    13281328 **/
    13291329#define FP64_TABLE_D1_H_PD_INVALIDS \
    1330     /*0 */{ { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1)       } }, \
     1330    /* 0*/{ { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1)       } }, \
    13311331            { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } }, \
    13321332            { /* =>      */ { FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0)       } }, \
     
    13841384              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                       \
    13851385              /*xcpt?    */ true, true },                                                                                                                                         \
    1386           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_QNAN_V(0, FP64_FRAC_V2) } },             \
    1387             { /*src1     */ { FP64_SNAN(0),                       FP64_QNAN(0),                 FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V3) } },             \
    1388             { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),            FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V1) } },             \
    1389               /*mxcsr:in */ 0,                                                                                                                                                    \
    1390               /*128:out  */ X86_MXCSR_IE,                                                                                                                                         \
    1391               /*256:out  */ X86_MXCSR_IE,                                                                                                                                         \
    1392               /*xcpt?    */ true, true },                                                                                                                                         \
    13931386          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN) } },                  \
    13941387            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },                  \
     
    13981391              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                        \
    13991392              /*xcpt?    */ true, true },                                                                                                                                         \
    1400           { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0),  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },                                         \
    1401             { /*src1     */ { FP64_QNAN(0), FP64_1(1),        FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)                    } },                                         \
    1402             { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },                                         \
    1403               /*mxcsr:in */ 0,                                                                                                                                                    \
    1404               /*128:out  */ 0,                                                                                                                                                    \
    1405               /*256:out  */ 0,                                                                                                                                                    \
    1406               /*xcpt?    */ false, false },                                                                                                                                       \
    1407     /*11*/{ { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0)              } },       \
     1393    /* 9*/{ { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0)              } },       \
    14081394            { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)              } },       \
    1409             { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
     1395            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    14101396              /*mxcsr:in */ X86_MXCSR_RC_UP,                                                                                                                                      \
    14111397              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                                       \
     
    14181404 **/
    14191405#define FP32_TABLE_D9_PS_INVALIDS \
    1420     /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } }, \
     1406    /* 0*/{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } }, \
    14211407            { /*src1     */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } }, \
    14221408            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } }, \
     
    14941480 **/
    14951481#define FP64_TABLE_D9_PD_INVALIDS \
    1496     /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } }, \
     1482    /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } }, \
    14971483            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } }, \
    14981484            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } }, \
     
    15711557#define FP32_TABLE_D9_SS_INVALIDS \
    15721558    /* QNan, QNan (Masked). */                                                                                                                                             \
    1573     /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },     \
     1559    /* 0*/{ { /*src2     */ { FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },     \
    15741560            { /*src1     */ { FP32_QNAN(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(1) } },     \
    15751561            { /* =>      */ { FP32_QNAN(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(1) } },     \
     
    16581644              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                            \
    16591645              /*xcpt?    */ false, false },                                                                                                                                \
    1660     /* QNan, Normal (Unmasked). */                                                                                                                                         \
     1646    /* QNan, Normal (Masked). */                                                                                                                                           \
    16611647          { { /*src2     */ { FP32_QNAN(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V1(0), FP32_RAND_V2(0) } },     \
    16621648            { /*src1     */ { FP32_1(0),    FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V4(1) } },     \
     
    16751661              /*xcpt?    */ false, false },                                                                                                                                \
    16761662    /* QNan, QNan (Unmasked). */                                                                                                                                           \
    1677     /*0 */{ { /*src2     */ { FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },     \
     1663          { { /*src2     */ { FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },     \
    16781664            { /*src1     */ { FP32_QNAN(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(1) } },     \
    16791665            { /* =>      */ { FP32_QNAN(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(1) } },     \
     
    17701756              /*256:out  */ X86_MXCSR_IE,                                                                                                                                  \
    17711757              /*xcpt?    */ true, true },                                                                                                                                  \
    1772     /* SNan, Normal (Masked). */                                                                                                                                           \
     1758    /* SNan, Normal (Unmasked). */                                                                                                                                         \
    17731759          { { /*src2     */ { FP32_SNAN(1), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V1(0), FP32_RAND_V2(0) } },     \
    17741760            { /*src1     */ { FP32_1(0),    FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V1(1) } },     \
     
    17851771#define FP64_TABLE_D9_SD_INVALIDS \
    17861772    /* QNan, QNan (Masked). */                                                                                           \
    1787     /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },                       \
     1773    /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },                       \
    17881774            { /*src1     */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    17891775            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
     
    18721858              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    18731859              /*xcpt?    */ false, false },                                                                              \
    1874     /* QNan, Normal (Unmasked). */                                                                                       \
     1860    /* QNan, Normal (Masked). */                                                                                         \
    18751861          { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },                       \
    18761862            { /*src1     */ { FP64_1(0),    FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },                       \
     
    18891875              /*xcpt?    */ false, false },                                                                              \
    18901876    /* QNan, QNan (Unmasked). */                                                                                         \
    1891     /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },                       \
     1877    /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },                       \
    18921878            { /*src1     */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    18931879            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
     
    19841970              /*256:out  */ X86_MXCSR_IE,                                                                                \
    19851971              /*xcpt?    */ true, true },                                                                                \
    1986     /* SNan, Normal (Masked). */                                                                                         \
     1972    /* SNan, Normal (Unmasked). */                                                                                       \
    19871973          { { /*src2     */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },                       \
    19881974            { /*src1     */ { FP64_1(0),    FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },                       \
     
    36503636              /*256:out  */ 0,
    36513637              /*xcpt?    */ false, false },
    3652          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3653            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3654            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3655              /*mxcsr:in */ 0,
    3656              /*128:out  */ 0,
    3657              /*256:out  */ 0,
    3658              /*xcpt?    */ false, false },
    3659          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3660            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3661            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3662              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    3663              /*128:out  */ X86_MXCSR_RC_ZERO,
    3664              /*256:out  */ X86_MXCSR_RC_ZERO,
    3665              /*xcpt?    */ false, false },
    3666          { { /*src2     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    3667            { /*src1     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    3668            { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    3669              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    3670              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    3671              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    3672              /*xcpt?    */ false, false },
    3673          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    3674            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    3675            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    3676              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    3677              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    3678              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    3679              /*xcpt?    */ false, false },
    3680          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    3681            { /*src1     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    3682            { /* =>      */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    3683              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    3684              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    3685              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    3686              /*xcpt?    */ false, false },
     3638          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3639            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3640            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3641              /*mxcsr:in */ 0,
     3642              /*128:out  */ 0,
     3643              /*256:out  */ 0,
     3644              /*xcpt?    */ false, false },
     3645          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3646            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3647            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3648              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     3649              /*128:out  */ X86_MXCSR_RC_ZERO,
     3650              /*256:out  */ X86_MXCSR_RC_ZERO,
     3651              /*xcpt?    */ false, false },
     3652          { { /*src2     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     3653            { /*src1     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     3654            { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     3655              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3656              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3657              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3658              /*xcpt?    */ false, false },
     3659          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
     3660            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
     3661            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
     3662              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3663              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3664              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3665              /*xcpt?    */ false, false },
     3666          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
     3667            { /*src1     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
     3668            { /* =>      */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
     3669              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3670              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3671              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3672              /*xcpt?    */ false, false },
    36873673    /*
    36883674     * Infinity.
     
    38583844              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
    38593845              /*xcpt?    */ false, false },
    3860          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     3846          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    38613847            { /*src1     */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    38623848            { /* =>      */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    39863972     * Infinity.
    39873973     */
    3988      /*5*/{ { /*src2     */ { FP64_INF(0),  FP64_0(0), FP64_0(0), FP64_0(0) } },
     3974    /* 5*/{ { /*src2     */ { FP64_INF(0),  FP64_0(0), FP64_0(0), FP64_0(0) } },
    39893975            { /*src1     */ { FP64_INF(1),  FP64_0(0), FP64_0(0), FP64_0(0) } },
    39903976            { /* =>      */ { FP64_QNAN(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    41704156              /*xcpt?    */ false, false },
    41714157#ifdef TODO_X86_MXCSR_UE_HW /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
    4172           /* this is what works on HW (i7-10700) (same as below, plus 256:out:_UE) */
     4158         /* this is what works on HW (i7-10700) (same as below, plus 256:out:_UE) */
    41734159 /*--|28*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
    41744160            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },
     
    41804166#endif /* TODO_X86_MXCSR_UE_HW */
    41814167#ifdef TODO_X86_MXCSR_UE_IEM
    4182           /* for comparison, this is what works on IEM (same as above, minus 256:out:_UE) */
     4168         /* for comparison, this is what works on IEM (same as above, minus 256:out:_UE) */
    41834169 /*--|28*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
    41844170            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0) } },
     
    50615047              /*256:out  */ X86_MXCSR_DAZ,
    50625048              /*xcpt?    */ false, false },
    5063          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     5049          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    50645050            { /*src1     */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    50655051            { /* =>      */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    51545140            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    51555141            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5156               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    5157               /*128:out  */ X86_MXCSR_XCPT_MASK,
    5158               /*256:out  */ X86_MXCSR_XCPT_MASK,
    5159               /*xcpt?    */ false, false },
    5160           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5161             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5162             { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    51635142              /*mxcsr:in */ 0,
    51645143              /*128:out  */ 0,
     
    51965175     * Infinity.
    51975176     */
    5198     /* 6*/{ { /*src2     */ { FP64_INF(0),  FP64_INF(1),  FP64_INF(0), FP64_INF(1)  } },
     5177    /* 5*/{ { /*src2     */ { FP64_INF(0),  FP64_INF(1),  FP64_INF(0), FP64_INF(1)  } },
    51995178            { /*src1     */ { FP64_INF(1),  FP64_INF(0),  FP64_0(0),   FP64_0(0)    } },
    52005179            { /* =>      */ { FP64_QNAN(1), FP64_QNAN(1), FP64_0(0),   FP64_QNAN(1) } },
     
    52105189              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
    52115190              /*xcpt?    */ false, false },
    5212           { { /*src2     */ { FP64_INF(0),  FP64_INF(1), FP64_INF(0), FP64_INF(1)  } },
    5213             { /*src1     */ { FP64_INF(1),  FP64_INF(0), FP64_0(0),    FP64_0(0)    } },
    5214             { /* =>      */ { FP64_QNAN(1), FP64_0(0),   FP64_QNAN(1), FP64_QNAN(1) } },
     5191          { { /*src2     */ { FP64_INF(0),  FP64_INF(1),  FP64_INF(0), FP64_INF(1)  } },
     5192            { /*src1     */ { FP64_INF(1),  FP64_INF(0),  FP64_0(0),   FP64_0(0)    } },
     5193            { /* =>      */ { FP64_QNAN(1), FP64_QNAN(1), FP64_0(0),  FP64_QNAN(1) } },
    52155194              /*mxcsr:in */ X86_MXCSR_FZ,
    52165195              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
     
    52345213     * Overflow, Precision.
    52355214     */
    5236     /*11*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(1), FP64_NORM_MIN(1) } },
     5215    /*10*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(1), FP64_NORM_MIN(1) } },
    52375216            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1) } },
    5238             { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0),        FP64_0(0)        } },
     5217            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_INF(1),      FP64_V(1, 0, 2)  } },
    52395218              /*mxcsr:in */ 0,
    52405219              /*128:out  */ 0,
    5241               /*256:out  */ X86_MXCSR_OE,
     5220              /*256:out  */ X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52425221              /*xcpt?    */ false, true },
    52435222          { { /*src2     */ { FP64_NORM_MIN(1), FP64_NORM_MIN(1),                                     FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
     
    52455224            { /* =>      */ { FP64_INF(1),      FP64_V(1, FP32_FRAC_NORM_MIN, FP32_EXP_NORM_MIN + 1), FP64_INF(1),      FP64_INF(0)      } },
    52465225              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
    5247               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    5248               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     5226              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     5227              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52495228              /*xcpt?    */ false, false },
    52505229          { { /*src2     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_0(0),        FP64_0(0)        } },
     
    52525231            { /* =>      */ { FP64_NORM_MAX(0), FP64_0(0),        FP64_NORM_MAX(1), FP64_0(0)        } },
    52535232              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    5254               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    5255               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     5233              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     5234              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52565235              /*xcpt?    */ false, false },
    52575236          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_0(0),                            FP64_NORM_MIN(1) } },
     
    52595238            { /* =>      */ { FP64_INF(0),      FP64_0(0),        FP64_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP64_NORM_MIN(1) } },
    52605239              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP,
    5261               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
    5262               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     5240              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     5241              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52635242              /*xcpt?    */ false, false },
    52645243          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_0(0),                                            FP64_NORM_MAX(0) } },
     
    52735252            { /* =>      */ { FP64_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP64_NORM_MAX(0), FP64_V(0, 0, FP32_EXP_NORM_MIN + 1),  FP64_NORM_MAX(0) } },
    52745253              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    5275               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    5276               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     5254              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     5255              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52775256              /*xcpt?    */ false, false },
    52785257          { { /*src2     */ { FP64_0(0),                                        FP64_NORM_MAX(0), FP64_NORM_MIN(1),                     FP64_NORM_MIN(0) } },
     
    52805259            { /* =>      */ { FP64_V(1, FP64_FRAC_NORM_MAX, FP64_EXP_NORM_MAX), FP64_NORM_MAX(0), FP64_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP64_0(0)        } },
    52815260              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    5282               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    5283               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     5261              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     5262              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52845263              /*xcpt?    */ false, false },
    52855264          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
    52865265            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
    5287             { /* =>      */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
     5266            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_0(0)        } },
    52885267              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    52895268              /*128:out  */ X86_MXCSR_RC_ZERO,
    5290               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE,
     5269              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    52915270              /*xcpt?    */ false, true },
    52925271          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_SAFE_INT_MAX(1) } },
     
    53005279     * Normals.
    53015280     */
    5302     /*20*/{ { /*src2     */ { FP64_NORM_MIN(0), FP64_NORM_MIN(1), FP64_NORM_V2(1), FP64_NORM_V2(0) } },
     5281    /*19*/{ { /*src2     */ { FP64_NORM_MIN(0), FP64_NORM_MIN(1), FP64_NORM_V2(1), FP64_NORM_V2(0) } },
    53035282            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_V1(0), FP64_NORM_V1(1) } },
    53045283            { /* =>      */ { FP64_0(1),        FP64_0(1),        FP64_0(1),       FP64_0(1)       } },
     
    53455324     * Denormals.
    53465325     */
    5347     /*26*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
     5326    /*25*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
    53485327            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
    53495328            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } },
    53505329              /*mxcsr:in */ 0,
    5351               /*128:out  */ X86_MXCSR_DE,
    5352               /*256:out  */ X86_MXCSR_DE,
     5330              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED,
     5331              /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED,
     5332              /*xcpt?    */ true, true },
     5333#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
     5334 /*--|26*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
     5335            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
     5336            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } },
     5337              /*mxcsr:in */ X86_MXCSR_DM,
     5338              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5339              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5340              /*xcpt?    */ true, true },
     5341#endif /* TODO_X86_MXCSR_UE_IEM */
     5342 /*26|27*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
     5343            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
     5344            { /* =>      */ { FP64_DENORM_MAX(1), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1), FP64_DENORM_MAX(0) } },
     5345              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     5346              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5347              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
    53535348              /*xcpt?    */ true, true },
    53545349          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(1), FP64_DENORM_MIN(1) } },
     
    53635358            { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0),          FP64_0(0) } },
    53645359              /*mxcsr:in */ 0,
    5365               /*128:out  */ X86_MXCSR_DE,
    5366               /*256:out  */ X86_MXCSR_DE,
     5360              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     5361              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     5362              /*xcpt?    */ true, true },
     5363#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out *AND* different output values */
     5364 /*--|30*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
     5365            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_DENORM_MIN(0), FP64_0(0) } },
     5366            { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0),          FP64_0(0) } }, /* result on HW (i7-10700) */
     5367    // IEM: { /* =>      */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } }, /* result on IEM */
     5368              /*mxcsr:in */ X86_MXCSR_DM,
     5369              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5370              /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5371              /*xcpt?    */ true, true },
     5372#endif /* TODO_X86_MXCSR_UE_IEM */
     5373 /*29|31*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
     5374            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_DENORM_MIN(0), FP64_0(0) } },
     5375            { /* =>      */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } },
     5376              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     5377              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5378              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
    53675379              /*xcpt?    */ true, true },
    53685380          { { /*src2     */ { FP64_0(0), FP64_0(0),          FP64_DENORM_MIN(1), FP64_DENORM_MAX(1) } },
     
    53785390              /*mxcsr:in */ 0,
    53795391              /*128:out  */ 0,
    5380               /*256:out  */ X86_MXCSR_DE,
     5392              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
    53815393              /*xcpt?    */ false, true },
     5394#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
     5395 /*--|34*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0),   FP64_DENORM_MAX(0)            } },
     5396            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(1),   FP64_DENORM_MIN(1)            } },
     5397            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_V(1, 2, 0),      FP64_V(0, 0xffffffffffffe, 1) } },
     5398              /*mxcsr:in */ X86_MXCSR_DM,
     5399              /*128:out  */ X86_MXCSR_DM,
     5400              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5401              /*xcpt?    */ false, true },
     5402#endif /* TODO_X86_MXCSR_UE_IEM */
     5403 /*32|35*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0),   FP64_DENORM_MAX(0)            } },
     5404            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(1),   FP64_DENORM_MIN(1)            } },
     5405            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_V(1, 2, 0),      FP64_V(0, 0xffffffffffffe, 1) } },
     5406              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     5407              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM,
     5408              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     5409              /*xcpt?    */ false, true },
    53825410    /*
    53835411     * Invalids.
    53845412     */
    5385     /*31*/ FP64_TABLE_D1_H_PD_INVALIDS
     5413 /*33|36*/ FP64_TABLE_D1_H_PD_INVALIDS
    53865414    /** @todo Underflow; Precision; Rounding; FZ etc. */
    53875415    };
     
    54335461    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    54345462    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    5435     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     5463    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    54365464                                        g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
    54375465}
     
    57765804              /*256:out  */ X86_MXCSR_XCPT_MASK,
    57775805              /*xcpt?    */ false, false },
    5778          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5779            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5780            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5806          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5807            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5808            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    57815809              /*mxcsr:in */ 0,
    57825810              /*128:out  */ 0,
    57835811              /*256:out  */ 0,
    57845812              /*xcpt?    */ false, false },
    5785          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5786            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5787            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5813          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5814            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5815            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    57885816              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    57895817              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    57905818              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    57915819              /*xcpt?    */ false, false },
    5792          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5793            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5794            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5820          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5821            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5822            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    57955823              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    57965824              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    57975825              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    57985826              /*xcpt?    */ false, false },
    5799          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(1) } },
    5800            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(1) } },
    5801            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
     5827          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(1) } },
     5828            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(1) } },
     5829            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
    58025830              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    58035831              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    58045832              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    58055833              /*xcpt?    */ false, false },
    5806          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    5807            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(0) } },
    5808            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
     5834          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     5835            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(0) } },
     5836            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
    58095837              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    58105838              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     
    59926020              /*xcpt?    */ true, true },
    59936021#ifdef TODO_X86_MXCSR_UE_HW /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
    5994           /* this is what works on HW (i7-10700) (same as below, plus 256:out:_UE) */
     6022         /* this is what works on HW (i7-10700) (same as below, plus 256:out:_UE) */
    59956023 /*--|30*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    59966024            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    60026030#endif /* TODO_X86_MXCSR_UE_HW */
    60036031#ifdef TODO_X86_MXCSR_UE_IEM
    6004           /* for comparison, this is what works on IEM (same as above, minus 256:out:_UE) */
     6032         /* for comparison, this is what works on IEM (same as above, minus 256:out:_UE) */
    60056033 /*--|30*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    60066034            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
     
    69606988              /*256:out  */ X86_MXCSR_DAZ,
    69616989              /*xcpt?    */ false, false },
    6962          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     6990          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    69636991            { /*src1     */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    69646992            { /* =>      */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    70537081            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    70547082            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7055               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    7056               /*128:out  */ X86_MXCSR_XCPT_MASK,
    7057               /*256:out  */ X86_MXCSR_XCPT_MASK,
    7058               /*xcpt?    */ false, false },
    7059           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7060             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7061             { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    70627083              /*mxcsr:in */ 0,
    70637084              /*128:out  */ 0,
     
    71427163    /*12*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(0), FP64_NORM_MAX(0) } },
    71437164            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(1), FP64_NORM_MAX(1) } },
    7144             { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0),        FP64_0(0)        } },
     7165            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
    71457166              /*mxcsr:in */ 0,
    71467167              /*128:out  */ 0,
     
    71577178            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
    71587179            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_1(0)        } },
    7159               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    7160               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    7161               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     7180              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     7181              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     7182              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     7183              /*xcpt?    */ false, false },
     7184          { { /*src2     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_2(0),        FP64_1(0)        } },
     7185            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     7186            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_1(0)        } },
     7187              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO,
     7188              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     7189              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
    71627190              /*xcpt?    */ false, false },
    71637191          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_0(0),        FP64_NORM_MIN(1) } },
    71647192            { /*src1     */ { FP64_0(0),        FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
    71657193            { /* =>      */ { FP64_NORM_MAX(1), FP64_INF(0),      FP64_V(1, 0, FP64_EXP_NORM_MIN + 1),  FP64_NORM_MIN(0) } },
    7166               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP,
    7167               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
    7168               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     7194              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     7195              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     7196              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     7197              /*xcpt?    */ false, false },
     7198          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_0(0),        FP64_NORM_MIN(1) } },
     7199            { /*src1     */ { FP64_0(0),        FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
     7200            { /* =>      */ { FP64_NORM_MAX(1), FP64_INF(0),      FP64_V(1, 0, FP64_EXP_NORM_MIN + 1),  FP64_NORM_MIN(0) } },
     7201              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_RC_UP,
     7202              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     7203              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_OM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
    71697204              /*xcpt?    */ false, false },
    71707205          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_0(0),        FP64_NORM_MAX(0) } },
     
    71827217              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    71837218              /*xcpt?    */ false, true },
    7184           { { /*src2     */ { FP64_0(0),        FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
    7185             { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MIN(1), FP64_1(1)        } },
    7186             { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_INF(0),      FP64_NORM_MAX(1) } },
     7219          { { /*src2     */ { FP64_0(0),        FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0)                    } },
     7220            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MIN(1), FP64_1(1)                           } },
     7221            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_1(0),        FP64_V(1, 0, FP64_EXP_NORM_MIN + 1) } },
    71877222              /*mxcsr:in */ 0,
    71887223              /*128:out  */ 0,
     
    72067241     * Denormals.
    72077242     */
    7208     /*21*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
     7243    /*23*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
    72097244            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
    72107245            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } },
    72117246              /*mxcsr:in */ 0,
    7212               /*128:out  */ X86_MXCSR_DE,
    7213               /*256:out  */ X86_MXCSR_DE,
     7247              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     7248              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     7249              /*xcpt?    */ true, true },
     7250#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out *AND* different output values */
     7251 /*--|24*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
     7252            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
     7253            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } }, /* result on HW (i7-10700) */
     7254    // IEM: { /* =>      */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, /* result on IEM */
     7255              /*mxcsr:in */ X86_MXCSR_DM,
     7256              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     7257              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     7258              /*xcpt?    */ true, true },
     7259#endif /* TODO_X86_MXCSR_UE_IEM */
     7260 /*24|25*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
     7261            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
     7262            { /* =>      */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
     7263              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     7264              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     7265              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
    72147266              /*xcpt?    */ true, true },
    72157267          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(1), FP64_DENORM_MIN(1) } },
     
    72207272              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
    72217273              /*xcpt?    */ false, false },
    7222           { { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
     7274 /*26|27*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
    72237275            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_DENORM_MIN(0), FP64_0(0) } },
    72247276            { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0),          FP64_0(0) } },
    72257277              /*mxcsr:in */ 0,
    7226               /*128:out  */ X86_MXCSR_DE,
    7227               /*256:out  */ X86_MXCSR_DE,
     7278              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     7279              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     7280              /*xcpt?    */ true, true },
     7281#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out *AND* different output values */
     7282 /*--|28*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_0(0),          FP64_0(0) } },
     7283            { /*src1     */ { FP64_0(0),          FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0) } },
     7284            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0) } }, /* result on HW (i7-10700) */
     7285    // IEM: { /* =>      */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } }, /* result on IEM */
     7286              /*mxcsr:in */ X86_MXCSR_DM,
     7287              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     7288              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     7289              /*xcpt?    */ true, true },
     7290#endif /* TODO_X86_MXCSR_UE_IEM */
     7291 /*27|29*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_0(0),          FP64_0(0) } },
     7292            { /*src1     */ { FP64_0(0),          FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0) } },
     7293            { /* =>      */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } },
     7294              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     7295              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     7296              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
    72287297              /*xcpt?    */ true, true },
    72297298          { { /*src2     */ { FP64_0(0), FP64_0(0),          FP64_DENORM_MIN(1), FP64_DENORM_MAX(1) } },
     
    72447313            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(1), FP64_DENORM_MIN(1) } },
    72457314            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1),          FP64_0(1)          } },
    7246               /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    7247               /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    7248               /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN | X86_MXCSR_DE,
     7315              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     7316              /*128:out  */ X86_MXCSR_RC_DOWN,
     7317              /*256:out  */ X86_MXCSR_RC_DOWN | X86_MXCSR_DE,
    72497318              /*xcpt?    */ false, true },
    72507319    /*
    72517320     * Invalids.
    72527321     */
    7253     /*27*/ FP64_TABLE_D1_H_PD_INVALIDS
     7322 /*31|33*/ FP64_TABLE_D1_H_PD_INVALIDS
    72547323    /** @todo Underflow; Precision; Rounding; FZ etc. */
    72557324    };
     
    73017370    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    73027371    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    7303     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     7372    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    73047373                                        g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
    73057374}
     
    73197388            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    73207389            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    7321              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    7322              /*128:out  */ X86_MXCSR_XCPT_MASK,
    7323              /*256:out  */ X86_MXCSR_XCPT_MASK,
    7324              /*xcpt?    */ false, false },
     7390              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     7391              /*128:out  */ X86_MXCSR_XCPT_MASK,
     7392              /*256:out  */ X86_MXCSR_XCPT_MASK,
     7393              /*xcpt?    */ false, false },
    73257394          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    73267395            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    76867755            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    76877756            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7688              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    7689              /*128:out  */ X86_MXCSR_XCPT_MASK,
    7690              /*256:out  */ X86_MXCSR_XCPT_MASK,
    7691              /*xcpt?    */ false, false },
    7692          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7693            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7694            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7695              /*mxcsr:in */ 0,
    7696              /*128:out  */ 0,
    7697              /*256:out  */ 0,
    7698              /*xcpt?    */ false, false },
    7699          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7700            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7701            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7702              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    7703              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    7704              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    7705              /*xcpt?    */ false, false },
    7706          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7707            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7708            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7709              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    7710              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    7711              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    7712              /*xcpt?    */ false, false },
    7713          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(0) } },
    7714            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(0) } },
    7715            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    7716              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7717              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7718              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7719              /*xcpt?    */ false, false },
    7720          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    7721            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(1) } },
    7722            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(0) } },
    7723              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7724              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7725              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7726              /*xcpt?    */ false, false },
    7727          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_0(0),       FP64_NORM_V3(1) } },
    7728            { /*src1     */ { FP64_0(0),       FP64_0(0),       FP64_NORM_V2(1), FP64_0(1)       } },
    7729            { /* =>      */ { FP64_0(0),       FP64_0(1),       FP64_0(1),       FP64_0(0)       } },
    7730              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7731              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7732              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    7733              /*xcpt?    */ false, false },
     7757              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     7758              /*128:out  */ X86_MXCSR_XCPT_MASK,
     7759              /*256:out  */ X86_MXCSR_XCPT_MASK,
     7760              /*xcpt?    */ false, false },
     7761          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7762            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7763            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7764              /*mxcsr:in */ 0,
     7765              /*128:out  */ 0,
     7766              /*256:out  */ 0,
     7767              /*xcpt?    */ false, false },
     7768          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7769            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7770            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7771              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     7772              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     7773              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     7774              /*xcpt?    */ false, false },
     7775          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7776            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7777            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7778              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     7779              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     7780              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     7781              /*xcpt?    */ false, false },
     7782          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(0) } },
     7783            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(0) } },
     7784            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     7785              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7786              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7787              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7788              /*xcpt?    */ false, false },
     7789          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     7790            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(1), FP64_0(1) } },
     7791            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(0) } },
     7792              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7793              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7794              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7795              /*xcpt?    */ false, false },
     7796          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_0(0),       FP64_NORM_V3(1) } },
     7797            { /*src1     */ { FP64_0(0),       FP64_0(0),       FP64_NORM_V2(1), FP64_0(1)       } },
     7798            { /* =>      */ { FP64_0(0),       FP64_0(1),       FP64_0(1),       FP64_0(0)       } },
     7799              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7800              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7801              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     7802              /*xcpt?    */ false, false },
    77347803    /*
    77357804     * Infinity.
     
    77387807            { /*src1     */ { FP64_INF(1), FP64_0(0), FP64_INF(0), FP64_0(0) } },
    77397808            { /* =>      */ { FP64_INF(1), FP64_0(0), FP64_INF(1), FP64_0(0) } },
    7740              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    7741              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    7742              /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    7743              /*xcpt?    */ false, false },
     7809              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     7810              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     7811              /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     7812              /*xcpt?    */ false, false },
    77447813          { { /*src2     */ { FP64_INF(0), FP64_INF(0), FP64_INF(1), FP64_INF(1) } },
    77457814            { /*src1     */ { FP64_INF(1), FP64_INF(0), FP64_INF(1), FP64_INF(0) } },
    77467815            { /* =>      */ { FP64_INF(1), FP64_INF(0), FP64_INF(0), FP64_INF(1) } },
    7747              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    7748              /*128:out  */ X86_MXCSR_XCPT_MASK,
    7749              /*256:out  */ X86_MXCSR_XCPT_MASK,
    7750              /*xcpt?    */ false, false },
     7816              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     7817              /*128:out  */ X86_MXCSR_XCPT_MASK,
     7818              /*256:out  */ X86_MXCSR_XCPT_MASK,
     7819              /*xcpt?    */ false, false },
    77517820          { { /*src2     */ { FP64_INF(0), FP64_INF(1), FP64_0(1), FP64_INF(0) } },
    77527821            { /*src1     */ { FP64_INF(1), FP64_INF(0), FP64_0(1), FP64_INF(0) } },
    77537822            { /* =>      */ { FP64_INF(1), FP64_INF(1), FP64_0(0), FP64_INF(0) } },
    7754              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7755              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7756              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7757              /*xcpt?    */ false, false },
     7823              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7824              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7825              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7826              /*xcpt?    */ false, false },
    77587827          { { /*src2     */ { FP64_INF(0), FP64_INF(1), FP64_0(1), FP64_INF(0) } },
    77597828            { /*src1     */ { FP64_INF(1), FP64_INF(0), FP64_0(1), FP64_INF(0) } },
    77607829            { /* =>      */ { FP64_INF(1), FP64_INF(1), FP64_0(0), FP64_INF(0) } },
    7761              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7762              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7763              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7764              /*xcpt?    */ false, false },
     7830              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7831              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7832              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7833              /*xcpt?    */ false, false },
    77657834          { { /*src2     */ { FP64_INF(0), FP64_INF(0),     FP64_1(0),   FP64_INF(0)     } },
    77667835            { /*src1     */ { FP64_1(0),   FP64_NORM_V0(0), FP64_INF(0), FP64_NORM_V1(0) } },
    77677836            { /* =>      */ { FP64_INF(0), FP64_INF(0),     FP64_INF(0), FP64_INF(0)     } },
    7768              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7769              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7770              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7771              /*xcpt?    */ false, false },
     7837              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7838              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7839              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7840              /*xcpt?    */ false, false },
    77727841          { { /*src2     */ { FP64_INF(1), FP64_INF(0),     FP64_NORM_V3(0), FP64_INF(1)     } },
    77737842            { /*src1     */ { FP64_1(1),   FP64_NORM_V3(1), FP64_INF(1),     FP64_NORM_V1(1) } },
    77747843            { /* =>      */ { FP64_INF(0), FP64_INF(1),     FP64_INF(1),     FP64_INF(0)     } },
    7775              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    7776              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    7777              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    7778              /*xcpt?    */ false, false },
     7844              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     7845              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     7846              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     7847              /*xcpt?    */ false, false },
    77797848    /*
    77807849     * Normals.
     
    77837852            { /*src1     */ { FP64_1(0),                                         FP64_V(0, 0x2d69a80000000, 0x413)/*  1234586.50*/, FP64_V(1, 0x4000000000000, 0x400)/*             -2.50*/, FP64_V(0, 0xb800000000000, 0x402)/*          13.75000*/ } },
    77847853            { /* =>      */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_V(0, 0xfb74e1d800000, 0x41a)/*266053390.75*/, FP64_V(0, 0x549270a11c760, 0x42c)/* 46807863534478.75*/, FP64_V(0, 0x3c30944926c00, 0x424)/*169753086244.84375*/ } },
    7785              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    7786              /*128:out  */ X86_MXCSR_XCPT_MASK,
    7787              /*256:out  */ X86_MXCSR_XCPT_MASK,
    7788              /*xcpt?    */ false, false },
     7854              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     7855              /*128:out  */ X86_MXCSR_XCPT_MASK,
     7856              /*256:out  */ X86_MXCSR_XCPT_MASK,
     7857              /*xcpt?    */ false, false },
    77897858          { { /*src2     */ { FP64_NORM_MAX(1), FP64_NORM_V3(1), FP64_1(0),       FP64_1(1)        } },
    77907859            { /*src1     */ { FP64_1(1),        FP64_1(0),       FP64_NORM_V1(0), FP64_NORM_MIN(1) } },
    77917860            { /* =>      */ { FP64_NORM_MAX(0), FP64_NORM_V3(1), FP64_NORM_V1(0), FP64_NORM_MIN(0) } },
    7792              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7793              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7794              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7795              /*xcpt?    */ false, false },
     7861              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7862              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7863              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7864              /*xcpt?    */ false, false },
    77967865          { { /*src2     */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(1, 0x68b83b1ed4000, 0x41e)/*-3025935759.4140625*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/ } },
    77977866            { /*src1     */ { FP64_V(0, 0x8000000000000, 0x3fe)/*              0.75*/, FP64_V(1, 0,               0x400)/*         -2.0000000*/, FP64_1(0),                                            FP64_V(0, 0x8000000000000, 0x400)/*              3.00*/ } },
    77987867            { /* =>      */ { FP64_V(0, 0x4da20a80c6990, 0x42e)/*183416666481484.50*/, FP64_V(0, 0x68b83b1ed4000, 0x41f)/* 6051871518.8281250*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646*/, FP64_V(0, 0x4a6a82b05f744, 0x42f)/*363296296296308.25*/ } },
    7799              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7800              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7801              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7802              /*xcpt?    */ false, false },
     7868              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7869              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7870              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7871              /*xcpt?    */ false, false },
    78037872          { { /*src2     */ { FP64_1(0),                 FP64_1(0),                                                FP64_NORM_SAFE_INT_MIN(0), FP64_1(0)                 } },
    78047873            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_1(0),                 FP64_NORM_SAFE_INT_MIN(1) } },
    78057874            { /* =>      */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(1) } },
    7806              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7807              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7808              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    7809              /*xcpt?    */ false, false },
     7875              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7876              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7877              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     7878              /*xcpt?    */ false, false },
    78107879          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V3(1) } },
    78117880            { /*src1     */ { FP64_1(0),       FP64_1(1),       FP64_1(1),       FP64_1(1)       } },
    78127881            { /* =>      */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(1), FP64_NORM_V3(0) } },
    7813              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7814              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7815              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    7816              /*xcpt?    */ false, false },
     7882              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7883              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7884              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     7885              /*xcpt?    */ false, false },
    78177886          /** @todo More Normals. */
    78187887    /*
     
    78227891            { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
    78237892            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } },
    7824              /*mxcsr:in */ 0,
    7825              /*128:out  */ X86_MXCSR_DE,
    7826              /*256:out  */ X86_MXCSR_DE,
    7827              /*xcpt?    */ true, true },
     7893              /*mxcsr:in */ 0,
     7894              /*128:out  */ X86_MXCSR_DE,
     7895              /*256:out  */ X86_MXCSR_DE,
     7896              /*xcpt?    */ true, true },
    78287897          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_0(0)          } },
    78297898            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_DENORM_MIN(0) } },
    78307899            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0)          } },
    7831              /*mxcsr:in */ X86_MXCSR_FZ,
    7832              /*128:out  */ X86_MXCSR_FZ,
    7833              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
    7834              /*xcpt?    */ false, true },
     7900              /*mxcsr:in */ X86_MXCSR_FZ,
     7901              /*128:out  */ X86_MXCSR_FZ,
     7902              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
     7903              /*xcpt?    */ false, true },
    78357904          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0)          } },
    78367905            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MIN(0) } },
    78377906            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } },
    7838              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    7839              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    7840              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    7841              /*xcpt?    */ false, false },
     7907              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     7908              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     7909              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     7910              /*xcpt?    */ false, false },
    78427911          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_1(0),          FP64_DENORM_MIN(0), FP64_1(0)          } },
    78437912            { /*src1     */ { FP64_1(0),          FP64_DENORM_MAX(0), FP64_1(0),          FP64_DENORM_MIN(0) } },
     
    83738442            { /*src1     */ { FP64_1(0),                                         FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    83748443            { /* =>      */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    8375              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    8376              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8377              /*256:out  */ X86_MXCSR_XCPT_MASK,
    8378              /*xcpt?    */ false, false },
     8444              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     8445              /*128:out  */ X86_MXCSR_XCPT_MASK,
     8446              /*256:out  */ X86_MXCSR_XCPT_MASK,
     8447              /*xcpt?    */ false, false },
    83798448          { { /*src2     */ { FP64_V(0, 0xaf00000000000, 0x406)/*      215.50*/, FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },
    83808449            { /*src1     */ { FP64_V(0, 0x2d69a80000000, 0x413)/*  1234586.50*/, FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V0(1) } },
    83818450            { /* =>      */ { FP64_V(0, 0xfb74e1d800000, 0x41a)/*266053390.75*/, FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V0(1) } },
    8382              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    8383              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8384              /*256:out  */ X86_MXCSR_XCPT_MASK,
    8385              /*xcpt?    */ false, false },
     8451              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     8452              /*128:out  */ X86_MXCSR_XCPT_MASK,
     8453              /*256:out  */ X86_MXCSR_XCPT_MASK,
     8454              /*xcpt?    */ false, false },
    83868455          { { /*src2     */ { FP64_V(1, 0x107526e749f80, 0x42b)/*-18723145413791.50*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },
    83878456            { /*src1     */ { FP64_V(1, 0x4000000000000, 0x400)/*             -2.50*/, FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V2(1) } },
    83888457            { /* =>      */ { FP64_V(0, 0x549270a11c760, 0x42c)/* 46807863534478.75*/, FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V2(1) } },
    8389              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    8390              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8391              /*256:out  */ X86_MXCSR_XCPT_MASK,
    8392              /*xcpt?    */ false, false },
     8458              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     8459              /*128:out  */ X86_MXCSR_XCPT_MASK,
     8460              /*256:out  */ X86_MXCSR_XCPT_MASK,
     8461              /*xcpt?    */ false, false },
    83938462          { { /*src2     */ { FP64_V(0, 0x6fee0e4bd0000, 0x420)/* 12345678999.62500*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    83948463            { /*src1     */ { FP64_V(0, 0xb800000000000, 0x402)/*          13.75000*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    83958464            { /* =>      */ { FP64_V(0, 0x3c30944926c00, 0x424)/*169753086244.84375*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    8396              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    8397              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8398              /*256:out  */ X86_MXCSR_XCPT_MASK,
    8399              /*xcpt?    */ false, false },
     8465              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     8466              /*128:out  */ X86_MXCSR_XCPT_MASK,
     8467              /*256:out  */ X86_MXCSR_XCPT_MASK,
     8468              /*xcpt?    */ false, false },
    84008469          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
    84018470            { /*src1     */ { FP64_1(1),        FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V2(0) } },
    84028471            { /* =>      */ { FP64_NORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V2(0) } },
    8403              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8404              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8405              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8406              /*xcpt?    */ false, false },
     8472              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8473              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8474              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8475              /*xcpt?    */ false, false },
    84078476          { { /*src2     */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    84088477            { /*src1     */ { FP64_V(0, 0x8000000000000, 0x3fe)/*              0.75*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
    84098478            { /* =>      */ { FP64_V(0, 0x4da20a80c6990, 0x42e)/*183416666481484.50*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
    8410              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8411              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8412              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8413              /*xcpt?    */ false, false },
     8479              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8480              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8481              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8482              /*xcpt?    */ false, false },
    84148483          { { /*src2     */ { FP64_V(1, 0x68b83b1ed4000, 0x41e)/*-3025935759.4140625*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    84158484            { /*src1     */ { FP64_V(1, 0,               0x400)/*         -2.0000000*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    84168485            { /* =>      */ { FP64_V(0, 0x68b83b1ed4000, 0x41f)/* 6051871518.8281250*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    8417              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8418              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8419              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8420              /*xcpt?    */ false, false },
     8486              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8487              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8488              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8489              /*xcpt?    */ false, false },
    84218490          { { /*src2     */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    84228491            { /*src1     */ { FP64_V(0, 0x8000000000000, 0x400)/*              3.00*/, FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    84238492            { /* =>      */ { FP64_V(0, 0x4a6a82b05f744, 0x42f)/*363296296296308.25*/, FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    8424              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8425              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8426              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8427              /*xcpt?    */ false, false },
     8493              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8494              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8495              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8496              /*xcpt?    */ false, false },
    84288497          { { /*src2     */ { FP64_1(0),                 FP64_0(0),                                                FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(1)          } },
    84298498            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_INF(1),               FP64_NORM_SAFE_INT_MIN(1) } },
    84308499            { /* =>      */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_INF(1),               FP64_NORM_SAFE_INT_MIN(1) } },
    8431              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8432              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8433              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8434              /*xcpt?    */ false, false },
     8500              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8501              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8502              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8503              /*xcpt?    */ false, false },
    84358504          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V3(1) } },
    84368505            { /*src1     */ { FP64_1(0),       FP64_SNAN(0),    FP64_SNAN(1),    FP64_QNAN(0)    } },
    84378506            { /* =>      */ { FP64_NORM_V0(0), FP64_SNAN(0),    FP64_SNAN(1),    FP64_QNAN(0)    } },
    8438              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8439              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8440              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    8441              /*xcpt?    */ false, false },
     8507              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8508              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8509              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     8510              /*xcpt?    */ false, false },
    84428511    /*
    84438512     * Denormals.
     
    84468515            { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    84478516            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0),          FP64_DENORM_MAX(0) } },
    8448              /*mxcsr:in */ 0,
    8449              /*128:out  */ X86_MXCSR_DE,
    8450              /*256:out  */ X86_MXCSR_DE,
    8451              /*xcpt?    */ true, true },
     8517              /*mxcsr:in */ 0,
     8518              /*128:out  */ X86_MXCSR_DE,
     8519              /*256:out  */ X86_MXCSR_DE,
     8520              /*xcpt?    */ true, true },
    84528521          { { /*src2     */ { FP64_0(0),          FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    84538522            { /*src1     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    84548523            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    8455              /*mxcsr:in */ X86_MXCSR_FZ,
    8456              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
    8457              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
    8458              /*xcpt?    */ true, true },
     8524              /*mxcsr:in */ X86_MXCSR_FZ,
     8525              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
     8526              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
     8527              /*xcpt?    */ true, true },
    84598528          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    84608529            { /*src1     */ { FP64_DENORM_MIN(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    84618530            { /* =>      */ { FP64_0(0),          FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    8462              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8463              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8464              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8465              /*xcpt?    */ false, false },
     8531              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8532              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8533              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8534              /*xcpt?    */ false, false },
    84668535          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    84678536            { /*src1     */ { FP64_1(0),          FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } },
     
    89939062            { /*src1     */ { FP64_0(0),   FP64_0(1),   FP64_0(0),   FP64_0(1) } },
    89949063            { /* =>      */ { FP64_0(0),   FP64_0(1),   FP64_0(1),   FP64_0(0) } },
    8995              /*mxcsr:in */ 0,
    8996              /*128:out  */ 0,
    8997              /*256:out  */ 0,
    8998              /*xcpt?    */ false, false },
     9064              /*mxcsr:in */ 0,
     9065              /*128:out  */ 0,
     9066              /*256:out  */ 0,
     9067              /*xcpt?    */ false, false },
    89999068          { { /*src2     */ { FP64_0(0),   FP64_0(0),   FP64_0(1),   FP64_0(1)   } },
    90009069            { /*src1     */ { FP64_INF(0), FP64_INF(1), FP64_INF(0), FP64_INF(1) } },
    90019070            { /* =>      */ { FP64_INF(0), FP64_INF(1), FP64_INF(1), FP64_INF(0) } },
    9002              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9003              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9004              /*256:out  */ X86_MXCSR_XCPT_MASK,
    9005              /*xcpt?    */ false, false },
     9071              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9072              /*128:out  */ X86_MXCSR_XCPT_MASK,
     9073              /*256:out  */ X86_MXCSR_XCPT_MASK,
     9074              /*xcpt?    */ false, false },
    90069075          { { /*src2     */ { FP64_INF(0),  FP64_INF(0),  FP64_INF(1),  FP64_INF(1) } },
    90079076            { /*src1     */ { FP64_INF(0),  FP64_INF(1),  FP64_INF(0),  FP64_INF(1) } },
    90089077            { /* =>      */ { FP64_QNAN(1), FP64_QNAN(1), FP64_QNAN(1), FP64_QNAN(1) } },
    9009              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9010              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9011              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9012              /*xcpt?    */ true, true },
     9078              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9079              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9080              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9081              /*xcpt?    */ true, true },
    90139082          { { /*src2     */ { FP64_INF(0),  FP64_INF(0),  FP64_INF(1),  FP64_INF(1) } },
    90149083            { /*src1     */ { FP64_INF(0),  FP64_INF(1),  FP64_INF(0),  FP64_INF(1) } },
    90159084            { /* =>      */ { FP64_QNAN(1), FP64_QNAN(1), FP64_QNAN(1), FP64_QNAN(1) } },
    9016              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9017              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9018              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9019              /*xcpt?    */ false, false },
     9085              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9086              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9087              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9088              /*xcpt?    */ false, false },
    90209089          { { /*src2     */ { FP64_INF(0), FP64_INF(0),     FP64_1(1),   FP64_NORM_V1(1) } },
    90219090            { /*src1     */ { FP64_1(0),   FP64_NORM_V0(1), FP64_INF(0), FP64_INF(1)     } },
    90229091            { /* =>      */ { FP64_0(0),   FP64_0(1),       FP64_INF(1), FP64_INF(0)     } },
    9023              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9024              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9025              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9026              /*xcpt?    */ false, false },
     9092              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9093              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9094              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9095              /*xcpt?    */ false, false },
    90279096          { { /*src2     */ { FP64_INF(0), FP64_INF(0),     FP64_1(1),   FP64_NORM_V2(1) } },
    90289097            { /*src1     */ { FP64_1(0),   FP64_NORM_V3(1), FP64_INF(0), FP64_INF(1)     } },
    90299098            { /* =>      */ { FP64_0(0),   FP64_0(1),       FP64_INF(1), FP64_INF(0)     } },
    9030              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    9031              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    9032              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    9033              /*xcpt?    */ false, false },
     9099              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     9100              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     9101              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     9102              /*xcpt?    */ false, false },
    90349103    /*
    90359104     * Normals.
     
    90389107            { /*src1     */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_V(0, 0xfb74e1d800000, 0x41a)/*266053390.75*/, FP64_V(0, 0x549270a11c760, 0x42c)/* 46807863534478.75*/, FP64_V(0, 0x3c30944926c00, 0x424)/*169753086244.84375*/ } },
    90399108            { /* =>      */ { FP64_1(0),                                         FP64_V(0, 0x2d69a80000000, 0x413)/*  1234586.50*/, FP64_V(1, 0x4000000000000, 0x400)/*             -2.50*/, FP64_V(0, 0xb800000000000, 0x402)/*          13.75000*/ } },
    9040              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9041              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9042              /*256:out  */ X86_MXCSR_XCPT_MASK,
    9043              /*xcpt?    */ false, false },
     9109              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9110              /*128:out  */ X86_MXCSR_XCPT_MASK,
     9111              /*256:out  */ X86_MXCSR_XCPT_MASK,
     9112              /*xcpt?    */ false, false },
    90449113          { { /*src2     */ { FP64_NORM_MAX(1), FP64_NORM_V3(1), FP64_1(0),       FP64_1(1)        } },
    90459114            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_V3(1), FP64_NORM_V1(0), FP64_NORM_MIN(0) } },
    90469115            { /* =>      */ { FP64_1(1),        FP64_1(0),       FP64_NORM_V1(0), FP64_NORM_MIN(1) } },
    9047              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9048              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9049              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9050              /*xcpt?    */ false, false },
     9116              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9117              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9118              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9119              /*xcpt?    */ false, false },
    90519120          { { /*src2     */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_V(1, 0x68b83b1ed4000, 0x41e)/*-3025935759.4140625*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646*/, FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/ } },
    90529121            { /*src1     */ { FP64_V(0, 0x4da20a80c6990, 0x42e)/*183416666481484.50*/, FP64_V(0, 0x68b83b1ed4000, 0x41f)/* 6051871518.8281250*/, FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646*/, FP64_V(0, 0x4a6a82b05f744, 0x42f)/*363296296296308.25*/ } },
    90539122            { /* =>      */ { FP64_V(0, 0x8000000000000, 0x3fe)/*              0.75*/, FP64_V(1, 0,               0x400)/*         -2.0000000*/, FP64_1(0),                                            FP64_V(0, 0x8000000000000, 0x400)/*              3.00*/ } },
    9054              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9055              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9056              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9057              /*xcpt?    */ false, false },
     9123              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9124              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9125              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9126              /*xcpt?    */ false, false },
    90589127          { { /*src2     */ { FP64_1(0),                 FP64_1(0),                                                FP64_NORM_SAFE_INT_MIN(0), FP64_1(0)                 } },
    90599128            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_SAFE_INT_MIN(1) } },
    90609129            { /* =>      */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_1(0),                 FP64_NORM_SAFE_INT_MIN(1) } },
    9061              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9062              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9063              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9064              /*xcpt?    */ false, false },
     9130              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9131              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9132              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9133              /*xcpt?    */ false, false },
    90659134          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V3(1) } },
    90669135            { /*src1     */ { FP64_NORM_V0(0), FP64_NORM_V1(0), FP64_NORM_V2(1), FP64_NORM_V3(0) } },
    90679136            { /* =>      */ { FP64_1(0),       FP64_1(1),       FP64_1(1),       FP64_1(1)       } },
    9068              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9069              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9070              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9071              /*xcpt?    */ false, false },
     9137              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9138              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9139              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9140              /*xcpt?    */ false, false },
    90729141          /** @todo More Normals. */
    90739142    /*
     
    90779146            { /*src1     */ { FP64_0(1),          FP64_DENORM_MIN(1), FP64_0(0),          FP64_DENORM_MAX(0),} },
    90789147            { /* =>      */ { FP64_0(0),          FP64_1(1),          FP64_0(1),          FP64_1(0)          } },
    9079              /*mxcsr:in */ 0,
    9080              /*128:out  */ X86_MXCSR_DE,
    9081              /*256:out  */ X86_MXCSR_DE,
    9082              /*xcpt?    */ true, true },
     9148              /*mxcsr:in */ 0,
     9149              /*128:out  */ X86_MXCSR_DE,
     9150              /*256:out  */ X86_MXCSR_DE,
     9151              /*xcpt?    */ true, true },
    90839152          { { /*src2     */ { FP64_1(0), FP64_1(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    90849153            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0)          } },
    90859154            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0),          FP64_0(0)          } },
    9086              /*mxcsr:in */ X86_MXCSR_FZ,
    9087              /*128:out  */ X86_MXCSR_FZ,
    9088              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
    9089              /*xcpt?    */ false, true },
     9155              /*mxcsr:in */ X86_MXCSR_FZ,
     9156              /*128:out  */ X86_MXCSR_FZ,
     9157              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
     9158              /*xcpt?    */ false, true },
    90909159          { { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
    90919160            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    90929161            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0),          FP64_0(0)          } },
    9093              /*mxcsr:in */ X86_MXCSR_FZ,
    9094              /*128:out  */ X86_MXCSR_FZ,
    9095              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
    9096              /*xcpt?    */ false, true },
     9162              /*mxcsr:in */ X86_MXCSR_FZ,
     9163              /*128:out  */ X86_MXCSR_FZ,
     9164              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
     9165              /*xcpt?    */ false, true },
    90979166#ifdef TODO_X86_MXCSR_UE /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 256:out */
    90989167 /*--|21*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
    90999168            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    91009169            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    9101              /*mxcsr:in */ 0,
    9102              /*128:out  */ 0,
    9103              /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
    9104              /*xcpt?    */ false, false },
     9170              /*mxcsr:in */ 0,
     9171              /*128:out  */ 0,
     9172              /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
     9173              /*xcpt?    */ false, false },
    91059174#endif /* TODO_X86_MXCSR_UE */
    91069175 /*21|22*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
    91079176            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    91089177            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    9109              /*mxcsr:in */ X86_MXCSR_UM,
    9110              /*128:out  */ X86_MXCSR_UM,
    9111              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
    9112              /*xcpt?    */ false, false },
     9178              /*mxcsr:in */ X86_MXCSR_UM,
     9179              /*128:out  */ X86_MXCSR_UM,
     9180              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     9181              /*xcpt?    */ false, false },
    91139182#ifdef TODO_X86_MXCSR_UE /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 256:out */
    91149183 /*--|23*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
    91159184            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    91169185            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    9117              /*mxcsr:in */ X86_MXCSR_DM,
    9118              /*128:out  */ X86_MXCSR_DM,
    9119              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
    9120              /*xcpt?    */ false, true },
     9186              /*mxcsr:in */ X86_MXCSR_DM,
     9187              /*128:out  */ X86_MXCSR_DM,
     9188              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
     9189              /*xcpt?    */ false, true },
    91219190#endif /* TODO_X86_MXCSR_UE */
    91229191 /*22|24*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
    91239192            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    91249193            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    9125              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
    9126              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM,
    9127              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
    9128              /*xcpt?    */ false, true },
     9194              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     9195              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM,
     9196              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     9197              /*xcpt?    */ false, true },
    91299198          { { /*src2     */ { FP64_1(0),          FP64_1(0),          FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
    91309199            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0),          FP64_1(1)          } },
    91319200            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_QNAN(1),       FP64_INF(1)        } },
    9132              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    9133              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    9134              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE | X86_MXCSR_ZE,
    9135              /*xcpt?    */ false, true },
     9201              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     9202              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     9203              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE | X86_MXCSR_ZE,
     9204              /*xcpt?    */ false, true },
    91369205          { { /*src2     */ { FP64_1(0),          FP64_1(0),          FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),} },
    91379206            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_1(0),          FP64_1(0)          } },
     
    97119780            { /*src1     */ { FP64_V(0, 0xe66f500000000, 0x40d)/*31131.828125*/, FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    97129781            { /* =>      */ { FP64_1(0),                                         FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(1) } },
    9713              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9714              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9715              /*256:out  */ X86_MXCSR_XCPT_MASK,
    9716              /*xcpt?    */ false, false },
     9782              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9783              /*128:out  */ X86_MXCSR_XCPT_MASK,
     9784              /*256:out  */ X86_MXCSR_XCPT_MASK,
     9785              /*xcpt?    */ false, false },
    97179786          { { /*src2     */ { FP64_V(0, 0xaf00000000000, 0x406)/*      215.50*/, FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },
    97189787            { /*src1     */ { FP64_V(0, 0xfb74e1d800000, 0x41a)/*266053390.75*/, FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V0(1) } },
    97199788            { /* =>      */ { FP64_V(0, 0x2d69a80000000, 0x413)/*  1234586.50*/, FP64_RAND_V1(0), FP64_RAND_V1(1), FP64_RAND_V0(1) } },
    9720              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9721              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9722              /*256:out  */ X86_MXCSR_XCPT_MASK,
    9723              /*xcpt?    */ false, false },
     9789              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9790              /*128:out  */ X86_MXCSR_XCPT_MASK,
     9791              /*256:out  */ X86_MXCSR_XCPT_MASK,
     9792              /*xcpt?    */ false, false },
    97249793          { { /*src2     */ { FP64_V(1, 0x107526e749f80, 0x42b)/*-18723145413791.50*/, FP64_RAND_V3(0), FP64_RAND_V1(0), FP64_RAND_V1(1) } },
    97259794            { /*src1     */ { FP64_V(0, 0x549270a11c760, 0x42c)/* 46807863534478.75*/, FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V2(1) } },
    97269795            { /* =>      */ { FP64_V(1, 0x4000000000000, 0x400)/*             -2.50*/, FP64_RAND_V0(0), FP64_RAND_V2(1), FP64_RAND_V2(1) } },
    9727              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9728              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9729              /*256:out  */ X86_MXCSR_XCPT_MASK,
    9730              /*xcpt?    */ false, false },
     9796              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9797              /*128:out  */ X86_MXCSR_XCPT_MASK,
     9798              /*256:out  */ X86_MXCSR_XCPT_MASK,
     9799              /*xcpt?    */ false, false },
    97319800          { { /*src2     */ { FP64_V(0, 0x6fee0e4bd0000, 0x420)/* 12345678999.62500*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    97329801            { /*src1     */ { FP64_V(0, 0x3c30944926c00, 0x424)/*169753086244.84375*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    97339802            { /* =>      */ { FP64_V(0, 0xb800000000000, 0x402)/*          13.75000*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    9734              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9735              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9736              /*256:out  */ X86_MXCSR_XCPT_MASK,
    9737              /*xcpt?    */ false, false },
     9803              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9804              /*128:out  */ X86_MXCSR_XCPT_MASK,
     9805              /*256:out  */ X86_MXCSR_XCPT_MASK,
     9806              /*xcpt?    */ false, false },
    97389807          { { /*src2     */ { FP64_NORM_MAX(1), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
    97399808            { /*src1     */ { FP64_NORM_MAX(0), FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V2(0) } },
    97409809            { /* =>      */ { FP64_1(1),        FP64_RAND_V1(1), FP64_RAND_V0(0), FP64_RAND_V2(0) } },
    9741              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9742              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9743              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9744              /*xcpt?    */ false, false },
     9810              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9811              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9812              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9813              /*xcpt?    */ false, false },
    97459814          { { /*src2     */ { FP64_V(0, 0xbcd80e0108cc0, 0x42e)/*244555555308646.00*/, FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    97469815            { /*src1     */ { FP64_V(0, 0x4da20a80c6990, 0x42e)/*183416666481484.50*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
    97479816            { /* =>      */ { FP64_V(0, 0x8000000000000, 0x3fe)/*              0.75*/, FP64_RAND_V1(1), FP64_RAND_V2(1), FP64_RAND_V3(1) } },
    9748              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9749              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9750              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9751              /*xcpt?    */ false, false },
     9817              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9818              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9819              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9820              /*xcpt?    */ false, false },
    97529821          { { /*src2     */ { FP64_V(1, 0x68b83b1ed4000, 0x41e)/*-3025935759.4140625*/, FP64_RAND_V0(0), FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    97539822            { /*src1     */ { FP64_V(0, 0x68b83b1ed4000, 0x41f)/* 6051871518.8281250*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    97549823            { /* =>      */ { FP64_V(1, 0,               0x400)/*         -2.0000000*/, FP64_RAND_V2(0), FP64_RAND_V1(1), FP64_RAND_V3(1) } },
    9755              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9756              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9757              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9758              /*xcpt?    */ false, false },
     9824              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9825              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9826              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9827              /*xcpt?    */ false, false },
    97599828          { { /*src2     */ { FP64_V(0, 0xb88e0395d49b0, 0x42d)/*121098765432102.75*/, FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    97609829            { /*src1     */ { FP64_V(0, 0x4a6a82b05f744, 0x42f)/*363296296296308.25*/, FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    97619830            { /* =>      */ { FP64_V(0, 0x8000000000000, 0x400)/*              3.00*/, FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9762              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9763              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9764              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9765              /*xcpt?    */ false, false },
     9831              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9832              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9833              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9834              /*xcpt?    */ false, false },
    97669835          { { /*src2     */ { FP64_1(0),                 FP64_0(0),                                                FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(1)          } },
    97679836            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_INF(1),               FP64_NORM_SAFE_INT_MIN(1) } },
    97689837            { /* =>      */ { FP64_NORM_SAFE_INT_MAX(0), FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_SAFE_INT_MAX), FP64_INF(1),               FP64_NORM_SAFE_INT_MIN(1) } },
    9769              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9770              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9771              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9772              /*xcpt?    */ false, false },
     9838              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9839              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9840              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9841              /*xcpt?    */ false, false },
    97739842          { { /*src2     */ { FP64_NORM_V0(0), FP64_NORM_V1(1), FP64_NORM_V2(0), FP64_NORM_V3(1) } },
    97749843            { /*src1     */ { FP64_NORM_V0(0), FP64_SNAN(0),    FP64_SNAN(1),    FP64_QNAN(0)    } },
    97759844            { /* =>      */ { FP64_1(0),       FP64_SNAN(0),    FP64_SNAN(1),    FP64_QNAN(0)    } },
    9776              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9777              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9778              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    9779              /*xcpt?    */ false, false },
     9845              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9846              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9847              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     9848              /*xcpt?    */ false, false },
    97809849    /*
    97819850     * Denormals.
     
    97859854            { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    97869855            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9787              /*mxcsr:in */ 0,
    9788              /*128:out  */ X86_MXCSR_DE,
    9789              /*256:out  */ X86_MXCSR_DE,
    9790              /*xcpt?    */ true, true },
     9856              /*mxcsr:in */ 0,
     9857              /*128:out  */ X86_MXCSR_DE,
     9858              /*256:out  */ X86_MXCSR_DE,
     9859              /*xcpt?    */ true, true },
    97919860          { { /*   MASKED:           0 /  DENORM_MAX = 0        &_DE */
    97929861              /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    97939862            { /*src1     */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    97949863            { /* =>      */ { FP64_0(0),          FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9795              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9796              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    9797              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    9798              /*xcpt?    */ false, false },
     9864              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9865              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     9866              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     9867              /*xcpt?    */ false, false },
    97999868          { { /* UNMASKED:  DENORM_MAX / -0          = -INF    &&_ZE */
    98009869              /*src2     */ { FP64_0(1),          FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    98019870            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    98029871            { /* =>      */ { FP64_INF(1),        FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9803              /*mxcsr:in */ 0,
    9804              /*128:out  */ X86_MXCSR_ZE,
    9805              /*256:out  */ X86_MXCSR_ZE,
    9806              /*xcpt?    */ true, true },
     9872              /*mxcsr:in */ 0,
     9873              /*128:out  */ X86_MXCSR_ZE,
     9874              /*256:out  */ X86_MXCSR_ZE,
     9875              /*xcpt?    */ true, true },
    98079876          { { /*   MASKED: -DENORM_MAX / -0          = INF      &_ZE */
    98089877              /*src2     */ { FP64_0(1),          FP64_0(0),           FP64_DENORM_MIN(0), FP64_0(0)          } },
    98099878            { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    98109879            { /* =>      */ { FP64_INF(0),        FP64_DENORM_MIN(0),  FP64_0(0),          FP64_DENORM_MAX(0) } },
    9811              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9812              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    9813              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    9814              /*xcpt?    */ false, false },
     9880              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9881              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
     9882              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
     9883              /*xcpt?    */ false, false },
    98159884          { { /*   MASKED: -DENORM_MAX /  DENORM_MIN = (-huge)  &_DE */
    98169885              /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98179886            { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98189887            { /* =>      */ { FP64_V(1, 0xffffffffffffe, 0x432)/*-4503599627370495.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9819              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    9820              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_DE,
    9821              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_DE,
    9822              /*xcpt?    */ false, false },
     9888              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     9889              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_DE,
     9890              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_DE,
     9891              /*xcpt?    */ false, false },
    98239892          { { /* UNMASKED: -DENORM_MAX / -DENORM_MIN = (huge)  &&_DE */
    98249893              /*src2     */ { FP64_DENORM_MIN(1), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98259894            { /*src1     */ { FP64_DENORM_MAX(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98269895            { /* =>      */ { FP64_V(0, 0xffffffffffffe, 0x432)/*4503599627370495.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9827              /*mxcsr:in */ X86_MXCSR_RC_UP,
    9828              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_DE,
    9829              /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_DE,
    9830              /*xcpt?    */ true, true },
     9896              /*mxcsr:in */ X86_MXCSR_RC_UP,
     9897              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_DE,
     9898              /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_DE,
     9899              /*xcpt?    */ true, true },
    98319900          { { /*   MASKED: -DENORM_MIN /  DENORM_MAX = (-tiny)  &_DE,_PE */
    98329901              /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98339902            { /*src1     */ { FP64_DENORM_MIN(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98349903            { /* =>      */ { FP64_V(1, 0x0000000000001, 0x3cb)/*-22204460492503135739e-35*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9835              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9836              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    9837              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    9838              /*xcpt?    */ false, false },
     9904              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9905              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
     9906              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
     9907              /*xcpt?    */ false, false },
    98399908          { { /*   MASKED:          -0 /  DENORM_MIN = -0       &_DE */
    98409909              /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98419910            { /*src1     */ { FP64_0(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98429911            { /* =>      */ { FP64_0(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9843              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9844              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    9845              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    9846              /*xcpt?    */ false, false },
     9912              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9913              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     9914              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     9915              /*xcpt?    */ false, false },
    98479916          { { /*   MASKED:       -0.25 /  DENORM_MAX = (-HUGE)  &_DE &_PE */
    98489917              /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98499918            { /*src1     */ { FP64_V(1, 0, 0x3fd)/*0.25*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98509919            { /* =>      */ { FP64_V(1, 1, 0x7fb)/*1.1XYZe307*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9851              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9852              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    9853              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
    9854              /*xcpt?    */ false, false },
     9920              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9921              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
     9922              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE,
     9923              /*xcpt?    */ false, false },
    98559924          { { /*   MASKED:        42.0 /  DENORM_MIN = INF      &_DE &_PE &_OE */
    98569925              /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98579926            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98589927            { /* =>      */ { FP64_INF(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9859              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9860              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE,
    9861              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE,
    9862              /*xcpt?    */ false, false },
     9928              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9929              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE,
     9930              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_OE,
     9931              /*xcpt?    */ false, false },
    98639932          { { /* ~OMASKED:        42.0 /  DENORM_MIN = INF      &_DE &&_OE */
    98649933              /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98659934            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98669935            { /* =>      */ { FP64_INF(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9867              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM,
    9868              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM) | X86_MXCSR_DE | X86_MXCSR_OE,
    9869              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM) | X86_MXCSR_DE | X86_MXCSR_OE,
    9870              /*xcpt?    */ true, true },
     9936              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM,
     9937              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM) | X86_MXCSR_DE | X86_MXCSR_OE,
     9938              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_OM) | X86_MXCSR_DE | X86_MXCSR_OE,
     9939              /*xcpt?    */ true, true },
    98719940          { { /* DAZ+MASK:        42.0 /  DENORM_MIN = INF      &_ZE */
    98729941              /*src2     */ { FP64_DENORM_MIN(0), FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98739942            { /*src1     */ { FP64_V(0, 0x5000000000000, 0x404)/*42.0*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98749943            { /* =>      */ { FP64_INF(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9875              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    9876              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE | X86_MXCSR_DAZ,
    9877              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE | X86_MXCSR_DAZ,
    9878              /*xcpt?    */ false, false },
     9944              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     9945              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE | X86_MXCSR_DAZ,
     9946              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE | X86_MXCSR_DAZ,
     9947              /*xcpt?    */ false, false },
    98799948          { { /*   MASKED:  DENORM_MAX /       -42.0 = -5e-310  &_DE &_PE &_UE */
    98809949              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    98819950            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98829951            { /* =>      */ { FP64_V(1, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9883              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9884              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE,
    9885              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE,
    9886              /*xcpt?    */ false, false },
     9952              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     9953              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE,
     9954              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE,
     9955              /*xcpt?    */ false, false },
    98879956#ifdef TODO_X86_MXCSR_PE /** @todo THIS FAILS ON IEM: X86_MXCSR_PE not set in 128:out */
    98889957          { { /* ~UMASKED:  DENORM_MAX /        42.0 = 5e-310   &_DE &_PE &&_UE */
     
    98909959            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    98919960            { /* =>      */ { FP64_V(0, 0x618618618618, 0)/*-5.29XYZe-310*/, FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9892              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM,
    9893              /*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 */
    9894              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM) | X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE,
    9895              /*xcpt?    */ true, true },
     9961              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM,
     9962              /*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 */
     9963              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_UM) | X86_MXCSR_PE | X86_MXCSR_DE | X86_MXCSR_UE,
     9964              /*xcpt?    */ true, true },
    98969965#endif /* TODO_X86_MXCSR_PE */
    98979966          { { /* DAZ+MASK:  DENORM_MAX /       -42.0 = -0       &- */
     
    98999968            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    99009969            { /* =>      */ { FP64_0(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9901              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    9902              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    9903              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    9904              /*xcpt?    */ false, false },
     9970              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     9971              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     9972              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     9973              /*xcpt?    */ false, false },
    99059974          { { /* DAZ+FZ+M:  DENORM_MAX /       -42.0 = -0       &- */
    99069975              /*src2     */ { FP64_V(1, 0x5000000000000, 0x404)/*-42.0*/, FP64_0(0),           FP64_RAND_V2(0), FP64_RAND_V1(1) } },
    99079976            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    99089977            { /* =>      */ { FP64_0(1), FP64_DENORM_MIN(0),  FP64_RAND_V1(1), FP64_RAND_V3(0) } },
    9909              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    9910              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    9911              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    9912              /*xcpt?    */ false, false },
     9978              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     9979              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     9980              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     9981              /*xcpt?    */ false, false },
    99139982          /** @todo how to usefully test FZ, RC_{NEAREST,UP,DOWN,ZERO} ? */
    99149983
     
    997710046              /*256:out  */ 0,
    997810047              /*xcpt?    */ false, false },
    9979          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9980            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9981            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9982              /*mxcsr:in */ 0,
    9983              /*128:out  */ 0,
    9984              /*256:out  */ 0,
    9985              /*xcpt?    */ false, false },
    9986          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9987            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9988            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9989              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    9990              /*128:out  */ X86_MXCSR_RC_ZERO,
    9991              /*256:out  */ X86_MXCSR_RC_ZERO,
    9992              /*xcpt?    */ false, false },
    9993          { { /*src2     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    9994            { /*src1     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    9995            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    9996              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    9997              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    9998              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    9999              /*xcpt?    */ false, false },
    10000          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    10001            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    10002            { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    10003              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10004              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10005              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10006              /*xcpt?    */ false, false },
    10007          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    10008            { /*src1     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    10009            { /* =>      */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    10010              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10011              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10012              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10013              /*xcpt?    */ false, false },
    10014          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
    10015            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1) } },
    10016            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    10017              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10018              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10019              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10020              /*xcpt?    */ false, false },
    10021          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
    10022            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1) } },
    10023            { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1) } },
    10024              /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    10025              /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    10026              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    10027              /*xcpt?    */ false, false },
    10028          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
    10029            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1) } },
    10030            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    10031              /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
    10032              /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
    10033              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
    10034              /*xcpt?    */ false, false },
     10048          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     10049            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     10050            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     10051              /*mxcsr:in */ 0,
     10052              /*128:out  */ 0,
     10053              /*256:out  */ 0,
     10054              /*xcpt?    */ false, false },
     10055          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     10056            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     10057            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     10058              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     10059              /*128:out  */ X86_MXCSR_RC_ZERO,
     10060              /*256:out  */ X86_MXCSR_RC_ZERO,
     10061              /*xcpt?    */ false, false },
     10062          { { /*src2     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     10063            { /*src1     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     10064            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     10065              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     10066              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     10067              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     10068              /*xcpt?    */ false, false },
     10069          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
     10070            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
     10071            { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
     10072              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10073              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10074              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10075              /*xcpt?    */ false, false },
     10076          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
     10077            { /*src1     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
     10078            { /* =>      */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
     10079              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10080              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10081              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10082              /*xcpt?    */ false, false },
     10083          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
     10084            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1) } },
     10085            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     10086              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10087              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10088              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10089              /*xcpt?    */ false, false },
     10090          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
     10091            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1) } },
     10092            { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1) } },
     10093              /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
     10094              /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
     10095              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
     10096              /*xcpt?    */ false, false },
     10097          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
     10098            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(1) } },
     10099            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
     10100              /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
     10101              /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
     10102              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
     10103              /*xcpt?    */ false, false },
    1003510104    /*
    1003610105     * Infinity.
     
    1033510404              /*256:out  */ 0,
    1033610405              /*xcpt?    */ false, false },
    10337          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10338            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10339            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10340              /*mxcsr:in */ 0,
    10341              /*128:out  */ 0,
    10342              /*256:out  */ 0,
    10343              /*xcpt?    */ false, false },
    10344          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10345            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10346            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10347              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    10348              /*128:out  */ X86_MXCSR_RC_ZERO,
    10349              /*256:out  */ X86_MXCSR_RC_ZERO,
    10350              /*xcpt?    */ false, false },
    10351          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10352            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10353            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10354              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    10355              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    10356              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    10357              /*xcpt?    */ false, false },
    10358          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10359            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(0) } },
    10360            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
    10361              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10362              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10363              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10364              /*xcpt?    */ false, false },
    10365          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(0) } },
    10366            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10367            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10368              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10369              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10370              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10371              /*xcpt?    */ false, false },
    10372          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10373            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10374            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10375              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10376              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10377              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10378              /*xcpt?    */ false, false },
    10379          { { /*src2     */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
    10380            { /*src1     */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
    10381            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10382              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10383              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10384              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10385              /*xcpt?    */ false, false },
    10386          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(1) } },
    10387            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
    10388            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10389              /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    10390              /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    10391              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN,
    10392              /*xcpt?    */ false, false },
    10393          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } },
    10394            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
    10395            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(1) } },
    10396              /*mxcsr:in */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
    10397              /*128:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
    10398              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO,
    10399              /*xcpt?    */ false, false },
     10406          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10407            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10408            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10409              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     10410              /*128:out  */ X86_MXCSR_RC_ZERO,
     10411              /*256:out  */ X86_MXCSR_RC_ZERO,
     10412              /*xcpt?    */ false, false },
     10413          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10414            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10415            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10416              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     10417              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     10418              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     10419              /*xcpt?    */ false, false },
     10420          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10421            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(0) } },
     10422            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
     10423              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10424              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10425              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10426              /*xcpt?    */ false, false },
     10427          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(0) } },
     10428            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10429            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10430              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10431              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10432              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     10433              /*xcpt?    */ false, false },
     10434          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10435            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10436            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10437              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10438              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10439              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10440              /*xcpt?    */ false, false },
     10441          { { /*src2     */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
     10442            { /*src1     */ { FP64_0(1), FP64_0(1), FP64_0(1), FP64_0(1) } },
     10443            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10444              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10445              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10446              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     10447              /*xcpt?    */ false, false },
     10448          { { /*src2     */ { FP64_0(0), FP64_0(1), FP64_0(1), FP64_0(1) } },
     10449            { /*src1     */ { FP64_0(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
     10450            { /* =>      */ { FP64_0(1), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10451              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     10452              /*128:out  */ X86_MXCSR_RC_DOWN,
     10453              /*256:out  */ X86_MXCSR_RC_DOWN,
     10454              /*xcpt?    */ false, false },
     10455          { { /*src2     */ { FP64_0(1), FP64_0(0), FP64_0(1), FP64_0(1) } },
     10456            { /*src1     */ { FP64_0(0), FP64_0(1), FP64_0(0), FP64_0(1) } },
     10457            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0), FP64_0(1) } },
     10458              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     10459              /*128:out  */ X86_MXCSR_RC_ZERO,
     10460              /*256:out  */ X86_MXCSR_RC_ZERO,
     10461              /*xcpt?    */ false, false },
    1040010462    /*
    1040110463     * Infinity.
    1040210464     */
    10403     /*10*/{ { /*src2     */ { FP64_INF(0),  FP64_INF(0), FP64_INF(0), FP64_INF(0)  } },
     10465    /* 9*/{ { /*src2     */ { FP64_INF(0),  FP64_INF(0), FP64_INF(0), FP64_INF(0)  } },
    1040410466            { /*src1     */ { FP64_INF(0),  FP64_INF(0), FP64_INF(1), FP64_INF(1)  } },
    1040510467            { /* =>      */ { FP64_QNAN(1), FP64_INF(0), FP64_INF(1), FP64_QNAN(1) } },
     
    1041410476              /*128:out  */ X86_MXCSR_IM | X86_MXCSR_IE,
    1041510477              /*256:out  */ X86_MXCSR_IM | X86_MXCSR_IE,
    10416               /*xcpt?    */ false, false },
    10417           { { /*src2     */ { FP64_INF(0),  FP64_INF(0), FP64_INF(0), FP64_INF(0)  } },
    10418             { /*src1     */ { FP64_INF(0),  FP64_INF(0), FP64_INF(1), FP64_INF(1)  } },
    10419             { /* =>      */ { FP64_QNAN(1), FP64_INF(0), FP64_INF(1), FP64_QNAN(1) } },
    10420               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    10421               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    10422               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    10423               /*xcpt?    */ false, false },
    10424           { { /*src2     */ { FP64_INF(1), FP64_INF(1),  FP64_INF(1),  FP64_INF(1) } },
    10425             { /*src1     */ { FP64_INF(0), FP64_INF(0),  FP64_INF(1),  FP64_INF(1) } },
    10426             { /* =>      */ { FP64_INF(0), FP64_QNAN(1), FP64_QNAN(1), FP64_INF(1) } },
    10427               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    10428               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    10429               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    1043010478              /*xcpt?    */ false, false },
    1043110479          { { /*src2     */ { FP64_INF(0),  FP64_INF(0), FP64_INF(0), FP64_INF(0)  } },
     
    1050210550     * Overflow, Precision.
    1050310551     */
    10504     /*24*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     10552    /*21*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
    1050510553            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
    1050610554            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0),        FP64_INF(0)      } },
    1050710555              /*mxcsr:in */ 0,
    1050810556              /*128:out  */ 0,
    10509               /*256:out  */ X86_MXCSR_OE,
     10557              /*256:out  */ X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    1051010558              /*xcpt?    */ false, true },
    1051110559          { { /*src2     */ { FP64_NORM_MIN(0),                                     FP64_NORM_MAX(0), FP64_1(0), FP64_NORM_MAX(1) } },
     
    1052010568            { /* =>      */ { FP64_NORM_MAX(1), FP64_2(0), FP64_NORM_V3(1), FP64_NORM_MAX(0) } },
    1052110569              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    10522               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    10523               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     10570              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     10571              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    1052410572              /*xcpt?    */ false, false },
    1052510573          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1),                     FP64_NORM_V3(0), FP64_NORM_MAX(0) } },
     
    1052810576              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    1052910577              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    10530               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     10578              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    1053110579              /*xcpt?    */ false, false },
    1053210580          { { /*src2     */ { FP64_NORM_MAX(0),                                     FP64_NORM_MIN(1),                    FP64_0(0), FP64_NORM_MAX(0) } },
     
    1054110589            { /* =>      */ { FP64_0(1),        FP64_NORM_MAX(0), FP64_INF(1),      FP64_NORM_V2(1) } },
    1054210590              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    10543               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
    10544               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     10591              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     10592              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    1054510593              /*xcpt?    */ false, false },
    1054610594          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
    1054710595            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
    10548             { /* =>      */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     10596            { /* =>      */ { FP64_0(0),        FP64_INF(1),      FP64_0(0),        FP64_INF(0)      } },
    1054910597              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    10550               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE,
    10551               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE,
     10598              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     10599              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    1055210600              /*xcpt?    */ true, true },
    1055310601          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     
    1055510603            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_0(0),        FP64_NORM_MAX(0) } },
    1055610604              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    10557               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    10558               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     10605              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     10606              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
    1055910607              /*xcpt?    */ false, false },
    1056010608          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     
    1056210610            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_0(0),        FP64_INF(0)      } },
    1056310611              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP,
    10564               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
    10565               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
    10566               /*xcpt?    */ false, false },
    10567           { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                            FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                            } },
    10568             { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),                            FP64_NORM_MAX(1), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                            } },
    10569             { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX, FP64_EXP_SAFE_INT_MAX), FP64_NORM_MAX(1), FP64_0(0), FP64_V(1, FP64_FRAC_NORM_MAX, FP64_EXP_SAFE_INT_MAX) } },
    10570               /*mxcsr:in */ 0,
    10571               /*128:out  */ X86_MXCSR_PE,
    10572               /*256:out  */ X86_MXCSR_PE,
    10573               /*xcpt?    */ true, true },
     10612              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     10613              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
     10614              /*xcpt?    */ false, false },
    1057410615          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                            FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                                } },
    1057510616            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),                            FP64_NORM_MAX(1), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                                } },
     
    1058210623     * Normals.
    1058310624     */
    10584     /*35*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_V1(0), FP64_NORM_MAX(1) } },
     10625    /*31*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_V1(0), FP64_NORM_MAX(1) } },
    1058510626            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_V1(0), FP64_NORM_MAX(0) } },
    1058610627            { /* =>      */ { FP64_0(0),        FP64_0(0),        FP64_0(0),       FP64_0(0)        } },
     
    1063510676     * Denormals.
    1063610677     */
    10637     /*42*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10678    /*38*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
    1063810679            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
    1063910680            { /* =>      */ { FP64_DENORM_MAX(1), FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN), FP64_0(0),          FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN) } },
    10640               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    10641               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10642               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10643               /*xcpt?    */ false, false },
     10681              /*mxcsr:in */ 0,
     10682              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10683              /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10684              /*xcpt?    */ false, false },
     10685          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10686            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10687            { /* =>      */ { FP64_DENORM_MAX(1), FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN), FP64_0(0),          FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN) } },
     10688              /*mxcsr:in */ X86_MXCSR_UM,
     10689              /*128:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10690              /*256:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10691              /*xcpt?    */ false, false },
     10692#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
     10693 /*--|40*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10694            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10695            { /* =>      */ { FP64_DENORM_MAX(1), FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN), FP64_0(0),          FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN) } },
     10696              /*mxcsr:in */ X86_MXCSR_DM,
     10697              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10698              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10699              /*xcpt?    */ false, false },
     10700#endif /* TODO_X86_MXCSR_UE_IEM */
     10701 /*40|41*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10702            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10703            { /* =>      */ { FP64_DENORM_MAX(1), FP64_DENORM_MAX(1), FP64_0(0),          FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN) } },
     10704              /*mxcsr:in */ 0,
     10705              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10706              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10707              /*xcpt?    */ true, true },
    1064410708          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
    1064510709            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
    1064610710            { /* =>      */ { FP64_DENORM_MAX(1), FP64_DENORM_MAX(1), FP64_0(0),          FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN) } },
     10711              /*mxcsr:in */ X86_MXCSR_UM,
     10712              /*128:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10713              /*256:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10714              /*xcpt?    */ true, true },
     10715#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
     10716 /*--|43*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10717            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0)                                   } },
     10718            { /* =>      */ { FP64_DENORM_MAX(1), FP64_DENORM_MAX(1), FP64_0(0),          FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN) } },
     10719              /*mxcsr:in */ X86_MXCSR_DM,
     10720              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10721              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10722              /*xcpt?    */ true, true },
     10723#endif /* TODO_X86_MXCSR_UE_IEM */
     10724 /*42|44*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_0(0),          FP64_0(0)          } },
     10725            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
     10726            { /* =>      */ { FP64_DENORM_MAX(1), FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
    1064710727              /*mxcsr:in */ 0,
    10648               /*128:out  */ X86_MXCSR_DE,
    10649               /*256:out  */ X86_MXCSR_DE,
     10728              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10729              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
    1065010730              /*xcpt?    */ true, true },
    1065110731          { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_0(0),          FP64_0(0)          } },
    1065210732            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
    1065310733            { /* =>      */ { FP64_DENORM_MAX(1), FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
     10734              /*mxcsr:in */ X86_MXCSR_UM,
     10735              /*128:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10736              /*256:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10737              /*xcpt?    */ true, true },
     10738#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
     10739 /*--|46*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(1),                                   FP64_0(0),          FP64_0(0)          } },
     10740            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1),                                   FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
     10741            { /* =>      */ { FP64_DENORM_MAX(1), FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MIN), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
     10742              /*mxcsr:in */ X86_MXCSR_DM,
     10743              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10744              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10745              /*xcpt?    */ true, true },
     10746#endif /* TODO_X86_MXCSR_UE_IEM */
     10747 /*44|47*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0)} },
     10748            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0)} },
     10749            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0)} },
    1065410750              /*mxcsr:in */ 0,
    10655               /*128:out  */ X86_MXCSR_DE,
    10656               /*256:out  */ X86_MXCSR_DE,
    10657               /*xcpt?    */ true, true },
     10751              /*128:out  */ 0,
     10752              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10753              /*xcpt?    */ false, false },
    1065810754          { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0)} },
    1065910755            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0)} },
    1066010756            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0)} },
    10661               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    10662               /*128:out  */ X86_MXCSR_XCPT_MASK,
    10663               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    10664               /*xcpt?    */ false, false },
    10665           { { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
     10757              /*mxcsr:in */ X86_MXCSR_UM,
     10758              /*128:out  */ X86_MXCSR_UM,
     10759              /*256:out  */ X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
     10760              /*xcpt?    */ false, false },
     10761#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
     10762 /*--|49*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_0(0),          FP64_0(0)} },
     10763            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0)} },
     10764            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0)} },
     10765              /*mxcsr:in */ X86_MXCSR_DM,
     10766              /*128:out  */ X86_MXCSR_DM,
     10767              /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     10768              /*xcpt?    */ false, false },
     10769#endif /* TODO_X86_MXCSR_UE_IEM */
     10770 /*46|50*/{ { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
    1066610771            { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } },
    1066710772            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)         } },
     
    1073710842     * Invalids.
    1073810843     */
    10739     /*56*/ FP64_TABLE_D1_PD_INVALIDS
     10844 /*56|60*/ FP64_TABLE_D1_PD_INVALIDS
    1074010845    /** @todo Underflow; Precision; Rounding; FZ etc. */
    1074110846    };
     
    1078710892    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    1078810893    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    10789     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     10894    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    1079010895                                        g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
    1079110896}
     
    1086810973     * Infinity.
    1086910974     */
    10870     /*9 */{ { /*src2     */ { FP32_INF(0), FP32_0(0),   FP32_INF(0), FP32_0(1),   FP32_INF(1), FP32_0(0),   FP32_INF(1), FP32_0(0)   } },
     10975    /* 9*/{ { /*src2     */ { FP32_INF(0), FP32_0(0),   FP32_INF(0), FP32_0(1),   FP32_INF(1), FP32_0(0),   FP32_INF(1), FP32_0(0)   } },
    1087110976            { /*src1     */ { FP32_0(0),   FP32_INF(0), FP32_0(1),   FP32_INF(0), FP32_0(0),   FP32_INF(1), FP32_0(0),   FP32_INF(1) } },
    1087210977            { /* =>      */ { FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_0(0),   FP32_0(0),   FP32_0(0),   FP32_0(0)   } },
     
    1118811293     * Infinity.
    1118911294     */
    11190     /*9 */{ { /*src2     */ { FP64_INF(0), FP64_0(0),   FP64_INF(0), FP64_0(1)   } },
     11295    /* 9*/{ { /*src2     */ { FP64_INF(0), FP64_0(0),   FP64_INF(0), FP64_0(1)   } },
    1119111296            { /*src1     */ { FP64_0(0),   FP64_INF(0), FP64_0(1),   FP64_INF(0) } },
    1119211297            { /* =>      */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(0) } },
     
    1242612531     * Infinity.
    1242712532     */
    12428     /*9 */{ { /*src2     */ { FP32_INF(0), FP32_0(0),   FP32_INF(1), FP32_0(1),   FP32_INF(1), FP32_0(0),   FP32_INF(1), FP32_0(0)   } },
     12533    /* 9*/{ { /*src2     */ { FP32_INF(0), FP32_0(0),   FP32_INF(1), FP32_0(1),   FP32_INF(1), FP32_0(0),   FP32_INF(1), FP32_0(0)   } },
    1242912534            { /*src1     */ { FP32_0(0),   FP32_INF(0), FP32_0(0),   FP32_INF(0), FP32_0(0),   FP32_INF(1), FP32_0(0),   FP32_INF(1) } },
    1243012535            { /* =>      */ { FP32_0(0),   FP32_0(0),   FP32_INF(1), FP32_0(1),   FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(1) } },
     
    1259512700              /*xcpt?    */ false, false },
    1259612701          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    12597              { /*src1     */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    12598              { /* =>      */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    12599                /*mxcsr:in */ 0,
    12600                /*128:out  */ X86_MXCSR_DE,
    12601                /*256:out  */ X86_MXCSR_DE,
    12602                /*xcpt?    */ true, true },
     12702            { /*src1     */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     12703            { /* =>      */ { FP32_0(0),         FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
     12704              /*mxcsr:in */ 0,
     12705              /*128:out  */ X86_MXCSR_DE,
     12706              /*256:out  */ X86_MXCSR_DE,
     12707              /*xcpt?    */ true, true },
    1260312708          { { /*src2     */ { FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },
    1260412709            { /*src1     */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0)          } },
     
    1274612851     * Infinity.
    1274712852     */
    12748     /*9 */{ { /*src2     */ { FP64_INF(0), FP64_0(0),   FP64_INF(0), FP64_0(1)   } },
     12853    /* 9*/{ { /*src2     */ { FP64_INF(0), FP64_0(0),   FP64_INF(0), FP64_0(1)   } },
    1274912854            { /*src1     */ { FP64_0(0),   FP64_INF(0), FP64_0(1),   FP64_INF(1) } },
    1275012855            { /* =>      */ { FP64_0(0),   FP64_0(0),   FP64_0(1),   FP64_INF(1) } },
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