Index: trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
===================================================================
--- trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32	(revision 106188)
+++ trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32	(revision 106189)
@@ -5807,7 +5807,7 @@
               /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
               /*xcpt?    */ false, true },
-          { { /*src2     */ { FP64_INF(1), FP64_INF(0), FP64_INF(1), FP64_INF(0) } },
-            { /*src1     */ { FP64_INF(0), FP64_INF(0), FP64_INF(0), FP64_INF(1) } },
-            { /* =>      */ { FP64_INF(0), FP64_INF(0),   FP64_0(1),   FP64_0(1)   } },
+          { { /*src2     */ { FP64_INF(1), FP64_INF(0),  FP64_INF(1), FP64_INF(0) } },
+            { /*src1     */ { FP64_INF(0), FP64_INF(0),  FP64_INF(0), FP64_INF(1) } },
+            { /* =>      */ { FP64_INF(0), FP64_QNAN(1), FP64_INF(0), FP64_INF(1) } },
               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
@@ -5819,5 +5819,5 @@
     /*12*/{ { /*src2     */ { FP64_NORM_MIN(1), FP64_0(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
             { /*src1     */ { FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
-            { /* =>      */ { FP64_0(0),        FP64_0(0), FP64_0(0),        FP64_0(0)        } },
+            { /* =>      */ { FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
               /*mxcsr:in */ 0,
               /*128:out  */ X86_MXCSR_PE,
@@ -5826,5 +5826,5 @@
           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
-            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0),        FP64_0(0)        } },
+            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
               /*mxcsr:in */ 0,
               /*128:out  */ 0,
@@ -5835,6 +5835,13 @@
             { /* =>      */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_0(0)        } },
               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
-              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
+              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
+              /*xcpt?    */ false, false },
+          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1) } },
+            { /*src1     */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_NORM_MAX(1) } },
+            { /* =>      */ { FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0), FP64_0(0)        } },
+              /*mxcsr:in */ X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
+              /*128:out  */ X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
+              /*256:out  */ X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | BS3_MXCSR_OM_FIXED,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_MAX(0), FP64_0(0), FP64_0(0), FP64_NORM_MAX(0) } },
@@ -5842,6 +5849,6 @@
             { /* =>      */ { FP64_INF(1),      FP64_0(0), FP64_0(0), FP64_INF(1)      } },
               /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ,
-              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
+              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP64_NORM_MIN(1) } },
@@ -5856,6 +5863,6 @@
             { /* =>      */ { FP64_NORM_MIN(0),                     FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MIN(0) } },
               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM,
-              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
+              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MIN(0), FP64_NORM_MAX(0) } },
@@ -5864,16 +5871,16 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*xcpt?    */ false, false },
-          { { /*src2     */ { FP64_NORM_MIN(0), FP64_NORM_MIN(0), FP64_NORM_MIN(1), FP64_NORM_MIN(0) } },
-            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
-            { /* =>      */ { FP64_0(0),        FP64_0(0),        FP64_0(0),        FP64_0(0)        } },
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
+              /*xcpt?    */ false, false },
+          { { /*src2     */ { FP64_NORM_MIN(0),                FP64_NORM_MIN(0),                FP64_NORM_MIN(1),                FP64_NORM_MIN(0)                } },
+            { /*src1     */ { FP64_NORM_MAX(0),                FP64_NORM_MAX(0),                FP64_NORM_MAX(1),                FP64_NORM_MAX(0)                } },
+            { /* =>      */ { FP64_V(0,0xffffffffffffe,0x7fe), FP64_V(0,0xffffffffffffe,0x7fe), FP64_V(1,0xffffffffffffe,0x7fe), FP64_V(0,0xffffffffffffe,0x7fe) } },
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
               /*256:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
               /*xcpt?    */ true, true },
-          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0), FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
-            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0), FP64_NORM_MAX(1), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
-            { /* =>      */ { FP64_0(0),                 FP64_0(0),        FP64_0(0),                 FP64_0(0)                 } },
+          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),       FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
+            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),       FP64_NORM_MAX(1), FP64_NORM_SAFE_INT_MAX(1), FP64_NORM_SAFE_INT_MAX(1) } },
+            { /* =>      */ { FP64_V(0,0xffffffffffffe,0x433), FP64_NORM_MAX(1), FP64_0(0),                 FP64_0(0)                 } },
               /*mxcsr:in */ X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
@@ -5883,5 +5890,5 @@
      * Normals.
      */
-    /*21*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_V1(1), FP64_NORM_MAX(1), FP64_NORM_V1(0) } },
+    /*22*/{ { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_V1(1), FP64_NORM_MAX(1), FP64_NORM_V1(0) } },
             { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_V1(1), FP64_NORM_MAX(1), FP64_NORM_V1(0) } },
             { /* =>      */ { FP64_0(0),        FP64_0(0),       FP64_0(0),        FP64_0(0)       } },
@@ -5935,12 +5942,39 @@
      * Denormals.
      */
-    /*28*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
+    /*29*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
             { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
             { /* =>      */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
               /*mxcsr:in */ 0,
-              /*128:out  */ X86_MXCSR_DE,
-              /*256:out  */ X86_MXCSR_DE,
+              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
+              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED,
               /*xcpt?    */ true, true },
-          { { /*src2     */ { FP64_0(0), FP64_0(0),          FP64_0(0), FP64_0(0) } },
+#ifdef TODO_X86_MXCSR_UE_HW /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 128:out or 256:out */
+          /* this is what works on HW (i7-10700) (same as below, plus 256:out:_UE) */
+ /*--|30*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
+            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
+            { /* =>      */ { FP64_DENORM_MAX(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
+              /*mxcsr:in */ X86_MXCSR_DM,
+              /*128:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
+              /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
+              /*xcpt?    */ true, true },
+#endif /* TODO_X86_MXCSR_UE_HW */
+#ifdef TODO_X86_MXCSR_UE_IEM
+          /* for comparison, this is what works on IEM (same as above, minus 256:out:_UE) */
+ /*--|30*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
+            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
+            { /* =>      */ { FP64_DENORM_MAX(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
+              /*mxcsr:in */ X86_MXCSR_DM,
+              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
+              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
+              /*xcpt?    */ true, true },
+#endif /* TODO_X86_MXCSR_UE_IEM */
+ /*30|31*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0), FP64_0(0) } },
+            { /*src1     */ { FP64_0(0),          FP64_0(0), FP64_0(0), FP64_0(0) } },
+            { /* =>      */ { FP64_DENORM_MAX(1), FP64_0(0), FP64_0(0), FP64_0(0) } },
+              /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
+              /*128:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
+              /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_DM_FIXED | BS3_MXCSR_UM_FIXED,
+              /*xcpt?    */ true, true },
+ /*31|32*/{ { /*src2     */ { FP64_0(0), FP64_0(0),          FP64_0(0), FP64_0(0) } },
             { /*src1     */ { FP64_0(0), FP64_DENORM_MAX(0), FP64_0(0), FP64_0(0) } },
             { /* =>      */ { FP64_0(0), FP64_0(0),          FP64_0(0), FP64_0(0) } },
@@ -5949,5 +5983,5 @@
               /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_XCPT_MASK,
               /*xcpt?    */ false, false },
-          { { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
+ /*32|33*/{ { /*src2     */ { FP64_DENORM_MIN(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0) } },
             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0), FP64_DENORM_MIN(0) } },
             { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(0),          FP64_0(0)          } },
@@ -5960,5 +5994,5 @@
      * Invalids.
      */
-    /*31*/ FP64_TABLE_D1_PD_INVALIDS
+ /*33|34*/ FP64_TABLE_D1_PD_INVALIDS
     /** @todo Underflow; Precision; Rounding; FZ etc. */
     };
@@ -6010,5 +6044,5 @@
     static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
-    return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
+    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
                                         g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
 }
@@ -7783,12 +7817,12 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
-            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_INF(1),        FP64_INF(0)        } },
+            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(1),          FP64_0(0),         } },
               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
-              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
-              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
+              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ true, true },
           { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
@@ -7796,6 +7830,6 @@
             { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(1),          FP64_0(0)          } },
               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
-              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
-              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
+              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE | X86_MXCSR_PE | X86_MXCSR_UE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ true, true },
     /*
@@ -7807,5 +7841,5 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
               /*128:out  */ X86_MXCSR_XCPT_MASK,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_V3(1), FP64_1(0) } },
@@ -7813,24 +7847,21 @@
             { /* =>      */ { FP64_NORM_MAX(0), FP64_INF(0),      FP64_NORM_V3(1), FP64_1(0) } },
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
-              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*xcpt?    */ false, false },
-#ifdef TODO_X86_MXCSR_PE
+              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_V3(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_1(0)       } },
             { /*src1     */ { FP64_1(0),       FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_V1(0) } },
             { /* =>      */ { FP64_NORM_V3(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_V1(0) } },
               /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
-              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ true, true },
-#endif
           { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MIN(1),                                       FP64_NORM_MAX(0) } },
             { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MAX(1),                                       FP64_NORM_MAX(0) } },
             { /* =>      */ { FP64_INF(0),      FP64_0(0),        FP64_V(0, FP64_FRAC_NORM_MAX, RTFLOAT64U_EXP_BIAS + 1), FP64_INF(0)      } },
               /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM,
-              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE,
-              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE,
-              /*xcpt?    */ false, false },
-#ifdef TODO_X86_MXCSR_PE
+              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_V3(0), FP64_1(1),       FP64_NORM_MAX(1), FP64_NORM_MIN(0)                                       } },
             { /*src1     */ { FP64_1(0),       FP64_NORM_V2(1), FP64_NORM_MAX(1), FP64_NORM_MAX(1)                                       } },
@@ -7838,13 +7869,12 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO,
-              /*256:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ false, true },
-#endif
           { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                         FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1),                FP64_NORM_SAFE_INT_MIN(0)            } },
             { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),                         FP64_NORM_MAX(1), FP64_NORM_SAFE_INT_MAX(1),                FP64_NORM_SAFE_INT_MAX(0)            } },
             { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX, FP64_FRAC_BITS + 1), FP64_NORM_MAX(1), FP64_V(0, FP64_FRAC_NORM_MAX - 1, 0x468), FP64_V(0, FP64_FRAC_NORM_MAX, 0x035) } },
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
-              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                         FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1),                FP64_NORM_SAFE_INT_MIN(0)            } },
@@ -7852,5 +7882,5 @@
             { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX, FP64_FRAC_BITS + 1), FP64_INF(1),      FP64_V(0, FP64_FRAC_NORM_MAX - 1, 0x468), FP64_V(0, FP64_FRAC_NORM_MAX, 0x035) } },
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
-              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
               /*xcpt?    */ false, false },
@@ -7908,5 +7938,5 @@
     static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
-    return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
+    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
                                         g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
 }
@@ -9018,26 +9048,42 @@
           { { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
-            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
+            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_0(0),          FP64_0(0)          } },
              /*mxcsr:in */ X86_MXCSR_FZ,
              /*128:out  */ X86_MXCSR_FZ,
-             /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE,
+             /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
              /*xcpt?    */ false, true },
-          { { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
+#ifdef TODO_X86_MXCSR_UE /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 256:out */
+ /*--|21*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
             { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
-             /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM | 0,
-             /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM | 0,
-             /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE,
+             /*mxcsr:in */ 0,
+             /*128:out  */ 0,
+             /*256:out  */ X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
+             /*xcpt?    */ false, false },
+#endif /* TODO_X86_MXCSR_UE */
+ /*21|22*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
+            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
+            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
+             /*mxcsr:in */ X86_MXCSR_UM,
+             /*128:out  */ X86_MXCSR_UM,
+             /*256:out  */ X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
              /*xcpt?    */ false, false },
 #ifdef TODO_X86_MXCSR_UE /** @todo THIS FAILS ON IEM: X86_MXCSR_UE not set in 256:out */
- /*--|22*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
+ /*--|23*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
             { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
             { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
-             /*mxcsr:in */ X86_MXCSR_DM | 0,
-             /*128:out  */ X86_MXCSR_DM | 0,
-             /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE,
+             /*mxcsr:in */ X86_MXCSR_DM,
+             /*128:out  */ X86_MXCSR_DM,
+             /*256:out  */ X86_MXCSR_DM | X86_MXCSR_DE | X86_MXCSR_UE | BS3_MXCSR_UM_FIXED,
              /*xcpt?    */ false, true },
 #endif /* TODO_X86_MXCSR_UE */
- /*22|23*/{ { /*src2     */ { FP64_1(0),          FP64_1(0),          FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
+ /*22|24*/{ { /*src2     */ { FP64_1(0), FP64_1(1), FP64_1(0),          FP64_1(0)          } },
+            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
+            { /* =>      */ { FP64_0(0), FP64_0(1), FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
+             /*mxcsr:in */ X86_MXCSR_DM | X86_MXCSR_UM,
+             /*128:out  */ X86_MXCSR_DM | X86_MXCSR_UM,
+             /*256:out  */ X86_MXCSR_DM | X86_MXCSR_UM | X86_MXCSR_DE | BS3_MXCSR_UM_FIXED,
+             /*xcpt?    */ false, true },
+          { { /*src2     */ { FP64_1(0),          FP64_1(0),          FP64_DENORM_MIN(0), FP64_DENORM_MAX(0) } },
             { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_0(0),          FP64_1(1)          } },
             { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_QNAN(1),       FP64_INF(1)        } },
@@ -9065,9 +9111,9 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
               /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_DE | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
             { /*src1     */ { FP64_0(0),          FP64_0(0),          FP64_INF(1),        FP64_INF(0)        } },
-            { /* =>      */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
+            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_INF(1),        FP64_INF(1)        } },
               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
@@ -9076,5 +9122,5 @@
           { { /*src2     */ { FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(0), FP64_DENORM_MAX(1) } },
             { /*src1     */ { FP64_0(0),          FP64_0(0),          FP64_0(1),          FP64_0(0)          } },
-            { /* =>      */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(0), FP64_DENORM_MAX(1), FP64_DENORM_MIN(1) } },
+            { /* =>      */ { FP64_0(0),          FP64_0(0),          FP64_0(1),          FP64_0(1)          } },
               /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_DE,
@@ -9084,5 +9130,5 @@
      * Overflow, Precision.
      */
- /*28|29*/{ { /*src2     */ { FP64_NORM_V3(1), FP64_1(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
+ /*29|31*/{ { /*src2     */ { FP64_NORM_V3(1), FP64_1(0), FP64_NORM_MAX(0), FP64_NORM_MAX(0) } },
             { /*src1     */ { FP64_NORM_V3(1), FP64_1(0), FP64_NORM_MAX(0), FP64_INF(0)      } },
             { /* =>      */ { FP64_1(0),       FP64_1(0), FP64_1(0),        FP64_INF(0)      } },
@@ -9096,5 +9142,5 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
               /*128:out  */ X86_MXCSR_XCPT_MASK,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_V3(1), FP64_NORM_MAX(1) } },
@@ -9103,12 +9149,19 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
               /*128:out  */ X86_MXCSR_XCPT_MASK,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_UE | X86_MXCSR_PE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_UE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* IEM */,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_V3(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_V(1, 0, 0x3fe)/*-0.5*/ } },
             { /*src1     */ { FP64_NORM_V3(1), FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1)            } },
             { /* =>      */ { FP64_1(1),       FP64_1(0),        FP64_1(1),        FP64_NORM_MAX(0)            } },
-              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
-              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
-              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
+              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
+              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
+              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED,
+              /*xcpt?    */ false, false },
+          { { /*src2     */ { FP64_NORM_V3(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_V(1, 0, 0x3fe)/*-0.5*/ } },
+            { /*src1     */ { FP64_NORM_V3(1), FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1)            } },
+            { /* =>      */ { FP64_1(1),       FP64_1(0),        FP64_1(1),        FP64_NORM_MAX(0)            } },
+              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
+              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
+              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_OM_FIXED | BS3_MXCSR_PE_FUZZY,
               /*xcpt?    */ false, false },
           { { /*src2     */ { FP64_NORM_V3(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_V(1, 0, 0x3fe)/*-0.5*/ } },
@@ -9117,12 +9170,12 @@
               /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
               /*128:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
-              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE,
+              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
               /*xcpt?    */ false, true },
           { { /*src2     */ { FP64_NORM_V3(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_V(1, 0, 0x3fe)/*-0.5*/ } },
             { /*src1     */ { FP64_NORM_V3(1), FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_MAX(1)            } },
-            { /* =>      */ { FP64_1(1),       FP64_1(0),        FP64_1(1),        FP64_NORM_MAX(0)            } },
+            { /* =>      */ { FP64_1(1),       FP64_1(0),        FP64_1(1),        FP64_INF(0)                 } },
               /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ,
               /*128:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ,
-              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_OE,
+              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM)) | X86_MXCSR_DAZ | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
               /*xcpt?    */ false, true },
           { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1), FP64_NORM_MIN(1),                                       FP64_NORM_MAX(0) } },
@@ -9138,5 +9191,5 @@
               /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO,
               /*128:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO,
-              /*256:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_OE,
+              /*256:out  */ X86_MXCSR_XCPT_MASK & ~(X86_MXCSR_OM | X86_MXCSR_PM) | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE | BS3_MXCSR_PE_FUZZY /* i7-10700, IEM */,
               /*xcpt?    */ false, true },
           { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                         FP64_NORM_MAX(0), FP64_NORM_SAFE_INT_MAX(1),                                FP64_NORM_SAFE_INT_MIN(0)            } },
@@ -9157,5 +9210,5 @@
      * Invalids.
      */
- /*38|39*/ FP64_TABLE_D1_PD_INVALIDS
+ /*40|42*/ FP64_TABLE_D1_PD_INVALIDS
     /** @todo Underflow, Precision; Rounding; FZ etc. */
     };
@@ -9207,5 +9260,5 @@
     static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
-    return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
+    return bs3CpuInstr4_WorkerTestType1A(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
                                         g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
 }
