VirtualBox

Changeset 105940 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Sep 4, 2024 9:03:36 AM (3 months ago)
Author:
vboxsync
Message:

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

File:
1 edited

Legend:

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

    r105926 r105940  
    83398339              /*256:out  */ X86_MXCSR_XCPT_MASK,
    83408340              /*xcpt?    */ false, false },
    8341     /** @todo More infinity; Denormals; Overflow/Precision; Normals; Invalids;
    8342      *        Rounding; FZ etc. */
     8341          { { /*src2     */ { FP32_NORM_V7(0), FP32_NORM_V6(0), FP32_NORM_V5(0), FP32_NORM_V4(0), FP32_NORM_V3(1), FP32_NORM_V2(1), FP32_NORM_V1(1), FP32_NORM_V0(1) } },
     8342            { /*src1     */ { FP32_INF(0),     FP32_INF(0),     FP32_INF(1),     FP32_INF(1),     FP32_INF(0),     FP32_INF(0),     FP32_INF(1),     FP32_INF(1)     } },
     8343            { /* =>      */ { FP32_INF(0),     FP32_INF(0),     FP32_INF(1),     FP32_INF(1),     FP32_INF(0),     FP32_INF(0),     FP32_INF(1),     FP32_INF(1)     } },
     8344              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     8345              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     8346              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     8347              /*xcpt?    */ false, false },
     8348    /*
     8349     * Overflow, Precision.
     8350     */
     8351    /*17*/{ { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8352            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8353            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0),        FP32_0(0), FP32_0(0),        FP32_INF(0)      } },
     8354              /*mxcsr:in */ 0,
     8355              /*128:out  */ 0,
     8356              /*256:out  */ X86_MXCSR_OE,
     8357              /*xcpt?    */ false, true },
     8358          { { /*src2     */ { FP32_NORM_MIN(0),                                     FP32_NORM_MAX(0), FP32_1(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_1(0), FP32_0(0),       FP32_NORM_MAX(0) } },
     8359            { /*src1     */ { FP32_NORM_MAX(0),                                     FP32_NORM_MAX(0), FP32_2(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_1(0), FP32_NORM_V7(1), FP32_NORM_MAX(0) } },
     8360            { /* =>      */ { FP32_V(0, FP32_FRAC_NORM_MAX - 1, FP32_EXP_NORM_MAX), FP32_NORM_MAX(0), FP32_1(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_2(0), FP32_NORM_V7(1), FP32_NORM_MAX(0) } },
     8361              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
     8362              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8363              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8364              /*xcpt?    */ false, false },
     8365          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1),                     FP32_NORM_V3(0), FP32_NORM_MAX(0), FP32_NORM_MAX(0),                                     FP32_NORM_MIN(1),                    FP32_0(0), FP32_NORM_MAX(0) } },
     8366            { /*src1     */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1),                     FP32_NORM_V3(0), FP32_NORM_MAX(0), FP32_NORM_MIN(0),                                     FP32_NORM_MIN(1),                    FP32_0(0), FP32_NORM_MAX(0) } },
     8367            { /* =>      */ { FP32_0(0),        FP32_V(1, 0, FP32_EXP_NORM_MIN + 1),  FP32_0(0),       FP32_INF(0),      FP32_V(1, FP32_FRAC_NORM_MAX - 1, FP32_EXP_NORM_MAX), FP32_V(1, 0, FP32_EXP_NORM_MIN + 1), FP32_0(0), FP32_INF(0)      } },
     8368              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     8369              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     8370              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_OE | X86_MXCSR_PE,
     8371              /*xcpt?    */ false, false },
     8372          { { /*src2     */ { FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MIN(1)                    } },
     8373            { /*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(0), FP32_NORM_MIN(1)                    } },
     8374            { /* =>      */ { FP32_0(1),        FP32_NORM_MAX(0), FP32_INF(1),      FP32_0(0), FP32_0(1), FP32_0(1),        FP32_0(1),        FP32_V(1, 0, FP32_EXP_NORM_MIN + 1) } },
     8375              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     8376              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     8377              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_PE,
     8378              /*xcpt?    */ false, false },
     8379          { { /*src2     */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8380            { /*src1     */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8381            { /* =>      */ { FP32_0(0), FP32_0(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8382              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8383              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ,
     8384              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE,
     8385              /*xcpt?    */ false, true },
     8386          { { /*src2     */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8387            { /*src1     */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } },
     8388            { /* =>      */ { FP32_0(0),        FP32_NORM_MAX(1), FP32_0(0),        FP32_NORM_MAX(0), FP32_0(0),        FP32_NORM_MAX(1), FP32_0(0),        FP32_NORM_MAX(0) } },
     8389              /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO,
     8390              /*128:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8391              /*256:out  */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE,
     8392              /*xcpt?    */ false, false },
     8393          { { /*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)                                } },
     8394            { /*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)                                } },
     8395            { /* =>      */ { FP32_V(0, FP32_FRAC_NORM_MAX, FP32_EXP_SAFE_INT_MAX), FP32_NORM_MAX(1), FP32_0(0), FP32_V(1, FP32_FRAC_NORM_MAX, FP32_EXP_SAFE_INT_MAX), FP32_V(0, FP32_FRAC_NORM_MAX, FP32_EXP_SAFE_INT_MAX), FP32_0(0),        FP32_0(0), FP32_V(1, FP32_FRAC_NORM_MAX, FP32_EXP_SAFE_INT_MAX + 1) } },
     8396              /*mxcsr:in */ 0,
     8397              /*128:out  */ X86_MXCSR_PE,
     8398              /*256:out  */ X86_MXCSR_PE,
     8399              /*xcpt?    */ true, true },
     8400    /** @todo Normals; Denormals; Invalids; Rounding; FZ etc. */
    83438401    };
    83448402
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