--- old/test/jdk/jdk/incubator/vector/benchmark/src/main/java/benchmark/jdk/incubator/vector/Byte256Vector.java 2019-04-26 14:55:04.284138300 -0700 +++ new/test/jdk/jdk/incubator/vector/benchmark/src/main/java/benchmark/jdk/incubator/vector/Byte256Vector.java 2019-04-26 14:55:03.695540100 -0700 @@ -24,6 +24,7 @@ package benchmark.jdk.incubator.vector; import jdk.incubator.vector.Vector; +import jdk.incubator.vector.VectorMask; import jdk.incubator.vector.VectorShape; import jdk.incubator.vector.VectorSpecies; import jdk.incubator.vector.VectorShuffle; @@ -319,9 +320,87 @@ + @Benchmark + public void shiftLeft(Blackhole bh) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.shiftLeft(bv).intoArray(r, i); + } + } + + bh.consume(r); + } + + @Benchmark + public void shiftLeftMasked(Blackhole bh) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromValues(SPECIES, mask); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.shiftLeft(bv, vmask).intoArray(r, i); + } + } + + bh.consume(r); + } + + + + + + + + @Benchmark + public void shiftRight(Blackhole bh) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.shiftRight(bv).intoArray(r, i); + } + } + + bh.consume(r); + } + + + + @Benchmark + public void shiftRightMasked(Blackhole bh) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromValues(SPECIES, mask); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.shiftRight(bv, vmask).intoArray(r, i); + } + } + bh.consume(r); + } @@ -330,7 +409,7 @@ @Benchmark - public void aShiftRShift(Blackhole bh) { + public void shiftArithmeticRight(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); @@ -338,7 +417,8 @@ for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.aShiftR((int)b[i]).intoArray(r, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.shiftArithmeticRight(bv).intoArray(r, i); } } @@ -348,7 +428,7 @@ @Benchmark - public void aShiftRMaskedShift(Blackhole bh) { + public void shiftArithmeticRightMasked(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); @@ -358,7 +438,8 @@ for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.aShiftR((int)b[i], vmask).intoArray(r, i); + ByteVector bv = ByteVector.fromArray(SPECIES, b, i); + av.shiftArithmeticRight(bv, vmask).intoArray(r, i); } } @@ -367,8 +448,12 @@ + + + + @Benchmark - public void shiftLShift(Blackhole bh) { + public void shiftLeftShift(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); @@ -376,7 +461,7 @@ for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.shiftL((int)b[i]).intoArray(r, i); + av.shiftLeft((int)b[i]).intoArray(r, i); } } @@ -386,7 +471,7 @@ @Benchmark - public void shiftLMaskedShift(Blackhole bh) { + public void shiftLeftMaskedShift(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); @@ -396,7 +481,7 @@ for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.shiftL((int)b[i], vmask).intoArray(r, i); + av.shiftLeft((int)b[i], vmask).intoArray(r, i); } } @@ -405,8 +490,12 @@ + + + + @Benchmark - public void shiftRShift(Blackhole bh) { + public void shiftRightShift(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); @@ -414,7 +503,7 @@ for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.shiftR((int)b[i]).intoArray(r, i); + av.shiftRight((int)b[i]).intoArray(r, i); } } @@ -424,7 +513,7 @@ @Benchmark - public void shiftRMaskedShift(Blackhole bh) { + public void shiftRightMaskedShift(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte[] b = fb.apply(SPECIES.length()); byte[] r = fr.apply(SPECIES.length()); @@ -434,7 +523,7 @@ for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - av.shiftR((int)b[i], vmask).intoArray(r, i); + av.shiftRight((int)b[i], vmask).intoArray(r, i); } } @@ -447,6 +536,44 @@ + @Benchmark + public void shiftArithmeticRightShift(Blackhole bh) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + av.shiftArithmeticRight((int)b[i]).intoArray(r, i); + } + } + + bh.consume(r); + } + + + + @Benchmark + public void shiftArithmeticRightMaskedShift(Blackhole bh) { + byte[] a = fa.apply(SPECIES.length()); + byte[] b = fb.apply(SPECIES.length()); + byte[] r = fr.apply(SPECIES.length()); + boolean[] mask = fm.apply(SPECIES.length()); + VectorMask vmask = VectorMask.fromValues(SPECIES, mask); + + for (int ic = 0; ic < INVOC_COUNT; ic++) { + for (int i = 0; i < a.length; i += SPECIES.length()) { + ByteVector av = ByteVector.fromArray(SPECIES, a, i); + av.shiftArithmeticRight((int)b[i], vmask).intoArray(r, i); + } + } + + bh.consume(r); + } + + + @Benchmark public void max(Blackhole bh) { @@ -484,7 +611,7 @@ @Benchmark - public void andAll(Blackhole bh) { + public void andLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = -1; @@ -492,7 +619,7 @@ ra = -1; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra &= av.andAll(); + ra &= av.andLanes(); } } bh.consume(ra); @@ -501,7 +628,7 @@ @Benchmark - public void orAll(Blackhole bh) { + public void orLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = 0; @@ -509,7 +636,7 @@ ra = 0; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra |= av.orAll(); + ra |= av.orLanes(); } } bh.consume(ra); @@ -518,7 +645,7 @@ @Benchmark - public void xorAll(Blackhole bh) { + public void xorLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = 0; @@ -526,7 +653,7 @@ ra = 0; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra ^= av.xorAll(); + ra ^= av.xorLanes(); } } bh.consume(ra); @@ -534,7 +661,7 @@ @Benchmark - public void addAll(Blackhole bh) { + public void addLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = 0; @@ -542,14 +669,14 @@ ra = 0; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra += av.addAll(); + ra += av.addLanes(); } } bh.consume(ra); } @Benchmark - public void mulAll(Blackhole bh) { + public void mulLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = 1; @@ -557,14 +684,14 @@ ra = 1; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra *= av.mulAll(); + ra *= av.mulLanes(); } } bh.consume(ra); } @Benchmark - public void minAll(Blackhole bh) { + public void minLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = Byte.MAX_VALUE; @@ -572,14 +699,14 @@ ra = Byte.MAX_VALUE; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra = (byte)Math.min(ra, av.minAll()); + ra = (byte)Math.min(ra, av.minLanes()); } } bh.consume(ra); } @Benchmark - public void maxAll(Blackhole bh) { + public void maxLanes(Blackhole bh) { byte[] a = fa.apply(SPECIES.length()); byte ra = Byte.MIN_VALUE; @@ -587,7 +714,7 @@ ra = Byte.MIN_VALUE; for (int i = 0; i < a.length; i += SPECIES.length()) { ByteVector av = ByteVector.fromArray(SPECIES, a, i); - ra = (byte)Math.max(ra, av.maxAll()); + ra = (byte)Math.max(ra, av.maxLanes()); } } bh.consume(ra); @@ -647,7 +774,7 @@ byte[] a = fa.apply(size); byte[] b = fb.apply(size); boolean[] ms = fm.apply(size); - VectorMask m = VectorMask.maskFromArray(SPECIES, ms, 0); + VectorMask m = VectorMask.fromArray(SPECIES, ms, 0); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { @@ -667,7 +794,7 @@ byte[] a = fa.apply(size); byte[] b = fb.apply(size); boolean[] ms = fm.apply(size); - VectorMask m = VectorMask.maskFromArray(SPECIES, ms, 0); + VectorMask m = VectorMask.fromArray(SPECIES, ms, 0); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { @@ -687,7 +814,7 @@ byte[] a = fa.apply(size); byte[] b = fb.apply(size); boolean[] ms = fm.apply(size); - VectorMask m = VectorMask.maskFromArray(SPECIES, ms, 0); + VectorMask m = VectorMask.fromArray(SPECIES, ms, 0); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { @@ -707,7 +834,7 @@ byte[] a = fa.apply(size); byte[] b = fb.apply(size); boolean[] ms = fm.apply(size); - VectorMask m = VectorMask.maskFromArray(SPECIES, ms, 0); + VectorMask m = VectorMask.fromArray(SPECIES, ms, 0); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { @@ -727,7 +854,7 @@ byte[] a = fa.apply(size); byte[] b = fb.apply(size); boolean[] ms = fm.apply(size); - VectorMask m = VectorMask.maskFromArray(SPECIES, ms, 0); + VectorMask m = VectorMask.fromArray(SPECIES, ms, 0); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) { @@ -747,7 +874,7 @@ byte[] a = fa.apply(size); byte[] b = fb.apply(size); boolean[] ms = fm.apply(size); - VectorMask m = VectorMask.maskFromArray(SPECIES, ms, 0); + VectorMask m = VectorMask.fromArray(SPECIES, ms, 0); for (int ic = 0; ic < INVOC_COUNT; ic++) { for (int i = 0; i < a.length; i += SPECIES.length()) {