VirtualBox

Ignore:
Timestamp:
Sep 10, 2024 7:13:27 AM (3 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: [v]addsubpd (W.I.P)

File:
1 edited

Legend:

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

    r105986 r105995  
    88348834              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
    88358835              /*xcpt?    */ false, false },
    8836          /** @todo Overflow/Precision; Normals; Denormals; Invalids; Rounding; FZ
    8837           *        etc. */
     8836    /*
     8837     * Overflow, Precision.
     8838     */
     8839    /*24*/{ { /*src2     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8840            { /*src1     */ { FP64_0(0), FP64_0(0), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8841            { /* =>      */ { FP64_0(0), FP64_0(0), FP64_0(0),        FP64_INF(0)      } },
     8842              /*mxcsr:in */ 0,
     8843              /*128:out  */ 0,
     8844              /*256:out  */ X86_MXCSR_OE,
     8845              /*xcpt?    */ false, true },
     8846          { { /*src2     */ { FP64_NORM_MIN(0),                                     FP64_NORM_MAX(0), FP64_1(0), FP64_NORM_MAX(1) } },
     8847            { /*src1     */ { FP64_NORM_MAX(0),                                     FP64_NORM_MAX(0), FP64_2(0), FP64_NORM_MAX(1) } },
     8848            { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MAX), FP64_NORM_MAX(0), FP64_1(0), FP64_NORM_MAX(1) } },
     8849              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
     8850              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8851              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8852              /*xcpt?    */ false, false },
     8853          { { /*src2     */ { FP64_NORM_MAX(0), FP64_1(0), FP64_0(0),       FP64_NORM_MAX(0) } },
     8854            { /*src1     */ { FP64_NORM_MAX(1), FP64_1(0), FP64_NORM_V3(1), FP64_NORM_MAX(0) } },
     8855            { /* =>      */ { FP64_NORM_MAX(1), FP64_2(0), FP64_NORM_V3(1), FP64_NORM_MAX(0) } },
     8856              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
     8857              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8858              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8859              /*xcpt?    */ false, false },
     8860          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1),                     FP64_NORM_V3(0), FP64_NORM_MAX(0),  } },
     8861            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MIN(1),                     FP64_NORM_V3(0), FP64_NORM_MAX(0),  } },
     8862            { /* =>      */ { FP64_0(0),        FP64_V(1, 0, FP64_EXP_NORM_MIN + 1),  FP64_0(0),       FP64_INF(0),       } },
     8863              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8864              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8865              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     8866              /*xcpt?    */ false, false },
     8867          { { /*src2     */ { FP64_NORM_MAX(0),                                     FP64_NORM_MIN(1),                    FP64_0(0), FP64_NORM_MAX(0) } },
     8868            { /*src1     */ { FP64_NORM_MIN(0),                                     FP64_NORM_MIN(1),                    FP64_0(0), FP64_NORM_MAX(0) } },
     8869            { /* =>      */ { FP64_V(1, FP64_FRAC_NORM_MAX - 1, FP64_EXP_NORM_MAX), FP64_V(1, 0, FP64_EXP_NORM_MIN + 1), FP64_0(0), FP64_INF(0)      } },
     8870              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8871              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_PE,
     8872              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     8873              /*xcpt?    */ false, false },
     8874          { { /*src2     */ { FP64_NORM_MIN(1), FP64_NORM_MAX(0), FP64_NORM_MAX(0), FP64_NORM_V2(1) } },
     8875            { /*src1     */ { FP64_NORM_MIN(1), FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_0(0)       } },
     8876            { /* =>      */ { FP64_0(1),        FP64_NORM_MAX(0), FP64_INF(1),      FP64_NORM_V2(1) } },
     8877              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8878              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     8879              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     8880              /*xcpt?    */ false, false },
     8881          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8882            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8883            { /* =>      */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8884              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8885              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE,
     8886              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE,
     8887              /*xcpt?    */ true, true },
     8888          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8889            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8890            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_0(0),        FP64_NORM_MAX(0) } },
     8891              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
     8892              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8893              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8894              /*xcpt?    */ false, false },
     8895          { { /*src2     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8896            { /*src1     */ { FP64_NORM_MAX(0), FP64_NORM_MAX(1), FP64_NORM_MAX(1), FP64_NORM_MAX(0) } },
     8897            { /* =>      */ { FP64_0(0),        FP64_NORM_MAX(1), FP64_0(0),        FP64_INF(0)      } },
     8898              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP,
     8899              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     8900              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     8901              /*xcpt?    */ false, false },
     8902          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                            FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                            } },
     8903            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),                            FP64_NORM_MAX(1), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                            } },
     8904            { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX, FP64_EXP_SAFE_INT_MAX), FP64_NORM_MAX(1), FP64_0(0), FP64_V(1, FP64_FRAC_NORM_MAX, FP64_EXP_SAFE_INT_MAX) } },
     8905              /*mxcsr:in */ 0,
     8906              /*128:out  */ X86_MXCSR_PE,
     8907              /*256:out  */ X86_MXCSR_PE,
     8908              /*xcpt?    */ true, true },
     8909          { { /*src2     */ { FP64_NORM_SAFE_INT_MIN(0),                            FP64_NORM_MAX(0), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                                } },
     8910            { /*src1     */ { FP64_NORM_SAFE_INT_MAX(0),                            FP64_NORM_MAX(1), FP64_0(0), FP64_NORM_SAFE_INT_MAX(1)                                } },
     8911            { /* =>      */ { FP64_V(0, FP64_FRAC_NORM_MAX, FP64_EXP_SAFE_INT_MAX), FP64_0(0),        FP64_0(0), FP64_V(1, FP64_FRAC_NORM_MAX, FP64_EXP_SAFE_INT_MAX + 1) } },
     8912              /*mxcsr:in */ 0,
     8913              /*128:out  */ X86_MXCSR_PE,
     8914              /*256:out  */ X86_MXCSR_PE,
     8915              /*xcpt?    */ true, true },
     8916    /** @todo Normals; Denormals; Invalids; Rounding; FZ etc. */
    88388917    };
    88398918
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