< prev index next >
test/jdk/jdk/incubator/vector/benchmark/src/main/java/benchmark/jdk/incubator/vector/Merge.java
Print this page
rev 55594 : tests and benchmark changes
*** 23,33 ****
* questions.
*/
package benchmark.jdk.incubator.vector;
import jdk.incubator.vector.*;
! import jdk.incubator.vector.IntVector.IntSpecies;
import org.openjdk.jmh.annotations.*;
import java.util.concurrent.TimeUnit;
import static org.junit.jupiter.api.Assertions.*;
--- 23,33 ----
* questions.
*/
package benchmark.jdk.incubator.vector;
import jdk.incubator.vector.*;
! import jdk.incubator.vector.Vector.Species;
import org.openjdk.jmh.annotations.*;
import java.util.concurrent.TimeUnit;
import static org.junit.jupiter.api.Assertions.*;
*** 83,111 ****
@Benchmark
public void merge64_512() {
merge(I64, I256);
}
! IntVector merge(IntSpecies from, IntSpecies to, int idx) {
assert from.length() <= to.length();
int vlenFrom = from.length();
int vlenTo = to.length();
if (vlenFrom == vlenTo) {
return IntVector.fromArray(from, in, idx);
} else {
! var stepDown = (IntSpecies) narrow(to);
int mid = stepDown.length();
var lo = merge(from, stepDown, idx);
var hi = merge(from, stepDown, idx + mid);
return join(stepDown, to, lo, hi);
}
}
! void merge(IntSpecies from, IntSpecies to) {
int vlenTo = to.length();
for (int i = 0; i < in.length; i += vlenTo) {
var r = merge(from, to, i);
r.intoArray(out, i);
}
--- 83,111 ----
@Benchmark
public void merge64_512() {
merge(I64, I256);
}
! IntVector merge(Species<Integer> from, Species<Integer> to, int idx) {
assert from.length() <= to.length();
int vlenFrom = from.length();
int vlenTo = to.length();
if (vlenFrom == vlenTo) {
return IntVector.fromArray(from, in, idx);
} else {
! var stepDown = narrow(to);
int mid = stepDown.length();
var lo = merge(from, stepDown, idx);
var hi = merge(from, stepDown, idx + mid);
return join(stepDown, to, lo, hi);
}
}
! void merge(Species<Integer> from, Species<Integer> to) {
int vlenTo = to.length();
for (int i = 0; i < in.length; i += vlenTo) {
var r = merge(from, to, i);
r.intoArray(out, i);
}
< prev index next >