Update std and tests to match std::simd API (remove LaneCount bound and rename to_int to to_simd)
This commit is contained in:
parent
0eaef59233
commit
b71ff51277
3 changed files with 6 additions and 8 deletions
|
|
@ -4443,7 +4443,6 @@ impl<T> [T] {
|
|||
where
|
||||
Simd<T, LANES>: AsRef<[T; LANES]>,
|
||||
T: simd::SimdElement,
|
||||
simd::LaneCount<LANES>: simd::SupportedLaneCount,
|
||||
{
|
||||
// These are expected to always match, as vector types are laid out like
|
||||
// arrays per <https://llvm.org/docs/LangRef.html#vector-type>, but we
|
||||
|
|
@ -4479,7 +4478,6 @@ impl<T> [T] {
|
|||
where
|
||||
Simd<T, LANES>: AsMut<[T; LANES]>,
|
||||
T: simd::SimdElement,
|
||||
simd::LaneCount<LANES>: simd::SupportedLaneCount,
|
||||
{
|
||||
// These are expected to always match, as vector types are laid out like
|
||||
// arrays per <https://llvm.org/docs/LangRef.html#vector-type>, but we
|
||||
|
|
|
|||
|
|
@ -471,7 +471,7 @@ fn simd_ops_i32() {
|
|||
fn simd_mask() {
|
||||
use std::intrinsics::simd::*;
|
||||
|
||||
let intmask = Mask::from_int(i32x4::from_array([0, -1, 0, 0]));
|
||||
let intmask = Mask::from_simd(i32x4::from_array([0, -1, 0, 0]));
|
||||
assert_eq!(intmask, Mask::from_array([false, true, false, false]));
|
||||
assert_eq!(intmask.to_array(), [false, true, false, false]);
|
||||
|
||||
|
|
@ -486,8 +486,8 @@ fn simd_mask() {
|
|||
|
||||
// Also directly call intrinsic, to test both kinds of return types.
|
||||
unsafe {
|
||||
let bitmask1: u16 = simd_bitmask(mask.to_int());
|
||||
let bitmask2: [u8; 2] = simd_bitmask(mask.to_int());
|
||||
let bitmask1: u16 = simd_bitmask(mask.to_simd());
|
||||
let bitmask2: [u8; 2] = simd_bitmask(mask.to_simd());
|
||||
if cfg!(target_endian = "little") {
|
||||
assert_eq!(bitmask1, 0b1010001101001001);
|
||||
assert_eq!(bitmask2, [0b01001001, 0b10100011]);
|
||||
|
|
@ -506,8 +506,8 @@ fn simd_mask() {
|
|||
assert_eq!(bitmask, 0b1000);
|
||||
assert_eq!(Mask::<i64, 4>::from_bitmask(bitmask), mask);
|
||||
unsafe {
|
||||
let bitmask1: u8 = simd_bitmask(mask.to_int());
|
||||
let bitmask2: [u8; 1] = simd_bitmask(mask.to_int());
|
||||
let bitmask1: u8 = simd_bitmask(mask.to_simd());
|
||||
let bitmask2: [u8; 1] = simd_bitmask(mask.to_simd());
|
||||
if cfg!(target_endian = "little") {
|
||||
assert_eq!(bitmask1, 0b1000);
|
||||
assert_eq!(bitmask2, [0b1000]);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ use std::simd::num::*;
|
|||
pub unsafe fn mask_to_array(mask: u8) -> [i32; 8] {
|
||||
let mut output = [0; 8];
|
||||
let m = masksizex8::from_bitmask(mask as _);
|
||||
output.copy_from_slice(&m.to_int().cast::<i32>().to_array());
|
||||
output.copy_from_slice(&m.to_simd().cast::<i32>().to_array());
|
||||
output
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue