Skip to content

Need MCVE of QEMU(?) ppc64le f32 bug #179

Open
@workingjubilee

Description

@workingjubilee

In #175 we discovered our tests cause QEMU to bug out, but native POWER9 machines work just fine. We have not been able to reduce to an MCVE for this, unfortunately.

Meta

rustc --version --verbose:

rustc 1.58.0-nightly (29b124802 2021-10-25)
binary: rustc
commit-hash: 29b1248025b19bd132c8047fc710ea9314b9b76b
commit-date: 2021-10-25
host: x86_64-pc-windows-msvc
release: 1.58.0-nightly
LLVM version: 13.0.0

crate version:

stdsimd = { git = "https://github.com/rust-lang/portable-simd", rev = "772bf2090e04db68790549bae36e5180423f9f65" }
Test Failures

failures:

---- f32::is_finite::lanes_1 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false]`,\n right: `[true]` at crates/test_helpers/src/lib.rs:169"), [0.0])', /project/crates/test_helpers/src/lib.rs:85:43
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- f32::is_finite::lanes_16 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, true, true, true, true, true, true, true, true, true, true, true, false, true]`,\n right: `[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_finite::lanes_2 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true]`,\n right: `[true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_finite::lanes_32 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true]`,\n right: `[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_finite::lanes_4 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true, true, true]`,\n right: `[true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_finite::lanes_8 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, true, true, false, true, true, true, true]`,\n right: `[true, true, true, true, true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_infinite::lanes_1 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true]`,\n right: `[false]` at crates/test_helpers/src/lib.rs:169"), [0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_infinite::lanes_16 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true, false, false, false, false, false, false, false, false, false, false, false, false, true, false]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_infinite::lanes_2 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false]`,\n right: `[false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_infinite::lanes_32 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_infinite::lanes_4 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, false, false]`,\n right: `[false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_infinite::lanes_8 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, false, false, true, false, false, false, false]`,\n right: `[false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_normal::lanes_1 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true]`,\n right: `[false]` at crates/test_helpers/src/lib.rs:169"), [0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_normal::lanes_16 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, false, false, false, true, false, true, true, false, false, false, false, false, true]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_normal::lanes_2 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false]`,\n right: `[false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_normal::lanes_32 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, false, false, false, true, false, true, true, false, false, false, false, false, true, true, true, true, false, false, false, false, true, false, true, false, true, false, false, false, true]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_normal::lanes_4 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, false]`,\n right: `[false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_normal::lanes_8 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, false, false, false, true, false]`,\n right: `[false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_negative::lanes_1 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true]`,\n right: `[false]` at crates/test_helpers/src/lib.rs:169"), [0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_negative::lanes_16 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, true, false, true, true, false, true, true, false, false, true, true, false, true]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_negative::lanes_2 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false]`,\n right: `[false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_negative::lanes_32 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, true, false, true, true, false, true, true, false, false, true, true, false, true, true, true, true, true, false, false, true, true, false, true, true, true, false, false, false, true]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_negative::lanes_4 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, true]`,\n right: `[false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_negative::lanes_8 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true, false, true, true, false, true, true, false]`,\n right: `[false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_positive::lanes_1 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false]`,\n right: `[true]` at crates/test_helpers/src/lib.rs:169"), [0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_positive::lanes_16 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false]`,\n right: `[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_positive::lanes_2 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true]`,\n right: `[true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_positive::lanes_32 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true, false, false, true, false, false, true, false, false, true, true, false, false, true, false, false, false, false, false, true, true, false, false, true, false, false, false, true, true, true, false]`,\n right: `[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_positive::lanes_4 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true, false, false]`,\n right: `[true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_sign_positive::lanes_8 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true, false, false, true, false, false, true]`,\n right: `[true, true, true, true, true, true, true, true]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_subnormal::lanes_1 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[true]`,\n right: `[false]` at crates/test_helpers/src/lib.rs:169"), [0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_subnormal::lanes_16 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, false, false, true, false, true, false, false, false, false, false, false, false, false, false, false]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_subnormal::lanes_2 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, true]`,\n right: `[false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_subnormal::lanes_32 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, false, false, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, true, false, false, false, false, false, false, false, false, false]`,\n right: `[false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_subnormal::lanes_4 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, false, false, true]`,\n right: `[false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43

---- f32::is_subnormal::lanes_8 stdout ----
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Fail(Reason("assertion failed: `(left == right)` \n  left: `[false, false, false, true, false, true, false, false]`,\n right: `[false, false, false, false, false, false, false, false]` at crates/test_helpers/src/lib.rs:169"), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0])', /project/crates/test_helpers/src/lib.rs:85:43


failures:
error: test failed, to rerun pass '-p core_simd --test f32_ops'
    f32::is_finite::lanes_1
    f32::is_finite::lanes_16
    f32::is_finite::lanes_2
    f32::is_finite::lanes_32
    f32::is_finite::lanes_4
    f32::is_finite::lanes_8
    f32::is_infinite::lanes_1
    f32::is_infinite::lanes_16
    f32::is_infinite::lanes_2
    f32::is_infinite::lanes_32
    f32::is_infinite::lanes_4
    f32::is_infinite::lanes_8
    f32::is_normal::lanes_1
    f32::is_normal::lanes_16
    f32::is_normal::lanes_2
    f32::is_normal::lanes_32
    f32::is_normal::lanes_4
    f32::is_normal::lanes_8
    f32::is_sign_negative::lanes_1
    f32::is_sign_negative::lanes_16
    f32::is_sign_negative::lanes_2
    f32::is_sign_negative::lanes_32
    f32::is_sign_negative::lanes_4
    f32::is_sign_negative::lanes_8
    f32::is_sign_positive::lanes_1
    f32::is_sign_positive::lanes_16
    f32::is_sign_positive::lanes_2
    f32::is_sign_positive::lanes_32
    f32::is_sign_positive::lanes_4
    f32::is_sign_positive::lanes_8
    f32::is_subnormal::lanes_1
    f32::is_subnormal::lanes_16
    f32::is_subnormal::lanes_2
    f32::is_subnormal::lanes_32
    f32::is_subnormal::lanes_4
    f32::is_subnormal::lanes_8

test result: FAILED. 252 passed; 36 failed; 0 ignored; 0 measured; 0 filtered out; finished in 290.26s

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: BugE-needs-mcveCall for participation. This issue needs a Minimal Complete and Verifiable Example.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions