VirtualBox

Ignore:
Timestamp:
Sep 24, 2024 9:32:15 AM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
164913
Message:

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

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
2 edited

Legend:

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

    r106133 r106135  
    605605
    606606;
     607;; [v]minss
     608;
     609EMIT_INSTR_PLUS_ICEBP       minss, XMM3, XMM4
     610EMIT_INSTR_PLUS_ICEBP       minss, XMM3, FSxBX
     611EMIT_INSTR_PLUS_ICEBP_C64   minss, XMM8, XMM9
     612EMIT_INSTR_PLUS_ICEBP_C64   minss, XMM8, FSxBX
     613
     614EMIT_INSTR_PLUS_ICEBP       vminss, XMM1, XMM6, XMM7
     615EMIT_INSTR_PLUS_ICEBP       vminss, XMM1, XMM6, FSxBX
     616EMIT_INSTR_PLUS_ICEBP_C64   vminss, XMM8, XMM9, XMM10
     617EMIT_INSTR_PLUS_ICEBP_C64   vminss, XMM8, XMM9, FSxBX
     618
     619;
    607620;; [v]sqrtps
    608621;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32

    r106133 r106135  
    42884288              /*xcpt?    */ false, false },
    42894289          { { /*src2     */ { FP32_V(0, 0x5c0000, 0x84)/*     55*/, FP32_V(0, 0x600000, 0x81)/*      7.00*/, FP32_0(0),                            FP32_V(0, 0x5c0000, 0x84)/*   55.00*/, FP32_V(0, 0x253468, 0x93)/*1353357*/, FP32_V(1, 0x7c9000, 0x88)/*-1010.25*/, FP32_0(0),                               FP32_V(0, 0x534000, 0x86)/*211.25*/ } },
    4290             { /*src1     */ { FP32_V(0, 0x669050, 0x93)/*1888778*/, FP32_V(1, 0x1ea980, 0x8f)/* -81235.00*/, FP32_V(0, 0x253468, 0x93)/*1353357*/, FP32_V(1, 0x7c9000, 0x88)/*-1010.25*/, FP32_V(0, 0x5c0000, 0x84)/*     55*/, FP32_V(0, 0x600000, 0x81)/*7*/,        FP32_V(0, 0x534000, 0x86)/*211.25*/,    FP32_1(1)                           } },
     4290            { /*src1     */ { FP32_V(0, 0x669050, 0x93)/*1888778*/, FP32_V(1, 0x1ea980, 0x8f)/* -81235.00*/, FP32_V(0, 0x253468, 0x93)/*1353357*/, FP32_V(1, 0x7c9000, 0x88)/*-1010.25*/, FP32_V(0, 0x5c0000, 0x84)/*     55*/, FP32_V(0, 0x600000, 0x81)/*7*/,        FP32_V(0, 0x534000, 0x86)/*    211.25*/, FP32_1(1)                           } },
    42914291            { /* =>      */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x780000, 0x84)/*     62*/, FP32_V(0, 0x5c0000, 0x84)/*   55.00*/, FP32_V(0, 0x780000, 0x84)/*     62*/, FP32_V(0, 0x524000, 0x86)/*210.25*/,   FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(0, 0x534000, 0x86)/*211.25*/ } },
    42924292              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     
    61536153              /*xcpt?    */ false, false },
    61546154          { { /*src2     */ { FP32_V(1, 0x5c0000, 0x84)/*    -55*/, FP32_V(0, 0x600000, 0x81)/*      7.00*/, FP32_0(0),                            FP32_V(0, 0x5c0000, 0x84)/*  55.00*/, FP32_V(0, 0x253468, 0x93)/*1353357*/, FP32_V(0, 0x7c9000, 0x88)/*1010.25*/, FP32_0(0),                               FP32_V(0, 0x534000, 0x86)/* 211.25*/ } },
    6155             { /*src1     */ { FP32_V(0, 0x669050, 0x93)/*1888778*/, FP32_V(0, 0x1ea980, 0x8f)/*  81235.00*/, FP32_V(0, 0x253468, 0x93)/*1353357*/, FP32_V(0, 0x7c9000, 0x88)/*1010.25*/, FP32_V(0, 0x780000, 0x84)/*     62*/, FP32_V(0, 0x600000, 0x81)/*7*/,       FP32_V(0, 0x534000, 0x86)/*211.25*/,    FP32_1(0)                            } },
     6155            { /*src1     */ { FP32_V(0, 0x669050, 0x93)/*1888778*/, FP32_V(0, 0x1ea980, 0x8f)/*  81235.00*/, FP32_V(0, 0x253468, 0x93)/*1353357*/, FP32_V(0, 0x7c9000, 0x88)/*1010.25*/, FP32_V(0, 0x780000, 0x84)/*     62*/, FP32_V(0, 0x600000, 0x81)/*7*/,       FP32_V(0, 0x534000, 0x86)/*    211.25*/, FP32_1(0)                            } },
    61566156            { /* =>      */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x780000, 0x84)/*    -62*/, FP32_V(1, 0x5c0000, 0x84)/* -55.00*/, FP32_V(0, 0x5c0000, 0x84)/*     55*/, FP32_V(0, 0x524000, 0x86)/*210.25*/,  FP32_V(0, 0x2514d6, 0x93)/*1352346.75*/, FP32_V(1, 0x534000, 0x86)/*-211.25*/ } },
    61576157              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     
    1096210962              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    1096310963              /*xcpt?    */ false, false },
    10964           { { /*src2     */ { FP32_V(1, 0x2514d6, 0x93)/*1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
    10965             { /*src1     */ { FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
    10966             { /* =>      */ { FP32_V(0, 0x253468, 0x93)/*1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
     10964          { { /*src2     */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
     10965            { /*src1     */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
     10966            { /* =>      */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
    1096710967              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
    1096810968              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     
    1109311093    static BS3CPUINSTR4_TEST1_T const s_aTests16[] =
    1109411094    {
    11095         { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16,  255, RM_REG, T_SSE2, 3, 3, 4,   PASS_s_aValues },
    11096         { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },
     11095        { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c16,  255, RM_REG, T_SSE, 3, 3, 4,   PASS_s_aValues },
     11096        { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },
    1109711097
    1109811098        { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c16,  255,         RM_REG, T_AVX_128, 1, 6, 7,   PASS_s_aValues },
     
    1110111101    static BS3CPUINSTR4_TEST1_T const s_aTests32[] =
    1110211102    {
    11103         { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32,  255, RM_REG, T_SSE2, 3, 3, 4,   PASS_s_aValues },
    11104         { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },
     11103        { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c32,  255, RM_REG, T_SSE, 3, 3, 4,   PASS_s_aValues },
     11104        { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },
    1110511105
    1110611106        { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c32,  255,         RM_REG, T_AVX_128, 1, 6, 7,   PASS_s_aValues },
     
    1110911109    static BS3CPUINSTR4_TEST1_T const s_aTests64[] =
    1111011110    {
    11111         { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64,  255, RM_REG, T_SSE2, 3, 3, 4,   PASS_s_aValues },
    11112         { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE2, 3, 3, 255, PASS_s_aValues },
     11111        { bs3CpuInstr4_maxss_XMM3_XMM4_icebp_c64,  255, RM_REG, T_SSE, 3, 3, 4,   PASS_s_aValues },
     11112        { bs3CpuInstr4_maxss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },
    1111311113
    1111411114        { bs3CpuInstr4_vmaxss_XMM1_XMM6_XMM7_icebp_c64,  255,         RM_REG, T_AVX_128, 1, 6, 7,   PASS_s_aValues },
    1111511115        { bs3CpuInstr4_vmaxss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },
    1111611116
    11117         { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64,  255,         RM_REG, T_SSE2, 8, 8, 9,   PASS_s_aValues },
    11118         { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE2, 8, 8, 255, PASS_s_aValues },
     11117        { bs3CpuInstr4_maxss_XMM8_XMM9_icebp_c64,  255,         RM_REG, T_SSE, 8, 8, 9,   PASS_s_aValues },
     11118        { bs3CpuInstr4_maxss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues },
    1111911119
    1112011120        { bs3CpuInstr4_vmaxss_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128, 8, 9, 10,  PASS_s_aValues },
     
    1213112131     * Denormals.
    1213212132     */
    12133     /*29*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)         } },
     12133    /*29*/{ { /*src2     */ { FP64_DENORM_MAX(0), FP64_0(0),          FP64_DENORM_MAX(0), FP64_0(0)          } },
    1213412134            { /*src1     */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
    1213512135            { /* =>      */ { FP64_0(0),          FP64_DENORM_MAX(1), FP64_0(0),          FP64_DENORM_MAX(1) } },
     
    1222812228    return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
    1222912229                                        g_aXcptConfig2, RT_ELEMENTS(g_aXcptConfig2));
     12230}
     12231
     12232
     12233/*
     12234 * [V]MINSS.
     12235 */
     12236BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_minss(uint8_t bMode)
     12237{
     12238    static BS3CPUINSTR4_TEST1_VALUES_SS_T const s_aValues[] =
     12239    {
     12240    /*
     12241     * Zero.
     12242     */
     12243    /* 0*/{ { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     12244            { /*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) } },
     12245            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     12246              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12247              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12248              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12249              /*xcpt?    */ false, false },
     12250          { { /*src2     */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     12251            { /*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) } },
     12252            { /* =>      */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } },
     12253              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     12254              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     12255              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     12256              /*xcpt?    */ false, false },
     12257          { { /*src2     */ { FP32_0(0), FP32_INF(0), FP32_SNAN(0), FP32_SNAN(0), FP32_SNAN(1),      FP32_QNAN(1),      FP32_INF(1),       FP32_RAND_V7(0)   } },
     12258            { /*src1     */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } },
     12259            { /* =>      */ { FP32_0(0), FP32_INF(1), FP32_QNAN(0), FP32_SNAN(1), FP32_QNAN_V(0, 1), FP32_QNAN_V(1, 1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1) } },
     12260              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12261              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12262              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12263              /*xcpt?    */ false, false },
     12264          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0), FP32_RAND_V0(0) } },
     12265            { /*src1     */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },
     12266            { /* =>      */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },
     12267              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12268              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12269              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12270              /*xcpt?    */ false, false },
     12271          { { /*src2     */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },
     12272            { /*src1     */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     12273            { /* =>      */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     12274              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     12275              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     12276              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     12277              /*xcpt?    */ false, false },
     12278          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } },
     12279            { /*src1     */ { FP32_0(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },
     12280            { /* =>      */ { FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V0(0) } },
     12281              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12282              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12283              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12284              /*xcpt?    */ false, false },
     12285          { { /*src2     */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V6(0) } },
     12286            { /*src1     */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } },
     12287            { /* =>      */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V3(1) } },
     12288              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12289              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12290              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12291              /*xcpt?    */ false, false },
     12292          { { /*src2     */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },
     12293            { /*src1     */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     12294            { /* =>      */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } },
     12295              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12296              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12297              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12298              /*xcpt?    */ false, false },
     12299          { { /*src2     */ { FP32_0(1), FP32_RAND_V5(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V0(0) } },
     12300            { /*src1     */ { FP32_0(0), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } },
     12301            { /* =>      */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(1), FP32_RAND_V6(0), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V2(1) } },
     12302              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12303              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12304              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_XCPT_FLAGS | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12305              /*xcpt?    */ false, false },
     12306          { { /*src2     */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },
     12307            { /*src1     */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } },
     12308            { /* =>      */ { FP32_0(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V7(0), FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V4(1) } },
     12309              /*mxcsr:in */ 0,
     12310              /*128:out  */ 0,
     12311              /*256:out  */ 0,
     12312              /*xcpt?    */ false, false },
     12313          { { /*src2     */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },
     12314            { /*src1     */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },
     12315            { /* =>      */ { FP32_0(1), FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },
     12316              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12317              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12318              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12319              /*xcpt?    */ false, false },
     12320    /*
     12321     * Infinity.
     12322     */
     12323    /*11*/{ { /*src2     */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },
     12324            { /*src1     */ { FP32_0(0),   FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },
     12325            { /* =>      */ { FP32_0(0),   FP32_RAND_V1(0), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V6(1) } },
     12326              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12327              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12328              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12329              /*xcpt?    */ false, false },
     12330          { { /*src2     */ { FP32_0(0),   FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
     12331            { /*src1     */ { FP32_INF(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } },
     12332            { /* =>      */ { FP32_0(0),   FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V7(1) } },
     12333              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12334              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12335              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12336              /*xcpt?    */ false, false },
     12337          { { /*src2     */ { FP32_INF(0), FP32_INF(1),     FP32_SNAN(1),    FP32_QNAN(1),    FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
     12338            { /*src1     */ { FP32_0(0),   FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0),    FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12339            { /* =>      */ { FP32_0(0),   FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0),    FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12340              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12341              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12342              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12343              /*xcpt?    */ false, false },
     12344          { { /*src2     */ { FP32_0(0),   FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },
     12345            { /*src1     */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },
     12346            { /* =>      */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },
     12347              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     12348              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     12349              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO,
     12350              /*xcpt?    */ false, false },
     12351          { { /*src2     */ { FP32_INF(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(1), FP32_RAND_V5(1),   FP32_RAND_V7(1),   FP32_RAND_V0(1) } },
     12352            { /*src1     */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } },
     12353            { /* =>      */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_SNAN_V(0, 1), FP32_SNAN_V(1, 1), FP32_RAND_V2(1) } },
     12354              /*mxcsr:in */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12355              /*128:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12356              /*256:out  */ X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12357              /*xcpt?    */ false, false },
     12358          { { /*src2     */ { FP32_INF(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V5(1),   FP32_RAND_V7(1),   FP32_RAND_V0(1) } },
     12359            { /*src1     */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } },
     12360            { /* =>      */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_QNAN_V(1, 1), FP32_RAND_V3(1) } },
     12361              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12362              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12363              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12364              /*xcpt?    */ false, false },
     12365          { { /*src2     */ { FP32_INF(1), FP32_RAND_V3(0),   FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1),   FP32_RAND_V0(0) } },
     12366            { /*src1     */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } },
     12367            { /* =>      */ { FP32_INF(1), FP32_QNAN_V(1, 1), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_QNAN_V(1, 0), FP32_RAND_V1(0) } },
     12368              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12369              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12370              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12371              /*xcpt?    */ false, false },
     12372          { { /*src2     */ { FP32_INF(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_RAND_V0(1) } },
     12373            { /*src1     */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } },
     12374            { /* =>      */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V5(1) } },
     12375              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12376              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12377              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12378              /*xcpt?    */ false, false },
     12379          { { /*src2     */ { FP32_INF(1), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(0), FP32_RAND_V1(1) } },
     12380            { /*src1     */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } },
     12381            { /* =>      */ { FP32_INF(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(0), FP32_RAND_V3(1) } },
     12382              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12383              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12384              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12385              /*xcpt?    */ false, false },
     12386          { { /*src2     */ { FP32_INF(1), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12387            { /*src1     */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },
     12388            { /* =>      */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },
     12389              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12390              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12391              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12392              /*xcpt?    */ false, false },
     12393          { { /*src2     */ { FP32_INF(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V1(1), FP32_RAND_V7(1), FP32_RAND_V2(0) } },
     12394            { /*src1     */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },
     12395            { /* =>      */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },
     12396              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12397              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12398              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12399              /*xcpt?    */ false, false },
     12400          { { /*src2     */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12401            { /*src1     */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },
     12402            { /* =>      */ { FP32_INF(1), FP32_RAND_V0(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V4(1) } },
     12403              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     12404              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     12405              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ,
     12406              /*xcpt?    */ false, false },
     12407          { { /*src2     */ { FP32_INF(0),     FP32_RAND_V0(0), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(0) } },
     12408            { /*src1     */ { FP32_NORM_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } },
     12409            { /* =>      */ { FP32_NORM_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(0) } },
     12410              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12411              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12412              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12413              /*xcpt?    */ false, false },
     12414          { { /*src2     */ { FP32_INF(0),     FP32_INF(0), FP32_SNAN(1), FP32_INF(1),  FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0) } },
     12415            { /*src1     */ { FP32_NORM_V3(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12416            { /* =>      */ { FP32_NORM_V3(0), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12417              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12418              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12419              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12420              /*xcpt?    */ false, false },
     12421          { { /*src2     */ { FP32_NORM_V7(0), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(0),  FP32_RAND_V2(0) } },
     12422            { /*src1     */ { FP32_INF(1),     FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } },
     12423            { /* =>      */ { FP32_INF(1),     FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V1(1), FP32_INF(1), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V3(0) } },
     12424              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12425              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12426              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_UP,
     12427              /*xcpt?    */ false, false },
     12428          { { /*src2     */ { FP32_NORM_V7(0), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(1), FP32_SNAN(0), FP32_INF(1),  FP32_RAND_V2(1) } },
     12429            { /*src1     */ { FP32_INF(0),     FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } },
     12430            { /* =>      */ { FP32_NORM_V7(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_QNAN(1), FP32_QNAN(1), FP32_SNAN(0), FP32_RAND_V3(1) } },
     12431              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12432              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12433              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12434              /*xcpt?    */ false, false },
     12435    /*
     12436     * Normals.
     12437     */
     12438    /*27*/{ { /*src2     */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V1(1) } },
     12439            { /*src1     */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } },
     12440            { /* =>      */ { FP32_NORM_MAX(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V3(1), FP32_RAND_V1(1) } },
     12441              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12442              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12443              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12444              /*xcpt?    */ false, false },
     12445          { { /*src2     */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },
     12446            { /*src1     */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } },
     12447            { /* =>      */ { FP32_NORM_MIN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V0(1), FP32_RAND_V7(0) } },
     12448              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12449              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12450              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12451              /*xcpt?    */ false, false },
     12452          { { /*src2     */ { FP32_NORM_MIN(0), FP32_RAND_V3(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },
     12453            { /*src1     */ { FP32_NORM_MAX(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } },
     12454            { /* =>      */ { FP32_NORM_MIN(0), FP32_RAND_V1(0), FP32_RAND_V6(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V6(0), FP32_RAND_V4(1) } },
     12455              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12456              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12457              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12458              /*xcpt?    */ false, false },
     12459          { { /*src2     */ { FP32_NORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },
     12460            { /*src1     */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },
     12461            { /* =>      */ { FP32_NORM_MAX(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },
     12462              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12463              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12464              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12465              /*xcpt?    */ false, false },
     12466          { { /*src2     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },
     12467            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } },
     12468            { /* =>      */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1) } },
     12469              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12470              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12471              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12472              /*xcpt?    */ false, false },
     12473          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(0), FP32_RAND_V1(1) } },
     12474            { /*src1     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } },
     12475            { /* =>      */ { FP32_NORM_SAFE_INT_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V2(1) } },
     12476              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12477              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12478              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12479              /*xcpt?    */ false, false },
     12480          { { /*src2     */ { FP32_NORM_SAFE_INT_MAX(0), FP32_INF(0),     FP32_QNAN(1),    FP32_QNAN(0),    FP32_SNAN(1), FP32_SNAN(1),    FP32_SNAN(0),    FP32_QNAN(1)    } },
     12481            { /*src1     */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12482            { /* =>      */ { FP32_NORM_SAFE_INT_MIN(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12483              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12484              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12485              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12486              /*xcpt?    */ false, false },
     12487          { { /*src2     */ { FP32_V(0, 0x600000, 0x7f)/* 1.75*/, FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },
     12488            { /*src1     */ { FP32_V(1, 0,        0x7d)/*-0.25*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },
     12489            { /* =>      */ { FP32_V(1, 0,        0x7d)/*-0.25*/, FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },
     12490              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12491              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12492              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12493              /*xcpt?    */ false, false },
     12494          { { /*src2     */ { FP32_V(0, 0, 0x7d)/*0.25*/, FP32_RAND_V2(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V4(0), FP32_RAND_V3(1),   FP32_RAND_V7(0),   FP32_RAND_V1(1) } },
     12495            { /*src1     */ { FP32_V(0, 0, 0x7e)/*0.50*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } },
     12496            { /* =>      */ { FP32_V(0, 0, 0x7d)/*0.25*/, FP32_RAND_V0(0), FP32_RAND_V5(0), FP32_RAND_V7(0), FP32_RAND_V2(1), FP32_SNAN_V(1, 1), FP32_SNAN_V(0, 1), FP32_RAND_V3(0) } },
     12497              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12498              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12499              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN,
     12500              /*xcpt?    */ false, false },
     12501          { { /*src2     */ { FP32_NORM_MAX(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1) } },
     12502            { /*src1     */ { FP32_NORM_V1(0),  FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } },
     12503            { /* =>      */ { FP32_NORM_V1(0),  FP32_RAND_V0(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(0), FP32_RAND_V7(0) } },
     12504              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     12505              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     12506              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_DOWN,
     12507              /*xcpt?    */ false, false },
     12508          { { /*src2     */ { FP32_V(0, 0x5ca5b8, 0x93)/*1807543*/, FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V4(0), FP32_RAND_V7(0), FP32_RAND_V6(0) } },
     12509            { /*src1     */ { FP32_V(0, 0x1ea980, 0x8f)/*  81235*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } },
     12510            { /* =>      */ { FP32_V(0, 0x1ea980, 0x8f)/*  81235*/, FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V3(1) } },
     12511              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12512              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12513              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12514              /*xcpt?    */ false, false },
     12515          { { /*src2     */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V7(0), FP32_RAND_V1(0) } },
     12516            { /*src1     */ { FP32_V(0, 0x7c9000, 0x88)/*    1010.25*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },
     12517            { /* =>      */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V2(1), FP32_RAND_V2(1) } },
     12518              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12519              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12520              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12521              /*xcpt?    */ false, false },
     12522          { { /*src2     */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
     12523            { /*src1     */ { FP32_V(0, 0x253468, 0x93)/* 1353357.00*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
     12524            { /* =>      */ { FP32_V(1, 0x2514d6, 0x93)/*-1352346.75*/, FP32_RAND_V3(0), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
     12525              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12526              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12527              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12528              /*xcpt?    */ false, false },
     12529          { { /*src2     */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
     12530            { /*src1     */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
     12531            { /* =>      */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_RAND_V1(1), FP32_RAND_V0(0), FP32_RAND_V0(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V4(0), FP32_RAND_V4(1) } },
     12532              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12533              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12534              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12535              /*xcpt?    */ false, false },
     12536          { { /*src2     */ { FP32_V(0, 0x620b2e, 0x92)/*925874.9*/, FP32_RAND_V5(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V1(1) } },
     12537            { /*src1     */ { FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
     12538            { /* =>      */ { FP32_V(0, 0x620b2d, 0x92)/*925874.8*/, FP32_RAND_V3(0), FP32_RAND_V6(1), FP32_RAND_V0(1), FP32_RAND_V6(0), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } },
     12539              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12540              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12541              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12542              /*xcpt?    */ false, false },
     12543          { { /*src2     */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_RAND_V6(1), FP32_RAND_V2(1), FP32_RAND_V4(1), FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12544            { /*src1     */ { FP32_V(0, 0x490fdb, 0x80)/*3.1415927*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } },
     12545            { /* =>      */ { FP32_V(0, 0x490fda, 0x80)/*3.1415926*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V3(0), FP32_RAND_V7(0), FP32_RAND_V1(0), FP32_RAND_V1(1) } },
     12546              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12547              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12548              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO,
     12549              /*xcpt?    */ false, false },
     12550          { { /*src2     */ { FP32_V(1, 0x40e6b6, 0x8c)/*-12345.678*/, FP32_INF(1), FP32_SNAN(1), FP32_INF(1),  FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } },
     12551            { /*src1     */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } },
     12552            { /* =>      */ { FP32_V(1, 0x40e6b7, 0x8c)/*-12345.679*/, FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V7(1) } },
     12553              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12554              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12555              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12556              /*xcpt?    */ false, false },
     12557          { { /*src2     */ { FP32_V(0, 0x5dd520, 0x8e)/* 56789.125*/, FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_QNAN(0), FP32_SNAN(1), FP32_INF(0),  FP32_RAND_V3(1) } },
     12558            { /*src1     */ { FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } },
     12559            { /* =>      */ { FP32_V(1, 0x5dd521, 0x8e)/*-56789.127*/, FP32_RAND_V7(0), FP32_RAND_V7(0), FP32_RAND_V5(1), FP32_QNAN(0), FP32_QNAN(0), FP32_SNAN(1), FP32_RAND_V2(0) } },
     12560              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12561              /*128:out  */ X86_MXCSR_XCPT_MASK,
     12562              /*256:out  */ X86_MXCSR_XCPT_MASK,
     12563              /*xcpt?    */ false, false },
     12564          { { /*src2     */ { FP32_V(0, 0x600000, 0x7e)/* 0.875*/, FP32_RAND_V4(0), FP32_RAND_V5(0), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V0(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12565            { /*src1     */ { FP32_V(1, 0,        0x7d)/*-0.250*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } },
     12566            { /* =>      */ { FP32_V(1, 0,        0x7d)/*-0.250*/, FP32_RAND_V2(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V7(1), FP32_RAND_V5(1), FP32_RAND_V6(0), FP32_RAND_V7(1) } },
     12567              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12568              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12569              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_UP,
     12570              /*xcpt?    */ false, false },
     12571    /** @todo More Normals. */
     12572    /*
     12573     * Denormals.
     12574     */
     12575    /*46*/{ { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V2(1) } },
     12576            { /*src1     */ { FP32_0(0),          FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },
     12577            { /* =>      */ { FP32_0(0),          FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(0), FP32_RAND_V1(1) } },
     12578              /*mxcsr:in */ 0,
     12579              /*128:out  */ X86_MXCSR_DE,
     12580              /*256:out  */ X86_MXCSR_DE,
     12581              /*xcpt?    */ true, true },
     12582          { { /*src2     */ { FP32_0(0),          FP32_SNAN(0),    FP32_QNAN(1),    FP32_QNAN(0),    FP32_SNAN(0), FP32_SNAN(0),    FP32_SNAN(0),    FP32_QNAN(1)    } },
     12583            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
     12584            { /* =>      */ { FP32_0(0),          FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_QNAN(1), FP32_RAND_V6(0), FP32_RAND_V3(1), FP32_RAND_V2(0) } },
     12585              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12586              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12587              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12588              /*xcpt?    */ false, false },
     12589          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_INF(1), FP32_SNAN(0), FP32_INF(1),  FP32_RAND_V2(1), FP32_RAND_V5(1), FP32_RAND_V2(1), FP32_RAND_V0(1) } },
     12590            { /*src1     */ { FP32_DENORM_MAX(0), FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } },
     12591            { /* =>      */ { FP32_0(0),          FP32_INF(0), FP32_QNAN(1), FP32_SNAN(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V3(0) } },
     12592              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     12593              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     12594              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_RC_UP,
     12595              /*xcpt?    */ false, false },
     12596          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V2(0), FP32_RAND_V1(1), FP32_RAND_V7(0), FP32_RAND_V0(0) } },
     12597            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } },
     12598            { /* =>      */ { FP32_DENORM_MAX(0), FP32_RAND_V3(0), FP32_RAND_V5(0), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V4(1) } },
     12599              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12600              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12601              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12602              /*xcpt?    */ false, false },
     12603          { { /*src2     */ { FP32_DENORM_MAX(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V2(0), FP32_RAND_V3(0), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1) } },
     12604            { /*src1     */ { FP32_DENORM_MAX(1), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } },
     12605            { /* =>      */ { FP32_DENORM_MAX(1), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V7(0), FP32_RAND_V5(0), FP32_RAND_V3(1), FP32_RAND_V3(1), FP32_RAND_V2(1) } },
     12606              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12607              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12608              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12609              /*xcpt?    */ false, false },
     12610          { { /*src2     */ { FP32_DENORM_MAX(1), FP32_RAND_V3(1), FP32_RAND_V7(0), FP32_RAND_V6(1), FP32_RAND_V2(0), FP32_RAND_V1(0), FP32_RAND_V7(1), FP32_RAND_V2(1) } },
     12611            { /*src1     */ { FP32_DENORM_MAX(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12612            { /* =>      */ { FP32_DENORM_MAX(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V5(1), FP32_RAND_V6(1), FP32_RAND_V7(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12613              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12614              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12615              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12616              /*xcpt?    */ false, false },
     12617          { { /*src2     */ { FP32_DENORM_MIN(1), FP32_RAND_V7(1), FP32_RAND_V6(1), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V1(1) } },
     12618            { /*src1     */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },
     12619            { /* =>      */ { FP32_DENORM_MIN(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },
     12620              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12621              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12622              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12623              /*xcpt?    */ false, false },
     12624          { { /*src2     */ { FP32_DENORM_MIN(1), FP32_INF(0),     FP32_QNAN(1),    FP32_QNAN(0),    FP32_SNAN(1), FP32_SNAN(1),    FP32_SNAN(0),    FP32_QNAN(1)    } },
     12625            { /*src1     */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12626            { /* =>      */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12627              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12628              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12629              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12630              /*xcpt?    */ false, false },
     12631          { { /*src2     */ { FP32_DENORM_MIN(1), FP32_INF(0),     FP32_QNAN(1),    FP32_QNAN(0),    FP32_SNAN(1), FP32_SNAN(1),    FP32_SNAN(0),    FP32_QNAN(1)    } },
     12632            { /*src1     */ { FP32_DENORM_MIN(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12633            { /* =>      */ { FP32_0(1),          FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V0(1), FP32_QNAN(0), FP32_RAND_V2(0), FP32_RAND_V4(1), FP32_RAND_V7(0) } },
     12634              /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     12635              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     12636              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ,
     12637              /*xcpt?    */ false, false },
     12638          { { /*src2     */ { FP32_DENORM_MIN(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(0), FP32_RAND_V6(1) } },
     12639            { /*src1     */ { FP32_0(0),          FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     12640            { /* =>      */ { FP32_0(0),          FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(0), FP32_RAND_V3(1), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(1) } },
     12641              /*mxcsr:in */ X86_MXCSR_XCPT_MASK,
     12642              /*128:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12643              /*256:out  */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DE,
     12644              /*xcpt?    */ false, false },
     12645    /** @todo More Denormals. */
     12646    /*56*/ FP32_TABLE_D9_SS_INVALIDS
     12647    /** @todo Rounding; FZ etc. */
     12648    };
     12649
     12650#define PASS_s_aValues RT_ELEMENTS(s_aValues), (BS3CPUINSTR4_TEST1_VALUES_T *)s_aValues
     12651    static BS3CPUINSTR4_TEST1_T const s_aTests16[] =
     12652    {
     12653        { bs3CpuInstr4_minss_XMM3_XMM4_icebp_c16,  255, RM_REG, T_SSE, 3, 3, 4,   PASS_s_aValues },
     12654        { bs3CpuInstr4_minss_XMM3_FSxBX_icebp_c16, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },
     12655
     12656        { bs3CpuInstr4_vminss_XMM1_XMM6_XMM7_icebp_c16,  255,         RM_REG, T_AVX_128, 1, 6, 7,   PASS_s_aValues },
     12657        { bs3CpuInstr4_vminss_XMM1_XMM6_FSxBX_icebp_c16, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },
     12658    };
     12659    static BS3CPUINSTR4_TEST1_T const s_aTests32[] =
     12660    {
     12661        { bs3CpuInstr4_minss_XMM3_XMM4_icebp_c32,  255, RM_REG, T_SSE, 3, 3, 4,   PASS_s_aValues },
     12662        { bs3CpuInstr4_minss_XMM3_FSxBX_icebp_c32, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },
     12663
     12664        { bs3CpuInstr4_vminss_XMM1_XMM6_XMM7_icebp_c32,  255,         RM_REG, T_AVX_128, 1, 6, 7,   PASS_s_aValues },
     12665        { bs3CpuInstr4_vminss_XMM1_XMM6_FSxBX_icebp_c32, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },
     12666    };
     12667    static BS3CPUINSTR4_TEST1_T const s_aTests64[] =
     12668    {
     12669        { bs3CpuInstr4_minss_XMM3_XMM4_icebp_c64,  255, RM_REG, T_SSE, 3, 3, 4,   PASS_s_aValues },
     12670        { bs3CpuInstr4_minss_XMM3_FSxBX_icebp_c64, 255, RM_MEM, T_SSE, 3, 3, 255, PASS_s_aValues },
     12671
     12672        { bs3CpuInstr4_vminss_XMM1_XMM6_XMM7_icebp_c64,  255,         RM_REG, T_AVX_128, 1, 6, 7,   PASS_s_aValues },
     12673        { bs3CpuInstr4_vminss_XMM1_XMM6_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 6, 255, PASS_s_aValues },
     12674
     12675        { bs3CpuInstr4_minss_XMM8_XMM9_icebp_c64,  255,         RM_REG, T_SSE, 8, 8, 9,   PASS_s_aValues },
     12676        { bs3CpuInstr4_minss_XMM8_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_SSE, 8, 8, 255, PASS_s_aValues },
     12677
     12678        { bs3CpuInstr4_vminss_XMM8_XMM9_XMM10_icebp_c64, 255,         RM_REG, T_AVX_128, 8, 9, 10,  PASS_s_aValues },
     12679        { bs3CpuInstr4_vminss_XMM8_XMM9_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 8, 9, 255, PASS_s_aValues },
     12680    };
     12681#undef PASS_s_aValues
     12682
     12683    static BS3CPUINSTR4_TEST1_MODE_T const s_aTests[3] = BS3CPUINSTR4_TEST1_MODES_INIT(s_aTests16, s_aTests32, s_aTests64);
     12684    unsigned const                         iTest       = BS3CPUINSTR4_TEST_MODES_INDEX(bMode);
     12685    return bs3CpuInstr4_WorkerTestType1(bMode, s_aTests[iTest].paTests, s_aTests[iTest].cTests,
     12686                                        g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3));
    1223012687}
    1223112688
     
    1266113118        { "[v]minps",       bs3CpuInstr4_v_minps,    0 },
    1266213119        { "[v]minpd",       bs3CpuInstr4_v_minpd,    0 },
     13120        { "[v]minss",       bs3CpuInstr4_v_minss,    0 },
    1266313121        { "[v]sqrtps",      bs3CpuInstr4_v_sqrtps,   0 },
    1266413122#endif
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