< 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     Object rearrangeShared(int window) {
   2         $type$[] as = fa.apply(size);
   3         int[] order = fs.apply(size);
   4         $type$[] rs = fr.apply(size);
   5 

   6         for (int i = 0; i < as.length; i += window) {
   7             for (int j = 0; j < window; j++) {
   8                 $type$ a = as[i+j];
   9                 int pos = order[j];
  10                 rs[i + pos] = a;
  11             }
  12         }

  13 
  14         return rs;
  15     }
  16 
  17     @Benchmark
  18     public Object rearrange064() {
  19         int window = 64 / $Wideboxtype$.SIZE;
  20         return rearrangeShared(window);
  21     }
  22 
  23     @Benchmark
  24     public Object rearrange128() {
  25         int window = 128 / $Wideboxtype$.SIZE;
  26         return rearrangeShared(window);
  27     }
  28 
  29     @Benchmark
  30     public Object rearrange256() {
  31         int window = 256 / $Wideboxtype$.SIZE;
  32         return rearrangeShared(window);
  33     }
  34 
  35     @Benchmark
  36     public Object rearrange512() {
  37         int window = 512 / $Wideboxtype$.SIZE;
  38         return rearrangeShared(window);
  39     }
   1     void rearrangeShared(int window, Blackhole bh) {
   2         $type$[] as = fa.apply(size);
   3         int[] order = fs.apply(size);
   4         $type$[] rs = fr.apply(size);
   5 
   6         for (int ic = 0; ic < INVOC_COUNT; ic++) {
   7             for (int i = 0; i < as.length; i += window) {
   8                 for (int j = 0; j < window; j++) {
   9                     $type$ a = as[i+j];
  10                     int pos = order[j];
  11                     rs[i + pos] = a;
  12                 }
  13             }
  14         }
  15 
  16         bh.consume(rs);
  17     }
  18 
  19     @Benchmark
  20     public void rearrange064(Blackhole bh) {
  21         int window = 64 / $Wideboxtype$.SIZE;
  22         rearrangeShared(window, bh);
  23     }
  24 
  25     @Benchmark
  26     public void rearrange128(Blackhole bh) {
  27         int window = 128 / $Wideboxtype$.SIZE;
  28         rearrangeShared(window, bh);
  29     }
  30 
  31     @Benchmark
  32     public void rearrange256(Blackhole bh) {
  33         int window = 256 / $Wideboxtype$.SIZE;
  34         rearrangeShared(window, bh);
  35     }
  36 
  37     @Benchmark
  38     public void rearrange512(Blackhole bh) {
  39         int window = 512 / $Wideboxtype$.SIZE;
  40         rearrangeShared(window, bh);
  41     }
< prev index next >