VirtualBox

Changeset 105470 in vbox


Ignore:
Timestamp:
Jul 24, 2024 10:14:12 AM (8 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164131
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: [v]subss (W.I.P) -- SIMD FP testcase: Allow setting all MXCSR bits (other than MXCSR.MM bit) prior to testing the instruction and explicitly specifying FP-exception for 128-bit and 256-bit variants.

File:
1 edited

Legend:

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

    r105467 r105470  
    38973897
    38983898
    3899 #if 0
    39003899/*
    39013900 * [V]SUBSS.
     
    39113910            { /*src1     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    39123911            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
    3913               /*mask     */ X86_MXCSR_XCPT_MASK,
    3914               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3915               /*flags    */ 0, 0 },
     3912              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     3913              /*128:out  */ X86_MXCSR_XCPT_MASK,
     3914              /*256:out  */ X86_MXCSR_XCPT_MASK,
     3915              /*xcpt?    */ false, false },
    39163916          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    39173917            { /*src1     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    39183918            { /* =>      */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    3919               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3920               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    3921               /*flags    */ 0, 0 },
     3919              /*mxcsr:in */ 0,
     3920              /*128:out  */ 0,
     3921              /*256:out  */ 0,
     3922              /*xcpt?    */ false, false },
    39223923          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    39233924            { /*src1     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    39243925            { /* =>      */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
    3925               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3926               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP,
    3927               /*flags    */ 0, 0 },
     3926              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3927              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3928              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     3929              /*xcpt?    */ false, false },
    39283930          { { /*src2     */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
    39293931            { /*src1     */ { FP32_0(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    39303932            { /* =>      */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    3931               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3932               /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_ZERO,
    3933               /*flags    */ 0, 0 },
     3933              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3934              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3935              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO,
     3936              /*xcpt?    */ false, false },
    39343937          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
    39353938            { /*src1     */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    3936             { /* =>      */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
    3937               /*mask     */ ~X86_MXCSR_XCPT_MASK,
    3938               /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO,
    3939               /*flags    */ 0, 0 },
     3939            { /* =>      */ { FP32_0(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
     3940              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3941              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3942              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3943              /*xcpt?    */ false, false },
    39403944          { { /*src2     */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
    39413945            { /*src1     */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
    39423946            { /* =>      */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
    3943               /*mask     */ X86_MXCSR_XCPT_MASK,
    3944               /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN,
    3945               /*flags    */ 0, 0 },
     3947              /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3948              /*128:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3949              /*256:out  */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     3950              /*xcpt?    */ false, false },
     3951#if 0
    39463952    /*
    39473953     * Infinity.
     
    41194125              /*flags    */ 0, 0 },
    41204126          /** @todo More denormals; Underflow, Precision; Rounding, FZ etc. */
     4127#endif
    41214128    };
    41224129
     
    41564163
    41574164
     4165#if 0
    41584166/*
    41594167 * [V]MULPS.
     
    52515259        { "[v]subps",       bs3CpuInstr4_v_subps,  0 },
    52525260        { "[v]subpd",       bs3CpuInstr4_v_subpd,  0 },
     5261        { "[v]subss",       bs3CpuInstr4_v_subss,  0 },
    52535262# if 0
    5254         { "[v]subss",       bs3CpuInstr4_v_subss,  0 },
    52555263        { "[v]mulps",       bs3CpuInstr4_v_mulps,  0 },
    52565264        { "[v]mulpd",       bs3CpuInstr4_v_mulpd,  0 },
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