VirtualBox

Ignore:
Timestamp:
Oct 16, 2024 2:38:27 AM (7 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165146
Message:

ValidationKit/bootsectors: Additional same-register testcases for [v]sqrtp[sd], [v]sqrts[sd], [v]rsqrtps; bugref:10658

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

Legend:

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

    r106332 r106333  
    689689
    690690EMIT_INSTR_PLUS_ICEBP       sqrtps,  XMM1, XMM1
     691EMIT_INSTR_PLUS_ICEBP_C64   sqrtps,  XMM8, XMM8
    691692EMIT_INSTR_PLUS_ICEBP       vsqrtps, XMM1, XMM1
    692693EMIT_INSTR_PLUS_ICEBP       vsqrtps, YMM1, YMM1
     694EMIT_INSTR_PLUS_ICEBP_C64   vsqrtps, YMM8, YMM8
    693695
    694696;
     
    711713
    712714EMIT_INSTR_PLUS_ICEBP       sqrtpd,  XMM1, XMM1
     715EMIT_INSTR_PLUS_ICEBP_C64   sqrtpd,  XMM8, XMM8
    713716EMIT_INSTR_PLUS_ICEBP       vsqrtpd, XMM1, XMM1
    714717EMIT_INSTR_PLUS_ICEBP       vsqrtpd, YMM1, YMM1
     718EMIT_INSTR_PLUS_ICEBP_C64   vsqrtpd, YMM8, YMM8
    715719
    716720;
     
    728732
    729733EMIT_INSTR_PLUS_ICEBP       sqrtss,  XMM1, XMM1
     734EMIT_INSTR_PLUS_ICEBP_C64   sqrtss,  XMM8, XMM8
    730735EMIT_INSTR_PLUS_ICEBP       vsqrtss, XMM1, XMM1, XMM1
    731736EMIT_INSTR_PLUS_ICEBP       vsqrtss, XMM1, XMM1, XMM2
    732737EMIT_INSTR_PLUS_ICEBP       vsqrtss, XMM1, XMM2, XMM2
     738EMIT_INSTR_PLUS_ICEBP_C64   vsqrtss, XMM8, XMM8, XMM8
    733739EMIT_INSTR_PLUS_ICEBP       vsqrtss, XMM1, XMM1, FSxBX
    734740
     
    747753
    748754EMIT_INSTR_PLUS_ICEBP       sqrtsd,  XMM1, XMM1
     755EMIT_INSTR_PLUS_ICEBP_C64   sqrtsd,  XMM8, XMM8
    749756EMIT_INSTR_PLUS_ICEBP       vsqrtsd, XMM1, XMM1, XMM1
    750757EMIT_INSTR_PLUS_ICEBP       vsqrtsd, XMM1, XMM1, XMM2
    751758EMIT_INSTR_PLUS_ICEBP       vsqrtsd, XMM1, XMM2, XMM2
     759EMIT_INSTR_PLUS_ICEBP_C64   vsqrtsd, XMM8, XMM8, XMM8
    752760EMIT_INSTR_PLUS_ICEBP       vsqrtsd, XMM1, XMM1, FSxBX
    753761
     
    771779
    772780EMIT_INSTR_PLUS_ICEBP       rsqrtps,  XMM1, XMM1
     781EMIT_INSTR_PLUS_ICEBP_C64   rsqrtps,  XMM8, XMM8
    773782EMIT_INSTR_PLUS_ICEBP       vrsqrtps, XMM1, XMM1
    774783EMIT_INSTR_PLUS_ICEBP       vrsqrtps, YMM1, YMM1
     784EMIT_INSTR_PLUS_ICEBP_C64   vrsqrtps, YMM8, YMM8
    775785
    776786;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32

    r106332 r106333  
    1291112911 * [V]RCPPS.
    1291212912 */
     12913/** @todo this fails entirely under IEM: the instructions rcpps, rcpss, rsqrtps, rsqrtss are all implemented with too much precision & attention to exceptions! */
    1291312914BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_rcpps(uint8_t bMode)
    1291412915{
     
    1324313244 * [V]RCPSS.
    1324413245 */
     13246/** @todo this fails entirely under IEM: the instructions rcpps, rcpss, rsqrtps, rsqrtss are all implemented with too much precision & attention to exceptions! */
    1324513247BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_rcpss(uint8_t bMode)
    1324613248{
     
    1441514417
    1441614418        { bs3CpuInstr4_sqrtps_XMM1_XMM1_icebp_c64,   255, RM_REG, T_SSE,     1, 1, 1,   PASS_s_aValues },
     14419        { bs3CpuInstr4_sqrtps_XMM8_XMM8_icebp_c64,   255, RM_REG, T_SSE,     8, 8, 8,   PASS_s_aValues },
    1441714420        { bs3CpuInstr4_vsqrtps_XMM1_XMM1_icebp_c64,  255, RM_REG, T_AVX_128, 1, 1, 1,   PASS_s_aValues },
    1441814421        { bs3CpuInstr4_vsqrtps_YMM1_YMM1_icebp_c64,  255, RM_REG, T_AVX_256, 1, 1, 1,   PASS_s_aValues },
     14422        { bs3CpuInstr4_vsqrtps_YMM8_YMM8_icebp_c64,  255, RM_REG, T_AVX_256, 8, 8, 8,   PASS_s_aValues },
    1441914423    };
    1442014424#undef PASS_s_aValues
     
    1468114685
    1468214686        { bs3CpuInstr4_sqrtpd_XMM1_XMM1_icebp_c64,   255, RM_REG, T_SSE,     1, 1, 1,   PASS_s_aValues },
     14687        { bs3CpuInstr4_sqrtpd_XMM8_XMM8_icebp_c64,   255, RM_REG, T_SSE,     8, 8, 8,   PASS_s_aValues },
    1468314688        { bs3CpuInstr4_vsqrtpd_XMM1_XMM1_icebp_c64,  255, RM_REG, T_AVX_128, 1, 1, 1,   PASS_s_aValues },
    1468414689        { bs3CpuInstr4_vsqrtpd_YMM1_YMM1_icebp_c64,  255, RM_REG, T_AVX_256, 1, 1, 1,   PASS_s_aValues },
     14690        { bs3CpuInstr4_vsqrtpd_YMM8_YMM8_icebp_c64,  255, RM_REG, T_AVX_256, 8, 8, 8,   PASS_s_aValues },
    1468514691    };
    1468614692#undef PASS_s_aValues
     
    1511015116
    1511115117        { bs3CpuInstr4_sqrtss_XMM1_XMM1_icebp_c64,        255,         RM_REG, T_SSE,     1, 1, 1,   PASS_s_aValuesSR },
     15118        { bs3CpuInstr4_sqrtss_XMM8_XMM8_icebp_c64,        255,         RM_REG, T_SSE,     8, 8, 8,   PASS_s_aValuesSR },
    1511215119        { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM1_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 1, 1, 1,   PASS_s_aValuesSR },
    1511315120        { bs3CpuInstr4_vsqrtss_XMM1_XMM1_XMM2_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 1, 1, 2,   PASS_s_aValues   },
    1511415121        { bs3CpuInstr4_vsqrtss_XMM1_XMM2_XMM2_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 1, 2, 2,   PASS_s_aValuesSR },
     15122        { bs3CpuInstr4_vsqrtss_XMM8_XMM8_XMM8_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 8, 8, 8,   PASS_s_aValuesSR },
    1511515123        { bs3CpuInstr4_vsqrtss_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 1, 255, PASS_s_aValues   },
    1511615124    };
     
    1554215550
    1554315551        { bs3CpuInstr4_sqrtsd_XMM1_XMM1_icebp_c64,        255,         RM_REG, T_SSE,     1, 1, 1,   PASS_s_aValuesSR },
     15552        { bs3CpuInstr4_sqrtsd_XMM8_XMM8_icebp_c64,        255,         RM_REG, T_SSE,     8, 8, 8,   PASS_s_aValuesSR },
    1554415553        { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM1_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 1, 1, 1,   PASS_s_aValuesSR },
    1554515554        { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_XMM2_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 1, 1, 2,   PASS_s_aValues   },
    1554615555        { bs3CpuInstr4_vsqrtsd_XMM1_XMM2_XMM2_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 1, 2, 2,   PASS_s_aValuesSR },
     15556        { bs3CpuInstr4_vsqrtsd_XMM8_XMM8_XMM8_icebp_c64,  X86_XCPT_AC, RM_REG, T_AVX_128, 8, 8, 8,   PASS_s_aValuesSR },
    1554715557        { bs3CpuInstr4_vsqrtsd_XMM1_XMM1_FSxBX_icebp_c64, X86_XCPT_AC, RM_MEM, T_AVX_128, 1, 1, 255, PASS_s_aValues   },
    1554815558    };
     
    1556015570 * [V]RSQRTPS.
    1556115571 */
    15562 /** @todo this fails entirely under IEM: the instructions rcpps, rcpss, rsqrtps, rsqrtss, are all implemented with too much precision! */
     15572/** @todo this fails entirely under IEM: the instructions rcpps, rcpss, rsqrtps, rsqrtss are all implemented with too much precision & attention to exceptions! */
    1556315573BS3_DECL_FAR(uint8_t) bs3CpuInstr4_v_rsqrtps(uint8_t bMode)
    1556415574{
     
    1580115811
    1580215812        { bs3CpuInstr4_rsqrtps_XMM1_XMM1_icebp_c64,   255, RM_REG, T_SSE,     1, 1, 1,   PASS_s_aValues },
     15813        { bs3CpuInstr4_rsqrtps_XMM8_XMM8_icebp_c64,   255, RM_REG, T_SSE,     8, 8, 8,   PASS_s_aValues },
    1580315814        { bs3CpuInstr4_vrsqrtps_XMM1_XMM1_icebp_c64,  255, RM_REG, T_AVX_128, 1, 1, 1,   PASS_s_aValues },
    1580415815        { bs3CpuInstr4_vrsqrtps_YMM1_YMM1_icebp_c64,  255, RM_REG, T_AVX_256, 1, 1, 1,   PASS_s_aValues },
     15816        { bs3CpuInstr4_vrsqrtps_YMM8_YMM8_icebp_c64,  255, RM_REG, T_AVX_256, 8, 8, 8,   PASS_s_aValues },
    1580515817    };
    1580615818#undef PASS_s_aValues
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