VirtualBox

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


Ignore:
Timestamp:
Nov 20, 2024 3:22:19 AM (2 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: Implement SIMD FP testcases for [v]roundp[ds], [v]rounds[ds] -- denormals, invalids; bugref:10658; jiraref:VBP-1205

File:
1 edited

Legend:

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

    r107046 r107048  
    1662316623              /*128:out  */ X86_MXCSR_RC_ZERO,
    1662416624              /*256:out  */ X86_MXCSR_RC_ZERO },
     16625    /*
     16626     * Denormals.
     16627     */
     16628    /*14*/{ { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(1), FP32_DENORM_V1(0), FP32_DENORM_V2(1), FP32_DENORM_V3(0), FP32_DENORM_V4(1) } },
     16629            { /*unused   */ { FP32_ROW_UNUSED } },
     16630            { /* =>      */ { FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),         FP32_0(1),         FP32_0(0),         FP32_0(1)         } },
     16631              /*mxcsr:in */ 0,
     16632              /*128:out  */ 0,
     16633              /*256:out  */ 0 },
     16634    /*
     16635     * Invalids.
     16636     */
     16637    /*15*/{ { /*src1     */ { FP32_QNAN_MAX(0), FP32_QNAN_MAX(1), FP32_0_9(0), FP32_QNAN_V2(1), FP32_QNAN_V3(0), FP32_QNAN_V4(1), FP32_0_1(1), FP32_QNAN_V6(1) } },
     16638            { /*unused   */ { FP32_ROW_UNUSED } },
     16639            { /* =>      */ { FP32_QNAN_MAX(0), FP32_QNAN_MAX(1), FP32_1(0),   FP32_QNAN_V2(1), FP32_QNAN_V3(0), FP32_QNAN_V4(1), FP32_0(1),   FP32_QNAN_V6(1) } },
     16640              /*mxcsr:in */ 0,
     16641              /*128:out  */ 0,
     16642              /*256:out  */ 0 },
     16643          { { /*src1     */ { FP32_SNAN_MAX(0), FP32_SNAN_MAX(1), FP32_0_9(0), FP32_SNAN_V2(1), FP32_SNAN_V3(0), FP32_SNAN_V4(1), FP32_0_1(1), FP32_SNAN_V6(1) } },
     16644            { /*unused   */ { FP32_ROW_UNUSED } },
     16645            { /* =>      */ { FP32_QNAN_MAX(0), FP32_QNAN_MAX(1), FP32_1(0),   FP32_QNAN_V2(1), FP32_QNAN_V3(0), FP32_QNAN_V4(1), FP32_0(1),   FP32_QNAN_V6(1) } },
     16646              /*mxcsr:in */ 0,
     16647              /*128:out  */ X86_MXCSR_IE,
     16648              /*256:out  */ X86_MXCSR_IE },
     16649    /*
     16650     * Overflow, Underflow not possible.
     16651     */
    1662516652    };
    1662616653    /** quiet PE + round toward negative infinity */
     
    1716517192              /*128:out  */ X86_MXCSR_RC_ZERO,
    1716617193              /*256:out  */ X86_MXCSR_RC_ZERO },
     17194    /*
     17195     * Denormals.
     17196     */
     17197    /*26*/{ { /*src1     */ { FP64_DENORM_MAX(0), FP64_DENORM_MIN(1), FP64_DENORM_V2(1), FP64_DENORM_V3(0) } },
     17198            { /*unused   */ { FP64_ROW_UNUSED } },
     17199            { /* =>      */ { FP64_0(0),          FP64_0(1),          FP64_0(1),         FP64_0(0)         } },
     17200              /*mxcsr:in */ 0,
     17201              /*128:out  */ 0,
     17202              /*256:out  */ 0 },
     17203    /*
     17204     * Invalids.
     17205     */
     17206    /*27*/{ { /*src1     */ { FP64_QNAN_MAX(0), FP64_0_9(0), FP64_QNAN_V2(1), FP64_QNAN_V3(0) } },
     17207            { /*unused   */ { FP64_ROW_UNUSED } },
     17208            { /* =>      */ { FP64_QNAN_MAX(0), FP64_1(0),   FP64_QNAN_V2(1), FP64_QNAN_V3(0) } },
     17209              /*mxcsr:in */ 0,
     17210              /*128:out  */ 0,
     17211              /*256:out  */ 0 },
     17212          { { /*src1     */ { FP64_SNAN_MAX(1), FP64_SNAN_V3(0), FP64_0_1(1), FP64_SNAN_V1(1) } },
     17213            { /*unused   */ { FP64_ROW_UNUSED } },
     17214            { /* =>      */ { FP64_QNAN_MAX(1), FP64_QNAN_V3(0), FP64_0(1),   FP64_QNAN_V1(1) } },
     17215              /*mxcsr:in */ 0,
     17216              /*128:out  */ X86_MXCSR_IE,
     17217              /*256:out  */ X86_MXCSR_IE },
     17218    /*
     17219     * Overflow, Underflow not possible.
     17220     */
    1716717221    };
    1716817222    /** quiet PE + round toward negative infinity */
     
    1784417898          {    FP32_BIG_INT(0), FP32_BIG_INT(0), X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST },
    1784517899          {    FP32_BIG_INT(1), FP32_BIG_INT(1), X86_MXCSR_RC_UP,      X86_MXCSR_RC_UP      }, /* MXCSR overridden by instruction */
     17900    /*
     17901     * Denormals.
     17902     */
     17903    /*48*/{    FP32_DENORM_MAX(0), FP32_0(0),    0,                    0                    },
     17904          {    FP32_DENORM_MIN(1), FP32_0(1),    0,                    0                    },
     17905    /*
     17906     * Invalids.
     17907     */
     17908    /*50*/{    FP32_QNAN_MAX(0), FP32_QNAN_MAX(0), 0,                  0                    },
     17909          {    FP32_QNAN_MAX(1), FP32_QNAN_MAX(1), 0,                  0                    },
     17910          {    FP32_QNAN_V1(0),  FP32_QNAN_V1(0),  0,                  0                    },
     17911          {    FP32_SNAN_MAX(0), FP32_QNAN_MAX(0), 0,                  X86_MXCSR_IE         },
     17912          {    FP32_SNAN_MAX(1), FP32_QNAN_MAX(1), 0,                  X86_MXCSR_IE         },
     17913          {    FP32_SNAN_V2(1),  FP32_QNAN_V2(1),  0,                  X86_MXCSR_IE         },
     17914    /*
     17915     * Overflow, Underflow not possible.
     17916     */
    1784617917    };
    1784717918    /** quiet PE + round toward negative infinity */
     
    1799918070    {
    1800018071    /*
    18001      * Normals.
     18072     * Normals & Precision.
    1800218073     */
    1800318074    /* 0*/{    FP32_0_1(0),     FP32_0(0),       X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST | X86_MXCSR_PE },
     
    1820218273          {    FP64_BIG_INT(0), FP64_BIG_INT(0), X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST },
    1820318274          {    FP64_BIG_INT(1), FP64_BIG_INT(1), X86_MXCSR_RC_UP,      X86_MXCSR_RC_UP      }, /* MXCSR overridden by instruction */
     18275    /*
     18276     * Denormals.
     18277     */
     18278    /*48*/{    FP64_DENORM_MAX(0), FP64_0(0),    0,                    0                    },
     18279          {    FP64_DENORM_MIN(1), FP64_0(1),    0,                    0                    },
     18280    /*
     18281     * Invalids.
     18282     */
     18283    /*50*/{    FP64_QNAN_MAX(0), FP64_QNAN_MAX(0), 0,                  0                    },
     18284          {    FP64_QNAN_MAX(1), FP64_QNAN_MAX(1), 0,                  0                    },
     18285          {    FP64_QNAN_V1(0),  FP64_QNAN_V1(0),  0,                  0                    },
     18286          {    FP64_SNAN_MAX(0), FP64_QNAN_MAX(0), 0,                  X86_MXCSR_IE         },
     18287          {    FP64_SNAN_MAX(1), FP64_QNAN_MAX(1), 0,                  X86_MXCSR_IE         },
     18288          {    FP64_SNAN_V2(1),  FP64_QNAN_V2(1),  0,                  X86_MXCSR_IE         },
     18289    /*
     18290     * Overflow, Underflow not possible.
     18291     */
    1820418292    };
    1820518293    /** quiet PE + round toward negative infinity */
     
    1835718445    {
    1835818446    /*
    18359      * Normals.
     18447     * Normals & Precision.
    1836018448     */
    1836118449    /* 0*/{    FP64_0_1(0),     FP64_0(0),       X86_MXCSR_RC_NEAREST, X86_MXCSR_RC_NEAREST | X86_MXCSR_PE },
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