< prev index next >
test/jdk/jdk/incubator/vector/DoubleMaxVectorTests.java
Print this page
rev 55894 : 8222897: [vector] Renaming of shift, rotate operations. Few other api changes.
Summary: Renaming of shift, rotate operations. Few other api changes.
Reviewed-by: jrose, briangoetz
*** 732,741 ****
--- 732,753 ----
+
+
+
+
+
+
+
+
+
+
+
+
static double max(double a, double b) {
return (double)(Math.max(a, b));
}
@Test(dataProvider = "doubleBinaryOpProvider")
*** 778,797 ****
! static double addAll(double[] a, int idx) {
double res = 0;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res += a[i];
}
return res;
}
! static double addAll(double[] a) {
double res = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
double tmp = 0;
for (int j = 0; j < SPECIES.length(); j++) {
tmp += a[i + j];
--- 790,809 ----
! static double addLanes(double[] a, int idx) {
double res = 0;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res += a[i];
}
return res;
}
! static double addLanes(double[] a) {
double res = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
double tmp = 0;
for (int j = 0; j < SPECIES.length(); j++) {
tmp += a[i + j];
*** 800,841 ****
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void addAllDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = 0;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.addAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra += av.addAll();
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::addAll, DoubleMaxVectorTests::addAll);
}
! static double mulAll(double[] a, int idx) {
double res = 1;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res *= a[i];
}
return res;
}
! static double mulAll(double[] a) {
double res = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
double tmp = 1;
for (int j = 0; j < SPECIES.length(); j++) {
tmp *= a[i + j];
--- 812,853 ----
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void addLanesDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = 0;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.addLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra += av.addLanes();
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::addLanes, DoubleMaxVectorTests::addLanes);
}
! static double mulLanes(double[] a, int idx) {
double res = 1;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res *= a[i];
}
return res;
}
! static double mulLanes(double[] a) {
double res = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
double tmp = 1;
for (int j = 0; j < SPECIES.length(); j++) {
tmp *= a[i + j];
*** 844,954 ****
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void mulAllDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = 1;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.mulAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra *= av.mulAll();
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::mulAll, DoubleMaxVectorTests::mulAll);
}
! static double minAll(double[] a, int idx) {
double res = Double.POSITIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (double)Math.min(res, a[i]);
}
return res;
}
! static double minAll(double[] a) {
double res = Double.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (double)Math.min(res, a[i]);
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void minAllDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = Double.POSITIVE_INFINITY;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.minAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Double.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra = (double)Math.min(ra, av.minAll());
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::minAll, DoubleMaxVectorTests::minAll);
}
! static double maxAll(double[] a, int idx) {
double res = Double.NEGATIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (double)Math.max(res, a[i]);
}
return res;
}
! static double maxAll(double[] a) {
double res = Double.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (double)Math.max(res, a[i]);
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void maxAllDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = Double.NEGATIVE_INFINITY;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.maxAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Double.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra = (double)Math.max(ra, av.maxAll());
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::maxAll, DoubleMaxVectorTests::maxAll);
}
--- 856,966 ----
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void mulLanesDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = 1;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.mulLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra *= av.mulLanes();
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::mulLanes, DoubleMaxVectorTests::mulLanes);
}
! static double minLanes(double[] a, int idx) {
double res = Double.POSITIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (double)Math.min(res, a[i]);
}
return res;
}
! static double minLanes(double[] a) {
double res = Double.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (double)Math.min(res, a[i]);
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void minLanesDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = Double.POSITIVE_INFINITY;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.minLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Double.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra = (double)Math.min(ra, av.minLanes());
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::minLanes, DoubleMaxVectorTests::minLanes);
}
! static double maxLanes(double[] a, int idx) {
double res = Double.NEGATIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (double)Math.max(res, a[i]);
}
return res;
}
! static double maxLanes(double[] a) {
double res = Double.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (double)Math.max(res, a[i]);
}
return res;
}
@Test(dataProvider = "doubleUnaryOpProvider")
! static void maxLanesDoubleMaxVectorTests(IntFunction<double[]> fa) {
double[] a = fa.apply(SPECIES.length());
double[] r = fr.apply(SPECIES.length());
double ra = Double.NEGATIVE_INFINITY;
for (int ic = 0; ic < INVOC_COUNT; ic++) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! r[i] = av.maxLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Double.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
DoubleVector av = DoubleVector.fromArray(SPECIES, a, i);
! ra = (double)Math.max(ra, av.maxLanes());
}
}
! assertReductionArraysEquals(a, r, ra, DoubleMaxVectorTests::maxLanes, DoubleMaxVectorTests::maxLanes);
}
< prev index next >