Skip to content

Commit d7df66b

Browse files
committed
Address compilation failure on aarch64, in parallel mode
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
1 parent dbf4ca5 commit d7df66b

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

src/full/encoder.rs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ use super::consts::BOUNDARY_MARKER;
22
use crate::RLNCError;
33
use rand::Rng;
44

5-
#[cfg(not(feature = "parallel"))]
6-
use crate::common::simd::gf256_mul_vec_by_scalar_then_add_into_vec;
7-
85
#[cfg(all(feature = "parallel", not(any(target_arch = "x86", target_arch = "x86_64"))))]
96
use crate::common::gf256::Gf256;
10-
#[cfg(feature = "parallel")]
7+
#[cfg(not(feature = "parallel"))]
8+
use crate::common::simd::gf256_mul_vec_by_scalar_then_add_into_vec;
9+
#[cfg(all(feature = "parallel", any(target_arch = "x86", target_arch = "x86_64")))]
1110
use crate::common::simd::{gf256_inplace_add_vectors, gf256_inplace_mul_vec_by_scalar};
1211
#[cfg(feature = "parallel")]
1312
use rayon::prelude::*;
@@ -165,14 +164,28 @@ impl Encoder {
165164
.fold(
166165
|| vec![0u8; self.piece_byte_len],
167166
|mut acc, cur| {
167+
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
168168
gf256_inplace_add_vectors(&mut acc, &cur);
169+
170+
#[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))]
171+
acc.iter_mut().zip(cur).for_each(|(a, b)| {
172+
*a ^= b;
173+
});
174+
169175
acc
170176
},
171177
)
172178
.reduce(
173179
|| vec![0u8; self.piece_byte_len],
174180
|mut acc, cur| {
181+
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
175182
gf256_inplace_add_vectors(&mut acc, &cur);
183+
184+
#[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))]
185+
acc.iter_mut().zip(cur).for_each(|(a, b)| {
186+
*a ^= b;
187+
});
188+
176189
acc
177190
},
178191
);

0 commit comments

Comments
 (0)