VirtualBox

Ignore:
Timestamp:
Oct 4, 2024 12:36:25 PM (8 weeks ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: adapt addss, subss, mulss, divss to auto-MXCSR; bugref:10658

  • FP32_TABLE_D1_SS_INVALIDS: fix 3 previously-masked wrong output values
  • FP32_TABLE_D1_SS_INVALIDS: remove 14 entries made redundant by mask randomization
  • addss: fix 4 previously-masked wrong output values
  • addss: remove preset exceptions from 1 entry: let the worker do that
  • addss: split 1 entry, using FIXED for complex DM vs UM vs PE vs UE behavior
  • addss: split 1 entry, using FIXED for complex DM vs UM vs UE behavior
  • addss: split 3 entries, using FIXED for complex OM vs PE behavior
  • subss: fix 4 previously-masked wrong output values
  • subss: split 1 entry, using FIXED for complex DM vs UM vs UE behavior
  • subss: split 4 entries, using FIXED for complex OM vs PE behavior
  • subss: remove 1 redundant entry
  • mulss: fix 2 previously-masked wrong output values
  • mulss: remove 1 entry made redundant by mask randomization
  • divss: fix 1 previously-masked wrong output value
  • divss: remove 3 entries made redundant by mask randomization
File:
1 edited

Legend:

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

    r106216 r106220  
    848848 **/
    849849#define FP32_TABLE_D1_SS_INVALIDS \
    850     /* QNan, QNan (Masked). */                                                                                                                                                                                                                                                                      \
     850    /* QNan, QNan */                                                                                                                                                          \
    851851    /* 0*/{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },      \
    852             { /*src1     */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },      \
    853             { /* =>      */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },      \
    854               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    855               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    856               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    857               /*xcpt?    */ false, false },                                                                                                                                   \
    858           { { /*src2     */ { FP32_QNAN_MAX(0), FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0) } },                     \
    859             { /*src1     */ { FP32_QNAN(0),     FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0), FP32_QNAN_V1(0) } },                     \
    860             { /* =>      */ { FP32_QNAN(0),     FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0), FP32_QNAN_V1(0) } },                     \
    861               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    862               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    863               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    864               /*xcpt?    */ false, false },                                                                                                                                   \
    865           { { /*src2     */ { FP32_QNAN_V1(0), FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0) } },                      \
    866             { /*src1     */ { FP32_QNAN_V2(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0), FP32_QNAN_V1(0) } },                      \
    867             { /* =>      */ { FP32_QNAN_V2(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0), FP32_QNAN_V1(0) } },                      \
    868               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    869               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    870               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    871               /*xcpt?    */ false, false },                                                                                                                                   \
    872     /* QNan, SNan (Masked). */                                                                                                                                                \
    873           { { /*src2     */ { FP32_QNAN(0),      FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0) } },                    \
    874             { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0), FP32_SNAN_V1(0) } },                    \
    875             { /* =>      */ { FP32_QNAN_V(0, 1), FP32_SNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0), FP32_QNAN_V1(0) } },                    \
    876               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    877               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    878               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    879               /*xcpt?    */ false, false },                                                                                                                                   \
    880           { { /*src2     */ { FP32_QNAN_MAX(0),  FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } }, \
    881             { /*src1     */ { FP32_SNAN(0),      FP32_SNAN(0),     FP32_SNAN_MAX(0), FP32_SNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0) } }, \
    882             { /* =>      */ { FP32_QNAN_V(0, 1), FP32_SNAN(0),     FP32_SNAN_MAX(0), FP32_SNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0) } }, \
    883               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    884               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    885               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    886               /*xcpt?    */ false, false },                                                                                                                                   \
    887           { { /*src2     */ { FP32_QNAN_V1(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },   \
    888             { /*src1     */ { FP32_SNAN_V2(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },   \
    889             { /* =>      */ { FP32_QNAN_V2(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },   \
    890               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    891               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    892               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    893               /*xcpt?    */ false, false },                                                                                                                                   \
    894     /* SNan, QNan (Masked). */                                                                                                                                                \
    895           { { /*src2     */ { FP32_SNAN(0), FP32_SNAN(0),     FP32_SNAN_V1(0), FP32_SNAN_V1(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V5(0), FP32_SNAN_V6(0) } },       \
    896             { /*src1     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },       \
    897             { /* =>      */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },       \
    898               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    899               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    900               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    901               /*xcpt?    */ false, false },                                                                                                                                   \
    902           { { /*src2     */ { FP32_SNAN_MAX(0), FP32_SNAN_MAX(0), FP32_SNAN_V1(0), FP32_SNAN_V1(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V5(0), FP32_SNAN_V6(0) } },   \
    903             { /*src1     */ { FP32_QNAN(0),     FP32_QNAN(0),     FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },   \
    904             { /* =>      */ { FP32_QNAN(0),     FP32_QNAN(0),     FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },   \
    905               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    906               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    907               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    908               /*xcpt?    */ false, false },                                                                                                                                   \
    909           { { /*src2     */ { FP32_SNAN_V0(0), FP32_SNAN_MAX(0), FP32_SNAN_V1(0), FP32_SNAN_V1(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V5(0), FP32_SNAN_V6(0) } },    \
    910             { /*src1     */ { FP32_QNAN_V6(0), FP32_QNAN(0),     FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },    \
    911             { /* =>      */ { FP32_QNAN_V6(0), FP32_QNAN(0),     FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },    \
    912               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    913               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    914               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    915               /*xcpt?    */ false, false },                                                                                                                                   \
    916     /* SNan, SNan (Masked). */                                                                                                                                                \
    917           { { /*src2     */ { FP32_SNAN(0),      FP32_SNAN(0),     FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },  \
    918             { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_MAX(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },  \
    919             { /* =>      */ { FP32_QNAN_V(0, 1), FP32_SNAN_MAX(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },  \
    920               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    921               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    922               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    923               /*xcpt?    */ false, false },                                                                                                                                   \
    924           { { /*src2     */ { FP32_SNAN(0),     FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },    \
    925             { /*src1     */ { FP32_SNAN_MAX(0), FP32_SNAN_V0(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },    \
    926             { /* =>      */ { FP32_QNAN_MAX(0), FP32_SNAN_V0(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },    \
    927               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    928               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    929               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    930               /*xcpt?    */ false, false },                                                                                                                                   \
    931           { { /*src2     */ { FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },     \
    932             { /*src1     */ { FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V0(0) } },     \
    933             { /* =>      */ { FP32_QNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V0(0) } },     \
    934               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    935               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    936               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    937               /*xcpt?    */ false, false },                                                                                                                                   \
    938     /* QNan, Norm FP (Masked). */                                                                                                                                             \
    939           { { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(1), FP32_NORM_V0(1), FP32_QNAN_V1(0), FP32_NORM_V3(0), FP32_QNAN_V3(1), FP32_NORM_V5(0), FP32_QNAN_V5(1) } },       \
    940             { /*src1     */ { FP32_1(0),    FP32_1(1),        FP32_QNAN_V0(1), FP32_NORM_V2(1), FP32_QNAN_V2(0), FP32_NORM_V4(0), FP32_QNAN_V4(1), FP32_NORM_V6(1) } },       \
    941             { /* =>      */ { FP32_QNAN(0), FP32_1(1),        FP32_QNAN_V0(1), FP32_NORM_V2(1), FP32_QNAN_V2(0), FP32_NORM_V4(0), FP32_QNAN_V4(1), FP32_NORM_V6(1) } },       \
    942               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    943               /*128:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    944               /*256:out  */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    945               /*xcpt?    */ false, false },                                                                                                                                   \
    946     /* SNan, Norm FP (Masked). */                                                                                                                                             \
    947           { { /*src2     */ { FP32_SNAN(1),      FP32_SNAN_MAX(1), FP32_NORM_V0(1), FP32_SNAN_V1(0), FP32_NORM_V3(0), FP32_SNAN_V3(1), FP32_NORM_V5(0), FP32_SNAN_V5(1) } },  \
    948             { /*src1     */ { FP32_1(0),         FP32_1(0),        FP32_SNAN_V0(1), FP32_NORM_V2(1), FP32_SNAN_V2(1), FP32_NORM_V4(0), FP32_SNAN_V4(1), FP32_NORM_V6(1) } },  \
    949             { /* =>      */ { FP32_QNAN_V(1, 1), FP32_1(0),        FP32_SNAN_V0(1), FP32_NORM_V2(1), FP32_SNAN_V2(1), FP32_NORM_V4(0), FP32_SNAN_V4(1), FP32_NORM_V6(1) } },  \
    950               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,                                                                                                                              \
    951               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    952               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,                                                                                                               \
    953               /*xcpt?    */ false, false },                                                                                                                                   \
    954     /* QNan, QNan (Unmasked). */                                                                                                                                              \
    955     /*14*/{ { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },      \
    956852            { /*src1     */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },      \
    957853            { /* =>      */ { FP32_QNAN(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },      \
    958854              /*mxcsr:in */ 0,                                                                                                                                                \
    959855              /*128:out  */ 0,                                                                                                                                                \
    960               /*256:out  */ 0,                                                                                                                                                \
     856              /*256:out  */ -1,                                                                                                                                               \
    961857              /*xcpt?    */ false, false },                                                                                                                                   \
    962858          { { /*src2     */ { FP32_QNAN_MAX(0), FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0) } },                     \
     
    965861              /*mxcsr:in */ 0,                                                                                                                                                \
    966862              /*128:out  */ 0,                                                                                                                                                \
    967               /*256:out  */ 0,                                                                                                                                                \
     863              /*256:out  */ -1,                                                                                                                                               \
    968864              /*xcpt?    */ false, false },                                                                                                                                   \
    969865          { { /*src2     */ { FP32_QNAN_V1(0), FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0) } },                      \
     
    972868              /*mxcsr:in */ 0,                                                                                                                                                \
    973869              /*128:out  */ 0,                                                                                                                                                \
    974               /*256:out  */ 0,                                                                                                                                                \
     870              /*256:out  */ -1,                                                                                                                                               \
    975871              /*xcpt?    */ false, false },                                                                                                                                   \
    976                                                                                                                                                                               \
    977     /* QNan, SNan (Unmasked). */                                                                                                                                              \
     872    /* QNan, SNan */                                                                                                                                                          \
    978873          { { /*src2     */ { FP32_QNAN(0),      FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0) } },                    \
    979874            { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0), FP32_SNAN_V1(0) } },                    \
    980             { /* =>      */ { FP32_QNAN_V(0, 1), FP32_QNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0), FP32_QNAN_V1(0) } },                    \
     875            { /* =>      */ { FP32_QNAN_V(0, 1), FP32_SNAN_V2(0), FP32_SNAN_V6(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V4(0), FP32_QNAN_V1(0) } },                    \
    981876              /*mxcsr:in */ 0,                                                                                                                                                \
    982877              /*128:out  */ X86_MXCSR_IE,                                                                                                                                     \
    983               /*256:out  */ X86_MXCSR_IE,                                                                                                                                     \
     878              /*256:out  */ -1,                                                                                                                                               \
    984879              /*xcpt?    */ true, true },                                                                                                                                     \
    985880          { { /*src2     */ { FP32_QNAN_MAX(0),  FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } }, \
     
    988883              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                                 \
    989884              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                                                                                  \
    990               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                                                                                  \
     885              /*256:out  */ -1,                                                                                                                                               \
    991886              /*xcpt?    */ true, true },                                                                                                                                     \
    992887          { { /*src2     */ { FP32_QNAN_V1(0), FP32_QNAN_MAX(0), FP32_QNAN_V0(0),  FP32_QNAN_V1(0), FP32_QNAN_V2(0), FP32_QNAN_V3(0), FP32_QNAN_V4(0), FP32_QNAN_V5(0) } },   \
    993888            { /*src1     */ { FP32_SNAN_V2(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },   \
    994             { /* =>      */ { FP32_SNAN_V2(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },   \
     889            { /* =>      */ { FP32_QNAN_V2(0), FP32_QNAN(0),     FP32_QNAN_MAX(0), FP32_QNAN_V2(0), FP32_QNAN_V6(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0), FP32_QNAN_V4(0) } },   \
    995890              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                                 \
    996891              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                                  \
    997               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                                  \
     892              /*256:out  */ -1,                                                                                                                                               \
    998893              /*xcpt?    */ true, true },                                                                                                                                     \
    999     /* SNan, QNan (Unmasked). */                                                                                                                                              \
     894    /* SNan, QNan */                                                                                                                                                          \
    1000895          { { /*src2     */ { FP32_SNAN(0), FP32_SNAN(0),     FP32_SNAN_V1(0), FP32_SNAN_V1(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V5(0), FP32_SNAN_V6(0) } },       \
    1001896            { /*src1     */ { FP32_QNAN(0), FP32_QNAN_MAX(0), FP32_QNAN_V6(0), FP32_QNAN_V5(0), FP32_QNAN_V4(0), FP32_QNAN_V3(0), FP32_QNAN_V2(0), FP32_QNAN_V1(0) } },       \
     
    1003898              /*mxcsr:in */ X86_MXCSR_DAZ,                                                                                                                                    \
    1004899              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                                                                                     \
    1005               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,                                                                                                                     \
     900              /*256:out  */ -1,                                                                                                                                               \
    1006901              /*xcpt?    */ true, true },                                                                                                                                     \
    1007902          { { /*src2     */ { FP32_SNAN_MAX(0), FP32_SNAN_MAX(0), FP32_SNAN_V1(0), FP32_SNAN_V1(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V5(0), FP32_SNAN_V6(0) } },   \
     
    1010905              /*mxcsr:in */ X86_MXCSR_RC_UP,                                                                                                                                  \
    1011906              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                                   \
    1012               /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,                                                                                                                   \
     907              /*256:out  */ -1,                                                                                                                                               \
    1013908              /*xcpt?    */ true, true },                                                                                                                                     \
    1014909          { { /*src2     */ { FP32_SNAN_V0(0), FP32_SNAN_MAX(0), FP32_SNAN_V1(0), FP32_SNAN_V1(0), FP32_SNAN_V3(0), FP32_SNAN_V4(0), FP32_SNAN_V5(0), FP32_SNAN_V6(0) } },    \
     
    1017912              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,                                                                                                                 \
    1018913              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                                                                                                  \
    1019               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,                                                                                                  \
     914              /*256:out  */ -1,                                                                                                                                               \
    1020915              /*xcpt?    */ true, true },                                                                                                                                     \
    1021     /* SNan, SNan (Unmasked). */                                                                                                                                              \
    1022     /*24*/{ { /*src2     */ { FP32_SNAN(0),      FP32_SNAN(0),     FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },  \
     916    /* SNan, SNan */                                                                                                                                                          \
     917          { { /*src2     */ { FP32_SNAN(0),      FP32_SNAN(0),     FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },  \
    1023918            { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_MAX(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },  \
    1024919            { /* =>      */ { FP32_QNAN_V(0, 1), FP32_SNAN_MAX(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },  \
    1025920              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,                                                                                                                     \
    1026921              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                                                                                      \
    1027               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,                                                                                                      \
     922              /*256:out  */ -1,                                                                                                                                               \
    1028923              /*xcpt?    */ true, true },                                                                                                                                     \
    1029924          { { /*src2     */ { FP32_SNAN(0),     FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },    \
    1030925            { /*src1     */ { FP32_SNAN_MAX(0), FP32_SNAN_V0(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },    \
    1031             { /* =>      */ { FP32_SNAN_MAX(0), FP32_SNAN_V0(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },    \
     926            { /* =>      */ { FP32_QNAN_MAX(0), FP32_SNAN_V0(0), FP32_SNAN_V4(0), FP32_SNAN_V3(0), FP32_SNAN_V5(0), FP32_SNAN_V3(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0) } },    \
    1032927              /*mxcsr:in */ X86_MXCSR_RC_ZERO,                                                                                                                                \
    1033928              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                                                 \
    1034               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                                                 \
     929              /*256:out  */ -1,                                                                                                                                               \
    1035930              /*xcpt?    */ true, true },                                                                                                                                     \
    1036931          { { /*src2     */ { FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V1(0), FP32_SNAN_V2(0), FP32_SNAN_V7(0), FP32_SNAN_V1(0), FP32_SNAN_V6(0), FP32_SNAN_V1(0) } },     \
     
    1039934              /*mxcsr:in */ 0,                                                                                                                                                \
    1040935              /*128:out  */ X86_MXCSR_IE,                                                                                                                                     \
    1041               /*256:out  */ X86_MXCSR_IE,                                                                                                                                     \
     936              /*256:out  */ -1,                                                                                                                                               \
    1042937              /*xcpt?    */ true, true },                                                                                                                                     \
    1043     /* QNan, Norm FP (Unmasked). */                                                                                                                                           \
     938    /* QNan, Norm FP */                                                                                                                                                       \
    1044939          { { /*src2     */ { FP32_QNAN(0), FP32_QNAN_MAX(1), FP32_NORM_V0(1), FP32_QNAN_V1(0), FP32_NORM_V3(0), FP32_QNAN_V3(1), FP32_NORM_V5(0), FP32_QNAN_V5(1) } },       \
    1045940            { /*src1     */ { FP32_1(0),    FP32_1(1),        FP32_QNAN_V0(1), FP32_NORM_V2(1), FP32_QNAN_V2(0), FP32_NORM_V4(0), FP32_QNAN_V4(1), FP32_NORM_V6(1) } },       \
     
    1047942              /*mxcsr:in */ X86_MXCSR_FZ,                                                                                                                                     \
    1048943              /*128:out  */ X86_MXCSR_FZ,                                                                                                                                     \
    1049               /*256:out  */ X86_MXCSR_FZ,                                                                                                                                     \
     944              /*256:out  */ -1,                                                                                                                                               \
    1050945              /*xcpt?    */ false, false },                                                                                                                                   \
    1051     /* SNan, Norm FP (Unmasked). */                                                                                                                                           \
    1052     /*28*/{ { /*src2     */ { FP32_SNAN(1),      FP32_SNAN_MAX(1), FP32_NORM_V0(1), FP32_SNAN_V1(0), FP32_NORM_V3(0), FP32_SNAN_V3(1), FP32_NORM_V5(0), FP32_SNAN_V5(1) } },  \
     946    /* SNan, Norm FP */                                                                                                                                                       \
     947    /*13*/{ { /*src2     */ { FP32_SNAN(1),      FP32_SNAN_MAX(1), FP32_NORM_V0(1), FP32_SNAN_V1(0), FP32_NORM_V3(0), FP32_SNAN_V3(1), FP32_NORM_V5(0), FP32_SNAN_V5(1) } },  \
    1053948            { /*src1     */ { FP32_1(0),         FP32_1(0),        FP32_SNAN_V0(1), FP32_NORM_V2(1), FP32_SNAN_V2(1), FP32_NORM_V4(0), FP32_SNAN_V4(1), FP32_NORM_V6(1) } },  \
    1054949            { /* =>      */ { FP32_QNAN_V(1, 1), FP32_1(0),        FP32_SNAN_V0(1), FP32_NORM_V2(1), FP32_SNAN_V2(1), FP32_NORM_V4(0), FP32_SNAN_V4(1), FP32_NORM_V6(1) } },  \
    1055950              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,                                                                                                 \
    1056951              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                  \
    1057               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,                                                                                  \
     952              /*256:out  */ -1,                                                                                                                                               \
    1058953              /*xcpt?    */ true, true },                                                                                                                                     \
    1059954
     
    43174212              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    43184213              /*128:out  */ X86_MXCSR_XCPT_MASK,
    4319               /*256:out  */ X86_MXCSR_XCPT_MASK,
     4214              /*256:out  */ -1,
    43204215              /*xcpt?    */ false, false },
    43214216          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    43244219              /*mxcsr:in */ 0,
    43254220              /*128:out  */ 0,
    4326               /*256:out  */ 0,
     4221              /*256:out  */ -1,
    43274222              /*xcpt?    */ false, false },
    43284223          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    43314226              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    43324227              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4333               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4228              /*256:out  */ -1,
    43344229              /*xcpt?    */ false, false },
    43354230          { { /*src2     */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    43384233              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    43394234              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    4340               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     4235              /*256:out  */ -1,
    43414236              /*xcpt?    */ false, false },
    43424237          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    43454240              /*mxcsr:in */ X86_MXCSR_FZ,
    43464241              /*128:out  */ X86_MXCSR_FZ,
    4347               /*256:out  */ X86_MXCSR_FZ,
     4242              /*256:out  */ -1,
    43484243              /*xcpt?    */ false, false },
    43494244          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    43524247              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
    43534248              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
    4354               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
     4249              /*256:out  */ -1,
    43554250              /*xcpt?    */ false, false },
    43564251    /*
     
    43594254    /* 6*/{ { /*src2     */ { FP32_INF(0),  FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    43604255            { /*src1     */ { FP32_INF(1),  FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    4361             { /* =>      */ { FP32_0(0),    FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     4256            { /* =>      */ { FP32_QNAN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    43624257              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM,
    43634258              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE,
    4364               /*256:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_IE,
     4259              /*256:out  */ -1,
    43654260              /*xcpt?    */ true, true },
    43664261          { { /*src2     */ { FP32_INF(0),  FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    43674262            { /*src1     */ { FP32_INF(1),  FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    4368             { /* =>      */ { FP32_0(0),    FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     4263            { /* =>      */ { FP32_QNAN(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    43694264              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    43704265              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    4371               /*256:out  */ X86_MXCSR_DM | X86_MXCSR_ZM | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     4266              /*256:out  */ -1,
    43724267              /*xcpt?    */ true, true },
    43734268          { { /*src2     */ { FP32_INF(1),  FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    43764271              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    43774272              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
    4378               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
     4273              /*256:out  */ -1,
    43794274              /*xcpt?    */ false, false },
    43804275          { { /*src2     */ { FP32_INF(0),  FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    43834278              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    43844279              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
    4385               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     4280              /*256:out  */ -1,
    43864281              /*xcpt?    */ false, false },
    43874282          { { /*src2     */ { FP32_INF(0),  FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
    43884283            { /*src1     */ { FP32_INF(1),  FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
    4389             { /* =>      */ { FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
     4284            { /* =>      */ { FP32_QNAN(1), FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
    43904285              /*mxcsr:in */ X86_MXCSR_FZ,
    43914286              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
    4392               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
     4287              /*256:out  */ -1,
    43934288              /*xcpt?    */ true, true },
    43944289          { { /*src2     */ { FP32_INF(1),  FP32_0(0), FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } },
     
    43974292              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    43984293              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    4399               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     4294              /*256:out  */ -1,
    44004295              /*xcpt?    */ true, true },
    44014296    /*
     
    44064301            { /* =>      */ { FP32_0(0),        FP32_0(1), FP32_0(1), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V5(1) } },
    44074302              /*mxcsr:in */ 0,
    4408               /*128:out  */ X86_MXCSR_OE,
    4409               /*256:out  */ X86_MXCSR_OE,
     4303              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4304              /*256:out  */ -1,
     4305              /*xcpt?    */ true, true },
     4306          { { /*src2     */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } },
     4307            { /*src1     */ { FP32_NORM_MAX(1), FP32_0(1), FP32_0(1), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V5(1) } },
     4308            { /* =>      */ { FP32_INF(1),      FP32_0(1), FP32_0(1), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V5(1) } },
     4309              /*mxcsr:in */ X86_MXCSR_OM,
     4310              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     4311              /*256:out  */ -1,
    44104312              /*xcpt?    */ true, true },
    44114313          { { /*src2     */ { FP32_NORM_MAX(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    44124314            { /*src1     */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    44134315            { /* =>      */ { FP32_INF(0),      FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    4414               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
    4415               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    4416               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     4316              /*mxcsr:in */ 0,
     4317              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4318              /*256:out  */ -1,
     4319              /*xcpt?    */ false, false },
     4320          { { /*src2     */ { FP32_NORM_MAX(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     4321            { /*src1     */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     4322            { /* =>      */ { FP32_INF(0),      FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     4323              /*mxcsr:in */ X86_MXCSR_OM,
     4324              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PE | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4325              /*256:out  */ -1,
    44174326              /*xcpt?    */ false, false },
    44184327          { { /*src2     */ { FP32_RAND_V0(1),  FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    44214330              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM,
    44224331              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_PE,
    4423               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_PE,
     4332              /*256:out  */ -1,
    44244333              /*xcpt?    */ false, false },
    44254334          { { /*src2     */ { FP32_NORM_MAX(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    44264335            { /*src1     */ { FP32_NORM_MAX(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    44274336            { /* =>      */ { FP32_INF(1),      FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    4428               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
    4429               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    4430               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     4337              /*mxcsr:in */ 0,
     4338              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     4339              /*256:out  */ -1,
     4340              /*xcpt?    */ false, false },
     4341          { { /*src2     */ { FP32_NORM_MAX(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     4342            { /*src1     */ { FP32_NORM_MAX(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     4343            { /* =>      */ { FP32_INF(1),      FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     4344              /*mxcsr:in */ X86_MXCSR_OM,
     4345              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     4346              /*256:out  */ -1,
    44314347              /*xcpt?    */ false, false },
    44324348          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0),                            FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V2(1) } },
     
    44354351              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    44364352              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    4437               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     4353              /*256:out  */ -1,
    44384354              /*xcpt?    */ true, true },
    44394355          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(1),                            FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    44424358              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    44434359              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    4444               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     4360              /*256:out  */ -1,
    44454361              /*xcpt?    */ true, true },
    44464362    /*
    44474363     * Normals.
    44484364     */
    4449     /*18*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     4365    /*21*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    44504366            { /*src1     */ { FP32_V(1, 0,        0x7d)/*-0.25*/, FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V0(0), FP32_RAND_V5(1) } },
    44514367            { /* =>      */ { FP32_V(0, 0x400000, 0x7f)/* 1.50*/, FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V0(0), FP32_RAND_V5(1) } },
    44524368              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    44534369              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4454               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4370              /*256:out  */ -1,
    44554371              /*xcpt?    */ false, false },
    44564372          { { /*src2     */ { FP32_NORM_MAX(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V2(1) } },
     
    44594375              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    44604376              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4461               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4377              /*256:out  */ -1,
    44624378              /*xcpt?    */ false, false },
    44634379          { { /*src2     */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    44664382              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    44674383              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    4468               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     4384              /*256:out  */ -1,
    44694385              /*xcpt?    */ false, false },
    44704386          { { /*src2     */ { FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    44734389              /*mxcsr:in */ 0,
    44744390              /*128:out  */ 0,
    4475               /*256:out  */ 0,
     4391              /*256:out  */ -1,
    44764392              /*xcpt?    */ false, false },
    44774393          { { /*src2     */ { FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    44804396              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    44814397              /*128:out  */ X86_MXCSR_RC_ZERO,
    4482               /*256:out  */ X86_MXCSR_RC_ZERO,
     4398              /*256:out  */ -1,
    44834399              /*xcpt?    */ false, false },
    44844400          { { /*src2     */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    44874403              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    44884404              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    4489               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     4405              /*256:out  */ -1,
    44904406              /*xcpt?    */ false, false },
    44914407          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0),                                FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    44944410              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    44954411              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4496               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4412              /*256:out  */ -1,
    44974413              /*xcpt?    */ false, false },
    44984414          { { /*src2     */ { FP32_V(0, 0x600000, 0x7e)/*      0.875*/, FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    45014417              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    45024418              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    4503               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     4419              /*256:out  */ -1,
    45044420              /*xcpt?    */ false, false },
    45054421          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(1) } },
     
    45084424              /*mxcsr:in */ X86_MXCSR_FZ,
    45094425              /*128:out  */ X86_MXCSR_FZ,
    4510               /*256:out  */ X86_MXCSR_FZ,
     4426              /*256:out  */ -1,
    45114427              /*xcpt?    */ false, false },
    45124428    /*
    45134429     * Denormals.
    45144430     */
    4515     /*27*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
     4431    /*30*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
    45164432            { /*src1     */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
    45174433            { /* =>      */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
    4518               /*mxcsr:in */ X86_MXCSR_DE,
    4519               /*128:out  */ X86_MXCSR_DE,
    4520               /*256:out  */ X86_MXCSR_DE,
     4434              /*mxcsr:in */ 0,
     4435              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     4436              /*256:out  */ -1,
     4437              /*xcpt?    */ true, true },
     4438#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out *AND* different output values */
     4439 /*--|31*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
     4440            { /*src1     */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
     4441            { /* =>      */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } } /* result on HW (i7-10700) */,
     4442    // IEM: { /* =>      */ { FP32_DENORM_MAX(0), FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } } /* result on IEM */,
     4443              /*mxcsr:in */ X86_MXCSR_DM,
     4444              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4445              /*256:out  */ -1,
     4446              /*xcpt?    */ true, true },
     4447#endif /* TODO_X86_MXCSR_UE_IEM */
     4448 /*31|32*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
     4449            { /*src1     */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
     4450            { /* =>      */ { FP32_DENORM_MAX(0), FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
     4451              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     4452              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4453              /*256:out  */ -1,
    45214454              /*xcpt?    */ true, true },
    45224455          { { /*src2     */ { FP32_0(0),          FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(1) } },
    45234456            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V7(1) } },
    45244457            { /* =>      */ { FP32_0(0),          FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V7(1) } },
    4525               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4526               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4527               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4458              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4459              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED,
     4460              /*256:out  */ -1,
     4461              /*xcpt?    */ false, false },
     4462          { { /*src2     */ { FP32_0(0),          FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(1) } },
     4463            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V7(1) } },
     4464            { /* =>      */ { FP32_0(0),          FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V7(1) } },
     4465              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4466              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4467              /*256:out  */ -1,
     4468              /*xcpt?    */ false, false },
     4469          { { /*src2     */ { FP32_0(0),          FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(1) } },
     4470            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V7(1) } },
     4471            { /* =>      */ { FP32_0(0),          FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V7(1) } },
     4472              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4473              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     4474              /*256:out  */ -1,
    45284475              /*xcpt?    */ false, false },
    45294476          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V7(0) } },
    45304477            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V6(1) } },
    4531             { /* =>      */ { FP32_0(0),          FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V6(1) } },
     4478            { /* =>      */ { FP32_NORM_MIN(0),   FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V6(1) } },
    45324479              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
    45334480              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
    4534               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
     4481              /*256:out  */ -1,
    45354482              /*xcpt?    */ true, true },
    45364483    /** @todo More denormals etc. */
     
    45384485     * Invalids.
    45394486     */
    4540     /*30*/ FP32_TABLE_D1_SS_INVALIDS
     4487 /*36|37*/ FP32_TABLE_D1_SS_INVALIDS
    45414488    /** @todo Underflow; Precision; Rounding; FZ etc. */
    45424489    };
     
    45774524    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    45784525    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    4579     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     4526    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    45804527                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    45814528}
     
    54875434 /*--|30*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0),          FP64_0(0) } },
    54885435            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_DENORM_MIN(0), FP64_0(0) } },
    5489             { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0),          FP64_0(0) } }, /* result on HW (i7-10700) */
    5490     // IEM: { /* =>      */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } }, /* result on IEM */
     5436            { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0),          FP64_0(0) } } /* result on HW (i7-10700) */,
     5437    // IEM: { /* =>      */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } } /* result on IEM */,
    54915438              /*mxcsr:in */ X86_MXCSR_DM,
    54925439              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     
    62576204              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    62586205              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6259               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6206              /*256:out  */ -1,
    62606207              /*xcpt?    */ false, false },
    62616208          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    62646211              /*mxcsr:in */ 0,
    62656212              /*128:out  */ 0,
    6266               /*256:out  */ 0,
     6213              /*256:out  */ -1,
    62676214              /*xcpt?    */ false, false },
    62686215          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    62716218              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    62726219              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    6273               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     6220              /*256:out  */ -1,
    62746221              /*xcpt?    */ false, false },
    62756222          { { /*src2     */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    62786225              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    62796226              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    6280               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     6227              /*256:out  */ -1,
    62816228              /*xcpt?    */ false, false },
    62826229          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    62856232              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    62866233              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    6287               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     6234              /*256:out  */ -1,
    62886235              /*xcpt?    */ false, false },
    62896236          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    62926239              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    62936240              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    6294               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     6241              /*256:out  */ -1,
    62956242              /*xcpt?    */ false, false },
    62966243    /*
     
    63026249              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    63036250              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    6304               /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    6305               /*xcpt?    */ false, false },
    6306           { { /*src2     */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    6307             { /*src1     */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    6308             { /* =>      */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     6251              /*256:out  */ -1,
     6252              /*xcpt?    */ false, false },
     6253          { { /*src2     */ { FP32_INF(0),  FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     6254            { /*src1     */ { FP32_INF(0),  FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     6255            { /* =>      */ { FP32_QNAN(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    63096256              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM),
    63106257              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_IE,
    6311               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_IE,
     6258              /*256:out  */ -1,
    63126259              /*xcpt?    */ true, true },
    63136260          { { /*src2     */ { FP32_INF(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    63166263              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    63176264              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6318               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6265              /*256:out  */ -1,
    63196266              /*xcpt?    */ false, false },
    63206267          { { /*src2     */ { FP32_INF(1),  FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    63236270              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    63246271              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
    6325               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     6272              /*256:out  */ -1,
    63266273              /*xcpt?    */ false, false },
    63276274          { { /*src2     */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    63306277              /*mxcsr:in */ X86_MXCSR_FZ,
    63316278              /*128:out  */ X86_MXCSR_FZ,
    6332               /*256:out  */ X86_MXCSR_FZ,
     6279              /*256:out  */ -1,
    63336280              /*xcpt?    */ false, false },
    63346281          { { /*src2     */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } },
     
    63376284              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    63386285              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    6339               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     6286              /*256:out  */ -1,
    63406287              /*xcpt?    */ false, false },
    63416288    /*
     
    63476294              /*mxcsr:in */ 0,
    63486295              /*128:out  */ 0,
    6349               /*256:out  */ X86_MXCSR_PE,
     6296              /*256:out  */ -1,
    63506297              /*xcpt?    */ false, true },
    63516298          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MAX(0) } },
    63526299            { /*src1     */ { FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0) } },
    63536300            { /* =>      */ { FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0)        } },
    6354               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
    6355               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    6356               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     6301              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     6302              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6303              /*256:out  */ -1,
     6304              /*xcpt?    */ false, false },
     6305          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MAX(0) } },
     6306            { /*src1     */ { FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0) } },
     6307            { /* =>      */ { FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0)        } },
     6308              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO,
     6309              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6310              /*256:out  */ -1,
    63576311              /*xcpt?    */ false, false },
    63586312          { { /*src2     */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0) } },
    63596313            { /*src1     */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1) } },
    63606314            { /* =>      */ { FP32_INF(1),      FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1)      } },
    6361               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
    6362               /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    6363               /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     6315              /*mxcsr:in */ 0,
     6316              /*128:out  */ X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6317              /*256:out  */ -1,
     6318              /*xcpt?    */ false, false },
     6319          { { /*src2     */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0) } },
     6320            { /*src1     */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1) } },
     6321            { /* =>      */ { FP32_INF(1),      FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1)      } },
     6322              /*mxcsr:in */ X86_MXCSR_OM,
     6323              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6324              /*256:out  */ -1,
    63646325              /*xcpt?    */ false, false },
    63656326          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63666327            { /*src1     */ { FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63676328            { /* =>      */ { FP32_INF(1),      FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6368               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM,
    6369               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
    6370               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     6329              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     6330              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6331              /*256:out  */ -1,
     6332              /*xcpt?    */ false, false },
     6333          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6334            { /*src1     */ { FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6335            { /* =>      */ { FP32_INF(1),      FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6336              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM,
     6337              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6338              /*256:out  */ -1,
    63716339              /*xcpt?    */ false, false },
    63726340          { { /*src2     */ { FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    63756343              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM,
    63766344              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_PE,
    6377               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     6345              /*256:out  */ -1,
    63786346              /*xcpt?    */ false, false },
    63796347          { { /*src2     */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63806348            { /*src1     */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63816349            { /* =>      */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6382               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6383               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    6384               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
    6385               /*xcpt?    */ false, false },
    6386           { { /*src2     */ { FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6350              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     6351              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
     6352              /*256:out  */ -1,
     6353              /*xcpt?    */ false, false },
     6354          { { /*src2     */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63876355            { /*src1     */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6388             { /* =>      */ { FP32_0(0),       FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6356            { /* =>      */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6357              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO,
     6358              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
     6359              /*256:out  */ -1,
     6360              /*xcpt?    */ false, false },
     6361          { { /*src2     */ { FP32_NORM_MIN(1),                                     FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6362            { /*src1     */ { FP32_NORM_MAX(1),                                     FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6363            { /* =>      */ { FP32_V(1, FP32_FRAC_NORM_MAX - 1, FP32_EXP_NORM_MAX), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63896364              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    63906365              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6391               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6392               /*xcpt?    */ true, true },
    6393           { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6394             { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6395             { /* =>      */ { FP32_0(0),                FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6366              /*256:out  */ -1,
     6367              /*xcpt?    */ true, true },
     6368          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0),                                FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6369            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0),                                FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6370            { /* =>      */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    63966371              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    63976372              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6398               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6399               /*xcpt?    */ true, true },
    6400           { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6401             { /*src1     */ { FP32_NORM_SAFE_INT_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    6402             { /* =>      */ { FP32_0(1),                FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6373              /*256:out  */ -1,
     6374              /*xcpt?    */ true, true },
     6375          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(1),                                FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6376            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(1),                                FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     6377            { /* =>      */ { FP32_V(1, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    64036378              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
    64046379              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
    6405               /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     6380              /*256:out  */ -1,
    64066381              /*xcpt?    */ true, true },
    64076382    /*
    64086383     * Normals.
    64096384     */
    6410     /*21*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     6385    /*25*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    64116386            { /*src1     */ { FP32_V(0, 0,        0x7d)/*0.25*/, FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V0(0), FP32_RAND_V5(1) } },
    64126387            { /* =>      */ { FP32_V(1, 0x400000, 0x7f)/*1.50*/, FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V0(0), FP32_RAND_V5(1) } },
    64136388              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    64146389              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
    6415               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     6390              /*256:out  */ -1,
    64166391              /*xcpt?    */ false, false },
    64176392          { { /*src2     */ { FP32_NORM_MAX(1), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V2(1) } },
     
    64206395              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    64216396              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    6422               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     6397              /*256:out  */ -1,
    64236398              /*xcpt?    */ false, false },
    64246399          { { /*src2     */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    64276402              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    64286403              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6429               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6404              /*256:out  */ -1,
    64306405              /*xcpt?    */ false, false },
    64316406          { { /*src2     */ { FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    64346409              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    64356410              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6436               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     6411              /*256:out  */ -1,
    64376412              /*xcpt?    */ false, false },
    64386413          { { /*src2     */ { FP32_V(0, 0x712060, 0x92)/*  987654*/, FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    64416416              /*mxcsr:in */ 0,
    64426417              /*128:out  */ 0,
    6443               /*256:out  */ 0,
     6418              /*256:out  */ -1,
    64446419              /*xcpt?    */ false, false },
    64456420          { { /*src2     */ { FP32_1(0),                                                FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    64486423              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    64496424              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6450               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6451               /*xcpt?    */ false, false },
    6452           { { /*src2     */ { FP32_1(0),                                                FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
    6453             { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0),                                FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
    6454             { /* =>      */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
    6455               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6456               /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    6457               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     6425              /*256:out  */ -1,
    64586426              /*xcpt?    */ false, false },
    64596427          { { /*src2     */ { FP32_V(1, 0x600000, 0x7e)/*      -0.875*/, FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } },
     
    64626430              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    64636431              /*128:out  */ X86_MXCSR_XCPT_MASK,
    6464               /*256:out  */ X86_MXCSR_XCPT_MASK,
     6432              /*256:out  */ -1,
    64656433              /*xcpt?    */ false, false },
    64666434          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(1) } },
     
    64696437              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    64706438              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
    6471               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     6439              /*256:out  */ -1,
    64726440              /*xcpt?    */ false, false },
    64736441    /*
    64746442     * Denormals.
    64756443     */
    6476     /*27*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
     6444    /*33*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
    64776445            { /*src1     */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
    64786446            { /* =>      */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
    64796447              /*mxcsr:in */ 0,
    6480               /*128:out  */ X86_MXCSR_DE,
    6481               /*256:out  */ X86_MXCSR_DE,
     6448              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
     6449              /*256:out  */ -1,
     6450              /*xcpt?    */ true, true },
     6451#ifdef TODO_X86_MXCSR_UE_IEM /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out *AND* different output values */
     6452 /*--|34*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
     6453            { /*src1     */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
     6454            { /* =>      */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } } /* result on HW (i7-10700) */,
     6455    // IEM: { /* =>      */ { FP32_DENORM_MAX(1), FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } } /* result on IEM */,
     6456              /*mxcsr:in */ X86_MXCSR_DM,
     6457              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     6458              /*256:out  */ -1,
     6459              /*xcpt?    */ true, true },
     6460#endif /* TODO_X86_MXCSR_UE_IEM */
     6461 /*34|35*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V4(0) } },
     6462            { /*src1     */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
     6463            { /* =>      */ { FP32_DENORM_MAX(1), FP32_RAND_V5(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V0(0) } },
     6464              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
     6465              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     6466              /*256:out  */ -1,
    64826467              /*xcpt?    */ true, true },
    64836468          { { /*src2     */ { FP32_0(0),          FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(1) } },
     
    64866471              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
    64876472              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
    6488               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
     6473              /*256:out  */ -1,
    64896474              /*xcpt?    */ false, false },
    64906475          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V7(0) } },
     
    64936478              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    64946479              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    6495               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     6480              /*256:out  */ -1,
    64966481              /*xcpt?    */ false, false },
    64976482    /** @todo More denormals. */
     
    64996484     * Invalids.
    65006485     */
    6501     /*30*/ FP32_TABLE_D1_SS_INVALIDS
     6486 /*37|38*/ FP32_TABLE_D1_SS_INVALIDS
    65026487    /** @todo Underflow; Precision; Rounding; FZ etc. */
    65036488    };
     
    65386523    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    65396524    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    6540     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     6525    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    65416526                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    65426527}
     
    74297414 /*--|24*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
    74307415            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
    7431             { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } }, /* result on HW (i7-10700) */
    7432     // IEM: { /* =>      */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } }, /* result on IEM */
     7416            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } } /* result on HW (i7-10700) */,
     7417    // IEM: { /* =>      */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } } /* result on IEM */,
    74337418              /*mxcsr:in */ X86_MXCSR_DM,
    74347419              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     
    74607445 /*--|28*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_0(0),          FP64_0(0) } },
    74617446            { /*src1     */ { FP64_0(0),          FP64_0(0),          FP64_DENORM_MIN(0), FP64_0(0) } },
    7462             { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0) } }, /* result on HW (i7-10700) */
    7463     // IEM: { /* =>      */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } }, /* result on IEM */
     7447            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0) } } /* result on HW (i7-10700) */,
     7448    // IEM: { /* =>      */ { FP64_0(0),          FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0) } } /* result on IEM */,
    74647449              /*mxcsr:in */ X86_MXCSR_DM,
    74657450              /*128:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
     
    82458230            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    82468231            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    8247               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    8248               /*128:out  */ X86_MXCSR_XCPT_MASK,
    8249               /*256:out  */ X86_MXCSR_XCPT_MASK,
    8250               /*xcpt?    */ false, false },
    8251           { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    8252             { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    8253             { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    82548232              /*mxcsr:in */ 0,
    82558233              /*128:out  */ 0,
    8256               /*256:out  */ 0,
     8234              /*256:out  */ -1,
    82578235              /*xcpt?    */ false, false },
    82588236          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    82618239              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    82628240              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8263               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8241              /*256:out  */ -1,
    82648242              /*xcpt?    */ false, false },
    82658243          { { /*src2     */ { FP32_0(0), FP32_NORM_V7(0), FP32_NORM_V6(0), FP32_0(0),       FP32_0(1),       FP32_NORM_V3(0), FP32_0(0),       FP32_0(0)       } },
     
    82688246              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    82698247              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    8270               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8248              /*256:out  */ -1,
    82718249              /*xcpt?    */ false, false },
    82728250          { { /*src2     */ { FP32_0(1), FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    82758253              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    82768254              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    8277               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8255              /*256:out  */ -1,
    82788256              /*xcpt?    */ false, false },
    82798257          { { /*src2     */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    82828260              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    82838261              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    8284               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     8262              /*256:out  */ -1,
    82858263              /*xcpt?    */ false, false },
    82868264          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    82898267              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    82908268              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    8291               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     8269              /*256:out  */ -1,
    82928270              /*xcpt?    */ false, false },
    82938271          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    82968274              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    82978275              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    8298               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8276              /*256:out  */ -1,
    82998277              /*xcpt?    */ false, false },
    83008278    /*
    83018279     * Infinity.
    83028280     */
    8303     /* 8*/{ { /*src2     */ { FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     8281    /* 7*/{ { /*src2     */ { FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    83048282            { /*src1     */ { FP32_1(1),   FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    83058283            { /* =>      */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    83068284              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    83078285              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    8308               /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     8286              /*256:out  */ -1,
    83098287              /*xcpt?    */ false, false },
    83108288          { { /*src2     */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    83138291              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    83148292              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8315               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8293              /*256:out  */ -1,
    83168294              /*xcpt?    */ false, false },
    83178295          { { /*src2     */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    83208298              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    83218299              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    8322               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8300              /*256:out  */ -1,
    83238301              /*xcpt?    */ false, false },
    83248302          { { /*src2     */ { FP32_INF(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    83278305              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    83288306              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    8329               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     8307              /*256:out  */ -1,
    83308308              /*xcpt?    */ false, false },
    83318309          { { /*src2     */ { FP32_1(0),   FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    83348312              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    83358313              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    8336               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     8314              /*256:out  */ -1,
    83378315              /*xcpt?    */ false, false },
    83388316          { { /*src2     */ { FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1) } },
     
    83418319              /*mxcsr:in */ X86_MXCSR_FZ,
    83428320              /*128:out  */ X86_MXCSR_FZ,
    8343               /*256:out  */ X86_MXCSR_FZ,
     8321              /*256:out  */ -1,
    83448322              /*xcpt?    */ false, false },
    83458323          { { /*src2     */ { FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
     
    83488326              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    83498327              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8350               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8328              /*256:out  */ -1,
    83518329              /*xcpt?    */ false, false },
    83528330    /*
    83538331     * Normals.
    83548332     */
    8355     /*15*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     8333    /*14*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
    83568334            { /*src1     */ { FP32_V(0, 0,        0x7d)/*0.2500*/, FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
    83578335            { /* =>      */ { FP32_V(0, 0x600000, 0x7d)/*0.4375*/, FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
    83588336              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    83598337              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    8360               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8338              /*256:out  */ -1,
    83618339              /*xcpt?    */ false, false },
    83628340          { { /*src2     */ { FP32_V(0, 0x61e000, 0x89)/*   1807*/, FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    83658343              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    83668344              /*128:out  */ X86_MXCSR_XCPT_MASK,
    8367               /*256:out  */ X86_MXCSR_XCPT_MASK,
     8345              /*256:out  */ -1,
    83688346              /*xcpt?    */ false, false },
    83698347          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    83728350              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    83738351              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    8374               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     8352              /*256:out  */ -1,
    83758353              /*xcpt?    */ false, false },
    83768354          { { /*src2     */ { FP32_V(0, 0x61e000, 0x89)/*   1807*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    83798357              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    83808358              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    8381               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     8359              /*256:out  */ -1,
    83828360              /*xcpt?    */ false, false },
    83838361          { { /*src2     */ { FP32_V(0, 0x4a30b8, 0x8f)/* 103521.4375*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    83868364              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    83878365              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    8388               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8366              /*256:out  */ -1,
    83898367              /*xcpt?    */ false, false },
    83908368          { { /*src2     */ { FP32_V(0, 0x1a5200, 0x8c)/*     9876.5*/, FP32_RAND_V6(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V5(1), FP32_RAND_V7(1) } },
     
    83938371              /*mxcsr:in */ 0,
    83948372              /*128:out  */ 0,
    8395               /*256:out  */ 0,
     8373              /*256:out  */ -1,
    83968374              /*xcpt?    */ false, false },
    83978375          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_V1(1), FP32_0(0),       FP32_1(0),       FP32_NORM_MIN(0), FP32_NORM_V1(0), FP32_NORM_V2(0), FP32_0(0)       } },
     
    84008378              /*mxcsr:in */ 0,
    84018379              /*128:out  */ 0,
    8402               /*256:out  */ 0,
     8380              /*256:out  */ -1,
    84038381              /*xcpt?    */ false, false },
    84048382          { { /*src2     */ { FP32_V(0, 0x23b6a0, 0x8e)/*41910.625000*/, FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
     
    84078385              /*mxcsr:in */ 0,
    84088386              /*128:out  */ 0,
    8409               /*256:out  */ 0,
     8387              /*256:out  */ -1,
    84108388              /*xcpt?    */ false, false },
    84118389          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(0), FP32_1(1), FP32_1(1), FP32_1(0),                                                FP32_NORM_SAFE_INT_MAX(0), FP32_1(0), FP32_1(0) } },
     
    84148392              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    84158393              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    8416               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8394              /*256:out  */ -1,
    84178395              /*xcpt?    */ false, false },
    84188396    /** @todo More Normals. */
     
    84208398     * Denormals.
    84218399     */
    8422     /*24*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
     8400    /*23*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
    84238401            { /*src1     */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    8424             { /* =>      */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V5(0) } },
     8402            { /* =>      */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)      } },
    84258403              /*mxcsr:in */ 0,
    84268404              /*128:out  */ X86_MXCSR_DE,
    8427               /*256:out  */ X86_MXCSR_DE,
     8405              /*256:out  */ -1,
    84288406              /*xcpt?    */ true, true },
    84298407          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
    84308408            { /*src1     */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    8431             { /* =>      */ { FP32_0(0),          FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V5(0) } },
     8409            { /* =>      */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)      } },
    84328410              /*mxcsr:in */ 0,
    84338411              /*128:out  */ X86_MXCSR_DE,
    8434               /*256:out  */ X86_MXCSR_DE,
     8412              /*256:out  */ -1,
    84358413              /*xcpt?    */ true, true },
    84368414          { { /*src2     */ { FP32_0(0),          FP32_DENORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_1(0),       FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_1(0)          } },
     
    84398417              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    84408418              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    8441               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     8419              /*256:out  */ -1,
    84428420              /*xcpt?    */ false, false },
    84438421          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_1(0),       FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V0(0),    FP32_DENORM_MAX(0) } },
     
    84468424              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    84478425              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    8448               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8426              /*256:out  */ -1,
    84498427              /*xcpt?    */ false, false },
    84508428    /** @todo More Denormals. */
     
    84528430     * Invalids.
    84538431     */
    8454     /*28*/ FP32_TABLE_D1_SS_INVALIDS
    8455     /** @todo Underflow, Precision; Rounding; FZ etc. */
     8432    /*27*/ FP32_TABLE_D1_SS_INVALIDS
     8433    /** @todo Overflow, Underflow, Precision; Rounding; FZ etc. */
    84568434    };
    84578435
     
    84918469    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    84928470    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    8493     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     8471    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    84948472                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    84958473}
     
    95679545            { /*src1     */ { FP32_0(0),    FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    95689546            { /* =>      */ { FP32_QNAN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9569               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9570               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
    9571               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
    9572               /*xcpt?    */ false, false },
    9573           { { /*src2     */ { FP32_0(0),    FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9574             { /*src1     */ { FP32_0(0),    FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    9575             { /* =>      */ { FP32_QNAN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    95769547              /*mxcsr:in */ 0,
    95779548              /*128:out  */ X86_MXCSR_IE,
    9578               /*256:out  */ X86_MXCSR_IE,
     9549              /*256:out  */ -1,
    95799550              /*xcpt?    */ true, true },
    95809551          { { /*src2     */ { FP32_0(0),    FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    95839554              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    95849555              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9585               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9556              /*256:out  */ -1,
    95869557              /*xcpt?    */ false, false },
    95879558          { { /*src2     */ { FP32_0(0),    FP32_NORM_V7(0), FP32_NORM_V6(0), FP32_0(0),       FP32_0(1),       FP32_NORM_V3(0), FP32_0(0),       FP32_0(0)       } },
     
    95909561              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    95919562              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
    9592               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
     9563              /*256:out  */ -1,
    95939564              /*xcpt?    */ false, false },
    95949565          { { /*src2     */ { FP32_0(1),    FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    95979568              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    95989569              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
    9599               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     9570              /*256:out  */ -1,
    96009571              /*xcpt?    */ true, true },
    96019572          { { /*src2     */ { FP32_0(1),    FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    96049575              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    96059576              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9606               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9577              /*256:out  */ -1,
    96079578              /*xcpt?    */ true, true },
    96089579          { { /*src2     */ { FP32_0(0),    FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    96119582              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    96129583              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_IE,
    9613               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_IE,
     9584              /*256:out  */ -1,
    96149585              /*xcpt?    */ false, false },
    96159586          { { /*src2     */ { FP32_0(0),   FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    96189589              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    96199590              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_FSW_ZE,
    9620               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_FSW_ZE,
     9591              /*256:out  */ -1,
    96219592              /*xcpt?    */ false, false },
    96229593    /*
    96239594     * Infinity.
    96249595     */
    9625     /* 8*/{ { /*src2     */ { FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     9596    /* 7*/{ { /*src2     */ { FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    96269597            { /*src1     */ { FP32_1(1),   FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    96279598            { /* =>      */ { FP32_0(1),   FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    96289599              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    96299600              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    9630               /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     9601              /*256:out  */ -1,
    96319602              /*xcpt?    */ false, false },
    96329603          { { /*src2     */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     
    96359606              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    96369607              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9637               /*256:out  */ X86_MXCSR_XCPT_MASK,
    9638               /*xcpt?    */ false, false },
    9639           { { /*src2     */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    9640             { /*src1     */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    9641             { /* =>      */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     9608              /*256:out  */ -1,
     9609              /*xcpt?    */ false, false },
     9610          { { /*src2     */ { FP32_INF(0),  FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     9611            { /*src1     */ { FP32_INF(0),  FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     9612            { /* =>      */ { FP32_QNAN(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    96429613              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    96439614              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,
    9644               /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,
     9615              /*256:out  */ -1,
    96459616              /*xcpt?    */ true, true },
    96469617          { { /*src2     */ { FP32_INF(1),  FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    96499620              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    96509621              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9651               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9622              /*256:out  */ -1,
    96529623              /*xcpt?    */ false, false },
    96539624          { { /*src2     */ { FP32_1(0),   FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    96569627              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    96579628              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    9658               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     9629              /*256:out  */ -1,
    96599630              /*xcpt?    */ false, false },
    96609631          { { /*src2     */ { FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1) } },
     
    96639634              /*mxcsr:in */ X86_MXCSR_FZ,
    96649635              /*128:out  */ X86_MXCSR_FZ,
    9665               /*256:out  */ X86_MXCSR_FZ,
     9636              /*256:out  */ -1,
    96669637              /*xcpt?    */ false, false },
    96679638          { { /*src2     */ { FP32_INF(1),  FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
     
    96709641              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    96719642              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
    9672               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     9643              /*256:out  */ -1,
    96739644              /*xcpt?    */ true, true },
    96749645    /*
    96759646     * Normals.
    96769647     */
    9677     /*15*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     9648    /*14*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
    96789649            { /*src1     */ { FP32_V(0, 0x600000, 0x7d)/*0.4375*/, FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
    96799650            { /* =>      */ { FP32_V(0, 0,        0x7d)/*0.2500*/, FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
    96809651              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    96819652              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    9682               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     9653              /*256:out  */ -1,
    96839654              /*xcpt?    */ false, false },
    96849655          { { /*src2     */ { FP32_V(0, 0x61e000, 0x89)/*   1807*/, FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    96879658              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    96889659              /*128:out  */ X86_MXCSR_XCPT_MASK,
    9689               /*256:out  */ X86_MXCSR_XCPT_MASK,
     9660              /*256:out  */ -1,
    96909661              /*xcpt?    */ false, false },
    96919662          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     
    96949665              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    96959666              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    9696               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     9667              /*256:out  */ -1,
    96979668              /*xcpt?    */ false, false },
    96989669          { { /*src2     */ { FP32_V(0, 0x61e000, 0x89)/*   1807*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    97019672              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    97029673              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
    9703               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     9674              /*256:out  */ -1,
    97049675              /*xcpt?    */ false, false },
    97059676          { { /*src2     */ { FP32_V(0, 0x4a30b8, 0x8f)/* 103521.4375*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     
    97089679              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    97099680              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    9710               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     9681              /*256:out  */ -1,
    97119682              /*xcpt?    */ false, false },
    97129683          { { /*src2     */ { FP32_V(0, 0x1a5200, 0x8c)/*     9876.5*/, FP32_RAND_V6(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V5(1), FP32_RAND_V7(1) } },
     
    97159686              /*mxcsr:in */ 0,
    97169687              /*128:out  */ 0,
    9717               /*256:out  */ 0,
     9688              /*256:out  */ -1,
    97189689              /*xcpt?    */ false, false },
    97199690          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_V1(1), FP32_0(0),       FP32_1(0),       FP32_NORM_MIN(0), FP32_NORM_V1(0), FP32_NORM_V2(0), FP32_0(0)       } },
     
    97229693              /*mxcsr:in */ 0,
    97239694              /*128:out  */ 0,
    9724               /*256:out  */ 0,
     9695              /*256:out  */ -1,
    97259696              /*xcpt?    */ false, false },
    97269697          { { /*src2     */ { FP32_V(0, 0x23b6a0, 0x8e)/*41910.625000*/, FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
     
    97299700              /*mxcsr:in */ 0,
    97309701              /*128:out  */ 0,
    9731               /*256:out  */ 0,
     9702              /*256:out  */ -1,
    97329703              /*xcpt?    */ false, false },
    97339704          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_SAFE_INT_MAX(0), FP32_1(1), FP32_1(1), FP32_1(0),                                                FP32_NORM_SAFE_INT_MAX(0), FP32_1(0), FP32_1(0) } },
     
    97369707              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    97379708              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    9738               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     9709              /*256:out  */ -1,
    97399710              /*xcpt?    */ false, false },
    97409711    /** @todo More Normals. */
     
    97429713     * Denormals.
    97439714     */
    9744     /*24*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
     9715    /*23*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
    97459716            { /*src1     */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    97469717            { /* =>      */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    97479718              /*mxcsr:in */ 0,
    97489719              /*128:out  */ X86_MXCSR_DE,
    9749               /*256:out  */ X86_MXCSR_DE,
     9720              /*256:out  */ -1,
    97509721              /*xcpt?    */ true, true },
    97519722          { { /*src2     */ { FP32_0(0),          FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
     
    97549725              /*mxcsr:in */ 0,
    97559726              /*128:out  */ X86_MXCSR_ZE,
    9756               /*256:out  */ X86_MXCSR_ZE,
    9757               /*xcpt?    */ true, true },
    9758           { { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
    9759             { /*src1     */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    9760             { /* =>      */ { FP32_0(0),          FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    9761               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9762               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    9763               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
    9764               /*xcpt?    */ false, false },
    9765           { { /*src2     */ { FP32_0(0),          FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_1(1),       FP32_RAND_V0(1), FP32_RAND_V5(1) } },
    9766             { /*src1     */ { FP32_DENORM_MAX(0), FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    9767             { /* =>      */ { FP32_INF(0),        FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(0),       FP32_RAND_V3(1), FP32_1(1),       FP32_1(1)       } },
    9768               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    9769               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    9770               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    9771               /*xcpt?    */ false, false },
     9727              /*256:out  */ -1,
     9728              /*xcpt?    */ true, true },
    97729729          { { /*src2     */ { FP32_0(0),          FP32_DENORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_1(0),       FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_1(0)          } },
    97739730            { /*src1     */ { FP32_DENORM_MIN(1), FP32_1(0),          FP32_1(0),       FP32_1(0),       FP32_RAND_V2(0), FP32_1(0),          FP32_1(0),          FP32_DENORM_MAX(0) } },
     
    97759732              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    97769733              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
    9777               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_ZE,
     9734              /*256:out  */ -1,
    97789735              /*xcpt?    */ false, false },
    97799736          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_1(0),       FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V0(0),    FP32_DENORM_MAX(0) } },
     
    97829739              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    97839740              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
    9784               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     9741              /*256:out  */ -1,
    97859742              /*xcpt?    */ false, false },
    97869743    /** @todo More Denormals. */
     
    97889745     * Invalids.
    97899746     */
    9790     /*30*/ FP32_TABLE_D1_SS_INVALIDS
    9791     /** @todo Underflow; Precision; Rounding, FZ etc. */
     9747    /*27*/ FP32_TABLE_D1_SS_INVALIDS
     9748    /** @todo Overflow; Underflow; Precision; Rounding, FZ etc. */
    97929749    };
    97939750
     
    98299786    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
    98309787    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
    9831     return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     9788    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    98329789                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    98339790}
Note: See TracChangeset for help on using the changeset viewer.

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