VirtualBox

Ignore:
Timestamp:
Sep 3, 2024 8:14:31 AM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164655
Message:

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

File:
1 edited

Legend:

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

    r105923 r105924  
    62656265              /*256:out  */ X86_MXCSR_XCPT_FLAGS | X86_MXCSR_RC_DOWN | X86_MXCSR_DE,
    62666266              /*xcpt?    */ false, true },
    6267     /** @todo Normals; Invalids; Underflow,
    6268      *        Precision; Rounding, FZ etc. */
     6267    /*
     6268     * Invalids.
     6269     */
     6270    /*27*/{ { /*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)       } },
     6271            { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6272            { /* =>      */ { 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)       } },
     6273              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6274              /*128:out  */ X86_MXCSR_XCPT_MASK,
     6275              /*256:out  */ X86_MXCSR_XCPT_MASK,
     6276              /*xcpt?    */ false, false },
     6277          { { /*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)       } },
     6278            { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2)       } },
     6279            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6280              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6281              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6282              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6283              /*xcpt?    */ false, false },
     6284          { { /*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)  } },
     6285            { /*src1     */ { FP64_SNAN(0),                       FP64_QNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V3)  } },
     6286            { /* =>      */ { 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)  } },
     6287              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6288              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6289              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6290              /*xcpt?    */ false, false },
     6291          { { /*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) } },
     6292            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6293            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6294              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6295              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6296              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6297              /*xcpt?    */ false, false },
     6298          { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     6299            { /*src1     */ { FP64_QNAN(0), FP64_1(1),       FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)                    } },
     6300            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),    FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6301              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6302              /*128:out  */ X86_MXCSR_XCPT_MASK,
     6303              /*256:out  */ X86_MXCSR_XCPT_MASK,
     6304              /*xcpt?    */ false, false },
     6305          { { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0)              } },
     6306            { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)              } },
     6307            { /* =>      */ { 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) } },
     6308              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     6309              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6310              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_IE,
     6311              /*xcpt?    */ false, false },
     6312          { { /*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)       } },
     6313            { /*src1     */ { FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6314            { /* =>      */ { 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)       } },
     6315              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     6316              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     6317              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     6318              /*xcpt?    */ false, false },
     6319          { { /*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)       } },
     6320            { /*src1     */ { FP64_QNAN(0), FP64_SNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_V2)       } },
     6321            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),                       FP64_QNAN(0),                       FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6322              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     6323              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     6324              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     6325              /*xcpt?    */ true, true },
     6326          { { /*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) } },
     6327            { /*src1     */ { FP64_SNAN(0),                       FP64_QNAN(0),                 FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_QNAN_V(0, FP64_FRAC_V3) } },
     6328            { /* =>      */ { 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) } },
     6329              /*mxcsr:in */ 0,
     6330              /*128:out  */ X86_MXCSR_IE,
     6331              /*256:out  */ X86_MXCSR_IE,
     6332              /*xcpt?    */ true, true },
     6333          { { /*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) } },
     6334            { /*src1     */ { FP64_SNAN(0),      FP64_SNAN(0),                       FP64_SNAN_V(0, FP64_FRAC_NORM_MIN), FP64_SNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6335            { /* =>      */ { FP64_QNAN_V(0, 1), FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, 1),                  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6336              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     6337              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     6338              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP | X86_MXCSR_IE,
     6339              /*xcpt?    */ true, true },
     6340          { { /*src2     */ { FP64_QNAN(0), FP64_NORM_V1(0),  FP64_QNAN_V(0, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_V1)       } },
     6341            { /*src1     */ { FP64_QNAN(0), FP64_1(1),        FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)                    } },
     6342            { /* =>      */ { FP64_QNAN(0), FP64_QNAN(0),     FP64_QNAN_V(1, FP64_FRAC_NORM_MAX), FP64_QNAN_V(0, FP64_FRAC_NORM_MAX) } },
     6343              /*mxcsr:in */ 0,
     6344              /*128:out  */ 0,
     6345              /*256:out  */ 0,
     6346              /*xcpt?    */ false, false },
     6347          { { /*src2     */ { FP64_SNAN_V(1, FP64_FRAC_NORM_MAX), FP64_1(0),                          FP64_SNAN_V(0, FP64_FRAC_V1),       FP64_NORM_V3(0)              } },
     6348            { /*src1     */ { FP64_SNAN(0),                       FP64_1(1),                          FP64_SNAN_V(0, FP64_FRAC_NORM_MAX), FP64_NORM_V2(1)              } },
     6349            { /* =>      */ { 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) } },
     6350              /*mxcsr:in */ X86_MXCSR_RC_UP,
     6351              /*128:out  */ X86_MXCSR_RC_UP|X86_MXCSR_IE,
     6352              /*256:out  */ X86_MXCSR_RC_UP|X86_MXCSR_IE,
     6353              /*xcpt?    */ true, true },
     6354    /** @todo Underflow, Precision; Rounding, FZ etc. */
    62696355    };
    62706356
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette