Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 2b3f4b2

Browse files
committed
Add LanesAtMost64 bounds
1 parent 15dd0ae commit 2b3f4b2

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

crates/core_simd/src/macros.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ macro_rules! impl_vector {
141141
}
142142
}
143143

144-
impl <const LANES: usize> From<$name<LANES>> for [$type; LANES] {
144+
impl <const LANES: usize> From<$name<LANES>> for [$type; LANES] where $name<LANES>: crate::LanesAtMost64 {
145145
fn from(vector: $name<LANES>) -> Self {
146146
vector.to_array()
147147
}

crates/test_helpers/src/lib.rs

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,24 @@ macro_rules! test_lanes {
241241
mod $test {
242242
use super::*;
243243

244-
fn implementation<const $lanes: usize>() $body
244+
fn implementation<const $lanes: usize>()
245+
where
246+
core_simd::SimdU8<$lanes>: core_simd::LanesAtMost64,
247+
core_simd::SimdU16<$lanes>: core_simd::LanesAtMost64,
248+
core_simd::SimdU32<$lanes>: core_simd::LanesAtMost64,
249+
core_simd::SimdU64<$lanes>: core_simd::LanesAtMost64,
250+
core_simd::SimdU128<$lanes>: core_simd::LanesAtMost64,
251+
core_simd::SimdUsize<$lanes>: core_simd::LanesAtMost64,
252+
core_simd::SimdI8<$lanes>: core_simd::LanesAtMost64,
253+
core_simd::SimdI16<$lanes>: core_simd::LanesAtMost64,
254+
core_simd::SimdI32<$lanes>: core_simd::LanesAtMost64,
255+
core_simd::SimdI64<$lanes>: core_simd::LanesAtMost64,
256+
core_simd::SimdI128<$lanes>: core_simd::LanesAtMost64,
257+
core_simd::SimdIsize<$lanes>: core_simd::LanesAtMost64,
258+
core_simd::SimdF32<$lanes>: core_simd::LanesAtMost64,
259+
core_simd::SimdF64<$lanes>: core_simd::LanesAtMost64,
260+
core_simd::BitMask<$lanes>: core_simd::LanesAtMost64,
261+
$body
245262

246263
#[cfg(target_arch = "wasm32")]
247264
wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
@@ -302,7 +319,24 @@ macro_rules! test_lanes_panic {
302319
mod $test {
303320
use super::*;
304321

305-
fn implementation<const $lanes: usize>() $body
322+
fn implementation<const $lanes: usize>()
323+
where
324+
core_simd::SimdU8<$lanes>: core_simd::LanesAtMost64,
325+
core_simd::SimdU16<$lanes>: core_simd::LanesAtMost64,
326+
core_simd::SimdU32<$lanes>: core_simd::LanesAtMost64,
327+
core_simd::SimdU64<$lanes>: core_simd::LanesAtMost64,
328+
core_simd::SimdU128<$lanes>: core_simd::LanesAtMost64,
329+
core_simd::SimdUsize<$lanes>: core_simd::LanesAtMost64,
330+
core_simd::SimdI8<$lanes>: core_simd::LanesAtMost64,
331+
core_simd::SimdI16<$lanes>: core_simd::LanesAtMost64,
332+
core_simd::SimdI32<$lanes>: core_simd::LanesAtMost64,
333+
core_simd::SimdI64<$lanes>: core_simd::LanesAtMost64,
334+
core_simd::SimdI128<$lanes>: core_simd::LanesAtMost64,
335+
core_simd::SimdIsize<$lanes>: core_simd::LanesAtMost64,
336+
core_simd::SimdF32<$lanes>: core_simd::LanesAtMost64,
337+
core_simd::SimdF64<$lanes>: core_simd::LanesAtMost64,
338+
core_simd::BitMask<$lanes>: core_simd::LanesAtMost64,
339+
$body
306340

307341
#[test]
308342
#[should_panic]

0 commit comments

Comments
 (0)