-
Notifications
You must be signed in to change notification settings - Fork 13.3k
ICE when using feature(stdsimd)
and IFMA intrinsics on non-IFMA platforms
#61530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Could you post exact reproduction steps?
CPU: Ryzen 2700X without IFMA |
Hmm, following exactly those steps on my machine (i7-8650U) reproduces the ICE, using My machine builds with |
I was able to reproduce it on your branch with Reproduction steps:
Click here for build output:
This is recent regression and bisection leads to #61062 |
This fails on x86_64-apple-darwin, but I can't reproduce on the playground: #![feature(
platform_intrinsics,
repr_simd,
)]
extern "platform-intrinsic" {
pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
}
#[repr(simd)]
#[derive(Copy, Clone)]
pub struct T(f32, f32);
pub unsafe fn foo(b: T) -> T {
simd_shuffle2(b, b, [0, 1])
}
pub unsafe fn bar(b: T) -> T {
simd_shuffle2(b, b, [0, 1])
} with
|
FYI rust-lang/rust is not running stdsimd tests, and stdsimd functions are all |
cc @Zoxc (sadly, @michaelwoerister is on leave) |
@eddyb Maybe this should be P-High, Nominated, etc. This does not compile on nightly anymore: use core::{arch::x86_64::*, mem};
pub unsafe fn foo() {
let x: __m128 = mem::zeroed();
let x = _mm_cmpgt_ss(x, x);
let x = _mm_cmpge_ss(x, x);
} Note that this does not use any |
@gnzlbg Given |
Self-contained reproduction: #![feature(repr_simd, platform_intrinsics)]
#[repr(simd)]
struct I32x2(i32, i32);
extern "platform-intrinsic" {
fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
}
fn main() {
unsafe {
let _: I32x2 = simd_shuffle2(I32x2(1, 2), I32x2(3, 4), [0, 0]);
let _: I32x2 = simd_shuffle2(I32x2(1, 2), I32x2(3, 4), [0, 0]);
}
} However, the tricky bit is that you need to pass This confirms my suspicion that it is |
Fix a hash collision issue on the `const_field` query fixes #61530
Hi, while working on dalek-cryptography/curve25519-dalek#257 , I ran into an ICE.
On a Cannonlake CPU with
target_feature=+avx512ifma
, the branch in the linked PR works fine. On a Skylake CPU (without IFMA), the feature-gating should disable all of the IFMA code at compile-time. But instead, runningcargo test
causes an ICE:(I think the reason the error appears twice is just because the crate loads itself into its own
build.rs
, not anything else.)The text was updated successfully, but these errors were encountered: