VirtualBox

Changeset 105604 in vbox for trunk/src/VBox/ValidationKit


Ignore:
Timestamp:
Aug 6, 2024 12:45:27 PM (9 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164283
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: [v]mulss (W.I.P) -- 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

    r105599 r105604  
    49184918            { /*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) } },
    49194919            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    4920              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    4921              /*128:out  */ X86_MXCSR_XCPT_MASK,
    4922              /*256:out  */ X86_MXCSR_XCPT_MASK,
    4923              /*xcpt?    */ false, false },
     4920              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     4921              /*128:out  */ X86_MXCSR_XCPT_MASK,
     4922              /*256:out  */ X86_MXCSR_XCPT_MASK,
     4923              /*xcpt?    */ false, false },
    49244924          { { /*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) } },
    49254925            { /*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) } },
    49264926            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    4927              /*mxcsr:in */ 0,
    4928              /*128:out  */ 0,
    4929              /*256:out  */ 0,
    4930              /*xcpt?    */ false, false },
     4927              /*mxcsr:in */ 0,
     4928              /*128:out  */ 0,
     4929              /*256:out  */ 0,
     4930              /*xcpt?    */ false, false },
    49314931          { { /*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) } },
    49324932            { /*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) } },
    49334933            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    4934              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    4935              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    4936              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    4937              /*xcpt?    */ false, false },
     4934              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     4935              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     4936              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     4937              /*xcpt?    */ false, false },
    49384938          { { /*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)       } },
    49394939            { /*src1     */ { FP32_0(0), FP32_0(1),       FP32_0(1),       FP32_NORM_V2(0), FP32_NORM_V3(1), FP32_0(0),       FP32_NORM_V6(0), FP32_NORM_V2(0) } },
    49404940            { /* =>      */ { FP32_0(0), FP32_0(1),       FP32_0(1),       FP32_NORM_V2(0), FP32_NORM_V3(0), FP32_0(0),       FP32_NORM_V6(0), FP32_NORM_V2(0) } },
    4941              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4942              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4943              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4944              /*xcpt?    */ false, false },
     4941              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4942              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4943              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4944              /*xcpt?    */ false, false },
    49454945          { { /*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) } },
    49464946            { /*src1     */ { FP32_0(1), FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    49474947            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    4948              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4949              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4950              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
    4951              /*xcpt?    */ false, false },
     4948              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4949              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4950              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     4951              /*xcpt?    */ false, false },
    49524952          { { /*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) } },
    49534953            { /*src1     */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    49544954            { /* =>      */ { FP32_0(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    4955              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    4956              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    4957              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    4958              /*xcpt?    */ false, false },
     4955              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     4956              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     4957              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     4958              /*xcpt?    */ false, false },
    49594959          { { /*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) } },
    49604960            { /*src1     */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } },
    49614961            { /* =>      */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } },
    4962              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    4963              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    4964              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
    4965              /*xcpt?    */ false, false },
     4962              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     4963              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     4964              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     4965              /*xcpt?    */ false, false },
    49664966          { { /*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) } },
    49674967            { /*src1     */ { FP32_1(0), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } },
    49684968            { /* =>      */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } },
    4969              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4970              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4971              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
    4972              /*xcpt?    */ false, false },
     4969              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4970              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4971              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     4972              /*xcpt?    */ false, false },
    49734973    /*
    49744974     * Infinity.
     
    49774977            { /*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) } },
    49784978            { /* =>      */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    4979              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    4980              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    4981              /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
    4982              /*xcpt?    */ false, false },
     4979              /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     4980              /*128:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     4981              /*256:out  */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM,
     4982              /*xcpt?    */ false, false },
    49834983          { { /*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) } },
    49844984            { /*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) } },
    49854985            { /* =>      */ { FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    4986              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
    4987              /*128:out  */ X86_MXCSR_XCPT_MASK,
    4988              /*256:out  */ X86_MXCSR_XCPT_MASK,
    4989              /*xcpt?    */ false, false },
     4986              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     4987              /*128:out  */ X86_MXCSR_XCPT_MASK,
     4988              /*256:out  */ X86_MXCSR_XCPT_MASK,
     4989              /*xcpt?    */ false, false },
    49904990          { { /*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) } },
    49914991            { /*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) } },
    49924992            { /* =>      */ { 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) } },
    4993              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    4994              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    4995              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
    4996              /*xcpt?    */ false, false },
     4993              /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     4994              /*128:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     4995              /*256:out  */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     4996              /*xcpt?    */ false, false },
    49974997          { { /*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) } },
    49984998            { /*src1     */ { 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) } },
    49994999            { /* =>      */ { 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) } },
    5000              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    5001              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    5002              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    5003              /*xcpt?    */ false, false },
     5000              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     5001              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     5002              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     5003              /*xcpt?    */ false, false },
    50045004          { { /*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) } },
    50055005            { /*src1     */ { FP32_INF(0), 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) } },
    50065006            { /* =>      */ { FP32_INF(0), 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) } },
    5007              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    5008              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    5009              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
    5010              /*xcpt?    */ false, false },
     5007              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     5008              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     5009              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     5010              /*xcpt?    */ false, false },
    50115011          { { /*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) } },
    50125012            { /*src1     */ { FP32_1(1),   FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } },
    50135013            { /* =>      */ { FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1) } },
    5014              /*mxcsr:in */ X86_MXCSR_FZ,
    5015              /*128:out  */ X86_MXCSR_FZ,
    5016              /*256:out  */ X86_MXCSR_FZ,
    5017              /*xcpt?    */ false, false },
     5014              /*mxcsr:in */ X86_MXCSR_FZ,
     5015              /*128:out  */ X86_MXCSR_FZ,
     5016              /*256:out  */ X86_MXCSR_FZ,
     5017              /*xcpt?    */ false, false },
    50185018          { { /*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) } },
    50195019            { /*src1     */ { FP32_INF(0), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
    50205020            { /* =>      */ { FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
    5021              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    5022              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    5023              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
    5024              /*xcpt?    */ false, false },
    5025 #if 0
     5021              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5022              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5023              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5024              /*xcpt?    */ false, false },
    50265025    /*
    50275026     * Normals.
     
    50305029            { /*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) } },
    50315030            { /* =>      */ { 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) } },
    5032               /*mask     */ X86_MXCSR_XCPT_MASK,
    5033               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    5034               /*flags    */ 0, 0 },
     5031              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5032              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5033              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5034              /*xcpt?    */ false, false },
    50355035          { { /*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) } },
    50365036            { /*src1     */ { FP32_V(0, 0x504000, 0x8a)/*   3332*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    50375037            { /* =>      */ { FP32_V(0, 0x37be78, 0x95)/*6020924*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    5038               /*mask     */ X86_MXCSR_XCPT_MASK,
    5039               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    5040               /*flags    */ 0, 0 },
     5038              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5039              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5040              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5041              /*xcpt?    */ false, false },
    50415042          { { /*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) } },
    50425043            { /*src1     */ { FP32_1(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) } },
    50435044            { /* =>      */ { FP32_NORM_SAFE_INT_MAX(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) } },
    5044               /*mask     */ X86_MXCSR_XCPT_MASK,
    5045               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    5046               /*flags    */ 0, 0 },
     5045              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5046              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5047              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5048              /*xcpt?    */ false, false },
    50475049          { { /*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) } },
    50485050            { /*src1     */ { FP32_V(0, 0x504000, 0x8a)/*   3332*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    50495051            { /* =>      */ { FP32_V(0, 0x37be78, 0x95)/*6020924*/, FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    5050               /*mask     */ X86_MXCSR_XCPT_MASK,
    5051               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_UP,
    5052               /*flags    */ 0, 0 },
     5052              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     5053              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     5054              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     5055              /*xcpt?    */ false, false },
    50535056          { { /*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) } },
    50545057            { /*src1     */ { FP32_V(0, 0x600000, 0x82)/*     14.0000*/, FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
    50555058            { /* =>      */ { FP32_V(0, 0x30eaa1, 0x93)/*1449300.1250*/, FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
    5056               /*mask     */ X86_MXCSR_XCPT_MASK,
    5057               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
    5058               /*flags    */ 0, 0 },
     5059              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     5060              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     5061              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     5062              /*xcpt?    */ false, false },
    50595063          { { /*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) } },
    50605064            { /*src1     */ { FP32_V(1, 0x1a4000, 0x89)/*    -1234.0*/, FP32_RAND_V6(0), FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V6(0), FP32_RAND_V1(1) } },
    50615065            { /* =>      */ { FP32_V(1, 0x39f7d1, 0x96)/*-12187601.0*/, FP32_RAND_V6(0), FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V1(1) } },
    5062               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    5063               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    5064               /*flags    */ 0, 0 },
     5066              /*mxcsr:in */ 0,
     5067              /*128:out  */ 0,
     5068              /*256:out  */ 0,
     5069              /*xcpt?    */ false, false },
    50655070          { { /*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)       } },
    50665071            { /*src1     */ { FP32_1(1),        FP32_1(0),       FP32_NORM_V1(1), FP32_NORM_V3(0), FP32_1(0),        FP32_1(0),       FP32_1(0),       FP32_NORM_V3(0) } },
    50675072            { /* =>      */ { FP32_NORM_MAX(1), FP32_1(0),       FP32_NORM_V1(1), FP32_NORM_V3(0), FP32_1(0),        FP32_1(0),       FP32_1(0),       FP32_NORM_V3(0) } },
    5068               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    5069               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    5070               /*flags    */ 0, 0 },
     5073              /*mxcsr:in */ 0,
     5074              /*128:out  */ 0,
     5075              /*256:out  */ 0,
     5076              /*xcpt?    */ false, false },
    50715077          { { /*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) } },
    50725078            { /*src1     */ { FP32_V(0, 0,        0x7c)/*    0.125000*/, FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
    50735079            { /* =>      */ { FP32_V(0, 0x23b6a0, 0x8b)/* 5238.828125*/, FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } },
    5074               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    5075               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    5076               /*flags    */ 0, 0 },
     5080              /*mxcsr:in */ 0,
     5081              /*128:out  */ 0,
     5082              /*256:out  */ 0,
     5083              /*xcpt?    */ false, false },
    50775084          { { /*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) } },
    50785085            { /*src1     */ { FP32_1(0),                 FP32_1(1),                 FP32_1(0), FP32_1(0), FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_1(1),                 FP32_1(0), FP32_1(0) } },
    50795086            { /* =>      */ { FP32_NORM_SAFE_INT_MAX(0), FP32_1(1),                 FP32_1(0), FP32_1(0), FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_SAFE_INT_MAX), FP32_1(1),                 FP32_1(0), FP32_1(0) } },
    5080               /*mask     */ X86_MXCSR_XCPT_MASK,
    5081               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    5082               /*flags    */ 0, 0 },
     5087              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5088              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5089              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5090              /*xcpt?    */ false, false },
    50835091    /** @todo More Normals. */
    50845092    /*
     
    50885096            { /*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),      } },
    50895097            { /* =>      */ { 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) } },
    5090               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    5091               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    5092               /*flags    */ X86_MXCSR_DE, X86_MXCSR_DE },
     5098              /*mxcsr:in */ 0,
     5099              /*128:out  */ X86_MXCSR_DE,
     5100              /*256:out  */ X86_MXCSR_DE,
     5101              /*xcpt?    */ true, true },
    50935102          { { /*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) } },
    50945103            { /*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),      } },
    50955104            { /* =>      */ { 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) } },
    5096               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    5097               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    5098               /*flags    */ X86_MXCSR_DE, X86_MXCSR_DE },
     5105              /*mxcsr:in */ 0,
     5106              /*128:out  */ X86_MXCSR_DE,
     5107              /*256:out  */ X86_MXCSR_DE,
     5108              /*xcpt?    */ true, true },
    50995109          { { /*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)          } },
    51005110            { /*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) } },
    51015111            { /* =>      */ { FP32_0(1),          FP32_1(0),          FP32_1(0),       FP32_1(0),       FP32_RAND_V2(0), FP32_1(0),          FP32_1(0),          FP32_DENORM_MAX(0) } },
    5102               /*mask     */ X86_MXCSR_XCPT_MASK,
    5103               /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_NEAREST,
    5104               /*flags    */ 0, 0 },
     5112              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5113              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     5114              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     5115              /*xcpt?    */ false, false },
    51055116          { { /*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) } },
    51065117            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V4(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_1(0),       FP32_1(0),       FP32_DENORM_MIN(0), FP32_RAND_V4(0)    } },
    51075118            { /* =>      */ { FP32_0(0),          FP32_RAND_V4(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_1(0),       FP32_1(0),       FP32_DENORM_MIN(0), FP32_RAND_V4(0)    } },
    5108               /*mask     */ X86_MXCSR_XCPT_MASK,
    5109               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
    5110               /*flags    */ 0, 0 },
     5119              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     5120              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     5121              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     5122              /*xcpt?    */ false, false },
    51115123    /** @todo More Denormals. */
     5124#if 0
    51125125    /*
    51135126     * Invalids.
Note: See TracChangeset for help on using the changeset viewer.

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