Skip to content

Commit be498b5

Browse files
committed
Fix order of paired elements in join loop
1 parent 7a75204 commit be498b5

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/compile.rs

+12-10
Original file line numberDiff line numberDiff line change
@@ -468,16 +468,14 @@ impl TypedStmt {
468468
let mut bitonic = vec![];
469469
for i in 0..num_elems_a {
470470
let mut v = a[i * elem_bits_a..(i + 1) * elem_bits_a].to_vec();
471-
for _ in 0..(max_elem_bits - elem_bits_a) {
472-
v.push(0);
473-
}
471+
v.resize(max_elem_bits, 0);
472+
v.insert(join_ty_size, 0);
474473
bitonic.push(v);
475474
}
476475
for i in (0..num_elems_b).rev() {
477476
let mut v = b[i * elem_bits_b..(i + 1) * elem_bits_b].to_vec();
478-
for _ in 0..(max_elem_bits - elem_bits_b) {
479-
v.push(0);
480-
}
477+
v.resize(max_elem_bits, 0);
478+
v.insert(join_ty_size, 1);
481479
bitonic.push(v);
482480
}
483481
let mut offset = num_elems / 2;
@@ -502,10 +500,14 @@ impl TypedStmt {
502500
}
503501
for slice in bitonic.windows(2) {
504502
let mut binding = vec![];
505-
let a = &slice[0][..elem_bits_a];
506-
let b = &slice[1][..elem_bits_b];
507-
binding.extend(a);
508-
binding.extend(b);
503+
let (mut a, mut b) =
504+
circuit.push_sorter(join_ty_size + 1, &slice[0], &slice[1]);
505+
a.remove(join_ty_size);
506+
a.truncate(elem_bits_a);
507+
b.remove(join_ty_size);
508+
b.truncate(elem_bits_b);
509+
binding.extend(&a);
510+
binding.extend(&b);
509511
let join_a = &a[..join_ty_size];
510512
let join_b = &b[..join_ty_size];
511513
let mut join_eq = 1;

0 commit comments

Comments
 (0)