VirtualBox

Changeset 106215 in vbox for trunk


Ignore:
Timestamp:
Oct 3, 2024 2:52:52 PM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164999
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: Fixed inadvertently converting double-precision floating-point SNAN to QNAN values depending on the (fixed) random fractional part being used. These now use dedicated fractional parts which are within the range to properly construct either a QNAN or an SNAN based on their initialization macro.

File:
1 edited

Legend:

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

    r106214 r106215  
    196196/*
    197197 * Single-precision floating-point invalids.
    198  * 1 to 0x3fffff fractional part for SNANs and 0x400000 to 0x7fffff for QNAN.
    199  * The QNAN initialization macro ensures the range for QNAN is correct by OR'ing 0x400000.
     198 * The range must be valid for both QNAN and SNANs (see compile time assertions below).
    200199 */
    201200#define FP32_FRAC_INV_V0                    0x3fffff
     
    207206#define FP32_FRAC_INV_V6                    0x3ebebe
    208207#define FP32_FRAC_INV_V7                    0x000001
     208AssertCompile(FP32_FRAC_INV_V0 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V0 >= FP32_FRAC_SNAN_MIN);
     209AssertCompile(FP32_FRAC_INV_V1 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V1 >= FP32_FRAC_SNAN_MIN);
     210AssertCompile(FP32_FRAC_INV_V2 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V2 >= FP32_FRAC_SNAN_MIN);
     211AssertCompile(FP32_FRAC_INV_V3 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V3 >= FP32_FRAC_SNAN_MIN);
     212AssertCompile(FP32_FRAC_INV_V4 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V4 >= FP32_FRAC_SNAN_MIN);
     213AssertCompile(FP32_FRAC_INV_V5 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V5 >= FP32_FRAC_SNAN_MIN);
     214AssertCompile(FP32_FRAC_INV_V6 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V6 >= FP32_FRAC_SNAN_MIN);
     215AssertCompile(FP32_FRAC_INV_V7 <= FP32_FRAC_SNAN_MAX && FP32_FRAC_INV_V7 >= FP32_FRAC_SNAN_MIN);
    209216/* Single-precision floating-point signalling NANs (SNAN). */
    210217#define FP32_SNAN_V0(a_Sign)                RTFLOAT32U_INIT_SNAN_EX(a_Sign, FP32_FRAC_INV_V0)
     
    265272/** The min fraction value for a double-precision floating-point denormal. */
    266273#define FP64_FRAC_DENORM_MIN                1
     274/** The max fraction value for a single-precision floating-point signalling NAN. */
     275#define FP64_FRAC_SNAN_MAX                  0x7ffffffffffff
     276/** The min fraction value for a single-precision floating-point signalling NAN. */
     277#define FP64_FRAC_SNAN_MIN                  1
     278/** The max fraction value for a single-precision floating-point quiet NAN. */
     279#define FP64_FRAC_QNAN_MAX                  0xfffffffffffff
     280/** The min fraction value for a single-precision floating-point quiet NAN. */
     281#define FP64_FRAC_QNAN_MIN                  0x8000000000000
    267282
    268283#define FP64_NORM_MAX(a_Sign)               RTFLOAT64U_INIT_C(a_Sign, FP64_FRAC_NORM_MAX, FP64_EXP_NORM_MAX)
     
    275290#define FP64_QNAN(a_Sign)                   RTFLOAT64U_INIT_QNAN(a_Sign)
    276291#define FP64_QNAN_V(a_Sign, a_Val)          RTFLOAT64U_INIT_QNAN_EX(a_Sign, a_Val)
     292#define FP64_QNAN_MAX(a_Sign)               RTFLOAT64U_INIT_QNAN_EX(a_Sign, FP64_FRAC_QNAN_MAX)
    277293#define FP64_SNAN(a_Sign)                   RTFLOAT64U_INIT_SNAN(a_Sign)
    278294#define FP64_SNAN_V(a_Sign, a_Val)          RTFLOAT64U_INIT_SNAN_EX(a_Sign, a_Val)
     295#define FP64_SNAN_MAX(a_Sign)               RTFLOAT64U_INIT_SNAN_EX(a_Sign, FP64_FRAC_SNAN_MAX)
    279296/** @todo Move this to iprt/types.h after renaming it to RTFLOAT64U_MAKE? */
    280297#ifdef RT_BIG_ENDIAN
     
    339356/** The maximum denormal value. */
    340357#define FP64_DENORM_MIN(a_Sign)             RTFLOAT64U_INIT_C(a_Sign, FP64_FRAC_DENORM_MIN, 0)
     358
     359/*
     360 * Double-precision floating-point invalids.
     361 * The range must be valid for both QNAN and SNANs (see compile time assertions below).
     362 */
     363#define FP64_FRAC_INV_V0                    0x7ffffffffffff
     364#define FP64_FRAC_INV_V1                    0x3ca5cadecab1e
     365#define FP64_FRAC_INV_V2                    0x10adedb0771e5
     366#define FP64_FRAC_INV_V3                    0x0000000000001
     367AssertCompile(FP64_FRAC_INV_V0 < FP64_FRAC_QNAN_MIN && FP64_FRAC_INV_V0 >= FP64_FRAC_SNAN_MIN);
     368AssertCompile(FP64_FRAC_INV_V1 < FP64_FRAC_QNAN_MIN && FP64_FRAC_INV_V1 >= FP64_FRAC_SNAN_MIN);
     369AssertCompile(FP64_FRAC_INV_V2 < FP64_FRAC_QNAN_MIN && FP64_FRAC_INV_V2 >= FP64_FRAC_SNAN_MIN);
     370AssertCompile(FP64_FRAC_INV_V3 < FP64_FRAC_QNAN_MIN && FP64_FRAC_INV_V3 >= FP64_FRAC_SNAN_MIN);
     371/* Double-precision floating-point signalling NANs (SNAN). */
     372#define FP64_SNAN_V0(a_Sign)                RTFLOAT64U_INIT_SNAN_EX(a_Sign, FP64_FRAC_INV_V0)
     373#define FP64_SNAN_V1(a_Sign)                RTFLOAT64U_INIT_SNAN_EX(a_Sign, FP64_FRAC_INV_V1)
     374#define FP64_SNAN_V2(a_Sign)                RTFLOAT64U_INIT_SNAN_EX(a_Sign, FP64_FRAC_INV_V2)
     375#define FP64_SNAN_V3(a_Sign)                RTFLOAT64U_INIT_SNAN_EX(a_Sign, FP64_FRAC_INV_V3)
     376/* Double-precision floating-point quiet NANs (QNAN). */
     377#define FP64_QNAN_V0(a_Sign)                RTFLOAT64U_INIT_QNAN_EX(a_Sign, FP64_FRAC_INV_V0)
     378#define FP64_QNAN_V1(a_Sign)                RTFLOAT64U_INIT_QNAN_EX(a_Sign, FP64_FRAC_INV_V1)
     379#define FP64_QNAN_V2(a_Sign)                RTFLOAT64U_INIT_QNAN_EX(a_Sign, FP64_FRAC_INV_V2)
     380#define FP64_QNAN_V3(a_Sign)                RTFLOAT64U_INIT_QNAN_EX(a_Sign, FP64_FRAC_INV_V3)
    341381
    342382/*
     
    718758 **/
    719759#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) } },      \
    721             { /*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) } },      \
    722             { /* =>      */ { 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) } },      \
    723               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    724               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    725               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    726               /*xcpt?    */ false, false },                                                                                                                \
    727           { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V2) } }, \
    728             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1) } }, \
    729             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1) } }, \
    730               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    731               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    732               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    733               /*xcpt?    */ false, false },                                                                                                                \
    734           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V1) } },            \
    735             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },            \
    736             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },            \
    737               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    738               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    739               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    740               /*xcpt?    */ false, false },                                                                                                                \
    741           { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    742             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V0) } },       \
    743             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V0) } },       \
    744               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    745               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    746               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    747               /*xcpt?    */ false, false },                                                                                                                \
    748           { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },            \
    749             { /*src1     */ { FP64_1(0),    FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },            \
    750             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V1) } },            \
    751               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    752               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    753               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    754               /*xcpt?    */ false, false },                                                                                                                \
    755           { { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    756             { /*src1     */ { FP64_1(0),         FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },       \
    757             { /* =>      */ { FP64_QNAN_V(1, 1), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    758               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                           \
    759               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    760               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                            \
    761               /*xcpt?    */ false, false },                                                                                                                \
    762           { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V2) } },      \
    763             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3) } },      \
    764             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3) } },      \
    765               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                              \
    766               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                              \
    767               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                              \
    768               /*xcpt?    */ false, false },                                                                                                                \
    769           { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP32_FRAC_V1) } }, \
    770             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP32_FRAC_V2) } }, \
    771             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP32_FRAC_V2) } }, \
    772               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                              \
    773               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                               \
    774               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                               \
    775               /*xcpt?    */ true, true },                                                                                                                  \
    776           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },            \
    777             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },            \
    778             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },            \
    779               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                              \
    780               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                               \
    781               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                               \
    782               /*xcpt?    */ true, true },                                                                                                                  \
    783           { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    784             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },       \
    785             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V3) } },       \
    786               /*mxcsr:in */ X86_MXCSR_RC_UP,                                                                                                               \
    787               /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                \
    788               /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                \
    789               /*xcpt?    */ true, true },                                                                                                                  \
    790           { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },            \
    791             { /*src1     */ { FP64_1(0),    FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V3), FP64_NORM_V2(1)              } },            \
    792             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V1) } },            \
    793               /*mxcsr:in */ X86_MXCSR_RC_DOWN,                                                                                                             \
    794               /*128:out  */ X86_MXCSR_RC_DOWN,                                                                                                             \
    795               /*256:out  */ X86_MXCSR_RC_DOWN,                                                                                                             \
    796               /*xcpt?    */ false, false },                                                                                                                \
    797     /*11*/{ { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    798             { /*src1     */ { FP64_1(0),         FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V3), FP64_NORM_V2(1)              } },       \
    799             { /* =>      */ { FP64_QNAN_V(1, 1), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },       \
    800               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,                                                                                             \
    801               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                              \
    802               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                              \
    803               /*xcpt?    */ true, true },                                                                                                                  \
     760    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } },       \
     761            { /*src1     */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } },       \
     762            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } },       \
     763              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                           \
     764              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                           \
     765              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                           \
     766              /*xcpt?    */ false, false },                                                                \
     767          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_MAX(0),  FP64_QNAN_V0(0),  FP64_QNAN_V2(0) } }, \
     768            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),      FP64_SNAN_MAX(0), FP64_SNAN_V1(0) } }, \
     769            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0), FP64_QNAN_V1(0) } }, \
     770              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                           \
     771              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     772              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     773              /*xcpt?    */ false, false },                                                                \
     774          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V0(0), FP64_SNAN_V1(0) } },        \
     775            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },        \
     776            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },        \
     777              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                           \
     778              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     779              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     780              /*xcpt?    */ false, false },                                                                \
     781          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },   \
     782            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_MAX(0), FP64_SNAN_V3(0), FP64_SNAN_V0(0) } },   \
     783            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0), FP64_QNAN_V3(0), FP64_QNAN_V0(0) } },   \
     784              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                           \
     785              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     786              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     787              /*xcpt?    */ false, false },                                                                \
     788          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_NORM_V0(1), FP64_QNAN_V1(0) } },        \
     789            { /*src1     */ { FP64_1(0),    FP64_1(1),        FP64_QNAN_V0(1), FP64_NORM_V2(1) } },        \
     790            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_QNAN_V0(1), FP64_QNAN_V1(0) } },        \
     791              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                           \
     792              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                           \
     793              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                           \
     794              /*xcpt?    */ false, false },                                                                \
     795          { { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_MAX(1), FP64_NORM_V0(1), FP64_SNAN_V1(0) } },   \
     796            { /*src1     */ { FP64_1(0),         FP64_1(0),        FP64_SNAN_V0(1), FP64_NORM_V2(1) } },   \
     797            { /* =>      */ { FP64_QNAN_V(1, 1), FP64_QNAN_MAX(1), FP64_QNAN_V0(1), FP64_QNAN_V1(0) } },   \
     798              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                           \
     799              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     800              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                            \
     801              /*xcpt?    */ false, false },                                                                \
     802          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V2(0) } },       \
     803            { /*src1     */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V3(0) } },       \
     804            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V3(0) } },       \
     805              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                              \
     806              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                              \
     807              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                              \
     808              /*xcpt?    */ false, false },                                                                \
     809          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_MAX(0),  FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     810            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),      FP64_SNAN_MAX(0), FP64_SNAN_V2(0) } }, \
     811            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } }, \
     812              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                              \
     813              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,               \
     814              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,               \
     815              /*xcpt?    */ true, true },                                                                  \
     816          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },        \
     817            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V3(0), FP64_QNAN_V2(0) } },        \
     818            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V3(0), FP64_QNAN_V2(0) } },        \
     819              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                              \
     820              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,               \
     821              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,               \
     822              /*xcpt?    */ true, true },                                                                  \
     823          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },   \
     824            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V3(0) } },   \
     825            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0), FP64_QNAN_V0(0), FP64_QNAN_V3(0) } },   \
     826              /*mxcsr:in */ X86_MXCSR_RC_UP,                                                               \
     827              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                \
     828              /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                \
     829              /*xcpt?    */ true, true },                                                                  \
     830          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_NORM_V0(1), FP64_QNAN_V1(0) } },        \
     831            { /*src1     */ { FP64_1(0),    FP64_1(1),        FP64_QNAN_V3(1), FP64_NORM_V2(1) } },        \
     832            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_QNAN_V3(1), FP64_QNAN_V1(0) } },        \
     833              /*mxcsr:in */ X86_MXCSR_RC_DOWN,                                                             \
     834              /*128:out  */ X86_MXCSR_RC_DOWN,                                                             \
     835              /*256:out  */ X86_MXCSR_RC_DOWN,                                                             \
     836              /*xcpt?    */ false, false },                                                                \
     837    /*11*/{ { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_MAX(1), FP64_NORM_V0(1), FP64_SNAN_V2(0) } },   \
     838            { /*src1     */ { FP64_1(0),         FP64_1(0),        FP64_SNAN_V3(1), FP64_NORM_V2(1) } },   \
     839            { /* =>      */ { FP64_QNAN_V(1, 1), FP64_QNAN_MAX(1), FP64_QNAN_V3(1), FP64_QNAN_V2(0) } },   \
     840              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,                                             \
     841              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                              \
     842              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                              \
     843              /*xcpt?    */ true, true },                                                                  \
    804844
    805845/**
     
    10231063 **/
    10241064#define FP64_TABLE_D1_SD_INVALIDS \
    1025     /* 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) } },                       \
    1027             { /*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) } },                       \
    1028             { /* =>      */ { 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) } },                       \
    1029               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1030               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1031               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1032               /*xcpt?    */ false, false },                                                                                                                                 \
    1033           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_INF(0)  } },                             \
    1034             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_SNAN(1) } },                             \
    1035             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_SNAN(1) } },                             \
    1036               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1037               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1038               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1039               /*xcpt?    */ false, false },                                                                                                                                 \
    1040           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_INF(1)  } },                                   \
    1041             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN(0) } },                                   \
    1042             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN(0) } },                                   \
    1043               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1044               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1045               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1046               /*xcpt?    */ false, false },                                                                                                                                 \
    1047     /* QNan, SNan (Masked). */                                                                                                                                              \
    1048           { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },                              \
    1049             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V2) } },                              \
    1050             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V2) } },                              \
    1051               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1052               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1053               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1054               /*xcpt?    */ false, false },                                                                                                                                 \
    1055           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } }, \
    1056             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(1, FP64_FRAC_NORM_MIN), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } }, \
    1057             { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_SNAN_V(1, FP64_FRAC_NORM_MIN), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } }, \
    1058               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1059               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1060               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1061               /*xcpt?    */ false, false },                                                                                                                                 \
    1062           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_INF(0)  } },                       \
    1063             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN(1) } },                       \
    1064             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN(1) } },                       \
    1065               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1066               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1067               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1068               /*xcpt?    */ false, false },                                                                                                                                 \
    1069     /* SNan, QNan (Masked). */                                                                                                                                              \
    1070           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V1) } },                             \
    1071             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(1, FP64_FRAC_V2) } },                             \
    1072             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(1, FP64_FRAC_V2) } },                             \
    1073               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1074               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1075               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1076               /*xcpt?    */ false, false },                                                                                                                                 \
    1077           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    1078             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },       \
    1079             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },       \
    1080               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1081               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1082               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1083               /*xcpt?    */ false, false },                                                                                                                                 \
    1084           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },             \
    1085             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },             \
    1086             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },             \
    1087               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1088               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1089               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1090               /*xcpt?    */ false, false },                                                                                                                                 \
    1091     /* SNan, SNan (Masked). */                                                                                                                                              \
    1092           { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },                        \
    1093             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },                        \
    1094             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },                        \
    1095               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1096               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1097               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1098               /*xcpt?    */ false, false },                                                                                                                                 \
    1099           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },             \
    1100             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3) } },             \
    1101             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3) } },             \
    1102               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1103               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1104               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1105               /*xcpt?    */ false, false },                                                                                                                                 \
    1106           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },                   \
    1107             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },                   \
    1108             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },                   \
    1109               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1110               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1111               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1112               /*xcpt?    */ false, false },                                                                                                                                 \
    1113     /* QNan, Norm FP (Masked). */                                                                                                                                           \
    1114           { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },                             \
    1115             { /*src1     */ { FP64_1(0),    FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                             \
    1116             { /* =>      */ { FP64_QNAN(0), FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                             \
    1117               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1118               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1119               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1120               /*xcpt?    */ false, false },                                                                                                                                 \
    1121     /* SNan, Norm FP (Masked). */                                                                                                                                           \
    1122           { { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },                        \
    1123             { /*src1     */ { FP64_1(0),         FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                        \
    1124             { /* =>      */ { FP64_QNAN_V(1, 1), FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                        \
    1125               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                            \
    1126               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1127               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                             \
    1128               /*xcpt?    */ false, false },                                                                                                                                 \
    1129     /* QNan, QNan (Unmasked). */                                                                                                                                            \
    1130     /*14*/{ { /*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) } },                       \
    1131             { /*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) } },                       \
    1132             { /* =>      */ { 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) } },                       \
    1133               /*mxcsr:in */ 0,                                                                                                                                              \
    1134               /*128:out  */ 0,                                                                                                                                              \
    1135               /*256:out  */ 0,                                                                                                                                              \
    1136               /*xcpt?    */ false, false },                                                                                                                                 \
    1137           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },             \
    1138             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2) } },             \
    1139             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2) } },             \
    1140               /*mxcsr:in */ 0,                                                                                                                                              \
    1141               /*128:out  */ 0,                                                                                                                                              \
    1142               /*256:out  */ 0,                                                                                                                                              \
    1143               /*xcpt?    */ false, false },                                                                                                                                 \
    1144           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },                   \
    1145             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(1, FP64_FRAC_V0) } },                   \
    1146             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(1, FP64_FRAC_V0) } },                   \
    1147               /*mxcsr:in */ 0,                                                                                                                                              \
    1148               /*128:out  */ 0,                                                                                                                                              \
    1149               /*256:out  */ 0,                                                                                                                                              \
    1150               /*xcpt?    */ false, false },                                                                                                                                 \
    1151                                                                                                                                                                             \
    1152     /* QNan, SNan (Unmasked). */                                                                                                                                            \
    1153           { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },                              \
    1154             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V2) } },                              \
    1155             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V2) } },                              \
    1156               /*mxcsr:in */ 0,                                                                                                                                              \
    1157               /*128:out  */ X86_MXCSR_IE,                                                                                                                                   \
    1158               /*256:out  */ X86_MXCSR_IE,                                                                                                                                   \
    1159               /*xcpt?    */ true, true },                                                                                                                                   \
    1160           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } }, \
    1161             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } }, \
    1162             { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } }, \
    1163               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                               \
    1164               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                                                                                \
    1165               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                                                                                \
    1166               /*xcpt?    */ true, true },                                                                                                                                   \
    1167           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    1168             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },       \
    1169             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },       \
    1170               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                               \
    1171               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                               \
    1172               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                               \
    1173               /*xcpt?    */ false, false },                                                                                                                                 \
    1174     /* SNan, QNan (Unmasked). */                                                                                                                                            \
    1175           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },                             \
    1176             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },                             \
    1177             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },                             \
    1178               /*mxcsr:in */ X86_MXCSR_DAZ,                                                                                                                                  \
    1179               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                                                                                   \
    1180               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                                                                                   \
    1181               /*xcpt?    */ true, true },                                                                                                                                   \
    1182           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V1) } },       \
    1183             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V0) } },       \
    1184             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V0) } },       \
    1185               /*mxcsr:in */ X86_MXCSR_RC_UP,                                                                                                                                \
    1186               /*128:out  */ X86_MXCSR_RC_UP,                                                                                                                                \
    1187               /*256:out  */ X86_MXCSR_RC_UP,                                                                                                                                \
    1188               /*xcpt?    */ false, false },                                                                                                                                 \
    1189           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V1) } },             \
    1190             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },             \
    1191             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },             \
    1192               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                                               \
    1193               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                                               \
    1194               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                                               \
    1195               /*xcpt?    */ false, false },                                                                                                                                 \
    1196     /* SNan, SNan (Unmasked). */                                                                                                                                            \
    1197     /*23*/{ { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },                        \
    1198             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V0) } },                        \
    1199             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V0) } },                        \
    1200               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,                                                                                                                   \
    1201               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                                                                                    \
    1202               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                                                                                    \
    1203               /*xcpt?    */ true, true },                                                                                                                                   \
    1204           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP32_FRAC_V2) } },             \
    1205             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP32_FRAC_V3) } },             \
    1206             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP32_FRAC_V3) } },             \
    1207               /*mxcsr:in */ X86_MXCSR_RC_ZERO,                                                                                                                              \
    1208               /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                                               \
    1209               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                                               \
    1210               /*xcpt?    */ true, true },                                                                                                                                   \
    1211           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V2) } },                   \
    1212             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V3) } },                   \
    1213             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V3) } },                   \
    1214               /*mxcsr:in */ 0,                                                                                                                                              \
    1215               /*128:out  */ 0,                                                                                                                                              \
    1216               /*256:out  */ 0,                                                                                                                                              \
    1217               /*xcpt?    */ false, false },                                                                                                                                 \
    1218     /* QNan, Norm FP (Unmasked). */                                                                                                                                         \
    1219           { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },                             \
    1220             { /*src1     */ { FP64_1(0),    FP64_INF(1),                        FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                             \
    1221             { /* =>      */ { FP64_QNAN(0), FP64_INF(1),                        FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                             \
    1222               /*mxcsr:in */ X86_MXCSR_FZ,                                                                                                                                   \
    1223               /*128:out  */ X86_MXCSR_FZ,                                                                                                                                   \
    1224               /*256:out  */ X86_MXCSR_FZ,                                                                                                                                   \
    1225               /*xcpt?    */ false, false },                                                                                                                                 \
    1226     /* SNan, Norm FP (Unmasked). */                                                                                                                                         \
    1227     /*27*/{ { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },                        \
    1228             { /*src1     */ { FP64_1(0),         FP64_INF(0),                        FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                        \
    1229             { /* =>      */ { FP64_QNAN_V(1, 1), FP64_INF(0),                        FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },                        \
    1230               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                               \
    1231               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                \
    1232               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                \
    1233               /*xcpt?    */ true, true },                                                                                                                                   \
     1065    /* QNan, QNan (Masked). */                                                                            \
     1066    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } },      \
     1067            { /*src1     */ { FP64_QNAN(0), FP64_QNAN(1),     FP64_QNAN_MAX(1), FP64_QNAN_V2(0) } },      \
     1068            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(1),     FP64_QNAN_MAX(1), FP64_QNAN_V2(0) } },      \
     1069              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1070              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1071              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1072              /*xcpt?    */ false, false },                                                               \
     1073          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_QNAN_V1(1), FP64_QNAN_V2(0), FP64_INF(0)  } },       \
     1074            { /*src1     */ { FP64_QNAN(0),     FP64_QNAN_V2(1), FP64_QNAN_V3(1), FP64_SNAN(1) } },       \
     1075            { /* =>      */ { FP64_QNAN(0),     FP64_QNAN_V2(1), FP64_QNAN_V3(1), FP64_SNAN(1) } },       \
     1076              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1077              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1078              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1079              /*xcpt?    */ false, false },                                                               \
     1080          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_INF(1)  } },        \
     1081            { /*src1     */ { FP64_QNAN_V0(0), FP64_QNAN_V2(0), FP64_QNAN_V3(1), FP64_QNAN(0) } },        \
     1082            { /* =>      */ { FP64_QNAN_V0(0), FP64_QNAN_V2(0), FP64_QNAN_V3(1), FP64_QNAN(0) } },        \
     1083              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1084              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1085              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1086              /*xcpt?    */ false, false },                                                               \
     1087    /* QNan, SNan (Masked). */                                                                            \
     1088          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },   \
     1089            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V2(1), FP64_SNAN_V1(0), FP64_SNAN_V2(1) } },   \
     1090            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_V2(1), FP64_SNAN_V1(0), FP64_SNAN_V2(1) } },   \
     1091              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1092              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1093              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1094              /*xcpt?    */ false, false },                                                               \
     1095          { { /*src2     */ { FP64_QNAN_MAX(0),  FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1096            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(1),     FP64_SNAN_MAX(1), FP64_SNAN_V2(0) } }, \
     1097            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN(1),     FP64_SNAN_MAX(1), FP64_SNAN_V2(0) } }, \
     1098              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1099              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1100              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1101              /*xcpt?    */ false, false },                                                               \
     1102          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_INF(0)  } },      \
     1103            { /*src1     */ { FP64_SNAN_V2(0), FP64_QNAN(0),     FP64_QNAN_MAX(1), FP64_QNAN(1) } },      \
     1104            { /* =>      */ { FP64_QNAN_V2(0), FP64_QNAN(0),     FP64_QNAN_MAX(1), FP64_QNAN(1) } },      \
     1105              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1106              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1107              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1108              /*xcpt?    */ false, false },                                                               \
     1109    /* SNan, QNan (Masked). */                                                                            \
     1110          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(1) } },       \
     1111            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V3(1), FP64_QNAN_V2(1) } },       \
     1112            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V3(1), FP64_QNAN_V2(1) } },       \
     1113              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1114              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1115              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1116              /*xcpt?    */ false, false },                                                               \
     1117          { { /*src2     */ { FP64_SNAN_MAX(0), FP64_SNAN_MAX(1), FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },   \
     1118            { /*src1     */ { FP64_QNAN(0),     FP64_QNAN(1),     FP64_QNAN_V3(1), FP64_QNAN_V2(0) } },   \
     1119            { /* =>      */ { FP64_QNAN(0),     FP64_QNAN(1),     FP64_QNAN_V3(1), FP64_QNAN_V2(0) } },   \
     1120              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1121              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1122              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1123              /*xcpt?    */ false, false },                                                               \
     1124          { { /*src2     */ { FP64_SNAN_V0(0), FP64_SNAN_MAX(0), FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },    \
     1125            { /*src1     */ { FP64_QNAN_V1(0), FP64_QNAN(1),     FP64_QNAN_V2(1), FP64_QNAN_V3(1) } },    \
     1126            { /* =>      */ { FP64_QNAN_V1(0), FP64_QNAN(1),     FP64_QNAN_V2(1), FP64_QNAN_V3(1) } },    \
     1127              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1128              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1129              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1130              /*xcpt?    */ false, false },                                                               \
     1131    /* SNan, SNan (Masked). */                                                                            \
     1132          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },  \
     1133            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V3(0) } },  \
     1134            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V3(0) } },  \
     1135              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1136              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1137              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1138              /*xcpt?    */ false, false },                                                               \
     1139          { { /*src2     */ { FP64_SNAN(0),     FP64_SNAN_V2(0), FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },    \
     1140            { /*src1     */ { FP64_SNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V2(0), FP64_SNAN_V3(1) } },    \
     1141            { /* =>      */ { FP64_QNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V2(0), FP64_SNAN_V3(1) } },    \
     1142              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1143              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1144              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1145              /*xcpt?    */ false, false },                                                               \
     1146          { { /*src2     */ { FP64_SNAN_V1(0), FP64_SNAN_V2(0), FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },     \
     1147            { /*src1     */ { FP64_SNAN_V0(0), FP64_SNAN_V3(0), FP64_SNAN_V0(0), FP64_SNAN_V3(0) } },     \
     1148            { /* =>      */ { FP64_QNAN_V0(0), FP64_SNAN_V3(0), FP64_SNAN_V0(0), FP64_SNAN_V3(0) } },     \
     1149              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1150              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1151              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1152              /*xcpt?    */ false, false },                                                               \
     1153    /* QNan, Norm FP (Masked). */                                                                         \
     1154          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_NORM_V0(1), FP64_QNAN_V1(0) } },       \
     1155            { /*src1     */ { FP64_1(0),    FP64_1(1),        FP64_QNAN_V0(1), FP64_NORM_V2(1) } },       \
     1156            { /* =>      */ { FP64_QNAN(0), FP64_1(1),        FP64_QNAN_V0(1), FP64_NORM_V2(1) } },       \
     1157              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1158              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1159              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                          \
     1160              /*xcpt?    */ false, false },                                                               \
     1161    /* SNan, Norm FP (Masked). */                                                                         \
     1162          { { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_MAX(1), FP64_NORM_V0(1), FP64_SNAN_V1(0) } },  \
     1163            { /*src1     */ { FP64_1(0),         FP64_1(0),        FP64_SNAN_V0(1), FP64_NORM_V2(1) } },  \
     1164            { /* =>      */ { FP64_QNAN_V(1, 1), FP64_1(0),        FP64_SNAN_V0(1), FP64_NORM_V2(1) } },  \
     1165              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                          \
     1166              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1167              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                           \
     1168              /*xcpt?    */ false, false },                                                               \
     1169    /* QNan, QNan (Unmasked). */                                                                          \
     1170    /*14*/{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } },      \
     1171            { /*src1     */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } },      \
     1172            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } },      \
     1173              /*mxcsr:in */ 0,                                                                            \
     1174              /*128:out  */ 0,                                                                            \
     1175              /*256:out  */ 0,                                                                            \
     1176              /*xcpt?    */ false, false },                                                               \
     1177          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },    \
     1178            { /*src1     */ { FP64_QNAN(0),     FP64_QNAN_V2(0), FP64_QNAN_V0(0), FP64_QNAN_V2(0) } },    \
     1179            { /* =>      */ { FP64_QNAN(0),     FP64_QNAN_V2(0), FP64_QNAN_V0(0), FP64_QNAN_V2(0) } },    \
     1180              /*mxcsr:in */ 0,                                                                            \
     1181              /*128:out  */ 0,                                                                            \
     1182              /*256:out  */ 0,                                                                            \
     1183              /*xcpt?    */ false, false },                                                               \
     1184          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },     \
     1185            { /*src1     */ { FP64_QNAN_V2(0), FP64_QNAN_V2(1), FP64_QNAN_V0(0), FP64_QNAN_V0(1) } },     \
     1186            { /* =>      */ { FP64_QNAN_V2(0), FP64_QNAN_V2(1), FP64_QNAN_V0(0), FP64_QNAN_V0(1) } },     \
     1187              /*mxcsr:in */ 0,                                                                            \
     1188              /*128:out  */ 0,                                                                            \
     1189              /*256:out  */ 0,                                                                            \
     1190              /*xcpt?    */ false, false },                                                               \
     1191                                                                                                          \
     1192    /* QNan, SNan (Unmasked). */                                                                          \
     1193          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V1(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },   \
     1194            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V2(1), FP64_SNAN_V3(1), FP64_SNAN_V2(0) } },   \
     1195            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V2(1), FP64_SNAN_V3(1), FP64_SNAN_V2(0) } },   \
     1196              /*mxcsr:in */ 0,                                                                            \
     1197              /*128:out  */ X86_MXCSR_IE,                                                                 \
     1198              /*256:out  */ X86_MXCSR_IE,                                                                 \
     1199              /*xcpt?    */ true, true },                                                                 \
     1200          { { /*src2     */ { FP64_QNAN_MAX(0),  FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1201            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),     FP64_SNAN_MAX(0), FP64_SNAN_V2(0) } }, \
     1202            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN(0),     FP64_SNAN_MAX(0), FP64_SNAN_V2(0) } }, \
     1203              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                             \
     1204              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,              \
     1205              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,              \
     1206              /*xcpt?    */ true, true },                                                                 \
     1207          { { /*src2     */ { FP64_QNAN_V1(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } },   \
     1208            { /*src1     */ { FP64_SNAN_V2(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } },   \
     1209            { /* =>      */ { FP64_QNAN_V2(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } },   \
     1210              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                             \
     1211              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                              \
     1212              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                              \
     1213              /*xcpt?    */ true, true },                                                                 \
     1214    /* SNan, QNan (Unmasked). */                                                                          \
     1215          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },       \
     1216            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V3(0), FP64_QNAN_V2(0) } },       \
     1217            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V3(0), FP64_QNAN_V2(0) } },       \
     1218              /*mxcsr:in */ X86_MXCSR_DAZ,                                                                \
     1219              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                 \
     1220              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                 \
     1221              /*xcpt?    */ true, true },                                                                 \
     1222          { { /*src2     */ { FP64_SNAN_MAX(0), FP64_SNAN_MAX(0), FP64_SNAN_V1(0), FP64_SNAN_V1(1) } },   \
     1223            { /*src1     */ { FP64_QNAN(0),     FP64_QNAN(0),     FP64_QNAN_V2(1), FP64_QNAN_V0(1) } },   \
     1224            { /* =>      */ { FP64_QNAN(0),     FP64_QNAN(0),     FP64_QNAN_V2(1), FP64_QNAN_V0(1) } },   \
     1225              /*mxcsr:in */ X86_MXCSR_RC_UP,                                                              \
     1226              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                               \
     1227              /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                               \
     1228              /*xcpt?    */ true, true },                                                                 \
     1229          { { /*src2     */ { FP64_SNAN_V0(0), FP64_SNAN_MAX(0), FP64_SNAN_V1(0), FP64_SNAN_V1(1) } },    \
     1230            { /*src1     */ { FP64_QNAN_V3(0), FP64_QNAN(0),     FP64_QNAN_V2(1), FP64_QNAN_V3(1) } },    \
     1231            { /* =>      */ { FP64_QNAN_V3(0), FP64_QNAN(0),     FP64_QNAN_V2(1), FP64_QNAN_V3(1) } },    \
     1232              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                             \
     1233              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                              \
     1234              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                              \
     1235              /*xcpt?    */ true, true },                                                                 \
     1236    /* SNan, SNan (Unmasked). */                                                                          \
     1237    /*23*/{ { /*src2     */ { FP64_SNAN(0),      FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },  \
     1238            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_MAX(0), FP64_SNAN_V2(0), FP64_SNAN_V0(1) } },  \
     1239            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_MAX(0), FP64_SNAN_V2(0), FP64_SNAN_V0(1) } },  \
     1240              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,                                                 \
     1241              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                  \
     1242              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                  \
     1243              /*xcpt?    */ true, true },                                                                 \
     1244          { { /*src2     */ { FP64_SNAN(0),     FP64_SNAN_V2(0), FP64_SNAN_V1(0), FP64_SNAN_V2(1) } },    \
     1245            { /*src1     */ { FP64_SNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V2(1), FP64_SNAN_V3(1) } },    \
     1246            { /* =>      */ { FP64_QNAN_MAX(0), FP64_SNAN_V0(0), FP64_SNAN_V2(1), FP64_SNAN_V3(1) } },    \
     1247              /*mxcsr:in */ X86_MXCSR_RC_ZERO,                                                            \
     1248              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                             \
     1249              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                             \
     1250              /*xcpt?    */ true, true },                                                                 \
     1251          { { /*src2     */ { FP64_SNAN_V1(0), FP64_SNAN_V2(0), FP64_SNAN_V0(1), FP64_SNAN_V2(0) } },     \
     1252            { /*src1     */ { FP64_SNAN_V2(0), FP64_SNAN_V3(1), FP64_SNAN_V3(1), FP64_SNAN_V3(0) } },     \
     1253            { /* =>      */ { FP64_QNAN_V2(0), FP64_SNAN_V3(1), FP64_SNAN_V3(1), FP64_SNAN_V3(0) } },     \
     1254              /*mxcsr:in */ 0,                                                                            \
     1255              /*128:out  */ X86_MXCSR_IE,                                                                 \
     1256              /*256:out  */ X86_MXCSR_IE,                                                                 \
     1257              /*xcpt?    */ true, true },                                                                 \
     1258    /* QNan, Norm FP (Unmasked). */                                                                       \
     1259          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_NORM_V0(1), FP64_QNAN_V1(0) } },       \
     1260            { /*src1     */ { FP64_1(0),    FP64_INF(1),      FP64_QNAN_V0(1), FP64_NORM_V2(1) } },       \
     1261            { /* =>      */ { FP64_QNAN(0), FP64_INF(1),      FP64_QNAN_V0(1), FP64_NORM_V2(1) } },       \
     1262              /*mxcsr:in */ X86_MXCSR_FZ,                                                                 \
     1263              /*128:out  */ X86_MXCSR_FZ,                                                                 \
     1264              /*256:out  */ X86_MXCSR_FZ,                                                                 \
     1265              /*xcpt?    */ false, false },                                                               \
     1266    /* SNan, Norm FP (Unmasked). */                                                                       \
     1267    /*27*/{ { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_MAX(1), FP64_NORM_V0(1), FP64_SNAN_V1(0) } },  \
     1268            { /*src1     */ { FP64_1(0),         FP64_INF(0),      FP64_SNAN_V0(1), FP64_NORM_V2(1) } },  \
     1269            { /* =>      */ { FP64_QNAN_V(1, 1), FP64_INF(0),      FP64_SNAN_V0(1), FP64_NORM_V2(1) } },  \
     1270              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                             \
     1271              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,              \
     1272              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,              \
     1273              /*xcpt?    */ true, true },                                                                 \
    12341274
    12351275/**
     
    13281368 **/
    13291369#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)       } }, \
    1331             { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } }, \
    1332             { /* =>      */ { 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)       } }, \
    1333               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1334               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1335               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1336               /*xcpt?    */ false, false },                                                                                                                                       \
    1337           { { /*src2     */ { FP64_QNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },                       \
    1338             { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2)       } },                       \
    1339             { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },                       \
    1340               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1341               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1342               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1343               /*xcpt?    */ false, false },                                                                                                                                       \
    1344           { { /*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) } },       \
    1345             { /*src1     */ { FP64_SNAN(0),                       FP64_QNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V3) } },       \
    1346             { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    1347               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1348               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1349               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1350               /*xcpt?    */ false, false },                                                                                                                                       \
    1351           { { /*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) } },                  \
    1352             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },                  \
    1353             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },                  \
    1354               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1355               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1356               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1357               /*xcpt?    */ false, false },                                                                                                                                       \
    1358           { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },                                          \
    1359             { /*src1     */ { FP64_QNAN(0), FP64_1(1),       FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)                    } },                                          \
    1360             { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),    FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },                                          \
    1361               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1362               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1363               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1364               /*xcpt?    */ false, false },                                                                                                                                       \
    1365           { { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0)              } },       \
    1366             { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)              } },       \
    1367             { /* =>      */ { 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) } },       \
    1368               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                                  \
    1369               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1370               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                                   \
    1371               /*xcpt?    */ false, false },                                                                                                                                       \
    1372           { { /*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)       } }, \
    1373             { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } }, \
    1374             { /* =>      */ { 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)       } }, \
    1375               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                     \
    1376               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                     \
    1377               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                     \
    1378               /*xcpt?    */ false, false },                                                                                                                                       \
    1379           { { /*src2     */ { FP64_QNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },                       \
    1380             { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2)       } },                       \
    1381             { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },                       \
    1382               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP,                                                                                                                      \
    1383               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                       \
    1384               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                       \
    1385               /*xcpt?    */ true, true },                                                                                                                                         \
    1386           { { /*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) } },                  \
    1387             { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },                  \
    1388             { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },                  \
    1389               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,                                                                                                                       \
    1390               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                        \
    1391               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                        \
    1392               /*xcpt?    */ true, true },                                                                                                                                         \
    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)              } },       \
    1394             { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)              } },       \
    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) } },       \
    1396               /*mxcsr:in */ X86_MXCSR_RC_UP,                                                                                                                                      \
    1397               /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                                       \
    1398               /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                                       \
    1399               /*xcpt?    */ true, true },                                                                                                                                         \
     1370    /*0 */{ { /*src2     */ { FP64_QNAN_MAX(0), FP64_QNAN(0),     FP64_QNAN_V0(0), FP64_QNAN_V1(0)  } },     \
     1371            { /*src1     */ { FP64_QNAN(0),     FP64_QNAN(0),     FP64_QNAN(0),    FP64_QNAN_MAX(0) } },     \
     1372            { /* =>      */ { FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN(0),    FP64_QNAN_V0(0)  } },     \
     1373              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                             \
     1374              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                             \
     1375              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                             \
     1376              /*xcpt?    */ false, false },                                                                  \
     1377          { { /*src2     */ { FP64_QNAN(0), FP64_SNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V1(0)  } },            \
     1378            { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0), FP64_QNAN(0),     FP64_SNAN_V2(0)  } },            \
     1379            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0) } },            \
     1380              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                             \
     1381              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1382              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1383              /*xcpt?    */ false, false },                                                                  \
     1384          { { /*src2     */ { FP64_SNAN_MAX(0),  FP64_QNAN_V2(0),  FP64_SNAN_V1(0),   FP64_QNAN_V2(0) } },   \
     1385            { /*src1     */ { FP64_SNAN(0),      FP64_QNAN(0),     FP64_SNAN(0),      FP64_QNAN_V3(0) } },   \
     1386            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0), FP64_QNAN_V(0, 1), FP64_QNAN_V1(0) } },   \
     1387              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                             \
     1388              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1389              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1390              /*xcpt?    */ false, false },                                                                  \
     1391          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_MAX(0),  FP64_SNAN_MAX(0),  FP64_SNAN(0)     } }, \
     1392            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),      FP64_SNAN(0),      FP64_SNAN_MAX(0) } }, \
     1393            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0) } }, \
     1394              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                             \
     1395              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1396              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1397              /*xcpt?    */ false, false },                                                                  \
     1398          { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0), FP64_QNAN_MAX(0), FP64_QNAN_V1(0)  } },         \
     1399            { /*src1     */ { FP64_QNAN(0), FP64_1(1),       FP64_QNAN_MAX(1), FP64_NORM_V2(1)  } },         \
     1400            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),    FP64_QNAN_MAX(1), FP64_QNAN_MAX(0) } },         \
     1401              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                             \
     1402              /*128:out  */ X86_MXCSR_XCPT_MASK,                                                             \
     1403              /*256:out  */ X86_MXCSR_XCPT_MASK,                                                             \
     1404              /*xcpt?    */ false, false },                                                                  \
     1405          { { /*src2     */ { FP64_SNAN_MAX(1),  FP64_1(0),        FP64_SNAN_V1(0),  FP64_NORM_V3(0) } },    \
     1406            { /*src1     */ { FP64_SNAN(0),      FP64_1(1),        FP64_SNAN_MAX(0), FP64_NORM_V2(1) } },    \
     1407            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_MAX(1), FP64_QNAN_MAX(0), FP64_QNAN_V1(0) } },    \
     1408              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                             \
     1409              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1410              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                              \
     1411              /*xcpt?    */ false, false },                                                                  \
     1412          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_QNAN(0),     FP64_QNAN_V0(0), FP64_QNAN_V1(0)  } },     \
     1413            { /*src1     */ { FP64_QNAN(0),     FP64_QNAN(0),     FP64_QNAN(0),    FP64_QNAN_MAX(0) } },     \
     1414            { /* =>      */ { FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN(0),    FP64_QNAN_V0(0)  } },     \
     1415              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                \
     1416              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                \
     1417              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                \
     1418              /*xcpt?    */ false, false },                                                                  \
     1419          { { /*src2     */ { FP64_QNAN(0), FP64_SNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V1(0)  } },            \
     1420            { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0), FP64_QNAN(0),     FP64_SNAN_V2(0)  } },            \
     1421            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0) } },            \
     1422              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP,                                                 \
     1423              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                  \
     1424              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                  \
     1425              /*xcpt?    */ true, true },                                                                    \
     1426          { { /*src2     */ { FP64_SNAN_MAX(0),  FP64_QNAN_V2(0),  FP64_SNAN_V1(0),   FP64_QNAN_V2(0) } },    \
     1427            { /*src1     */ { FP64_SNAN(0),      FP64_QNAN(0),     FP64_SNAN(0),      FP64_QNAN_V3(0) } },    \
     1428            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0), FP64_QNAN_V(0, 1), FP64_QNAN_V1(0) } },    \
     1429              /*mxcsr:in */ 0,                                                                               \
     1430              /*128:out  */ X86_MXCSR_IE,                                                                    \
     1431              /*256:out  */ X86_MXCSR_IE,                                                                    \
     1432              /*xcpt?    */ true, true },                                                                    \
     1433          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_MAX(0),  FP64_SNAN_MAX(0),  FP64_SNAN(0)     } }, \
     1434            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),      FP64_SNAN(0),      FP64_SNAN_MAX(0) } }, \
     1435            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1), FP64_QNAN_MAX(0) } }, \
     1436              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,                                                  \
     1437              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                   \
     1438              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,                                   \
     1439              /*xcpt?    */ true, true },                                                                    \
     1440          { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0), FP64_QNAN_MAX(0), FP64_QNAN_V1(0)  } },         \
     1441            { /*src1     */ { FP64_QNAN(0), FP64_1(1),       FP64_QNAN_MAX(1), FP64_NORM_V2(1)  } },         \
     1442            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),    FP64_QNAN_MAX(1), FP64_QNAN_MAX(0) } },         \
     1443              /*mxcsr:in */ 0,                                                                               \
     1444              /*128:out  */ 0,                                                                               \
     1445              /*256:out  */ 0,                                                                               \
     1446              /*xcpt?    */ false, false },                                                                  \
     1447    /*11*/{ { /*src2     */ { FP64_SNAN_MAX(1),  FP64_1(0),        FP64_SNAN_V1(0),  FP64_NORM_V3(0) } },    \
     1448            { /*src1     */ { FP64_SNAN(0),      FP64_1(1),        FP64_SNAN_MAX(0), FP64_NORM_V2(1) } },    \
     1449            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_MAX(1), FP64_QNAN_MAX(0), FP64_QNAN_V1(0) } },    \
     1450              /*mxcsr:in */ X86_MXCSR_RC_UP,                                                                 \
     1451              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                  \
     1452              /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                  \
     1453              /*xcpt?    */ true, true },                                                                    \
    14001454
    14011455/**
     
    14801534 **/
    14811535#define FP64_TABLE_D9_PD_INVALIDS \
    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) } }, \
    1483             { /*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) } }, \
    1484             { /* =>      */ { 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) } }, \
    1485               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                      \
    1486               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1487               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1488               /*xcpt?    */ false, false },                                                                                                           \
    1489           { { /*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) } }, \
    1490             { /*src1     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } }, \
    1491             { /* =>      */ { 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) } }, \
    1492               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                      \
    1493               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1494               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1495               /*xcpt?    */ false, false },                                                                                                           \
    1496           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    1497             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },       \
    1498             { /* =>      */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    1499               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,                                                                                       \
    1500               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                                                                        \
    1501               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                                                                        \
    1502               /*xcpt?    */ false, false },                                                                                                           \
    1503           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    1504             { /*src1     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V3) } },       \
    1505             { /* =>      */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    1506               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                      \
    1507               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1508               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1509               /*xcpt?    */ false, false },                                                                                                           \
    1510           { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    1511             { /*src1     */ { FP64_1(0),    FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },       \
    1512             { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    1513               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                      \
    1514               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1515               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1516               /*xcpt?    */ false, false },                                                                                                           \
    1517           { { /*src2     */ { FP64_SNAN(1), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    1518             { /*src1     */ { FP64_1(0),    FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },       \
    1519             { /* =>      */ { FP64_SNAN(1), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    1520               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                      \
    1521               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1522               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                       \
    1523               /*xcpt?    */ false, false },                                                                                                           \
    1524           { { /*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) } }, \
    1525             { /*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) } }, \
    1526             { /* =>      */ { 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) } }, \
    1527               /*mxcsr:in */ 0,                                                                                                                        \
    1528               /*128:out  */ X86_MXCSR_IE,                                                                                                             \
    1529               /*256:out  */ X86_MXCSR_IE,                                                                                                             \
    1530               /*xcpt?    */ true, true },                                                                                                             \
    1531           { { /*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) } }, \
    1532             { /*src1     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } }, \
    1533             { /* =>      */ { 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) } }, \
    1534               /*mxcsr:in */ 0,                                                                                                                        \
    1535               /*128:out  */ X86_MXCSR_IE,                                                                                                             \
    1536               /*256:out  */ X86_MXCSR_IE,                                                                                                             \
    1537               /*xcpt?    */ true, true },                                                                                                             \
    1538           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },       \
    1539             { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },       \
    1540             { /* =>      */ { FP64_SNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1) } },       \
    1541               /*mxcsr:in */ 0,                                                                                                                        \
    1542               /*128:out  */ X86_MXCSR_IE,                                                                                                             \
    1543               /*256:out  */ X86_MXCSR_IE,                                                                                                             \
    1544               /*xcpt?    */ true, true },                                                                                                             \
    1545           { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    1546             { /*src1     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V3) } },       \
    1547             { /* =>      */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },       \
    1548               /*mxcsr:in */ 0,                                                                                                                        \
    1549               /*128:out  */ X86_MXCSR_IE,                                                                                                             \
    1550               /*256:out  */ X86_MXCSR_IE,                                                                                                             \
    1551               /*xcpt?    */ true, true },                                                                                                             \
     1536    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1537            { /*src1     */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } }, \
     1538            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1539              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                     \
     1540              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1541              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1542              /*xcpt?    */ false, false },                                                          \
     1543          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1544            { /*src1     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_MAX(0), FP64_SNAN_V2(0) } }, \
     1545            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1546              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                     \
     1547              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1548              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1549              /*xcpt?    */ false, false },                                                          \
     1550          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },  \
     1551            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },  \
     1552            { /* =>      */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },  \
     1553              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,                                      \
     1554              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                       \
     1555              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                       \
     1556              /*xcpt?    */ false, false },                                                          \
     1557          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },  \
     1558            { /*src1     */ { FP64_SNAN(0), FP64_SNAN_MAX(0), FP64_SNAN_V2(0), FP64_SNAN_V3(0) } },  \
     1559            { /* =>      */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },  \
     1560              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                     \
     1561              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1562              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1563              /*xcpt?    */ false, false },                                                          \
     1564          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_NORM_V0(1), FP64_QNAN_V1(0) } },  \
     1565            { /*src1     */ { FP64_1(0),    FP64_1(1),        FP64_QNAN_V0(1), FP64_NORM_V2(1) } },  \
     1566            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(1), FP64_NORM_V0(1), FP64_QNAN_V1(0) } },  \
     1567              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                     \
     1568              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1569              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1570              /*xcpt?    */ false, false },                                                          \
     1571          { { /*src2     */ { FP64_SNAN(1), FP64_SNAN_MAX(1), FP64_NORM_V0(1), FP64_SNAN_V1(0) } },  \
     1572            { /*src1     */ { FP64_1(0),    FP64_1(0),        FP64_SNAN_V0(1), FP64_NORM_V2(1) } },  \
     1573            { /* =>      */ { FP64_SNAN(1), FP64_SNAN_MAX(1), FP64_NORM_V0(1), FP64_SNAN_V1(0) } },  \
     1574              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                     \
     1575              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1576              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                      \
     1577              /*xcpt?    */ false, false },                                                          \
     1578          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1579            { /*src1     */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_MAX(0), FP64_QNAN_V2(0) } }, \
     1580            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1581              /*mxcsr:in */ 0,                                                                       \
     1582              /*128:out  */ X86_MXCSR_IE,                                                            \
     1583              /*256:out  */ X86_MXCSR_IE,                                                            \
     1584              /*xcpt?    */ true, true },                                                            \
     1585          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1586            { /*src1     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_MAX(0), FP64_SNAN_V2(0) } }, \
     1587            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V0(0),  FP64_QNAN_V1(0) } }, \
     1588              /*mxcsr:in */ 0,                                                                       \
     1589              /*128:out  */ X86_MXCSR_IE,                                                            \
     1590              /*256:out  */ X86_MXCSR_IE,                                                            \
     1591              /*xcpt?    */ true, true },                                                            \
     1592          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },  \
     1593            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_MAX(0), FP64_QNAN_V2(0), FP64_QNAN_V3(0) } },  \
     1594            { /* =>      */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V1(0) } },  \
     1595              /*mxcsr:in */ 0,                                                                       \
     1596              /*128:out  */ X86_MXCSR_IE,                                                            \
     1597              /*256:out  */ X86_MXCSR_IE,                                                            \
     1598              /*xcpt?    */ true, true },                                                            \
     1599          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },  \
     1600            { /*src1     */ { FP64_SNAN(0), FP64_SNAN_MAX(0), FP64_SNAN_V2(0), FP64_SNAN_V3(0) } },  \
     1601            { /* =>      */ { FP64_SNAN(0), FP64_SNAN(0),     FP64_SNAN_V1(0), FP64_SNAN_V2(0) } },  \
     1602              /*mxcsr:in */ 0,                                                                       \
     1603              /*128:out  */ X86_MXCSR_IE,                                                            \
     1604              /*256:out  */ X86_MXCSR_IE,                                                            \
     1605              /*xcpt?    */ true, true },                                                            \
    15521606
    15531607/**
     
    17701824 **/
    17711825#define FP64_TABLE_D9_SD_INVALIDS \
    1772     /* QNan, QNan (Masked). */                                                                                           \
    1773     /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },                       \
    1774             { /*src1     */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1775             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1776               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1777               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1778               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1779               /*xcpt?    */ false, false },                                                                              \
    1780           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, \
    1781             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
    1782             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
    1783               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1784               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1785               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1786               /*xcpt?    */ false, false },                                                                              \
    1787           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } }, \
    1788             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
    1789             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
    1790               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1791               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1792               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1793               /*xcpt?    */ false, false },                                                                              \
    1794     /* QNan, SNan (Masked). */                                                                                           \
    1795           { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V1(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },                       \
    1796             { /*src1     */ { FP64_SNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },                       \
    1797             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },                       \
    1798               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1799               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1800               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1801               /*xcpt?    */ false, false },                                                                              \
    1802           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
    1803             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
    1804             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
    1805               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1806               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1807               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1808               /*xcpt?    */ false, false },                                                                              \
    1809           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
    1810             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
    1811             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
    1812               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1813               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1814               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1815               /*xcpt?    */ false, false },                                                                              \
    1816     /* SNan, QNan (Masked). */                                                                                           \
    1817           { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } },                       \
    1818             { /*src1     */ { FP64_QNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },                       \
    1819             { /* =>      */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },                       \
    1820               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,                                                          \
    1821               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                                           \
    1822               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                                           \
    1823               /*xcpt?    */ false, false },                                                                              \
    1824           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
    1825             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
    1826             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
    1827               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1828               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1829               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1830               /*xcpt?    */ false, false },                                                                              \
    1831           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },       \
    1832             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },       \
    1833             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },       \
    1834               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1835               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1836               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1837               /*xcpt?    */ false, false },                                                                              \
    1838     /* SNan, SNan (Masked). */                                                                                           \
    1839           { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },                       \
    1840             { /*src1     */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1841             { /* =>      */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1842               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1843               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1844               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1845               /*xcpt?    */ false, false },                                                                              \
    1846           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, \
    1847             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
    1848             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
    1849               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1850               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1851               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1852               /*xcpt?    */ false, false },                                                                              \
    1853           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },       \
    1854             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },       \
    1855             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },       \
    1856               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1857               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1858               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1859               /*xcpt?    */ false, false },                                                                              \
    1860     /* QNan, Normal (Masked). */                                                                                         \
    1861           { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },                       \
    1862             { /*src1     */ { FP64_1(0),    FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },                       \
    1863             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },                       \
    1864               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1865               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1866               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1867               /*xcpt?    */ false, false },                                                                              \
    1868     /* SNan, Normal (Masked). */                                                                                         \
    1869           { { /*src2     */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },                       \
    1870             { /*src1     */ { FP64_1(0),    FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },                       \
    1871             { /* =>      */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },                       \
    1872               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                         \
    1873               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1874               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                          \
    1875               /*xcpt?    */ false, false },                                                                              \
    1876     /* QNan, QNan (Unmasked). */                                                                                         \
    1877     /* 0*/{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },                       \
    1878             { /*src1     */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1879             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1880               /*mxcsr:in */ 0,                                                                                           \
    1881               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1882               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1883               /*xcpt?    */ true, true },                                                                                \
    1884           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, \
    1885             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
    1886             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
    1887               /*mxcsr:in */ 0,                                                                                           \
    1888               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1889               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1890               /*xcpt?    */ true, true },                                                                                \
    1891           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } }, \
    1892             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
    1893             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
    1894               /*mxcsr:in */ 0,                                                                                           \
    1895               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1896               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1897               /*xcpt?    */ true, true },                                                                                \
    1898     /* QNan, SNan (Unmasked). */                                                                                         \
    1899           { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V1(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },                       \
    1900             { /*src1     */ { FP64_SNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },                       \
    1901             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },                       \
    1902               /*mxcsr:in */ 0,                                                                                           \
    1903               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1904               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1905               /*xcpt?    */ true, true },                                                                                \
    1906           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
    1907             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
    1908             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
    1909               /*mxcsr:in */ 0,                                                                                           \
    1910               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1911               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1912               /*xcpt?    */ true, true },                                                                                \
    1913           { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
    1914             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
    1915             { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
    1916               /*mxcsr:in */ 0,                                                                                           \
    1917               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1918               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1919               /*xcpt?    */ true, true },                                                                                \
    1920     /* SNan, QNan (Unmasked). */                                                                                         \
    1921           { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } },                       \
    1922             { /*src1     */ { FP64_QNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },                       \
    1923             { /* =>      */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },                       \
    1924               /*mxcsr:in */ X86_MXCSR_FZ,                                                                                \
    1925               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,                                                                 \
    1926               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,                                                                 \
    1927               /*xcpt?    */ true, true },                                                                                \
    1928           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
    1929             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
    1930             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
    1931               /*mxcsr:in */ 0,                                                                                           \
    1932               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1933               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1934               /*xcpt?    */ true, true },                                                                                \
    1935           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },       \
    1936             { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },       \
    1937             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },       \
    1938               /*mxcsr:in */ 0,                                                                                           \
    1939               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1940               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1941               /*xcpt?    */ true, true },                                                                                \
    1942     /* SNan, SNan (Unmasked). */                                                                                         \
    1943           { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },                       \
    1944             { /*src1     */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1945             { /* =>      */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },                       \
    1946               /*mxcsr:in */ 0,                                                                                           \
    1947               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1948               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1949               /*xcpt?    */ true, true },                                                                                \
    1950           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, \
    1951             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
    1952             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
    1953               /*mxcsr:in */ 0,                                                                                           \
    1954               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1955               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1956               /*xcpt?    */ true, true },                                                                                \
    1957           { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },       \
    1958             { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },       \
    1959             { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },       \
    1960               /*mxcsr:in */ 0,                                                                                           \
    1961               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1962               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1963               /*xcpt?    */ true, true },                                                                                \
    1964     /* QNan, Normal (Unmasked). */                                                                                       \
    1965           { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },                       \
    1966             { /*src1     */ { FP64_1(0),    FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },                       \
    1967             { /* =>      */ { FP64_QNAN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },                       \
    1968               /*mxcsr:in */ 0,                                                                                           \
    1969               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1970               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1971               /*xcpt?    */ true, true },                                                                                \
    1972     /* SNan, Normal (Unmasked). */                                                                                       \
    1973           { { /*src2     */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },                       \
    1974             { /*src1     */ { FP64_1(0),    FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },                       \
    1975             { /* =>      */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },                       \
    1976               /*mxcsr:in */ 0,                                                                                           \
    1977               /*128:out  */ X86_MXCSR_IE,                                                                                \
    1978               /*256:out  */ X86_MXCSR_IE,                                                                                \
    1979               /*xcpt?    */ true, true },                                                                                \
     1826    /* QNan, QNan (Masked). */                                                                         \
     1827    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },     \
     1828            { /*src1     */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1829            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1830              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1831              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1832              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1833              /*xcpt?    */ false, false },                                                            \
     1834          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, \
     1835            { /*src1     */ { FP64_QNAN(0),    FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
     1836            { /* =>      */ { FP64_QNAN_MAX(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
     1837              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1838              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1839              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1840              /*xcpt?    */ false, false },                                                            \
     1841          { { /*src2     */ { FP64_QNAN_V0(0),  FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } }, \
     1842            { /*src1     */ { FP64_QNAN_MAX(0), FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
     1843            { /* =>      */ { FP64_QNAN_V0(0),  FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
     1844              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1845              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1846              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1847              /*xcpt?    */ false, false },                                                            \
     1848    /* QNan, SNan (Masked). */                                                                         \
     1849          { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V1(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },     \
     1850            { /*src1     */ { FP64_SNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },     \
     1851            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },     \
     1852              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1853              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1854              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1855              /*xcpt?    */ false, false },                                                            \
     1856          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
     1857            { /*src1     */ { FP64_SNAN(0),    FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
     1858            { /* =>      */ { FP64_QNAN_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
     1859              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1860              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1861              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1862              /*xcpt?    */ false, false },                                                            \
     1863          { { /*src2     */ { FP64_QNAN_V0(0),  FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
     1864            { /*src1     */ { FP64_SNAN_MAX(0), FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
     1865            { /* =>      */ { FP64_QNAN_V0(0),  FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
     1866              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1867              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1868              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1869              /*xcpt?    */ false, false },                                                            \
     1870    /* SNan, QNan (Masked). */                                                                         \
     1871          { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } },     \
     1872            { /*src1     */ { FP64_QNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },     \
     1873            { /* =>      */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },     \
     1874              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,                                        \
     1875              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                         \
     1876              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,                         \
     1877              /*xcpt?    */ false, false },                                                            \
     1878          { { /*src2     */ { FP64_SNAN(0),    FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
     1879            { /*src1     */ { FP64_QNAN_MAX(0), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
     1880            { /* =>      */ { FP64_SNAN(0),    FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
     1881              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1882              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1883              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1884              /*xcpt?    */ false, false },                                                            \
     1885          { { /*src2     */ { FP64_SNAN_V1(0), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },  \
     1886            { /*src1     */ { FP64_QNAN_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },  \
     1887            { /* =>      */ { FP64_SNAN_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },  \
     1888              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1889              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1890              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1891              /*xcpt?    */ false, false },                                                            \
     1892    /* SNan, SNan (Masked). */                                                                         \
     1893          { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },     \
     1894            { /*src1     */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1895            { /* =>      */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1896              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1897              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1898              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1899              /*xcpt?    */ false, false },                                                            \
     1900          { { /*src2     */ { FP64_SNAN(0),    FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, \
     1901            { /*src1     */ { FP64_SNAN_MAX(0), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
     1902            { /* =>      */ { FP64_SNAN(0),    FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
     1903              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1904              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1905              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1906              /*xcpt?    */ false, false },                                                            \
     1907          { { /*src2     */ { FP64_SNAN_V1(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },  \
     1908            { /*src1     */ { FP64_SNAN_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },  \
     1909            { /* =>      */ { FP64_SNAN_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },  \
     1910              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1911              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1912              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1913              /*xcpt?    */ false, false },                                                            \
     1914    /* QNan, Normal (Unmasked). */                                                                     \
     1915          { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },     \
     1916            { /*src1     */ { FP64_1(0),    FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },     \
     1917            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },     \
     1918              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1919              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1920              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1921              /*xcpt?    */ false, false },                                                            \
     1922    /* SNan, Normal (Masked). */                                                                       \
     1923          { { /*src2     */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },     \
     1924            { /*src1     */ { FP64_1(0),    FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },     \
     1925            { /* =>      */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },     \
     1926              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                       \
     1927              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1928              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                        \
     1929              /*xcpt?    */ false, false },                                                            \
     1930    /* QNan, QNan (Unmasked). */                                                                       \
     1931    /*0 */{ { /*src2     */ { FP64_QNAN(0), FP64_RAND_V2(0), FP64_RAND_V0(1), FP64_RAND_V1(0) } },     \
     1932            { /*src1     */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1933            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1934              /*mxcsr:in */ 0,                                                                         \
     1935              /*128:out  */ X86_MXCSR_IE,                                                              \
     1936              /*256:out  */ X86_MXCSR_IE,                                                              \
     1937              /*xcpt?    */ true, true },                                                              \
     1938          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_RAND_V0(0), FP64_RAND_V1(1), FP64_RAND_V2(0) } }, \
     1939            { /*src1     */ { FP64_QNAN(0),    FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
     1940            { /* =>      */ { FP64_QNAN_MAX(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V3(1) } }, \
     1941              /*mxcsr:in */ 0,                                                                         \
     1942              /*128:out  */ X86_MXCSR_IE,                                                              \
     1943              /*256:out  */ X86_MXCSR_IE,                                                              \
     1944              /*xcpt?    */ true, true },                                                              \
     1945          { { /*src2     */ { FP64_QNAN_V0(0),  FP64_RAND_V0(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } }, \
     1946            { /*src1     */ { FP64_QNAN_MAX(0), FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
     1947            { /* =>      */ { FP64_QNAN_V0(0),  FP64_RAND_V1(0), FP64_RAND_V0(0), FP64_RAND_V2(1) } }, \
     1948              /*mxcsr:in */ 0,                                                                         \
     1949              /*128:out  */ X86_MXCSR_IE,                                                              \
     1950              /*256:out  */ X86_MXCSR_IE,                                                              \
     1951              /*xcpt?    */ true, true },                                                              \
     1952    /* QNan, SNan (Unmasked). */                                                                       \
     1953          { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V1(0), FP64_RAND_V3(1), FP64_RAND_V2(0) } },     \
     1954            { /*src1     */ { FP64_SNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },     \
     1955            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V0(1), FP64_RAND_V1(0), FP64_RAND_V2(0) } },     \
     1956              /*mxcsr:in */ 0,                                                                         \
     1957              /*128:out  */ X86_MXCSR_IE,                                                              \
     1958              /*256:out  */ X86_MXCSR_IE,                                                              \
     1959              /*xcpt?    */ true, true },                                                              \
     1960          { { /*src2     */ { FP64_QNAN_MAX(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
     1961            { /*src1     */ { FP64_SNAN(0),    FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
     1962            { /* =>      */ { FP64_QNAN_MAX(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } }, \
     1963              /*mxcsr:in */ 0,                                                                         \
     1964              /*128:out  */ X86_MXCSR_IE,                                                              \
     1965              /*256:out  */ X86_MXCSR_IE,                                                              \
     1966              /*xcpt?    */ true, true },                                                              \
     1967          { { /*src2     */ { FP64_QNAN_V0(0),  FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
     1968            { /*src1     */ { FP64_SNAN_MAX(0), FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
     1969            { /* =>      */ { FP64_QNAN_V0(0),  FP64_RAND_V3(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } }, \
     1970              /*mxcsr:in */ 0,                                                                         \
     1971              /*128:out  */ X86_MXCSR_IE,                                                              \
     1972              /*256:out  */ X86_MXCSR_IE,                                                              \
     1973              /*xcpt?    */ true, true },                                                              \
     1974    /* SNan, QNan (Unmasked). */                                                                       \
     1975          { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V2(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } },     \
     1976            { /*src1     */ { FP64_QNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },     \
     1977            { /* =>      */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },     \
     1978              /*mxcsr:in */ X86_MXCSR_FZ,                                                              \
     1979              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,                                               \
     1980              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,                                               \
     1981              /*xcpt?    */ true, true },                                                              \
     1982          { { /*src2     */ { FP64_SNAN(0),    FP64_RAND_V1(1), FP64_RAND_V3(0), FP64_RAND_V1(1) } }, \
     1983            { /*src1     */ { FP64_QNAN_MAX(0), FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
     1984            { /* =>      */ { FP64_SNAN(0),    FP64_RAND_V2(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } }, \
     1985              /*mxcsr:in */ 0,                                                                         \
     1986              /*128:out  */ X86_MXCSR_IE,                                                              \
     1987              /*256:out  */ X86_MXCSR_IE,                                                              \
     1988              /*xcpt?    */ true, true },                                                              \
     1989          { { /*src2     */ { FP64_SNAN_V1(0), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },  \
     1990            { /*src1     */ { FP64_QNAN_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },  \
     1991            { /* =>      */ { FP64_SNAN_V1(0), FP64_RAND_V2(0), FP64_RAND_V3(0), FP64_RAND_V2(1) } },  \
     1992              /*mxcsr:in */ 0,                                                                         \
     1993              /*128:out  */ X86_MXCSR_IE,                                                              \
     1994              /*256:out  */ X86_MXCSR_IE,                                                              \
     1995              /*xcpt?    */ true, true },                                                              \
     1996    /* SNan, SNan (Unmasked). */                                                                       \
     1997          { { /*src2     */ { FP64_SNAN(0), FP64_RAND_V1(1), FP64_RAND_V0(1), FP64_RAND_V2(0) } },     \
     1998            { /*src1     */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     1999            { /* =>      */ { FP64_SNAN(0), FP64_RAND_V3(0), FP64_RAND_V2(0), FP64_RAND_V3(1) } },     \
     2000              /*mxcsr:in */ 0,                                                                         \
     2001              /*128:out  */ X86_MXCSR_IE,                                                              \
     2002              /*256:out  */ X86_MXCSR_IE,                                                              \
     2003              /*xcpt?    */ true, true },                                                              \
     2004          { { /*src2     */ { FP64_SNAN(0),    FP64_RAND_V1(0), FP64_RAND_V0(1), FP64_RAND_V2(1) } }, \
     2005            { /*src1     */ { FP64_SNAN_MAX(0), FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
     2006            { /* =>      */ { FP64_SNAN(0),    FP64_RAND_V0(0), FP64_RAND_V3(0), FP64_RAND_V0(1) } }, \
     2007              /*mxcsr:in */ 0,                                                                         \
     2008              /*128:out  */ X86_MXCSR_IE,                                                              \
     2009              /*256:out  */ X86_MXCSR_IE,                                                              \
     2010              /*xcpt?    */ true, true },                                                              \
     2011          { { /*src2     */ { FP64_SNAN_V1(0), FP64_RAND_V1(1), FP64_RAND_V1(1), FP64_RAND_V2(0) } },  \
     2012            { /*src1     */ { FP64_SNAN_V2(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },  \
     2013            { /* =>      */ { FP64_SNAN_V1(0), FP64_RAND_V2(1), FP64_RAND_V3(1), FP64_RAND_V1(1) } },  \
     2014              /*mxcsr:in */ 0,                                                                         \
     2015              /*128:out  */ X86_MXCSR_IE,                                                              \
     2016              /*256:out  */ X86_MXCSR_IE,                                                              \
     2017              /*xcpt?    */ true, true },                                                              \
     2018    /* QNan, Normal (Unmasked). */                                                                     \
     2019          { { /*src2     */ { FP64_QNAN(0), FP64_RAND_V3(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },     \
     2020            { /*src1     */ { FP64_1(0),    FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },     \
     2021            { /* =>      */ { FP64_QNAN(0), FP64_RAND_V2(1), FP64_RAND_V2(1), FP64_RAND_V1(1) } },     \
     2022              /*mxcsr:in */ 0,                                                                         \
     2023              /*128:out  */ X86_MXCSR_IE,                                                              \
     2024              /*256:out  */ X86_MXCSR_IE,                                                              \
     2025              /*xcpt?    */ true, true },                                                              \
     2026    /* SNan, Normal (Masked). */                                                                       \
     2027          { { /*src2     */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V2(1), FP64_RAND_V2(0) } },     \
     2028            { /*src1     */ { FP64_1(0),    FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },     \
     2029            { /* =>      */ { FP64_SNAN(1), FP64_RAND_V0(1), FP64_RAND_V1(1), FP64_RAND_V3(1) } },     \
     2030              /*mxcsr:in */ 0,                                                                         \
     2031              /*128:out  */ X86_MXCSR_IE,                                                              \
     2032              /*256:out  */ X86_MXCSR_IE,                                                              \
     2033              /*xcpt?    */ true, true },                                                              \
    19802034
    19812035
     
    1219112245              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    1219212246              /*xcpt?    */ false, false },
    12193           { { /*src2     */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     12247          { { /*src2     */ { FP64_NORM_V2(0), FP64_SNAN(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
    1219412248            { /*src1     */ { FP64_INF(0),     FP64_RAND_V2(0),   FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    1219512249            { /* =>      */ { FP64_INF(0),     FP64_RAND_V2(0),   FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    1238712441              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    1238812442              /*xcpt?    */ false, false },
    12389           { { /*src2     */ { FP64_DENORM_MIN(1), FP64_INF(0),     FP64_QNAN(1),    FP64_SNAN_V(1, 1) } },
     12443          { { /*src2     */ { FP64_DENORM_MIN(1), FP64_INF(0),     FP64_QNAN(1),    FP64_SNAN(1) } },
    1239012444            { /*src1     */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1)   } },
    1239112445            { /* =>      */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1)   } },
     
    1374913803              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    1375013804              /*xcpt?    */ false, false },
    13751           { { /*src2     */ { FP64_NORM_V2(0), FP64_SNAN_V(0, 1), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
     13805          { { /*src2     */ { FP64_NORM_V2(0), FP64_SNAN(0), FP64_RAND_V2(0), FP64_RAND_V3(0) } },
    1375213806            { /*src1     */ { FP64_INF(0),     FP64_RAND_V2(0),   FP64_RAND_V1(0), FP64_RAND_V2(1) } },
    1375313807            { /* =>      */ { FP64_NORM_V2(0), FP64_RAND_V2(0),   FP64_RAND_V1(0), FP64_RAND_V2(1) } },
     
    1394513999              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    1394614000              /*xcpt?    */ false, false },
    13947           { { /*src2     */ { FP64_DENORM_MIN(1), FP64_INF(0),     FP64_QNAN(1),    FP64_SNAN_V(1, 1) } },
     14001          { { /*src2     */ { FP64_DENORM_MIN(1), FP64_INF(0),     FP64_QNAN(1),    FP64_SNAN(1) } },
    1394814002            { /*src1     */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1)   } },
    1394914003            { /* =>      */ { FP64_DENORM_MIN(1), FP64_RAND_V1(0), FP64_RAND_V2(1), FP64_RAND_V0(1)   } },
Note: See TracChangeset for help on using the changeset viewer.

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