Skip to content

unimplemented intrinsics for matrixmultiply #1405

Closed
@cuviper

Description

@cuviper

I have some code using ndarray dot products, which in turn calls matrixmultiply::sgemm or dgemm, and these trap when built with cranelift. Here's a reproducer:

cargo-features = ["codegen-backend"]

[package]
name = "dot"
edition = "2021"

[dependencies]
ndarray = "0.15.6"

[profile.dev]
codegen-backend = "cranelift"
#[test]
fn dot_f32() {
    let matrix = ndarray::Array2::<f32>::eye(10);
    let _ = matrix.dot(&matrix);
}

#[test]
fn dot_f64() {
    let matrix = ndarray::Array2::<f64>::eye(10);
    let _ = matrix.dot(&matrix);
}
$ cargo test
...
running 2 tests
trap at Instance { def: Item(DefId(2:14266 ~ core[53bd]::core_arch::x86::avx::_mm256_permute2f128_pd)), args: [3_i32] } (_ZN4core9core_arch3x863avx22_mm256_permute2f128_pd17h1ce919b2c8bdf956E): llvm.x86.avx.vperm2f128.pd.256
trap at Instance { def: Item(DefId(2:14264 ~ core[53bd]::core_arch::x86::avx::_mm256_permute2f128_ps)), args: [3_i32] } (_ZN4core9core_arch3x863avx22_mm256_permute2f128_ps17h5d0d25c7962691b9E): llvm.x86.avx.vperm2f128.ps.256

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-core-archArea: Necessary for full core::arch support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions