From 024c72abebd4a9bde75b54d5c3faab3847fc4533 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Wed, 28 Aug 2024 07:41:59 +0200 Subject: [PATCH] simd_shuffle: pass the idx argument as a vector --- crates/core_arch/src/macros.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/core_arch/src/macros.rs b/crates/core_arch/src/macros.rs index 22c617b928..93eb640079 100644 --- a/crates/core_arch/src/macros.rs +++ b/crates/core_arch/src/macros.rs @@ -114,10 +114,18 @@ macro_rules! types { )*); } +#[allow(unused)] +#[repr(simd)] +pub(crate) struct SimdShuffleIdx(pub(crate) [u32; LEN]); + #[allow(unused)] macro_rules! simd_shuffle { ($x:expr, $y:expr, $idx:expr $(,)?) => {{ - $crate::intrinsics::simd::simd_shuffle::<_, [u32; _], _>($x, $y, const { $idx }) + $crate::intrinsics::simd::simd_shuffle( + $x, + $y, + const { $crate::core_arch::macros::SimdShuffleIdx($idx) }, + ) }}; }