Skip to content

Commit 9261327

Browse files
committed
merge
Signed-off-by: Nicholas Gates <[email protected]>
1 parent 7938a17 commit 9261327

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

vortex-compute/benches/filter_bitview.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ const N: usize = 1024;
2323
type BitView<'a> = vortex_buffer::BitView<'a, 128>;
2424

2525
trait FilterImpl {
26-
fn filter<T: Copy>(bitview: &BitView, slice: &mut [T]);
26+
fn filter<'a, T: Copy>(bitview: &BitView, slice: &'a mut [T]) -> &'a mut [T];
2727
}
2828

2929
/// The main entry point for the filter function that performs all the dispatch.
3030
struct ActualFilter;
3131
impl FilterImpl for ActualFilter {
32-
fn filter<T: Copy>(bitview: &BitView, slice: &mut [T]) {
32+
fn filter<'a, T: Copy>(bitview: &BitView, slice: &'a mut [T]) -> &'a mut [T] {
3333
slice.filter(bitview)
3434
}
3535
}
@@ -44,8 +44,11 @@ impl FilterImpl for ScalarFilter {
4444
struct NeonFilter;
4545
impl FilterImpl for NeonFilter {
4646
fn filter<T: Copy>(bitview: &BitView, slice: &mut [T]) {
47-
if arch::is_aarch64_feature_detected!("neon") {
48-
bench::bench_filter_neon::<_, T>(bitview, slice)
47+
#[cfg(target_arch = "aarch64")]
48+
{
49+
if arch::is_aarch64_feature_detected!("neon") {
50+
bench::bench_filter_neon::<_, T>(bitview, slice)
51+
}
4952
}
5053
}
5154
}
@@ -94,7 +97,6 @@ fn bench_filter_fn<F: FilterImpl, T: Default + Copy>(bencher: Bencher, mask_dens
9497

9598
bencher.bench_local(|| {
9699
let view = BitView::new(mask.inner().as_ref().try_into().unwrap());
97-
F::filter(&view, &mut buffer);
98-
black_box(&mut buffer);
100+
black_box(F::filter(&view, &mut buffer));
99101
});
100102
}

vortex-compute/src/filter/slice/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// SPDX-License-Identifier: Apache-2.0
22
// SPDX-FileCopyrightText: Copyright the Vortex contributors
33

4-
use std::arch::is_aarch64_feature_detected;
54
use std::ptr;
65

76
use vortex_buffer::BitView;
@@ -19,7 +18,7 @@ impl<'a, const NB: usize, T: Copy> Filter<BitView<'a, NB>> for &mut [T] {
1918
fn filter(self, mask: &BitView<'a, NB>) -> Self::Output {
2019
#[cfg(target_arch = "aarch64")]
2120
{
22-
if is_aarch64_feature_detected!("neon") {
21+
if std::arch::is_aarch64_feature_detected!("neon") {
2322
// NEON is only faster for sufficiently dense masks.
2423
match size_of::<T>() {
2524
1 | 2 if mask.true_count() < (BitView::<NB>::N / 4) => {

0 commit comments

Comments
 (0)