VirtualBox

Changeset 105458 in vbox for trunk


Ignore:
Timestamp:
Jul 24, 2024 8:24:49 AM (6 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: Allow setting all MXCSR bits (other than MXCSR.MM bit) prior to testing the instruction and explicitly specifying FP-exception for 128-bit and 256-bit variants.

File:
1 edited

Legend:

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

    r105442 r105458  
    31233123
    31243124
    3125 #if 0
    31263125/*
    31273126 * [V]SUBPS.
     
    31373136            { /*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) } },
    31383137            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3139               /*mask     */ X86_MXCSR_XCPT_MASK,
    3140               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3141               /*flags    */ 0, 0 },
     3138              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3139              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3140              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3141              /*xcpt?    */ false, false },
    31423142          { { /*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) } },
    31433143            { /*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) } },
    31443144            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3145               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3146               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3147               /*flags    */ 0, 0 },
     3145              /*mxcsr:in */ 0,
     3146              /*128:out  */ 0,
     3147              /*256:out  */ 0,
     3148              /*xcpt?    */ false, false },
    31483149          { { /*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) } },
    31493150            { /*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) } },
    31503151            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3151               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3152               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
    3153               /*flags    */ 0, 0 },
     3152              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3153              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3154              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3155              /*xcpt?    */ false, false },
    31543156          { { /*src2     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    31553157            { /*src1     */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1) } },
    31563158            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3157               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3158               /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_ZERO,
    3159               /*flags    */ 0, 0 },
     3159              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3160              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3161              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3162              /*xcpt?    */ false, false },
    31603163          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    31613164            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1) } },
    3162             { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3163               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3164               /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3165               /*flags    */ 0, 0 },
     3165            { /* =>      */ { FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
     3166              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     3167              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     3168              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     3169              /*xcpt?    */ false, false },
    31663170          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    31673171            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1) } },
    3168             { /* =>      */ { FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1), FP32_0(1) } },
    3169               /*mask     */ X86_MXCSR_XCPT_MASK,
    3170               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    3171               /*flags    */ 0, 0 },
     3172            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     3173              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_XCPT_FLAGS,
     3174              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_XCPT_FLAGS,
     3175              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_XCPT_FLAGS,
     3176              /*xcpt?    */ false, false },
    31723177    /*
    31733178     * Infinity.
     
    31763181            { /*src1     */ { FP32_INF(1),  FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0) } },
    31773182            { /* =>      */ { FP32_INF(1),  FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0) } },
    3178               /*mask     */ ~X86_MXCSR_IM,
    3179               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3180               /*flags    */ 0, 0 },
     3183              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     3184              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     3185              /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     3186              /*xcpt?    */ false, false },
    31813187          { { /*src2     */ { FP32_INF(0),  FP32_0(0), FP32_0(0), FP32_INF(1),  FP32_INF(1), FP32_0(0), FP32_0(0), FP32_INF(1)  } },
    31823188            { /*src1     */ { FP32_INF(0),  FP32_0(0), FP32_0(0), FP32_INF(1),  FP32_INF(0), FP32_0(0), FP32_0(0), FP32_INF(1)  } },
    31833189            { /* =>      */ { FP32_QNAN(1), FP32_0(0), FP32_0(0), FP32_QNAN(1), FP32_INF(0), FP32_0(0), FP32_0(0), FP32_QNAN(1) } },
    3184               /*mask     */ X86_MXCSR_XCPT_MASK,
    3185               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3186               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3190              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3191              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3192              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3193              /*xcpt?    */ false, false },
    31873194          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0),  FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1)  } },
    31883195            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0),  FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1)  } },
    31893196            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_QNAN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_QNAN(1) } },
    3190               /*mask     */ X86_MXCSR_XCPT_MASK,
    3191               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3192               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3197              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3198              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3199              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3200              /*xcpt?    */ false, false },
    31933201          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1),  FP32_0(1), FP32_0(1), FP32_0(0) } },
    31943202            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1),  FP32_0(1), FP32_0(1), FP32_0(0) } },
    31953203            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_QNAN(1), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3196               /*mask     */ X86_MXCSR_XCPT_MASK,
    3197               /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST,
    3198               /*flags    */ 0, X86_MXCSR_IE },
     3204              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     3205              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     3206              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     3207              /*xcpt?    */ false, false },
    31993208          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0)  } },
    32003209            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(0)  } },
    32013210            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_QNAN(1) } },
    3202               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3203               /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST,
    3204               /*flags    */ 0, X86_MXCSR_IE },
     3211              /*mxcsr:in */ X86_MXCSR_FZ,
     3212              /*128:out  */ X86_MXCSR_FZ,
     3213              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_IE,
     3214              /*xcpt?    */ false, true },
    32053215          { { /*src2     */ { FP32_INF(1), FP32_INF(0),  FP32_0(0), FP32_INF(0),  FP32_0(0), FP32_INF(1),  FP32_INF(1),  FP32_INF(0) } },
    32063216            { /*src1     */ { FP32_INF(0), FP32_INF(0),  FP32_0(1), FP32_INF(0),  FP32_0(0), FP32_INF(0),  FP32_INF(0),  FP32_INF(1) } },
    32073217            { /* =>      */ { FP32_INF(0), FP32_QNAN(1), FP32_0(0), FP32_QNAN(1), FP32_0(0), FP32_QNAN(1), FP32_QNAN(1), FP32_INF(1) } },
    3208               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3209               /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3210               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3218              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     3219              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3220              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3221              /*xcpt?    */ true, true },
    32113222    /*
    32123223     * Overflow, Precision.
     
    32143225    /*12*/{ { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(0) } },
    32153226            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(0) } },
    3216             { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),        FP32_0(0), FP32_0(0),        FP32_0(0)       } },
    3217               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3218               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3219               /*flags    */ 0, X86_MXCSR_PE },
     3227            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),        FP32_0(0), FP32_0(0),        FP32_0(0)        } },
     3228              /*mxcsr:in */ 0,
     3229              /*128:out  */ 0,
     3230              /*256:out  */ X86_MXCSR_PE,
     3231              /*xcpt?    */ false, true },
    32203232          { { /*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) } },
    32213233            { /*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) } },
    3222             { /* =>      */ { 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)       } },
    3223               /*mask     */ X86_MXCSR_OM | X86_MXCSR_PM,
    3224               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO,
    3225               /*flags    */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE },
     3234            { /* =>      */ { FP32_INF(1),      FP32_INF(1),      FP32_0(0), FP32_0(0), FP32_INF(1),      FP32_INF(0),      FP32_0(0), FP32_0(0)        } },
     3235              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM,
     3236              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3237              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3238              /*xcpt?    */ false, false },
    32263239          { { /*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) } },
    32273240            { /*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) } },
    3228             { /* =>      */ { FP32_INF(1),      FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1)        } },
    3229               /*mask     */ X86_MXCSR_OM | X86_MXCSR_PM,
    3230               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST,
    3231               /*flags    */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE },
     3241            { /* =>      */ { FP32_INF(1),      FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1)      } },
     3242              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM,
     3243              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3244              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3245              /*xcpt?    */ false, false },
    32323246          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MAX(0), FP32_0(0), FP32_V(1, 0, 2),  FP32_NORM_MIN(1), FP32_NORM_MAX(0) } },
    32333247            { /*src1     */ { FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MAX(0) } },
    3234             { /* =>      */ { FP32_INF(1),      FP32_NORM_MAX(0), FP32_0(0), FP32_INF(1),      FP32_0(0), FP32_NORM_MIN(0), FP32_0(0),        FP32_0(0)        } },
    3235               /*mask     */ X86_MXCSR_OM | X86_MXCSR_PM,
    3236               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST,
    3237               /*flags    */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE },
     3248            { /* =>      */ { FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MIN(0), FP32_0(0),        FP32_0(0)        } },
     3249              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM,
     3250              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3251              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3252              /*xcpt?    */ false, false },
    32383253          { { /*src2     */ { FP32_V(1, 0, 2),  FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_V(1, 0, 2)  } },
    32393254            { /*src1     */ { FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_0(1), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MIN(1) } },
    32403255            { /* =>      */ { FP32_NORM_MIN(0), FP32_0(0),        FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MIN(0) } },
    3241               /*mask     */ X86_MXCSR_OM | X86_MXCSR_PM,
    3242               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3243               /*flags    */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE },
     3256              /*mxcsr:in */ X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM,
     3257              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3258              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE,
     3259              /*xcpt?    */ false, false },
    32443260          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_NORM_MIN(0), FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_NORM_MIN(0) } },
    32453261            { /*src1     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_NORM_MIN(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MIN(0) } },
    32463262            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(1), FP32_0(0),        FP32_NORM_MAX(1), FP32_0(0),        FP32_0(0)        } },
    3247               /*mask     */ X86_MXCSR_XCPT_MASK,
    3248               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO,
    3249               /*flags    */ 0, X86_MXCSR_OE | X86_MXCSR_PE },
     3263              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     3264              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     3265              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     3266              /*xcpt?    */ false, false },
    32503267          { { /*src2     */ { FP32_NORM_MIN(0), FP32_NORM_MIN(1),  FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(0) } },
    32513268            { /*src1     */ { FP32_NORM_MIN(0), FP32_NORM_MAX(1),  FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MIN(1), FP32_NORM_MIN(0) } },
    32523269            { /* =>      */ { FP32_0(0),        FP32_0(0),         FP32_0(0),        FP32_0(0),        FP32_0(0),        FP32_0(0),        FP32_0(0),        FP32_0(0)        } },
    3253               /*mask     */ ~(X86_MXCSR_OM | X86_MXCSR_PM),
    3254               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO,
    3255               /*flags    */ X86_MXCSR_PE, X86_MXCSR_PE },
     3270              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     3271              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     3272              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE,
     3273              /*xcpt?    */ true, true },
    32563274          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1) } },
    32573275            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1), FP32_NORM_SAFE_INT_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_SAFE_INT_MAX(1) } },
    32583276            { /* =>      */ { FP32_0(0),                 FP32_0(0),        FP32_0(0), FP32_0(0),                 FP32_0(0),                 FP32_0(0),        FP32_0(0), FP32_0(0)                 } },
    3259               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3260               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO,
    3261               /*flags    */ X86_MXCSR_OE |  X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE },
     3277              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     3278              /*128:out  */ X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     3279              /*256:out  */ X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     3280              /*xcpt?    */ true, true },
    32623281    /*
    32633282     * Normals.
     
    32663285            { /*src1     */ { FP32_V(0, 0x600000, 0x7f)/*1.75*/, FP32_0(0),        FP32_0(0), FP32_0(0), FP32_V(1, 0x400000, 0x7e)/*-0.75*/, FP32_0(0), FP32_0(1), FP32_V(0, 0,        0x7e)/* 0.50*/ } },
    32673286            { /* =>      */ { FP32_V(0, 0x400000, 0x7f)/*1.50*/, FP32_NORM_MAX(1), FP32_0(1), FP32_0(1), FP32_V(1, 0,        0x7d)/*-0.25*/, FP32_0(1), FP32_0(1), FP32_V(1, 0,        0x7d)/*-0.25*/ } },
    3268               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3269               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    3270               /*flags    */ 0, 0 },
     3287              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3288              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3289              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3290              /*xcpt?    */ false, false },
    32713291          { { /*src2     */ { FP32_NORM_MAX(1), FP32_NORM_V1(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_V1(0), FP32_0(0), FP32_0(0) } },
    32723292            { /*src1     */ { FP32_NORM_MAX(1), FP32_NORM_V1(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_V1(0), FP32_0(0), FP32_0(0) } },
    32733293            { /* =>      */ { FP32_0(0),        FP32_0(0),       FP32_0(0), FP32_0(0), FP32_0(0),        FP32_0(0),       FP32_0(0), FP32_0(0) } },
    3274               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3275               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3276               /*flags    */ 0, 0 },
     3294              /*mxcsr:in */ 0,
     3295              /*128:out  */ 0,
     3296              /*256:out  */ 0,
     3297              /*xcpt?    */ false, false },
    32773298          { { /*src2     */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x600000, 0x81)/* 7*/, FP32_V(0, 0x7c9000, 0x88)/*   1010.25*/, FP32_0(0), FP32_V(0, 0x5c0000, 0x84)/* 55*/, FP32_V(0, 0x2514d6, 0x93)/* 1352346.75*/, FP32_V(0, 0x534000, 0x86)/*211.25*/, FP32_0(0) } },
    32783299            { /*src1     */ { FP32_V(0, 0x669050, 0x93)/*1888778*/, FP32_V(0, 0x780000, 0x84)/*62*/, FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_0(0), FP32_V(1, 0x600000, 0x81)/* -7*/, FP32_V(1, 0x7c9000, 0x88)/*   -1010.25*/, FP32_1(0)                /*  1.00*/, FP32_0(0) } },
    32793300            { /* =>      */ { FP32_V(0, 0x1ea980, 0x8f)/*  81235*/, FP32_V(0, 0x5c0000, 0x84)/*55*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_0(0), FP32_V(1, 0x780000, 0x84)/*-62*/, FP32_V(1, 0x253468, 0x93)/*-1353357.00*/, FP32_V(1, 0x524000, 0x86)/*210.25*/, FP32_0(0) } },
    3280               /*mask     */ X86_MXCSR_XCPT_MASK,
    3281               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3282               /*flags    */ 0, 0 },
     3301              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO | X86_MXCSR_FZ,
     3302              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO | X86_MXCSR_FZ,
     3303              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_ZERO | X86_MXCSR_FZ,
     3304              /*xcpt?    */ false, false },
    32833305          { { /*src2     */ { FP32_V(0, 0x6cb99c, 0x97)/*31028024*/, FP32_V(1, 0x3c614e, 0x96)/*-12345678*/, FP32_0(0), FP32_0(0), FP32_V(0, 0x712060, 0x92)/*  987654*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_0(0), FP32_0(0) } },
    32843306            { /*src1     */ { FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_V(0, 0x3c614e, 0x96)/* 12345678*/, FP32_0(0), FP32_1(0), FP32_V(0, 0x74429f, 0x97)/*32015678*/, FP32_V(0, 0x3c614e, 0x97)/*24691356*/, FP32_1(0), FP32_1(0) } },
    3285             { /* =>      */ { FP32_V(0, 0x712060, 0x92)/*  987654*/, FP32_V(0, 0x3c614e, 0x97)/* 24691356*/, FP32_0(0), FP32_1(0), FP32_V(0, 0x6cb99c, 0x97)/*31028024*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_1(0), FP32_1(0) } },
    3286               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3287               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3288               /*flags    */ 0, 0 },
     3307            { /* =>      */ { FP32_V(0, 0x712060, 0x92)/*  987654*/, FP32_V(0, 0x3c614e, 0x97)/* 24691356*/, FP32_0(1), FP32_1(0), FP32_V(0, 0x6cb99c, 0x97)/*31028024*/, FP32_V(0, 0x3c614e, 0x96)/*12345678*/, FP32_1(0), FP32_1(0) } },
     3308              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     3309              /*128:out  */ X86_MXCSR_RC_DOWN,
     3310              /*256:out  */ X86_MXCSR_RC_DOWN,
     3311              /*xcpt?    */ false, false },
    32893312          { { /*src2     */ { FP32_1(0),                                                FP32_1(1),                                                FP32_1(0), FP32_1(1), FP32_1(1),                                                FP32_NORM_SAFE_INT_MAX(0),                                FP32_0(1), FP32_0(0) } },
    32903313            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0),                                FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_1(0), FP32_1(1), FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_1(0),                                                FP32_0(1), FP32_0(0) } },
    32913314            { /* =>      */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_NORM_SAFE_INT_MAX(0),                                FP32_0(0), FP32_0(0), FP32_NORM_SAFE_INT_MAX(0),                                FP32_V(1, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_0(0), FP32_0(0) } },
    3292               /*mask     */ X86_MXCSR_XCPT_MASK,
    3293               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3294               /*flags    */ 0, 0 },
     3315              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     3316              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     3317              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     3318              /*xcpt?    */ false, false },
    32953319          { { /*src2     */ { FP32_1(0),                                                FP32_1(0),                               FP32_0(1), FP32_1(1), FP32_0(1), FP32_1(1), FP32_1(1),                               FP32_NORM_SAFE_INT_MAX(0)               } },
    32963320            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0),                                FP32_NORM_SAFE_INT_MAX(1),               FP32_0(1), FP32_0(0), FP32_0(1), FP32_0(1), FP32_NORM_SAFE_INT_MAX(0),               FP32_V(0, 0, FP32_EXP_SAFE_INT_MAX + 1) } },
    32973321            { /* =>      */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_V(1, 0, FP32_EXP_SAFE_INT_MAX + 1), FP32_0(0), FP32_1(0), FP32_0(0), FP32_1(0), FP32_V(0, 0, FP32_EXP_SAFE_INT_MAX + 1), FP32_1(0)                               } },
    3298               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3299               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3300               /*flags    */ 0, 0 },
     3322              /*mxcsr:in */ X86_MXCSR_RC_UP,
     3323              /*128:out  */ X86_MXCSR_RC_UP,
     3324              /*256:out  */ X86_MXCSR_RC_UP,
     3325              /*xcpt?    */ false, false },
    33013326          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_0(0),                 FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(0), FP32_0(1),                 FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1) } },
    33023327            { /*src1     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_0(0),                 FP32_V(0, 0, 2),           FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_0(0),                 FP32_NORM_SAFE_INT_MIN(1) } },
    33033328            { /* =>      */ { FP32_0(0),                 FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_0(0),                 FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_0(0)                 } },
    3304               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3305               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3306               /*flags    */ 0, 0 },
     3329              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3330              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3331              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3332              /*xcpt?    */ false, false },
    33073333          { { /*src2     */ { FP32_V(0, 0x600000, 0x7e)/*      0.875*/, FP32_V(0, 0x3ce348, 0x90)/*193421.125*/, FP32_V(1, 0x0a19f0, 0x8f)/*-70707.875*/, FP32_NORM_SAFE_INT_MIN(1), FP32_NORM_SAFE_INT_MIN(0), FP32_V(0, 0x00c6d3, 0x94)/*2109876.75*/, FP32_V(0, 0x316740, 0x8e)/* 45415.25*/, FP32_V(0, 0x600000, 0x7e)/*       0.875*/ } },
    33083334            { /*src1     */ { FP32_V(0, 0x769b5e, 0x92)/*1010101.875*/, FP32_V(0, 0x10c030, 0x92)/*592899.000*/, FP32_V(0, 0x52e0b4, 0x92)/*863755.250*/, FP32_NORM_SAFE_INT_MIN(0), FP32_NORM_SAFE_INT_MIN(1), FP32_V(0, 0x4c20f0, 0x94)/*3344444.00*/, FP32_V(0, 0x792318, 0x91)/*510232.75*/, FP32_V(1, 0x769b50, 0x92)/*-1010101.000*/ } },
    33093335            { /* =>      */ { FP32_V(0, 0x769b50, 0x92)/*1010101.000*/, FP32_V(0, 0x430ebc, 0x91)/*399477.875*/, FP32_V(0, 0x6423f2, 0x92)/*934463.125*/, FP32_V(0, 0, 2),           FP32_V(1, 0, 2),           FP32_V(0, 0x16b43a, 0x93)/*1234567.25*/, FP32_V(0, 0x62f630, 0x91)/*464817.50*/, FP32_V(1, 0x769b5e, 0x92)/*-1010101.875*/ } },
    3310               /*mask     */ X86_MXCSR_XCPT_MASK,
    3311               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    3312               /*flags    */ 0, 0 },
     3336              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3337              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3338              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3339              /*xcpt?    */ false, false },
    33133340    /*
    33143341     * Denormals.
     
    33173344            { /*src1     */ { FP32_0(0),          FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },
    33183345            { /* =>      */ { FP32_0(0),          FP32_DENORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },
    3319               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3320               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3321               /*flags    */ X86_MXCSR_DE, X86_MXCSR_DE },
     3346              /*mxcsr:in */ 0,
     3347              /*128:out  */ X86_MXCSR_DE,
     3348              /*256:out  */ X86_MXCSR_DE,
     3349              /*xcpt?    */ true, true },
    33223350          { { /*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) } },
    33233351            { /*src1     */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } },
    3324             { /* =>      */ { FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0) } },
    3325               /*mask     */ X86_MXCSR_XCPT_MASK,
    3326               /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_NEAREST,
    3327               /*flags    */ 0, 0 },
     3352            { /* =>      */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0) } },
     3353              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3354              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     3355              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     3356              /*xcpt?    */ false, false },
    33283357          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0) } },
    33293358            { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0) } },
    33303359            { /* =>      */ { FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0)          } },
    3331               /*mask     */ X86_MXCSR_XCPT_MASK,
    3332               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
    3333               /*flags    */ 0, 0 },
     3360              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     3361              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     3362              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     3363              /*xcpt?    */ false, false },
    33343364          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    33353365            { /*src1     */ { FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    33363366            { /* =>      */ { FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0) } },
    3337               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3338               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3339               /*flags    */ X86_MXCSR_DE, X86_MXCSR_DE },
     3367              /*mxcsr:in */ 0,
     3368              /*128:out  */ X86_MXCSR_DE,
     3369              /*256:out  */ X86_MXCSR_DE,
     3370              /*xcpt?    */ true, true },
    33403371          { { /*src2     */ { FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_DENORM_MAX(1) } },
    33413372            { /*src1     */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0)          } },
    3342             { /* =>      */ { FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0),          FP32_0(0), FP32_0(0), FP32_0(0)          } },
    3343               /*mask     */ X86_MXCSR_XCPT_MASK,
    3344               /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_NEAREST,
    3345               /*flags    */ 0, 0 },
     3373            { /* =>      */ { FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0), FP32_0(0), FP32_0(0), FP32_DENORM_MAX(0) } },
     3374              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3375              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     3376              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     3377              /*xcpt?    */ false, false },
    33463378          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0) } },
    33473379            { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(0) } },
    33483380            { /* =>      */ { FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0),          FP32_0(0)          } },
    3349               /*mask     */ X86_MXCSR_XCPT_MASK,
    3350               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
    3351               /*flags    */ 0, 0 },
     3381              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
     3382              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
     3383              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_XCPT_MASK,
     3384              /*xcpt?    */ false, false },
    33523385          /** @todo More denormals; Underflow, Precision; Rounding, FZ etc. */
    33533386    /*
     
    33573390            { /*src1     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },
    33583391            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },
    3359               /*mask     */ X86_MXCSR_XCPT_MASK,
    3360               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3361               /*flags    */ 0, 0 },
     3392              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3393              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3394              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3395              /*xcpt?    */ false, false },
    33623396          { { /*src2     */ { FP32_QNAN(0),      FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0),       FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } },
    33633397            { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V4) } },
    33643398            { /* =>      */ { FP32_QNAN_V(0, 1), FP32_QNAN_V(0, 1),                  FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },
    3365               /*mask     */ X86_MXCSR_XCPT_MASK,
    3366               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3367               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3399              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3400              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3401              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3402              /*xcpt?    */ false, false },
    33683403          { { /*src2     */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V6) } },
    33693404            { /*src1     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } },
    33703405            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } },
    3371               /*mask     */ X86_MXCSR_XCPT_MASK,
    3372               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3373               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3406              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     3407              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     3408              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE,
     3409              /*xcpt?    */ false, false },
    33743410          { { /*src2     */ { FP32_SNAN(0),      FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V7), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V1) } },
    33753411            { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2) } },
    33763412            { /* =>      */ { FP32_QNAN_V(0, 1), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2) } },
    3377               /*mask     */ X86_MXCSR_XCPT_MASK,
    3378               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3379               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3413              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3414              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3415              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3416              /*xcpt?    */ false, false },
    33803417          { { /*src2     */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1),              FP32_QNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0),              FP32_QNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0),              FP32_QNAN_V(1, FP32_FRAC_V5) } },
    33813418            { /*src1     */ { FP32_1(0),    FP32_1(1),                          FP32_QNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1),              FP32_QNAN_V(0, FP32_FRAC_V2), FP32_NORM_V4(0),              FP32_QNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1)              } },
    33823419            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_QNAN_V(1, FP32_FRAC_V5) } },
    3383               /*mask     */ X86_MXCSR_XCPT_MASK,
    3384               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3385               /*flags    */ 0, 0 },
     3420              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3421              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3422              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3423              /*xcpt?    */ false, false },
    33863424          { { /*src2     */ { FP32_SNAN(1),      FP32_SNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1),              FP32_SNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0),              FP32_SNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0),              FP32_SNAN_V(1, FP32_FRAC_V5) } },
    33873425            { /*src1     */ { FP32_1(0),         FP32_1(0),                          FP32_SNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1),              FP32_SNAN_V(1, FP32_FRAC_V2), FP32_NORM_V4(0),              FP32_SNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1)              } },
    33883426            { /* =>      */ { FP32_QNAN_V(1, 1), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(1, FP32_FRAC_V2), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_QNAN_V(1, FP32_FRAC_V5) } },
    3389               /*mask     */ X86_MXCSR_XCPT_MASK,
    3390               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3391               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3427              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3428              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3429              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3430              /*xcpt?    */ false, false },
    33923431          { { /*src2     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0),       FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } },
    33933432            { /*src1     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },
    33943433            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MIN), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },
    3395               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3396               /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    3397               /*flags    */ 0, 0 },
     3434              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3435              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3436              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3437              /*xcpt?    */ false, false },
    33983438          { { /*src2     */ { FP32_QNAN(0),      FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V0),       FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V5) } },
    33993439            { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V4) } },
    34003440            { /* =>      */ { FP32_QNAN_V(0, 1), FP32_QNAN_V(0, 1),                  FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V4) } },
    3401               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3402               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3403               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3441              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3442              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3443              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3444              /*xcpt?    */ true, true },
    34043445          { { /*src2     */ { FP32_SNAN(0), FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V6) } },
    34053446            { /*src1     */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } },
    34063447            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V6), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(0, FP32_FRAC_V1) } },
    3407               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3408               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3409               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3448              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3449              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3450              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3451              /*xcpt?    */ true, true },
    34103452          { { /*src2     */ { FP32_SNAN(0),      FP32_SNAN_V(0, FP32_FRAC_NORM_MIN), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2), FP32_SNAN_V(0, FP32_FRAC_V7), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V6), FP32_SNAN_V(0, FP32_FRAC_V1) } },
    34113453            { /*src1     */ { FP32_SNAN(0),      FP32_SNAN_V(0, FP32_FRAC_NORM_MAX), FP32_SNAN_V(0, FP32_FRAC_V4), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V5), FP32_SNAN_V(0, FP32_FRAC_V3), FP32_SNAN_V(0, FP32_FRAC_V1), FP32_SNAN_V(0, FP32_FRAC_V2) } },
    34123454            { /* =>      */ { FP32_QNAN_V(0, 1), FP32_QNAN_V(0, FP32_FRAC_NORM_MAX), FP32_QNAN_V(0, FP32_FRAC_V4), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V5), FP32_QNAN_V(0, FP32_FRAC_V3), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2) } },
    3413               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3414               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_UP,
    3415               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3455              /*mxcsr:in */ X86_MXCSR_RC_UP,
     3456              /*128:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,
     3457              /*256:out  */ X86_MXCSR_RC_UP | X86_MXCSR_IE,
     3458              /*xcpt?    */ true, true },
    34163459          { { /*src2     */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1),              FP32_QNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0),              FP32_QNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0),              FP32_QNAN_V(1, FP32_FRAC_V5) } },
    34173460            { /*src1     */ { FP32_1(0),    FP32_1(1),                          FP32_QNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1),              FP32_QNAN_V(0, FP32_FRAC_V2), FP32_NORM_V4(0),              FP32_QNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1)              } },
    34183461            { /* =>      */ { FP32_QNAN(0), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(0, FP32_FRAC_V2), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_QNAN_V(1, FP32_FRAC_V5) } },
    3419               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3420               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_DOWN,
    3421               /*flags    */ 0, 0 },
     3462              /*mxcsr:in */ X86_MXCSR_RC_DOWN,
     3463              /*128:out  */ X86_MXCSR_RC_DOWN,
     3464              /*256:out  */ X86_MXCSR_RC_DOWN,
     3465              /*xcpt?    */ false, false },
    34223466          { { /*src2     */ { FP32_SNAN(1),      FP32_SNAN_V(1, FP32_FRAC_NORM_MAX), FP32_NORM_V0(1),              FP32_SNAN_V(0, FP32_FRAC_V1), FP32_NORM_V3(0),              FP32_SNAN_V(1, FP32_FRAC_V3), FP32_NORM_V5(0),              FP32_SNAN_V(1, FP32_FRAC_V5) } },
    34233467            { /*src1     */ { FP32_1(0),         FP32_1(0),                          FP32_SNAN_V(1, FP32_FRAC_V0), FP32_NORM_V2(1),              FP32_SNAN_V(1, FP32_FRAC_V2), FP32_NORM_V4(0),              FP32_SNAN_V(1, FP32_FRAC_V4), FP32_NORM_V6(1)              } },
    34243468            { /* =>      */ { FP32_QNAN_V(1, 1), FP32_QNAN_V(1, FP32_FRAC_NORM_MAX), FP32_QNAN_V(1, FP32_FRAC_V0), FP32_QNAN_V(0, FP32_FRAC_V1), FP32_QNAN_V(1, FP32_FRAC_V2), FP32_QNAN_V(1, FP32_FRAC_V3), FP32_QNAN_V(1, FP32_FRAC_V4), FP32_QNAN_V(1, FP32_FRAC_V5) } },
    3425               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3426               /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_ZERO,
    3427               /*flags    */ X86_MXCSR_IE, X86_MXCSR_IE },
     3469              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3470              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3471              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     3472              /*xcpt?    */ true, true },
    34283473    };
    34293474
     
    34753520
    34763521
     3522#if 0
    34773523/*
    34783524 * [V]SUBPD.
     
    51605206        { "[v]addss",       bs3CpuInstr4_v_addss,  0 },
    51615207        { "[v]haddps",      bs3CpuInstr4_v_haddps, 0 },
     5208        { "[v]subps",       bs3CpuInstr4_v_subps,  0 },
    51625209# if 0
    5163         { "[v]subps",       bs3CpuInstr4_v_subps,  0 },
    51645210        { "[v]subpd",       bs3CpuInstr4_v_subpd,  0 },
    51655211        { "[v]subss",       bs3CpuInstr4_v_subss,  0 },
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