Skip to content

assert_instr calling convention for windows targets might be broken #594

Open
@gnzlbg

Description

@gnzlbg

The objective is to force the assert_instr shim to generate the same code as on unixes and bsds. We currently use vectorcall for windows target to avoid passing vectors by memory, but as seen in #592 this is not enough. Some investigation was done there, but grep for target_os = "windows" in coresimd to find out all places in which the assert_instr tests are temporarily disabled on windows.

The list was (see: https://travis-ci.org/gnzlbg/stdsimd/jobs/453040419#L3545):

failures:
    coresimd::x86::avx2::assert__mm256_extracti128_si256_vextractf128
    coresimd::x86::avx2::assert__mm256_inserti128_si256_vinsertf128
    coresimd::x86::avx::assert__mm256_extractf128_pd_vextractf128
    coresimd::x86::avx::assert__mm256_extractf128_ps_vextractf128
    coresimd::x86::avx::assert__mm256_extractf128_si256_vextractf128
    coresimd::x86::avx::assert__mm256_insertf128_pd_vinsertf128
    coresimd::x86::avx::assert__mm256_insertf128_ps_vinsertf128
    coresimd::x86::avx::assert__mm256_insertf128_si256_vinsertf128
    coresimd::x86::fma::assert__mm_fmadd_sd_vfmadd213sd
    coresimd::x86::fma::assert__mm_fmadd_ss_vfmadd213ss
    coresimd::x86::fma::assert__mm_fmsub_sd_vfmsub213sd
    coresimd::x86::fma::assert__mm_fmsub_ss_vfmsub213ss
    coresimd::x86::fma::assert__mm_fnmadd_sd_vfnmadd213sd
    coresimd::x86::fma::assert__mm_fnmadd_ss_vfnmadd213ss
    coresimd::x86::fma::assert__mm_fnmsub_sd_vfnmsub213sd
    coresimd::x86::fma::assert__mm_fnmsub_ss_vfnmsub213ss
    coresimd::x86::sse2::assert__mm_cvtsi128_si32_movd
    coresimd::x86::sse2::assert__mm_store_sd_movlps
    coresimd::x86::sse2::assert__mm_storeh_pd_movhpd
    coresimd::x86::sse2::assert__mm_storel_pd_movlps
    coresimd::x86::sse2::assert__mm_unpacklo_epi64_movlhps
    coresimd::x86::sse2::assert__mm_unpacklo_pd_movlhps
    coresimd::x86::sse41::assert__mm_extract_epi32_extractps
    coresimd::x86::sse41::assert__mm_extract_ps_extractps
    coresimd::x86::sse::assert__mm_movehl_ps_movhlps
    coresimd::x86::sse::assert__mm_movelh_ps_movlhps
    coresimd::x86::sse::assert__mm_storeh_pi_movhps
    coresimd::x86::sse::assert__mm_storel_pi_movlps
    coresimd::x86_64::sse41::assert__mm_extract_epi64_pextrq

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions