VirtualBox

Changeset 104950 in vbox


Ignore:
Timestamp:
Jun 18, 2024 9:39:24 AM (5 months ago)
Author:
vboxsync
Message:

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

File:
1 edited

Legend:

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

    r104949 r104950  
    9292#define BS3_FP32_SNAN(a_Sign)                 RTFLOAT32U_INIT_SNAN(a_Sign)
    9393
     94
    9495/*
    9596 * Single-precision floating normals.
     
    112113/** The maximum denormal value. */
    113114#define BS3_FP32_DENORMAL_MIN(a_Sign)         RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_DENORMAL_MIN, 0)
     115
     116/*
     117 * Single-precision random values (incl. potentially invalid values).
     118 * We don't care what the exact values are as these are meant to populate
     119 * unmodified operands and be compared bitwise.
     120 */
     121#define BS3_FP32_RAND_VAL_0(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x7bacda, 0x55)
     122#define BS3_FP32_RAND_VAL_1(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x7010f0, 0xc0)
     123#define BS3_FP32_RAND_VAL_2(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x4ffcbe, 0xf1)
     124#define BS3_FP32_RAND_VAL_3(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x2fd7c8, 0x1f)
     125#define BS3_FP32_RAND_VAL_4(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x5b5b5b, 0x09)
     126#define BS3_FP32_RAND_VAL_5(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x3d2d1d, 0x99)
     127#define BS3_FP32_RAND_VAL_6(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x123456, 0x5e)
     128#define BS3_FP32_RAND_VAL_7(a_Sign)           RTFLOAT32U_INIT_C(a_Sign, 0x05432f, 0xd7)
    114129
    115130/*
     
    19041919    static BS3CPUINSTR4_TEST1_VALUES_SS_T const s_aValues[] =
    19051920    {
     1921    /*
     1922     * Zero.
     1923     */
    19061924    /* 0*/{ { /*src2     */ { BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0) } },
    19071925            { /*src1     */ { BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0), BS3_FP32_ZERO(0) } },
     
    19091927              /*mask     */ X86_MXCSR_XCPT_MASK,
    19101928              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
     1929              /*flags    */ 0, 0 },
     1930          { { /*src2     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_7(0), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_1(1) } },
     1931            { /*src1     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(0), BS3_FP32_RAND_VAL_1(1), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(0) } },
     1932            { /* =>      */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(0), BS3_FP32_RAND_VAL_1(1), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(0) } },
     1933              /*mask     */ ~X86_MXCSR_XCPT_MASK,
     1934              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
     1935              /*flags    */ 0, 0 },
     1936          { { /*src2     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_7(0), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_1(1) } },
     1937            { /*src1     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(0), BS3_FP32_RAND_VAL_1(1), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(0) } },
     1938            { /* =>      */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(0), BS3_FP32_RAND_VAL_1(1), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(0) } },
     1939              /*mask     */ ~X86_MXCSR_XCPT_MASK,
     1940              /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
     1941              /*flags    */ 0, 0 },
     1942          { { /*src2     */ { BS3_FP32_ZERO(1), BS3_FP32_RAND_VAL_0(0), BS3_FP32_RAND_VAL_1(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(1), BS3_FP32_RAND_VAL_4(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(1) } },
     1943            { /*src1     */ { BS3_FP32_ZERO(1), BS3_FP32_RAND_VAL_7(1), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(0), BS3_FP32_RAND_VAL_1(1) } },
     1944            { /* =>      */ { BS3_FP32_ZERO(1), BS3_FP32_RAND_VAL_7(1), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(0), BS3_FP32_RAND_VAL_1(1) } },
     1945              /*mask     */ ~X86_MXCSR_XCPT_MASK,
     1946              /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_ZERO,
     1947              /*flags    */ 0, 0 },
     1948          { { /*src2     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(0), BS3_FP32_RAND_VAL_1(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(1), BS3_FP32_RAND_VAL_4(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(1) } },
     1949            { /*src1     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_7(1), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(0), BS3_FP32_RAND_VAL_1(1) } },
     1950            { /* =>      */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_7(1), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(0), BS3_FP32_RAND_VAL_4(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(0), BS3_FP32_RAND_VAL_1(1) } },
     1951              /*mask     */ ~X86_MXCSR_XCPT_MASK,
     1952              /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
     1953              /*flags    */ 0, 0 },
     1954          { { /*src2     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_7(1), BS3_FP32_RAND_VAL_6(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_4(0), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_1(1) } },
     1955            { /*src1     */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(1), BS3_FP32_RAND_VAL_1(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_4(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(0) } },
     1956            { /* =>      */ { BS3_FP32_ZERO(0), BS3_FP32_RAND_VAL_0(1), BS3_FP32_RAND_VAL_1(0), BS3_FP32_RAND_VAL_2(1), BS3_FP32_RAND_VAL_3(0), BS3_FP32_RAND_VAL_4(0), BS3_FP32_RAND_VAL_5(1), BS3_FP32_RAND_VAL_6(0) } },
     1957              /*mask     */ X86_MXCSR_XCPT_MASK,
     1958              /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    19111959              /*flags    */ 0, 0 },
    19121960    };
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