Skip to content

Commit bccd8f5

Browse files
Fix build and syncmer tests for scalar fallback
1 parent cfbf076 commit bccd8f5

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

src/intrinsics/dedup.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
use crate::S;
2-
use crate::minimizers::SIMD_SKIPPED;
2+
#[allow(unused)]
33
use core::mem::transmute;
44
use packed_seq::L;
55

6-
/// Append the values of `x` selected by `mask` to `v`.
6+
/// Append the values of `x` where `mask` is *false* to `v`.
77
#[cfg(not(any(target_feature = "avx2", target_feature = "neon")))]
88
#[inline(always)]
99
pub unsafe fn append_filtered_vals(vals: S, mask: S, v: &mut [u32], write_idx: &mut usize) {
1010
unsafe {
11+
let mask = mask.to_array();
12+
let vals = vals.to_array();
1113
for i in 0..L {
12-
if mask.as_array()[i] != 0 {
13-
v.as_mut_ptr().add(*write_idx).write(x.as_array()[i]);
14+
if mask[i] == 0 {
15+
v.as_mut_ptr().add(*write_idx).write(vals[i]);
1416
*write_idx += 1;
1517
}
1618
}
@@ -34,7 +36,7 @@ pub unsafe fn append_unique_vals<const SKIP_MAX: bool>(
3436
let vals = vals.to_array();
3537
let mut prec = old[7];
3638
for (i, &curr) in new.iter().enumerate() {
37-
if curr != prec && cur != SKIPPED {
39+
if curr != prec && (!SKIP_MAX || curr != crate::minimizers::SKIPPED) {
3840
v.as_mut_ptr().add(*write_idx).write(vals[i]);
3941
*write_idx += 1;
4042
prec = curr;
@@ -47,7 +49,7 @@ pub unsafe fn append_unique_vals<const SKIP_MAX: bool>(
4749
/// If an element is different from the preceding element, append the corresponding element of `vals` to `v[write_idx]` and `vals2` to `v2[write_idx]`.
4850
#[cfg(not(any(target_feature = "avx2", target_feature = "neon")))]
4951
#[inline(always)]
50-
pub unsafe fn append_unique_vals_2<const SKIP_MAX: bool>(
52+
pub unsafe fn append_unique_vals_2(
5153
old: S,
5254
new: S,
5355
vals: S,
@@ -145,7 +147,7 @@ pub unsafe fn append_unique_vals<const SKIP_MAX: bool>(
145147
let mut mask = vec_tmp.cmp_eq(new);
146148
if SKIP_MAX {
147149
// skip everything equal to prev, or equal to MAX.
148-
mask |= new.cmp_eq(SIMD_SKIPPED);
150+
mask |= new.cmp_eq(crate::minimizers::SIMD_SKIPPED);
149151
}
150152

151153
append_filtered_vals(vals, mask, v, write_idx);
@@ -282,7 +284,7 @@ pub unsafe fn append_unique_vals<const SKIP_MAX: bool>(
282284
let prec: S = transmute((r1, r2));
283285
let mut dup = prec.cmp_eq(new);
284286
if SKIP_MAX {
285-
dup |= new.cmp_eq(SIMD_SKIPPED);
287+
dup |= new.cmp_eq(crate::minimizers::SIMD_SKIPPED);
286288
}
287289
append_filtered_vals(vals, dup, v, write_idx);
288290
}

0 commit comments

Comments
 (0)