11use crate :: S ;
2- use crate :: minimizers :: SIMD_SKIPPED ;
2+ # [ allow ( unused ) ]
33use core:: mem:: transmute;
44use 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) ]
99pub 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