1     @Benchmark
   2     public void gatherBase0(Blackhole bh) {
   3         $type$[] as = fa.apply(size);
   4         int[] is    = fs.apply(size);
   5         $type$[] rs = fr.apply(size);
   6 
   7         for (int ic = 0; ic < INVOC_COUNT; ic++) {
   8             for (int i = 0; i < as.length; i++) {
   9                 int ix = 0 + is[i];
  10                 rs[i] = as[ix];
  11             }
  12         }
  13 
  14         bh.consume(rs);
  15     }
  16 
  17 
  18     void gather(int window, Blackhole bh) {
  19         $type$[] as = fa.apply(size);
  20         int[] is    = fs.apply(size);
  21         $type$[] rs = fr.apply(size);
  22 
  23         for (int ic = 0; ic < INVOC_COUNT; ic++) {
  24             for (int i = 0; i < as.length; i += window) {
  25                 for (int j = 0; j < window; j++) {
  26                     int ix = i + is[i + j];
  27                     rs[i + j] = as[ix];
  28                 }
  29             }
  30         }
  31 
  32         bh.consume(rs);
  33     }
  34 
  35     @Benchmark
  36     public void gather064(Blackhole bh) {
  37         int window = 64 / $Wideboxtype$.SIZE;
  38         gather(window, bh);
  39     }
  40 
  41     @Benchmark
  42     public void gather128(Blackhole bh) {
  43         int window = 128 / $Wideboxtype$.SIZE;
  44         gather(window, bh);
  45     }
  46 
  47     @Benchmark
  48     public void gather256(Blackhole bh) {
  49         int window = 256 / $Wideboxtype$.SIZE;
  50         gather(window, bh);
  51     }
  52 
  53     @Benchmark
  54     public void gather512(Blackhole bh) {
  55         int window = 512 / $Wideboxtype$.SIZE;
  56         gather(window, bh);
  57     }