< prev index next >

test/jdk/jdk/incubator/vector/benchmark/src/main/java/benchmark/jdk/incubator/vector/Int512Vector.java

Print this page




1213         bh.consume(r);
1214     }
1215 
1216     @Benchmark
1217     public void rearrange(Blackhole bh) {
1218         int[] a = fa.apply(SPECIES.length());
1219         int[] order = fs.apply(a.length, SPECIES.length());
1220         int[] r = fr.apply(SPECIES.length());
1221 
1222         for (int ic = 0; ic < INVOC_COUNT; ic++) {
1223             for (int i = 0; i < a.length; i += SPECIES.length()) {
1224                 IntVector av = IntVector.fromArray(SPECIES, a, i);
1225                 av.rearrange(VectorShuffle.fromArray(SPECIES, order, i)).intoArray(r, i);
1226             }
1227         }
1228 
1229         bh.consume(r);
1230     }
1231 
1232     @Benchmark
1233     public void extract(Blackhole bh) {
1234         int[] a = fa.apply(SPECIES.length());
1235         int[] r = fr.apply(SPECIES.length());
1236 
1237         for (int ic = 0; ic < INVOC_COUNT; ic++) {
1238             for (int i = 0; i < a.length; i += SPECIES.length()) {
1239                 IntVector av = IntVector.fromArray(SPECIES, a, i);
1240                 int num_lanes = SPECIES.length();
1241                 // Manually unroll because full unroll happens after intrinsification.
1242                 // Unroll is needed because get intrinsic requires for index to be a known constant.
1243                 if (num_lanes == 1) {
1244                     r[i]=av.lane(0);
1245                 } else if (num_lanes == 2) {
1246                     r[i]=av.lane(0);
1247                     r[i+1]=av.lane(1);
1248                 } else if (num_lanes == 4) {
1249                     r[i]=av.lane(0);
1250                     r[i+1]=av.lane(1);
1251                     r[i+2]=av.lane(2);
1252                     r[i+3]=av.lane(3);
1253                 } else if (num_lanes == 8) {




1213         bh.consume(r);
1214     }
1215 
1216     @Benchmark
1217     public void rearrange(Blackhole bh) {
1218         int[] a = fa.apply(SPECIES.length());
1219         int[] order = fs.apply(a.length, SPECIES.length());
1220         int[] r = fr.apply(SPECIES.length());
1221 
1222         for (int ic = 0; ic < INVOC_COUNT; ic++) {
1223             for (int i = 0; i < a.length; i += SPECIES.length()) {
1224                 IntVector av = IntVector.fromArray(SPECIES, a, i);
1225                 av.rearrange(VectorShuffle.fromArray(SPECIES, order, i)).intoArray(r, i);
1226             }
1227         }
1228 
1229         bh.consume(r);
1230     }
1231 
1232     @Benchmark
1233     public void laneextract(Blackhole bh) {
1234         int[] a = fa.apply(SPECIES.length());
1235         int[] r = fr.apply(SPECIES.length());
1236 
1237         for (int ic = 0; ic < INVOC_COUNT; ic++) {
1238             for (int i = 0; i < a.length; i += SPECIES.length()) {
1239                 IntVector av = IntVector.fromArray(SPECIES, a, i);
1240                 int num_lanes = SPECIES.length();
1241                 // Manually unroll because full unroll happens after intrinsification.
1242                 // Unroll is needed because get intrinsic requires for index to be a known constant.
1243                 if (num_lanes == 1) {
1244                     r[i]=av.lane(0);
1245                 } else if (num_lanes == 2) {
1246                     r[i]=av.lane(0);
1247                     r[i+1]=av.lane(1);
1248                 } else if (num_lanes == 4) {
1249                     r[i]=av.lane(0);
1250                     r[i+1]=av.lane(1);
1251                     r[i+2]=av.lane(2);
1252                     r[i+3]=av.lane(3);
1253                 } else if (num_lanes == 8) {


< prev index next >