VirtualBox

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


Ignore:
Timestamp:
Aug 23, 2024 11:13:26 AM (3 months ago)
Author:
vboxsync
Message:

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

File:
1 edited

Legend:

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

    r105844 r105845  
    61996199     * Normals.
    62006200     */
    6201     /*19*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_NORM_V0(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_1(1),       FP32_1(0),       FP32_1(1),       FP32_NORM_V6(1) } },
     6201    /*20*/{ { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_NORM_V0(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_1(1),       FP32_1(0),       FP32_1(1),       FP32_NORM_V6(1) } },
    62026202            { /*src1     */ { FP32_V(0, 0,        0x7d)/*0.2500*/, FP32_1(0),       FP32_1(1),       FP32_0(0),       FP32_NORM_V0(1), FP32_NORM_V3(0), FP32_NORM_V4(0), FP32_1(0)       } },
    62036203            { /* =>      */ { FP32_V(0, 0x600000, 0x7d)/*0.4375*/, FP32_NORM_V0(0), FP32_NORM_V1(1), FP32_0(1),       FP32_NORM_V0(0), FP32_NORM_V3(0), FP32_NORM_V4(1), FP32_NORM_V6(1) } },
     
    62286228              /*xcpt?    */ false, false },
    62296229    /** @todo More Normals. */
    6230     /** @todo Denormals, Invalids, Underflow, Precision; Rounding, FZ etc. */
     6230   /*
     6231    * Denormals.
     6232    */
     6233    /*24*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1)          } },
     6234            { /*src1     */ { FP32_0(0),          FP32_0(1),          FP32_0(0),          FP32_0(1),          FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1) } },
     6235            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6236              /*mxcsr:in */ 0,
     6237              /*128:out  */ X86_MXCSR_DE,
     6238              /*256:out  */ X86_MXCSR_DE,
     6239              /*xcpt?    */ true, true },
     6240          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1)          } },
     6241            { /*src1     */ { FP32_0(0),          FP32_0(1),          FP32_0(0),          FP32_0(1),          FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1) } },
     6242            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6243              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6244              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6245              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6246              /*xcpt?    */ false, false },
     6247          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_1(0),          FP32_1(0),          FP32_1(1),          FP32_1(1)          } },
     6248            { /*src1     */ { FP32_1(0),          FP32_1(1),          FP32_1(0),          FP32_1(1),          FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1) } },
     6249            { /* =>      */ { FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0) } },
     6250              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6251              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6252              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6253              /*xcpt?    */ false, false },
     6254          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1)          } },
     6255            { /*src1     */ { FP32_0(0),          FP32_0(1),          FP32_0(0),          FP32_0(1),          FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1) } },
     6256            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6257              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6258              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6259              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6260              /*xcpt?    */ false, false },
     6261          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(1), FP32_1(0),          FP32_1(0),          FP32_1(1),          FP32_1(1)          } },
     6262            { /*src1     */ { FP32_1(0),          FP32_1(1),          FP32_1(0),          FP32_1(1),          FP32_DENORM_MAX(0), FP32_DENORM_MAX(1), FP32_DENORM_MAX(0), FP32_DENORM_MAX(1) } },
     6263            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6264              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6265              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6266              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6267              /*xcpt?    */ false, false },
     6268        { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1)          } },
     6269            { /*src1     */ { FP32_0(0),          FP32_0(1),          FP32_0(0),          FP32_0(1),          FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1) } },
     6270            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6271              /*mxcsr:in */ 0,
     6272              /*128:out  */ X86_MXCSR_DE,
     6273              /*256:out  */ X86_MXCSR_DE,
     6274              /*xcpt?    */ true, true },
     6275          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1)          } },
     6276            { /*src1     */ { FP32_0(0),          FP32_0(1),          FP32_0(0),          FP32_0(1),          FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1) } },
     6277            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6278              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6279              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6280              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6281              /*xcpt?    */ false, false },
     6282          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_1(0),          FP32_1(0),          FP32_1(1),          FP32_1(1)          } },
     6283            { /*src1     */ { FP32_1(0),          FP32_1(1),          FP32_1(0),          FP32_1(1),          FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1) } },
     6284            { /* =>      */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0) } },
     6285              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6286              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6287              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     6288              /*xcpt?    */ false, false },
     6289          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1)          } },
     6290            { /*src1     */ { FP32_0(0),          FP32_0(1),          FP32_0(0),          FP32_0(1),          FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1) } },
     6291            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6292              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6293              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6294              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6295              /*xcpt?    */ false, false },
     6296          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(1), FP32_1(0),          FP32_1(0),          FP32_1(1),          FP32_1(1)          } },
     6297            { /*src1     */ { FP32_1(0),          FP32_1(1),          FP32_1(0),          FP32_1(1),          FP32_DENORM_MIN(0), FP32_DENORM_MIN(1), FP32_DENORM_MIN(0), FP32_DENORM_MIN(1) } },
     6298            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6299              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6300              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6301              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     6302              /*xcpt?    */ false, false },
     6303          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1) } },
     6304            { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1) } },
     6305            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6306              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     6307              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     6308              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     6309              /*xcpt?    */ false, false },
     6310          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1) } },
     6311            { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1) } },
     6312            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6313              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
     6314              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
     6315              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_DOWN,
     6316              /*xcpt?    */ false, false },
     6317          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1) } },
     6318            { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1) } },
     6319            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6320              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     6321              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     6322              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     6323              /*xcpt?    */ false, false },
     6324          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(0), FP32_DENORM_MAX(1), FP32_DENORM_MIN(0), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1) } },
     6325            { /*src1     */ { FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(1), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1), FP32_DENORM_MAX(0), FP32_DENORM_MIN(1) } },
     6326            { /* =>      */ { FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0),          FP32_0(0),          FP32_0(1),          FP32_0(1),          FP32_0(0)          } },
     6327              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     6328              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     6329              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ,
     6330              /*xcpt?    */ false, false },
     6331    /** @todo More Denormals. */
     6332    /** @todo Invalids, Underflow, Precision; Rounding, FZ etc. */
    62316333    };
    62326334
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