< prev index next >
test/jdk/jdk/incubator/vector/FloatMaxVectorTests.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 float max(float a, float b) {
return (float)(Math.max(a, b));
}
@Test(dataProvider = "floatBinaryOpProvider")
*** 778,797 ****
! static float addAll(float[] a, int idx) {
float res = 0;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res += a[i];
}
return res;
}
! static float addAll(float[] a) {
float res = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
float tmp = 0;
for (int j = 0; j < SPECIES.length(); j++) {
tmp += a[i + j];
--- 790,809 ----
! static float addLanes(float[] a, int idx) {
float res = 0;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res += a[i];
}
return res;
}
! static float addLanes(float[] a) {
float res = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
float tmp = 0;
for (int j = 0; j < SPECIES.length(); j++) {
tmp += a[i + j];
*** 800,841 ****
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void addAllFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = 0;
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);
! r[i] = av.addAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra += av.addAll();
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::addAll, FloatMaxVectorTests::addAll);
}
! static float mulAll(float[] a, int idx) {
float res = 1;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res *= a[i];
}
return res;
}
! static float mulAll(float[] a) {
float res = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
float tmp = 1;
for (int j = 0; j < SPECIES.length(); j++) {
tmp *= a[i + j];
--- 812,853 ----
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void addLanesFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = 0;
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);
! r[i] = av.addLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 0;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra += av.addLanes();
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::addLanes, FloatMaxVectorTests::addLanes);
}
! static float mulLanes(float[] a, int idx) {
float res = 1;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res *= a[i];
}
return res;
}
! static float mulLanes(float[] a) {
float res = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
float tmp = 1;
for (int j = 0; j < SPECIES.length(); j++) {
tmp *= a[i + j];
*** 844,954 ****
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void mulAllFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = 1;
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);
! r[i] = av.mulAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra *= av.mulAll();
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::mulAll, FloatMaxVectorTests::mulAll);
}
! static float minAll(float[] a, int idx) {
float res = Float.POSITIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (float)Math.min(res, a[i]);
}
return res;
}
! static float minAll(float[] a) {
float res = Float.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (float)Math.min(res, a[i]);
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void minAllFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = Float.POSITIVE_INFINITY;
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);
! r[i] = av.minAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Float.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra = (float)Math.min(ra, av.minAll());
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::minAll, FloatMaxVectorTests::minAll);
}
! static float maxAll(float[] a, int idx) {
float res = Float.NEGATIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (float)Math.max(res, a[i]);
}
return res;
}
! static float maxAll(float[] a) {
float res = Float.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (float)Math.max(res, a[i]);
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void maxAllFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = Float.NEGATIVE_INFINITY;
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);
! r[i] = av.maxAll();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Float.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra = (float)Math.max(ra, av.maxAll());
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::maxAll, FloatMaxVectorTests::maxAll);
}
--- 856,966 ----
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void mulLanesFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = 1;
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);
! r[i] = av.mulLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = 1;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra *= av.mulLanes();
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::mulLanes, FloatMaxVectorTests::mulLanes);
}
! static float minLanes(float[] a, int idx) {
float res = Float.POSITIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (float)Math.min(res, a[i]);
}
return res;
}
! static float minLanes(float[] a) {
float res = Float.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (float)Math.min(res, a[i]);
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void minLanesFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = Float.POSITIVE_INFINITY;
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);
! r[i] = av.minLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Float.POSITIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra = (float)Math.min(ra, av.minLanes());
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::minLanes, FloatMaxVectorTests::minLanes);
}
! static float maxLanes(float[] a, int idx) {
float res = Float.NEGATIVE_INFINITY;
for (int i = idx; i < (idx + SPECIES.length()); i++) {
res = (float)Math.max(res, a[i]);
}
return res;
}
! static float maxLanes(float[] a) {
float res = Float.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i++) {
res = (float)Math.max(res, a[i]);
}
return res;
}
@Test(dataProvider = "floatUnaryOpProvider")
! static void maxLanesFloatMaxVectorTests(IntFunction<float[]> fa) {
float[] a = fa.apply(SPECIES.length());
float[] r = fr.apply(SPECIES.length());
float ra = Float.NEGATIVE_INFINITY;
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);
! r[i] = av.maxLanes();
}
}
for (int ic = 0; ic < INVOC_COUNT; ic++) {
ra = Float.NEGATIVE_INFINITY;
for (int i = 0; i < a.length; i += SPECIES.length()) {
FloatVector av = FloatVector.fromArray(SPECIES, a, i);
! ra = (float)Math.max(ra, av.maxLanes());
}
}
! assertReductionArraysEquals(a, r, ra, FloatMaxVectorTests::maxLanes, FloatMaxVectorTests::maxLanes);
}
< prev index next >