< prev index next >
test/jdk/jdk/incubator/vector/templates/Perf-Scalar-Rearrange.template
Print this page
rev 55606 : 8221812: Fine-tune jmh test for vector api
Summary: To compare performance of vector api and auto vectorization, vector
api and scalar test cases are updated to keep aligned.
Reviewed-by: duke
*** 1,39 ****
! Object rearrangeShared(int window) {
$type$[] as = fa.apply(size);
int[] order = fs.apply(size);
$type$[] rs = fr.apply(size);
for (int i = 0; i < as.length; i += window) {
for (int j = 0; j < window; j++) {
$type$ a = as[i+j];
int pos = order[j];
rs[i + pos] = a;
}
}
! return rs;
}
@Benchmark
! public Object rearrange064() {
int window = 64 / $Wideboxtype$.SIZE;
! return rearrangeShared(window);
}
@Benchmark
! public Object rearrange128() {
int window = 128 / $Wideboxtype$.SIZE;
! return rearrangeShared(window);
}
@Benchmark
! public Object rearrange256() {
int window = 256 / $Wideboxtype$.SIZE;
! return rearrangeShared(window);
}
@Benchmark
! public Object rearrange512() {
int window = 512 / $Wideboxtype$.SIZE;
! return rearrangeShared(window);
}
--- 1,41 ----
! void rearrangeShared(int window, Blackhole bh) {
$type$[] as = fa.apply(size);
int[] order = fs.apply(size);
$type$[] rs = fr.apply(size);
+ for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < as.length; i += window) {
for (int j = 0; j < window; j++) {
$type$ a = as[i+j];
int pos = order[j];
rs[i + pos] = a;
}
}
+ }
! bh.consume(rs);
}
@Benchmark
! public void rearrange064(Blackhole bh) {
int window = 64 / $Wideboxtype$.SIZE;
! rearrangeShared(window, bh);
}
@Benchmark
! public void rearrange128(Blackhole bh) {
int window = 128 / $Wideboxtype$.SIZE;
! rearrangeShared(window, bh);
}
@Benchmark
! public void rearrange256(Blackhole bh) {
int window = 256 / $Wideboxtype$.SIZE;
! rearrangeShared(window, bh);
}
@Benchmark
! public void rearrange512(Blackhole bh) {
int window = 512 / $Wideboxtype$.SIZE;
! rearrangeShared(window, bh);
}
< prev index next >