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 }