VirtualBox

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


Ignore:
Timestamp:
May 22, 2024 11:23:33 AM (7 months ago)
Author:
vboxsync
Message:

ValidationKit/bootsectors: bugref:10658 SIMD FP testcase: [V]ADDPD and nits.

File:
1 edited

Legend:

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

    r104744 r104754  
    5454
    5555/** Maximum length for the names of all SIMD FP exception flags combined. */
    56 #define BS3_FP_XCPT_NAMES_MAXLEN        sizeof(" IE DE ZE OE UE PE ")
     56#define BS3_FP_XCPT_NAMES_MAXLEN              sizeof(" IE DE ZE OE UE PE ")
     57/** The max exponent value for a double-precision floating-point normal. */
     58#define BS3_FP64_EXP_NORMAL_MAX               2046
     59/** The min exponent value for a double-precision floating-point normal. */
     60#define BS3_FP64_EXP_NORMAL_MIN               1
     61/** The max fraction value for a double-precision floating-point normal. */
     62#define BS3_FP64_FRACTION_NORMAL_MAX          0xfffffffffffff
     63/** The min fraction value for a double-precision floating-point normal. */
     64#define BS3_FP64_FRACTION_NORMAL_MIN          0
     65
     66#define BS3_FP64_NORMAL_MAX(a_Sign)           RTFLOAT64U_INIT_C(a_Sign, BS3_FP64_FRACTION_NORMAL_MAX, BS3_FP64_EXP_NORMAL_MAX)
     67#define BS3_FP64_NORMAL_MIN(a_Sign)           RTFLOAT64U_INIT_C(a_Sign, BS3_FP64_FRACTION_NORMAL_MIN, BS3_FP64_EXP_NORMAL_MIN)
     68#define BS3_FP64_ZERO(a_Sign)                 RTFLOAT64U_INIT_ZERO(a_Sign)
     69#define BS3_FP64_VAL(a_Sign, a_Frac, a_Exp)   RTFLOAT64U_INIT_C(a_Sign, a_Frac, a_Exp)
     70#define BS3_FP64_INF(a_Sign)                  RTFLOAT64U_INIT_INF(a_Sign)
     71#define BS3_FP64_QNAN(a_Sign)                 RTFLOAT64U_INIT_QNAN(a_Sign)
     72#define BS3_FP64_SNAN(a_Sign)                 RTFLOAT64U_INIT_SNAN(a_Sign)
    5773
    5874
     
    11851201    static BS3CPUINSTR4_TEST1_VALUES_PD_T const s_aValues[] =
    11861202    {
    1187     /* 0*/{ { /*src2     */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1188             { /*src1     */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1189             { /* =>      */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
     1203    /* 0*/{ { /*src2     */ { BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1204            { /*src1     */ { BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1205            { /* =>      */ { BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
    11901206              /*mask     */ X86_MXCSR_XCPT_MASK,
    11911207              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    11921208              /*flags    */ 0 },
    1193     /* 1*/{ { /*src2     */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1194             { /*src1     */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1195             { /* =>      */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
     1209    /* 1*/{ { /*src2     */ { BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1210            { /*src1     */ { BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1211            { /* =>      */ { BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
    11961212              /*mask     */ ~X86_MXCSR_XCPT_MASK,
    11971213              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    11981214              /*flags    */ 0 },
    1199     /* 2*/{ { /*src2     */ { RTFLOAT64U_INIT_C(0, 0,               0x409), /*1024*/  RTFLOAT64U_INIT_C(0, 0xb800000000000, 0x404) /*55*/, RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_INF(1) } },
    1200             { /*src1     */ { RTFLOAT64U_INIT_C(0, 0,               0x408), /* 512*/  RTFLOAT64U_INIT_C(0, 0xc000000000000, 0x401) /* 7*/, RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1201             { /* =>      */ { RTFLOAT64U_INIT_C(0, 0x8000000000000, 0x409)  /*1536*/, RTFLOAT64U_INIT_C(0, 0xf000000000000, 0x404) /*62*/, RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_INF(1) } },
     1215    /* 2*/{ { /*src2     */ { BS3_FP64_INF(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1216            { /*src1     */ { BS3_FP64_INF(1), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1217            { /* =>      */ { BS3_FP64_INF(1), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1218              /*mask     */ ~X86_MXCSR_IM,
     1219              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
     1220              /*flags    */ X86_MXCSR_IE },
     1221    /* 3*/{ { /*src2     */ { BS3_FP64_ZERO(0), BS3_FP64_INF(1), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1222            { /*src1     */ { BS3_FP64_ZERO(0), BS3_FP64_INF(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1223            { /* =>      */ { BS3_FP64_ZERO(0), BS3_FP64_QNAN(1), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1224              /*mask     */ X86_MXCSR_IM,
     1225              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
     1226              /*flags    */ X86_MXCSR_IE },
     1227    /* 4*/{ { /*src2     */ { BS3_FP64_NORMAL_MAX(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1228            { /*src1     */ { BS3_FP64_NORMAL_MAX(1), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1229            { /* =>      */ { BS3_FP64_ZERO(0),       BS3_FP64_ZERO(0), BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1230              /*mask     */ ~X86_MXCSR_XCPT_MASK,
     1231              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
     1232              /*flags    */ 0 },
     1233    /* 5*/{ { /*src2     */ { BS3_FP64_VAL(0, 0,               0x409)/*1024*/, BS3_FP64_VAL(0, 0xb800000000000, 0x404)/*55*/, BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1234            { /*src1     */ { BS3_FP64_VAL(0, 0,               0x408)/* 512*/, BS3_FP64_VAL(0, 0xc000000000000, 0x401)/* 7*/, BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1235            { /* =>      */ { BS3_FP64_VAL(0, 0x8000000000000, 0x409)/*1536*/, BS3_FP64_VAL(0, 0xf000000000000, 0x404)/*62*/, BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
    12021236              /*mask     */ X86_MXCSR_XCPT_MASK,
    12031237              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    12041238              /*flags    */ 0 },
    1205     /* 3*/{ { /*src2     */ { RTFLOAT64U_INIT_C(0, 0x26580b4800000, 0x41d), /* 1234567890*/  RTFLOAT64U_INIT_C(0, 0xd6f3458800000, 0x41c) /*987654321*/, RTFLOAT64U_INIT_SNAN(0), RTFLOAT64U_INIT_SNAN(1) } },
    1206             { /*src1     */ { RTFLOAT64U_INIT_C(1, 0x26580b4800000, 0x41d), /*-1234567890*/  RTFLOAT64U_INIT_C(1, 0x9000000000000, 0x405) /*     -100*/, RTFLOAT64U_INIT_SNAN(1), RTFLOAT64U_INIT_SNAN(0) } },
    1207             { /* =>      */ { RTFLOAT64U_INIT_ZERO(0),                                       RTFLOAT64U_INIT_C(0, 0xd6f3426800000, 0x41c) /*987654221*/, RTFLOAT64U_INIT_SNAN(0), RTFLOAT64U_INIT_SNAN(0) } },
     1239    /* 6*/{ { /*src2     */ { BS3_FP64_VAL(0, 0x26580b4800000, 0x41d)/* 1234567890*/, BS3_FP64_VAL(0, 0xd6f3458800000, 0x41c)/*987654321*/, BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1240            { /*src1     */ { BS3_FP64_VAL(1, 0x26580b4800000, 0x41d)/*-1234567890*/, BS3_FP64_VAL(1, 0x9000000000000, 0x405)/*     -100*/, BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
     1241            { /* =>      */ { BS3_FP64_ZERO(0),                                       BS3_FP64_VAL(0, 0xd6f3426800000, 0x41c)/*987654221*/, BS3_FP64_ZERO(0), BS3_FP64_ZERO(0) } },
    12081242              /*mask     */ ~X86_MXCSR_XCPT_MASK,
    12091243              /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    12101244              /*flags    */ 0 },
    1211     /* 4*/{ { /*src2     */ { RTFLOAT64U_INIT_INF(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1212             { /*src1     */ { RTFLOAT64U_INIT_INF(1), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1213             { /* =>      */ { RTFLOAT64U_INIT_INF(1), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1214               /*mask     */ ~X86_MXCSR_IM,
    1215               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    1216               /*flags    */ X86_MXCSR_IE },
    1217     /* 5*/{ { /*src2     */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_INF(1), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1218             { /*src1     */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_INF(0), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1219             { /* =>      */ { RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_QNAN(1), RTFLOAT64U_INIT_ZERO(0), RTFLOAT64U_INIT_ZERO(0) } },
    1220               /*mask     */ X86_MXCSR_IM,
    1221               /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST,
    1222               /*flags    */ X86_MXCSR_IE },
    12231245    };
    12241246
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