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) }, + ) }}; }