VirtualBox

Changeset 105650 in vbox for trunk


Ignore:
Timestamp:
Aug 12, 2024 10:51:42 AM (5 months ago)
Author:
vboxsync
Message:

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

File:
1 edited

Legend:

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

    r105649 r105650  
    38963896              /*256:out  */ X86_MXCSR_DE,
    38973897              /*xcpt?    */ false, true },
    3898           /** @todo Invalids, Rounding etc. */
     3898    /*
     3899     * Invalids.
     3900     */
     3901    /*31*/{ { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     3902            { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3903            { /* =>      */ { FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0)       } },
     3904              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3905              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3906              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3907              /*xcpt?    */ false, false },
     3908          { { /*src2     */ { FP64_QNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     3909            { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2)       } },
     3910            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3911              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3912              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3913              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3914              /*xcpt?    */ false, false },
     3915          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2),       FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_QNAN_V(0, FP64_FRAC_V2)  } },
     3916            { /*src1     */ { FP64_SNAN(0),                       FP64_QNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V3)  } },
     3917            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_V1)  } },
     3918              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3919              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3920              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3921              /*xcpt?    */ false, false },
     3922          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN) } },
     3923            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3924            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3925              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3926              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3927              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3928              /*xcpt?    */ false, false },
     3929          { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     3930            { /*src1     */ { FP64_QNAN(0), FP64_1(1),       FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)                    } },
     3931            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),    FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3932              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3933              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3934              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3935              /*xcpt?    */ false, false },
     3936          { { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0)              } },
     3937            { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)              } },
     3938            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1) } },
     3939              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3940              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3941              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     3942              /*xcpt?    */ false, false },
     3943          { { /*src2     */ { FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0),       FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     3944            { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3945            { /* =>      */ { FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V0)       } },
     3946              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3947              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3948              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     3949              /*xcpt?    */ false, false },
     3950          { { /*src2     */ { FP64_QNAN(0), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     3951            { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2)       } },
     3952            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3953              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     3954              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     3955              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     3956              /*xcpt?    */ true, true },
     3957          { { /*src2     */ { FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V2), FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_QNAN_V(0, FP64_FRAC_V2) } },
     3958            { /*src1     */ { FP64_SNAN(0),                       FP64_QNAN(0),                 FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V3) } },
     3959            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),            FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V1) } },
     3960              /*mxcsr:in */ 0,
     3961              /*128:out  */ X86_MXCSR_IE,
     3962              /*256:out  */ X86_MXCSR_IE,
     3963              /*xcpt?    */ true, true },
     3964          { { /*src2     */ { FP64_SNAN(0),      FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_SNAN_V(0, FP64_FRAC_NORM_MIN) } },
     3965            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3966            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3967              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3968              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     3969              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     3970              /*xcpt?    */ true, true },
     3971          { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0),  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     3972            { /*src1     */ { FP64_QNAN(0), FP64_1(1),        FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)                    } },
     3973            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     3974              /*mxcsr:in */ 0,
     3975              /*128:out  */ 0,
     3976              /*256:out  */ 0,
     3977              /*xcpt?    */ false, false },
     3978          { { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0),             } },
     3979            { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1),             } },
     3980            { /* =>      */ { FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1) } },
     3981              /*mxcsr:in */ X86_MXCSR_RC_UP,
     3982              /*128:out  */ X86_MXCSR_RC_UP|X86_MXCSR_IE,
     3983              /*256:out  */ X86_MXCSR_RC_UP|X86_MXCSR_IE,
     3984              /*xcpt?    */ true, true },
     3985    /** @todo Underflow, Precision; Rounding, FZ etc. */
    38993986    };
    39003987
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