VirtualBox

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


Ignore:
Timestamp:
Aug 15, 2024 12:54:11 PM (6 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: [v]subsd.

File:
1 edited

Legend:

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

    r105684 r105691  
    53805380              /*xcpt?    */ false, false },
    53815381          /** @todo More Denormals. */
    5382     /** @todo Invalids, Underflow, Precision; Rounding, FZ etc. */
     5382    /*
     5383     * Invalids.
     5384     */
     5385    /* QNan, QNan (Masked). */
     5386    /*32*/{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5387            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5388            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5389              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5390              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5391              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5392              /*xcpt?    */ false, false },
     5393          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_INF(0)  } },
     5394            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_SNAN(1) } },
     5395            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_SNAN(1) } },
     5396              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5397              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5398              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5399              /*xcpt?    */ false, false },
     5400          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_INF(1)  } },
     5401            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN(0) } },
     5402            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN(0) } },
     5403              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5404              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5405              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5406              /*xcpt?    */ false, false },
     5407    /* QNan, SNan (Masked). */
     5408          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },
     5409            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V2) } },
     5410            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V2) } },
     5411              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5412              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5413              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5414              /*xcpt?    */ false, false },
     5415          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5416            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(1, FP64_FRAC_NORM_MIN), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5417            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_SNAN_V(1, FP64_FRAC_NORM_MIN), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5418              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5419              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5420              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5421              /*xcpt?    */ false, false },
     5422          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_INF(0)  } },
     5423            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN(1) } },
     5424            { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN(1) } },
     5425              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5426              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5427              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5428              /*xcpt?    */ false, false },
     5429    /* SNan, QNan (Masked). */
     5430          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V1) } },
     5431            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(1, FP64_FRAC_V2) } },
     5432            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(1, FP64_FRAC_V2) } },
     5433              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5434              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5435              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5436              /*xcpt?    */ false, false },
     5437          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },
     5438            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5439            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5440              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5441              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5442              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5443              /*xcpt?    */ false, false },
     5444          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },
     5445            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },
     5446            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(1, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },
     5447              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5448              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5449              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5450              /*xcpt?    */ false, false },
     5451    /* SNan, SNan (Masked). */
     5452          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5453            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },
     5454            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },
     5455              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5456              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5457              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5458              /*xcpt?    */ false, false },
     5459          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5460            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3) } },
     5461            { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3) } },
     5462              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5463              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5464              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5465              /*xcpt?    */ false, false },
     5466          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5467            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },
     5468            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V3) } },
     5469              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5470              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5471              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5472              /*xcpt?    */ false, false },
     5473    /* QNan, Norm FP (Masked). */
     5474          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5475            { /*src1     */ { FP64_1(0),    FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5476            { /* =>      */ { FP64_QNAN(0), FP64_1(1),                          FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5477              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5478              /*128:out  */ X86_MXCSR_XCPT_MASK,
     5479              /*256:out  */ X86_MXCSR_XCPT_MASK,
     5480              /*xcpt?    */ false, false },
     5481    /* SNan, Norm FP (Masked). */
     5482          { { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },
     5483            { /*src1     */ { FP64_1(0),         FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5484            { /* =>      */ { FP64_QNAN_V(1, 1), FP64_1(0),                          FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5485              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     5486              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5487              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     5488              /*xcpt?    */ false, false },
     5489    /* QNan, QNan (Unmasked). */
     5490    /*46*/{ { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5491            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5492            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5493              /*mxcsr:in */ 0,
     5494              /*128:out  */ 0,
     5495              /*256:out  */ 0,
     5496              /*xcpt?    */ false, false },
     5497          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },
     5498            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5499            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5500              /*mxcsr:in */ 0,
     5501              /*128:out  */ 0,
     5502              /*256:out  */ 0,
     5503              /*xcpt?    */ false, false },
     5504          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },
     5505            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(1, FP64_FRAC_V0) } },
     5506            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V0), FP64_QNAN_V(1, FP64_FRAC_V0) } },
     5507              /*mxcsr:in */ 0,
     5508              /*128:out  */ 0,
     5509              /*256:out  */ 0,
     5510              /*xcpt?    */ false, false },
     5511
     5512    /* QNan, SNan (Unmasked). */
     5513          { { /*src2     */ { FP64_QNAN(0),      FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_V3) } },
     5514            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5515            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5516              /*mxcsr:in */ 0,
     5517              /*128:out  */ X86_MXCSR_IE,
     5518              /*256:out  */ X86_MXCSR_IE,
     5519              /*xcpt?    */ true, true },
     5520          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5521            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5522            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5523              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5524              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
     5525              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_IE,
     5526              /*xcpt?    */ true, true },
     5527          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_V1), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5528            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5529            { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5530              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5531              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5532              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5533              /*xcpt?    */ false, false },
     5534    /* SNan, QNan (Unmasked). */
     5535          { { /*src2     */ { FP64_SNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V1) } },
     5536            { /*src1     */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5537            { /* =>      */ { FP64_QNAN(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_V2) } },
     5538              /*mxcsr:in */ X86_MXCSR_DAZ,
     5539              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,
     5540              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_IE,
     5541              /*xcpt?    */ true, true },
     5542          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V1) } },
     5543            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V0) } },
     5544            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V0) } },
     5545              /*mxcsr:in */ X86_MXCSR_RC_UP,
     5546              /*128:out  */ X86_MXCSR_RC_UP,
     5547              /*256:out  */ X86_MXCSR_RC_UP,
     5548              /*xcpt?    */ false, false },
     5549          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP64_FRAC_V1) } },
     5550            { /*src1     */ { FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },
     5551            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V3), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(1, FP64_FRAC_V2), FP64_QNAN_V(1, FP64_FRAC_V3) } },
     5552              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5553              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5554              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     5555              /*xcpt?    */ false, false },
     5556    /* SNan, SNan (Unmasked). */
     5557    /*55*/{ { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5558            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V0) } },
     5559            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V0) } },
     5560              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     5561              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,
     5562              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_IE,
     5563              /*xcpt?    */ true, true },
     5564          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(1, FP32_FRAC_V2) } },
     5565            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP32_FRAC_V3) } },
     5566            { /* =>      */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_V0), FP64_SNAN_V(1, FP64_FRAC_V2), FP64_SNAN_V(1, FP32_FRAC_V3) } },
     5567              /*mxcsr:in */ X86_MXCSR_RC_ZERO,
     5568              /*128:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     5569              /*256:out  */ X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     5570              /*xcpt?    */ true, true },
     5571          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_V1), FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V0), FP64_SNAN_V(0, FP64_FRAC_V2) } },
     5572            { /*src1     */ { FP64_SNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V3) } },
     5573            { /* =>      */ { FP64_QNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(1, FP64_FRAC_V3), FP64_SNAN_V(0, FP64_FRAC_V3) } },
     5574              /*mxcsr:in */ 0,
     5575              /*128:out  */ 0,
     5576              /*256:out  */ 0,
     5577              /*xcpt?    */ false, false },
     5578    /* QNan, Norm FP (Unmasked). */
     5579          { { /*src2     */ { FP64_QNAN(0), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_QNAN_V(0, FP64_FRAC_V1) } },
     5580            { /*src1     */ { FP64_1(0),    FP64_INF(1),                        FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5581            { /* =>      */ { FP64_QNAN(0), FP64_INF(1),                        FP64_QNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5582              /*mxcsr:in */ X86_MXCSR_FZ,
     5583              /*128:out  */ X86_MXCSR_FZ,
     5584              /*256:out  */ X86_MXCSR_FZ,
     5585              /*xcpt?    */ false, false },
     5586    /* SNan, Norm FP (Unmasked). */
     5587    /*59*/{ { /*src2     */ { FP64_SNAN(1),      FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V0(1),              FP64_SNAN_V(0, FP64_FRAC_V1) } },
     5588            { /*src1     */ { FP64_1(0),         FP64_INF(0),                        FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5589            { /* =>      */ { FP64_QNAN_V(1, 1), FP64_INF(0),                        FP64_SNAN_V(1, FP64_FRAC_V0), FP64_NORM_V2(1)              } },
     5590              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     5591              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     5592              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_IE,
     5593              /*xcpt?    */ true, true },
     5594    /** @todo Underflow, Precision; Rounding, FZ etc. */
    53835595    };
    53845596
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