Skip to content

Support #[rustc_args_required_const(...)] for simd intrinsics #666

Closed
@bjorn3

Description

@bjorn3

For example:

// https://github.com/rust-lang/stdarch/blob/ef6b0690192f1cfc753af698695c2ecde0c7b991/crates/core_arch/src/x86_64/avx2.rs#L31
#[rustc_args_required_const(1)]
pub unsafe fn _mm256_extract_epi64(a: __m256i, imm8: i32) -> i64 {
    let imm8 = (imm8 & 3) as u32;
    simd_extract(a.as_i64x4(), imm8)
}

Calling these kind of intrinsics will currently panic with a message like: simd_extract* idx not const: "move _8".

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-core-archArea: Necessary for full core::arch supporthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions