< prev index next >
test/jdk/jdk/incubator/vector/Float128VectorTests.java
Print this page
rev 54658 : refactored mask and shuffle creation methods, moved classes to top-level
*** 25,36 ****
* @test
* @modules jdk.incubator.vector
* @run testng/othervm -ea -esa Float128VectorTests
*/
! import jdk.incubator.vector.Vector.Shape;
! import jdk.incubator.vector.Vector.Species;
import jdk.incubator.vector.Vector;
import jdk.incubator.vector.FloatVector;
import org.testng.Assert;
--- 25,38 ----
* @test
* @modules jdk.incubator.vector
* @run testng/othervm -ea -esa Float128VectorTests
*/
! import jdk.incubator.vector.VectorShape;
! import jdk.incubator.vector.VectorSpecies;
! import jdk.incubator.vector.VectorShuffle;
! import jdk.incubator.vector.VectorMask;
import jdk.incubator.vector.Vector;
import jdk.incubator.vector.FloatVector;
import org.testng.Assert;
*** 46,56 ****
import java.util.stream.Stream;
@Test
public class Float128VectorTests extends AbstractVectorTest {
! static final Species<Float> SPECIES =
FloatVector.SPECIES_128;
static final int INVOC_COUNT = Integer.getInteger("jdk.incubator.vector.test.loop-iterations", 100);
interface FUnOp {
--- 48,58 ----
import java.util.stream.Stream;
@Test
public class Float128VectorTests extends AbstractVectorTest {
! static final VectorSpecies<Float> SPECIES =
FloatVector.SPECIES_128;
static final int INVOC_COUNT = Integer.getInteger("jdk.incubator.vector.test.loop-iterations", 100);
interface FUnOp {
*** 560,570 ****
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
--- 562,572 ----
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
*** 600,610 ****
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
--- 602,612 ----
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
*** 643,653 ****
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
--- 645,655 ----
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
*** 684,694 ****
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
--- 686,696 ----
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
*** 969,979 ****
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! Vector.Mask<Float> mv = av.lessThan(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] < b[i + j]);
}
--- 971,981 ----
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! VectorMask<Float> mv = av.lessThan(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] < b[i + j]);
}
*** 989,999 ****
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! Vector.Mask<Float> mv = av.greaterThan(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] > b[i + j]);
}
--- 991,1001 ----
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! VectorMask<Float> mv = av.greaterThan(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] > b[i + j]);
}
*** 1009,1019 ****
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! Vector.Mask<Float> mv = av.equal(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] == b[i + j]);
}
--- 1011,1021 ----
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! VectorMask<Float> mv = av.equal(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] == b[i + j]);
}
*** 1029,1039 ****
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! Vector.Mask<Float> mv = av.notEqual(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] != b[i + j]);
}
--- 1031,1041 ----
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! VectorMask<Float> mv = av.notEqual(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] != b[i + j]);
}
*** 1049,1059 ****
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! Vector.Mask<Float> mv = av.lessThanEq(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] <= b[i + j]);
}
--- 1051,1061 ----
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! VectorMask<Float> mv = av.lessThanEq(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] <= b[i + j]);
}
*** 1069,1079 ****
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! Vector.Mask<Float> mv = av.greaterThanEq(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] >= b[i + j]);
}
--- 1071,1081 ----
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
! VectorMask<Float> mv = av.greaterThanEq(bv);
// Check results as part of computation.
for (int j = 0; j < SPECIES.length(); j++) {
Assert.assertEquals(mv.getElement(j), a[i + j] >= b[i + j]);
}
*** 1091,1101 ****
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
--- 1093,1103 ----
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
*** 1114,1124 ****
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.rearrange(FloatVector.shuffleFromArray(SPECIES, order, i)).intoArray(r, i);
}
}
assertRearrangeArraysEquals(a, r, order, SPECIES.length());
}
--- 1116,1126 ----
float[] r = fr.apply(SPECIES.length());
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! av.rearrange(VectorShuffle.fromArray(SPECIES, order, i)).intoArray(r, i);
}
}
assertRearrangeArraysEquals(a, r, order, SPECIES.length());
}
*** 1754,1764 ****
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] c = fc.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
--- 1756,1766 ----
float[] a = fa.apply(SPECIES.length());
float[] b = fb.apply(SPECIES.length());
float[] c = fc.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
FloatVector bv = FloatVector.fromArray(SPECIES, b, i);
*** 1794,1804 ****
static void negMaskedFloat128VectorTests(IntFunction<float[]> fa,
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
av.neg(vmask).intoArray(r, i);
--- 1796,1806 ----
static void negMaskedFloat128VectorTests(IntFunction<float[]> fa,
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
av.neg(vmask).intoArray(r, i);
*** 1831,1841 ****
static void absMaskedFloat128VectorTests(IntFunction<float[]> fa,
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
av.abs(vmask).intoArray(r, i);
--- 1833,1843 ----
static void absMaskedFloat128VectorTests(IntFunction<float[]> fa,
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
av.abs(vmask).intoArray(r, i);
*** 1876,1886 ****
static void sqrtMaskedFloat128VectorTests(IntFunction<float[]> fa,
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! Vector.Mask<Float> vmask = FloatVector.maskFromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
av.sqrt(vmask).intoArray(r, i);
--- 1878,1888 ----
static void sqrtMaskedFloat128VectorTests(IntFunction<float[]> fa,
IntFunction<boolean[]> fm) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
boolean[] mask = fm.apply(SPECIES.length());
! VectorMask<Float> vmask = VectorMask.fromValues(SPECIES, mask);
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
av.sqrt(vmask).intoArray(r, i);
< prev index next >