packed_simd
packed_simd copied to clipboard
`vec::bitmask` produces incorrect results for 16-bit, 32-bit, and 64-bit wide vectors on mips, mips64, sparc64, and s390x.
vec::bitmask produces incorrect results for 16-bit, 32-bit, and 64-bit wide vectors on mips and mips64 (both big endian), sparc64, and s390x.
Error msg:
---- v16::i8x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v16.rs:5:1
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
---- v16::m8x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v16.rs:13:1
---- v16::u8x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v16.rs:9:1
---- v32::i16x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v32.rs:18:1
---- v32::i8x4_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `10`,
right: `5`', src/v32.rs:5:1
---- v32::m16x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v32.rs:26:1
---- v32::m8x4_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `10`,
right: `5`', src/v32.rs:13:1
---- v32::u16x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v32.rs:22:1
---- v32::u8x4_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `10`,
right: `5`', src/v32.rs:9:1
---- v64::i16x4_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `10`,
right: `5`', src/v64.rs:18:1
---- v64::i32x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v64.rs:31:1
---- v64::i8x8_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `170`,
right: `85`', src/v64.rs:5:1
---- v64::m16x4_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `10`,
right: `5`', src/v64.rs:26:1
---- v64::m32x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v64.rs:39:1
---- v64::m8x8_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `170`,
right: `85`', src/v64.rs:13:1
---- v64::u16x4_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `10`,
right: `5`', src/v64.rs:22:1
---- v64::u32x2_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `2`,
right: `1`', src/v64.rs:35:1
---- v64::u8x8_bitmask::bitmask stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `170`,
right: `85`', src/v64.rs:9:1
failures:
v16::i8x2_bitmask::bitmask
v16::m8x2_bitmask::bitmask
v16::u8x2_bitmask::bitmask
v32::i16x2_bitmask::bitmask
v32::i8x4_bitmask::bitmask
v32::m16x2_bitmask::bitmask
v32::m8x4_bitmask::bitmask
v32::u16x2_bitmask::bitmask
v32::u8x4_bitmask::bitmask
v64::i16x4_bitmask::bitmask
v64::i32x2_bitmask::bitmask
v64::i8x8_bitmask::bitmask
v64::m16x4_bitmask::bitmask
v64::m32x2_bitmask::bitmask
v64::m8x8_bitmask::bitmask
v64::u16x4_bitmask::bitmask
v64::u32x2_bitmask::bitmask
v64::u8x8_bitmask::bitmask
Also fails on PPC[0] and ppc64[1], ppc64le passes and fails on PartialOrd.
[0] https://travis-ci.com/mati865/ppv/jobs/180334233 [1] https://travis-ci.com/mati865/ppv/jobs/180334234
I don't have any concrete evidence yet, but I wonder if this may be what caused https://github.com/jonhoo/arrav/issues/1 too. Although I don't use bitmask specifically, so maybe not? Still new to all this SIMD terminology :)