From 6d6a5461e42cac18707dfee42b9f41ee7d078866 Mon Sep 17 00:00:00 2001 From: David Koloski Date: Tue, 1 Oct 2024 11:54:40 -0400 Subject: [PATCH] Fix generic SIMD for big-endian targets --- src/simd/generic.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/simd/generic.rs b/src/simd/generic.rs index 6f6cc56..d3b1b94 100644 --- a/src/simd/generic.rs +++ b/src/simd/generic.rs @@ -73,7 +73,14 @@ impl Group { pub unsafe fn read(ptr: *const u8) -> Self { // SAFETY: The caller has guaranteed that `ptr` is valid for reads and // points to enough bytes for a `Word`. - unsafe { Self(core::ptr::read_unaligned(ptr.cast())) } + #[cfg(target_endian = "little")] + unsafe { + Self(core::ptr::read_unaligned(ptr.cast())) + } + #[cfg(target_endian = "big")] + unsafe { + Self(core::ptr::read_unaligned(ptr.cast::()).swap_bytes()) + } } #[inline] -- 2.46.1